Sepia-乌贼 一款集PoC批量验证和漏洞攻击的渗透测试工具
工具概述
Sepia(乌贼)是一款集PoC批量验证和漏洞攻击的渗透测试工具,能满足漏洞爆发时快速对资产状况进行查证的需求。
与POC-T相比,Sepia有以下一些变化:
1. 数据搜集方式的变化
去掉了Google dork、Shodan dork,只保留了Zoomeye dork,增加了Baidu dork(URL爬虫)。
2. 增加了URL正则抓取定制功能
一些Web应用程序的漏洞其对应的URL可能千变万化,仅利用@cdxy批量规范URL的方法会降低验证效率,因此Sepia在toolkit文件中增加了正则定制项urlfilter,通过配合百度URL爬虫,能大大提升抓取和验证的效率。
3. 改变了一些输出显示
Sepia去掉了POC-T导出到文件的功能,引入prettytable直接将结果做成表格显示在终端。
4. 脚本编写要求的变化
由于Sepia含有漏洞的攻击功能,但各种漏洞的攻击方式会有很大差异,目前已经基本确定了Sepia的脚本编写规则和标准,这应该是和POC-T有比较大区别的地方。
总之,POC-T专注的是并发批量处理任务,而Sepia只专注高效批量PoC验证并能对单个目标实施攻击。
参数说明
扫描引擎设置项
-
--threads #指定扫描引擎工作方式为多线程(默认)
-
--gevent #指定扫描引擎工作方式为协程
-
--number #指定线程或者微线程数量,默认为10
扫描脚本设置项
-
-s #指定一个脚本库中的脚本或加载一个本地脚本文件
-
--search #制定一个关键字从脚本库中搜索脚本
-
--list #列出脚本库中所有可用的脚本
扫描目标设置项
-
-t #指定一个单一的目标,URL或者IP地址
-
-f #从一个文件中批量读取待扫描目标
-
-c #指定一个CIDR地址块进行扫描
数据抓取API设置项
-
-zoomeye #使用ZoomEye批量抓取目标
-
-baidu #从百度批量爬取目标
-
--limit #设定抓取数据的量,该值不是一个精准值(因为爬取数据是按页读取同时对URL做了贪心处理,即将同一个url变换成多个,所以某些情况下抓取结果数量会和指定结果数量不一致,一般是偏多),默认为10
-
--offset #设定从第几页开始抓取,默认为0(第一页)
-
--search-type #指定ZoomEye的抓取方式,web或host,默认为host
使用示例
批量扫描验证漏洞
拿S2-045漏洞来说,先python sepia.py --search struts 找到Struts相关的扫描脚本,也可以使用python sepia.py --list列出所有脚本查看。
S2-045漏洞对应的脚本为struts2_045_rce,于是执行python sepia.py -s struts2_045_rce -baidu "inurl:login.action"
可以看到这样抓取的URL有很多都不是我们想要的,因此我们在./toolkit.conf中增加URL过滤器[urlfilter]regex:((?:http://|https://).*(?:login.action))然后重新试试。
扫描单个漏洞并利用
对于./script/下所有脚本,如果脚本中包含有exp()方法,Sepia会在-t模式下自动进入exploit模式。
例如扫描一个可能存在S2-016漏洞的URL
文章来源:
https://github.com/S4kur4/Sepia