在渗透测试过程中,会面对大量的渗透概念验证(Proof of
Concept,POC)和漏洞利用(Exploit,EXP),从中查找所需要的对应脚本非常困难,而渗透测试框架的出现解决了这一问题,在编写时就将 POC 和 EXP 按照一定的格式进行限制,按照文件夹或文件名进行分类,并内置了许多可调用的模块,以便于 POC 和 EXP 的快速编写。
常见的渗透测试框架包括 Metasploit、Pocsuite、Fsociety 等,这里主要介绍 Pocsuite 渗透测试框架的使用及编写

1.Pocsuite 框架

Pocsuite 是一款基于漏洞与 POC 的远程漏洞验证框架,支持 Windows/Linux/Mac
OS
X 等系统,整个框架操作灵活,既方便了对漏洞的管理、查找等,也提高了工作效率。
先了解两个基本概念:POC,是用来验证漏洞是否存在的一段代码;EXP,指利用系统漏洞进行渗透。先有 POC,后有 EXP。
你可以直接使用 Pocsuite 进行漏洞的验证与利用,也可以基于 Pocsuite 进行 POC/EXP 的开发,因为 Pocsuite 同时也是一个 POC 开发框架。你还可以在漏洞测试工具里直接集成 Pocsuite,因为 Pocsuite 也提供标准的调用类

功能介绍

漏洞测试框架

Pocsuite 用 Python3 编写,支持验证、利用及壳三种插件模式,你可以指定单个目标或者从文件中导入多个目标,使用单个 POC 或者 POC 集合进行漏洞的验证或利用。可以使用命令行模式进行调用,也支持类似 Metaspolit 的交互模式进行处理,除此之外,还包含了一些基本功能,如输出结果报告等

POC/EXP 开发包

Pocsuite
3 也是一个 POC/EXP 的 SDK(也就是开发包),封装了一些基础的 POC 类以及一些常用的方法,比如 Webshell 的相关方法,基于 Pocsuite
3 进行 POC/EXP 的开发,只需要编写最核心的漏洞验证部分代码,而不用去关心整体的结果输出等其他一些处理。基于 Pocsuite
3 编写的 POC/EXP 可以直接呗 Pocsuite 使用,Seebug 网站也有几千个基于 Pocsuite 的 POC/EXP

可被集成模块

Pocsuite
3 除了本身是一个安全工具,也可以作为一个 Python 包被集成进漏洞测试模块。还可基于 Pocsuite
3 开发自己的应用,在 Pocsuite
3 里封装了可以被其他程序导入的 POC 调用类,你可以基于 Pocsuite
3 进行二次开发,调用 Pocsuite 3 开发自己的漏洞验证工具

集成 ZoomEye、Seebug、Ceye

Pocsuite 3 还集成了 ZoomEye、Seebug 和 Ceye API,你可以利用 ZoomEye
API 批量获取指定条件的测试目标(使用 ZoomEye 的 Dork 进行搜索),同时通过 Seebug
API 读取指定组件或者类型的漏洞的 POC 或者本地 POC,进行自动化的批量测试。也可以利用 Ceye 验证盲打的 DNS 和 HTTP 请求

安装

Pocsuite 的安装十分便捷这里提供两种安装方法,可以根据自己主机的命令来选择适合的方法进行安装,安装完成后使用 pocsuite-version 验证安装是否成功

方法一:

使用下面命令下载最新的源代码 zip 包,并以解压的方式进行安装,如下所示

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

回显如图所示:

安装依赖:

1
2
3
4
pip3 install requests requests-toolbelt 
pip3 install pyreadline
pip3 install colorlog
pip3 install faker

其实就是缺什么装什么,看清楚报错,安装需要的东西即可(以上是我遇到的)安装好后进入 pocsuite3-master/pocsuite3 文件夹输入如下命令:

1
python3 cli.py -h

如果显示正常则如下图所示:

方法二:

直接使用 pip 命令安装方式

1
2
3
pip install pocsuite3
或者
pip3 install -U pocsuite3 --no-cache-dir

当报错需要更新你的 pip 时也可以使用语句

1
apt-get install python3-pip 

安装完成后需要在 Pocsuite 文件夹内直接输入命令检查安装版本

1
pocsuite -version

结果:

个人习惯是 pip 安装会舒服一些也方便一些

使用方法

Pocsuite 具有两种交互模式,一种是命令行模式,类似于我们熟悉的 sqlmap 的交互方式,另一种是控制台交互模式,类似于 w3af 或者 Metasploit 的界面
在使用 Pocsuite 时,我们可以使用
--verify 参数来调用 verify 方法,用于验证目标是否存在漏洞;用
--attack 参数调用
attack 方法,用来向目标发起攻击

1
2
3
4
5
6
7
8
9
def _attack(self):
result = {}
#write your code here
return self.parse_output(result)

def _verify(self):
result = {}
#write your code here
return self.parse_output(result)

1.Verify 验证模式,验证目标是否存在漏洞。-r 为脚本路径,-u 为目标地址,命令为:

1
pocsuite -r pocs/test.py(poc脚本路径) -u (目标地址) --verify

2. 批量验证,将需要验证的所有目标 IP 写到一个 txt 文件中批量利用,命令为:

1
pocsuite -r pocs/test.py(poc脚本路径) -f url.txt --verify

3. 加载文件夹下的所有 poc 对目标进行测试,-r 为文件夹下路径,命令为:

1
pocsuite -r pocs/*(poc脚本路径) -u (目标地址) --verify

4. 使用多线程。--threads 表示线程数,在多目标场景下,可以使用该参数提高效率,命令为:

1
pocsuite -r pocs/test.py(poc脚本路径) -u (目标地址) --verify --threads 10

5. 使用 Zoomeye 搜索引擎,搜索开放端口为 6379 的 Redis 服务,命令为:

1
python3 cli.py --dork 'port:6379' --vul-keyword 'redis' --max-page 2

6.Attack 模式,向目标发起有效攻击,命令为:

1
pocsuite -r pocs/test.py(poc脚本路径) -u (目标地址) --attack

7. 使用 shell 交互式模式,对目标进行远程控制,命令为:

1
pocsuite -r pocs/test.py(poc脚本路径) -u (目标地址) --shell

8. 使用自定义命令 'command',调用外部传递参数,进行半交互式命令执行,命令为:

1
pocsuite -r pocs/test.py(poc脚本路径) -u (目标地址) --attack --command "whoami"

Pocsuite 框架有利于 POC/EXP 的快速编写,并且内置的许多模块能更好地帮助渗透,比如批量 poc 测试 / 打批量目标。可以使用内置工具来进行搜索特定条件的目标等等。对于 Pocsuite 框架还不是太熟悉,需要进一步地去使用和研究才能获得更多更好的感悟

更新于