简 介:
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
pip install pyreadline
4. python3 cli.py -h(检验安装效果)
二、Pocsuite3的使用
python3 cli.py--r pocs/ecshop_rce.py--dork ecshop--threads 5
使用ZoomEye搜索ecshop并使用ecshop_rce.py探测,指定线程数量为5
有时候由于命令过多会导致参数重用性比较高,因此pocsuite还可以从配置文件中进行修改。
这边我们打开pocsuite.ini文件
Target底下有个poc=,这里就是可以选择自己想要使用的poc,
这个poc可以是自己写的,也可以是pocsuite3中自带的
这边举一个例子,poc = pocs/drupalgeddon2.py
mode就是写明poc需要执行的模式是exp还是verify,这边ini文件中默认是verify
Account这里就是写zoomeye、shodan这些的用户名密码,pocsuite3会通过zoomeye
这些帮助你做资产搜集
Modules中在我看来主要是设置,dork用来设置zoomeye等里面的搜索语句
举个例子:
然后再最后一个模块修改一下线程数
然后
python3 cli.py -c ../pocsuite.ini
我中间还是改了一下使用得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编写的学习
在poc3中自带很多python编写的poc
因此尝试过效果之后 打开之前的ecshop_rce.py进行代码学习
代码的刚开始总体来说是一个简介,
关于创建的时间、作者的名字、poc针对的对象以及版本等等。
此处我认为是需要自行定义你所需要使用的ecshop的版本以及匹配的payload,
甚至可以自行定义攻击的payload代码。
这边就很容易理解,把常用的ecshop2和3的payload写进函数中,当版本匹配时可以直接调用已经写入的payload。
其实这边写的比较分散,可以用payload={}把所有patload写在一起。
这边就是用来验证漏洞的函数,首先就是输入你的url,
如果你选择是auto也就是随机的话,它会将你的2.x以及3.x版本的payload全部都执行一遍,如果有定义版本,则根据版本来执行payload,
最后将结果输出,如果遇到timeout,也就是运行时间过长则执行中断。
这边写明了当执行成功的时候则输出结果,输出失败的时候则输出target is not vulnerable(目标无漏洞)
底下两个函数就是前面option里说的自定义,这个都是在cmd中进行自定义的,
可以根据pocsuite3的命令格式自行使用自己的command以及payload。
attack函数还会根据个人写的命令来执行提权。
这个函数的意思就是进行权限升级,再来漏洞利用,其逻辑和之前的verify很相似,
但不同的是
verify是验证漏洞,exploit是进行漏洞利用,这就是看使用的payload以及需要输出的结果的区别。
exp这边需要在cmd中写入webshell提权的命令,才能够进行使用,否则只会执行verify验证环节中的内容。