Pocsuite3的安装和使用及poc代码的学习

简介: Pocsuite3的安装和使用及poc代码的学习

简 介:


Pocsuite 是由知道创宇404实验室打造的一款开源的远程漏洞测试框架。


你可以直接使用 Pocsuite 进行漏洞的验证与利用;

你也可以基于 Pocsuite 进行 PoC/Exp 的开发,因为它也是一个 PoC 开发框架;

同时,你还可以在你的漏洞测试工具里直接集成 Pocsuite,它也提供标准的调用类。


Pocsuite3是完全由Python3编写,支持Windows/Linux/Mac OSX等系统,在原Pocsuite的基础上进行了整体的重写与升级,使整个框架更具有操作性和灵活性。


Pocsuite3在编写时参考了很多市面上的开源框架以及流行成熟的框架,在代码工程结构上参考了Sqlmap,Pocsuite-console模式则参照了routersploit与metasploit,所以Poc的代码格式和以前有些差别(但是尽量克制了大的改动)。


Pocsuite3也提供了非常简单的接口调用,可以集成到其他安全工具内部。


一、Pocsuite3的安装


安装:


1.wget https://github.com/knownsec/pocsuite3/archive/master.zip


2. unzip pocsuite3-master


3. 同时需要安装两个依赖


pip install requests requests-toolbelt


c01c65dd14af39c40507f76212683c09_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


pip install pyreadline


42d30309afe59135e9d00ab9c29226cd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4. python3 cli.py -h(检验安装效果)


74f57d8c0ffbff2ddbd66a5204440f50_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


二、Pocsuite3的使用


python3 cli.py--r pocs/ecshop_rce.py--dork ecshop--threads 5


使用ZoomEye搜索ecshop并使用ecshop_rce.py探测,指定线程数量为5


21783b7b1795ba2dfb41b34aac0ef828_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

0900b444a7fbd479fb9efc712180f6a6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


有时候由于命令过多会导致参数重用性比较高,因此pocsuite还可以从配置文件中进行修改。


这边我们打开pocsuite.ini文件


849a4834853d0bda3b79ac64ceffb196_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


Target底下有个poc=,这里就是可以选择自己想要使用的poc,


这个poc可以是自己写的,也可以是pocsuite3中自带的


321c5e196be5c0158c0d1376862c299a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


这边举一个例子,poc = pocs/drupalgeddon2.py


4cde81c2eca44a2f05c7f1ffda930237_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


mode就是写明poc需要执行的模式是exp还是verify,这边ini文件中默认是verify


698dc1c31d873bacb1fc74f19748fb9c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


Account这里就是写zoomeye、shodan这些的用户名密码,pocsuite3会通过zoomeye


这些帮助你做资产搜集


ae7dec25f275fe48c63c0c959cf0402f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


Modules中在我看来主要是设置,dork用来设置zoomeye等里面的搜索语句


举个例子:


38ec3f9e9593ef319f3dfe260cf5bea2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


然后再最后一个模块修改一下线程数


cf7aeba6c015a640a5d2254400f8f1c0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



然后


python3 cli.py -c ../pocsuite.ini



080e403f8c93bad4c9420fd2a557513c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



我中间还是改了一下使用得poc以及设置内容,因为没有shodan会员,也没有使用shodan,


虽然没有扫出什么东西,不过使用pocsuite.ini来修改参数就这样进行得,会比较清晰,也不会遗漏参数。


如果有shodan,zoomeye一同开启,就将comparison改成true,这样得到的结果会更清楚。


Pocs插件


通过--plugins在后面指定插件名称,多个插件可以用,分割。


例如--plugins html_report将会生成HTML报表格式文档。


生成html报告的插件地址:


https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/html_report.py


生成txt报告的插件地址


https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/file_record.py


同时插件也可以在github上维护一个仓库调用。


举例:


https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/poc_from_redis.py


Pocsuite3还具有console模式,由于我是在windows环境下搭建的,console模式更适用于linux以及mac环境,因此大佬们可以自行去尝试


三、POC编写的学习


321c5e196be5c0158c0d1376862c299a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



在poc3中自带很多python编写的poc


因此尝试过效果之后 打开之前的ecshop_rce.py进行代码学习



b8ae53e729ffadc5f0e0ad7d91a9237e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



代码的刚开始总体来说是一个简介,


关于创建的时间、作者的名字、poc针对的对象以及版本等等。



097d31d88c85bd7c18bf09d9e3621abf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png




此处我认为是需要自行定义你所需要使用的ecshop的版本以及匹配的payload,


甚至可以自行定义攻击的payload代码。



ded489c88dd4de07d4bfc412a1e10f62_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



这边就很容易理解,把常用的ecshop2和3的payload写进函数中,当版本匹配时可以直接调用已经写入的payload。


其实这边写的比较分散,可以用payload={}把所有patload写在一起。




bdb3259079311a5108900286b3228c29_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png




这边就是用来验证漏洞的函数,首先就是输入你的url


如果你选择是auto也就是随机的话,它会将你的2.x以及3.x版本的payload全部都执行一遍,如果有定义版本,则根据版本来执行payload,


最后将结果输出,如果遇到timeout,也就是运行时间过长则执行中断。



ee31211027b376804ccb9247360a27ba_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



这边写明了当执行成功的时候则输出结果,输出失败的时候则输出target is not vulnerable(目标无漏洞)


底下两个函数就是前面option里说的自定义,这个都是在cmd中进行自定义的,


可以根据pocsuite3的命令格式自行使用自己的command以及payload。


attack函数还会根据个人写的命令来执行提权。



2510cf89d4d24c7658be79cfd32b408f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



这个函数的意思就是进行权限升级,再来漏洞利用,其逻辑和之前的verify很相似,


但不同的是


verify是验证漏洞,exploit是进行漏洞利用,这就是看使用的payload以及需要输出的结果的区别。


exp这边需要在cmd中写入webshell提权的命令,才能够进行使用,否则只会执行verify验证环节中的内容。


相关文章
Golang反射---结构体的操作案例大全
Golang反射---结构体的操作案例大全
78 0
|
2月前
|
人工智能 算法 搜索推荐
Go学习笔记-代码调
近年来,人工智能技术飞速发展,Cody作为由Sourcegraph开发的一款AI驱动编码助手,应运而生。它不仅提供代码预测与补全,还能深度理解代码上下文,为开发者提供准确建议,提升编码效率和质量。Cody能识别潜在错误并提出修复建议,缩短调试时间,同时进行智能代码审查,帮助优化代码结构和风格。未来,随着AI技术进步,Cody将不断学习优化,成为开发者不可或缺的伙伴,推动编程领域的创新与发展。
33 0
|
5月前
|
编译器 C语言 C++
|
6月前
|
算法 Java C语言
【新手解答6】深入探索 C 语言:算法流程图(条件判断、循环)+ 字符常量 + switch的具体用法 + 关于`namespace` + import vs include
【新手解答6】深入探索 C 语言:算法流程图(条件判断、循环)+ 字符常量 + switch的具体用法 + 关于`namespace` + import vs include
170 0
|
Linux 程序员 C语言
Vs code写C语言代码配置(超详细超基础)
写在前面: 近期不是重新温习一下C语言吗,也给自己升级换代一下编辑器,最初我一直用Dev c++ 写的C语言,因为没想往深的学习C语言,也不会去写什么大的项目,所以这个编辑器也是可以用,但是目前认真学习,发现那个东西真的适合初学者,对于我这种懒人不适合,项目代码管理起来很麻烦,所以一气之下我直接鸟枪换炮,整个大家伙——vs,但是vs真的太大了,而且默认装在C盘,我这破电脑小内存扛不住,所以就研究了一下vs code,下面就本人安装经验给新学者讲解如何安装。
781 0
|
存储 Go
Go基础练习题 附讲解
Go基础练习题 附讲解
|
机器学习/深度学习 算法 图计算
图学习【参考资料2】-知识补充与node2vec代码注解
1. 回顾并总结了图的基本概念。 2. 学习思考算法实现的代码思路--Node2Vec的实现以及RandomWalk的实现。 3. 对源码阅读能力的提升。
Go 编程 | 连载 23 - 函数实现接口
Go 编程 | 连载 23 - 函数实现接口
第二章 go指针
指针 先来看一段代码
114 0
第二章 go指针