Pocsuite3 是完全由 Python3 编写,支持 Windows/Linux/Mac OSX 等系统,在原 Pocsuite 的基础上进行了整体的重写与升级,使整个框架更具有操作性和灵活性。
0×00 前言
Pocsuite3 是完全由 Python3 编写,支持 Windows/Linux/Mac OSX 等系统,在原 Pocsuite 的基础上进行了整体的重写与升级,使整个框架更具有操作性和灵活性。
0×01 使用
Options 常规选项
1 | -h 帮助 |
Target 加载目标
1 | -u URL |
Mode 运行模式
1 | --verity 验证 |
Requrst 统一请求
1 | --cookie |
Account Token 接口
1 | Telnet404 account options |
Modules 一些模块接口
1 | --dork (默认为zoomeye搜索搜索引擎) |
Optimization 其他选项
1 | --plugins 加载插件 |
console 模式
1 | python3 console.py进入console模式 |
0×02 POC 编写
1.编写 PoC 文件名
PoC 命名分成 3 个部分组成漏洞应用名—版本号—漏洞类型名称 然后把文件名称中的所有字母改成小写,所有的符号改成_
2.编写 PoC 实现类
DemoPOC
,继承自PoCBase
类.
3.填写 PoC 信息字段
1 | vulID = '1571' # ssvid ID 如果是提交漏洞的同时提交 PoC,则写成 0 |
4._options 函数-自定义字段
先导入包
1 | from pocsuite3.api import OptString,OptDict,OptIP,OptPort,OptBool,OptInteger,OptFloat,OptItems |
函数使用方法
1 | def _options(self): |
提取自定义字段
1 | self.get_option("username")#或 |
5._verify 函数-验证模式
1 | def _verify(self): |
6._attack 函数-攻击模式
攻击模式可以对目标进行 getshell,查询管理员帐号密码等操作.定义它的方法与检测模式类似
1 | def _attack(self): |
和验证模式一样,攻击成功后需要把攻击得到结果赋值给 result 变量
如果该 PoC 没有攻击模式,可以在 _attack()函数下加入一句 return self._verify() 这样你就无需再写 _attack 函数了。
7._shell 函数-shell 模式
pocsuite3 在 shell 模式 会默认监听 6666 端口, 编写对应的攻击代码,让目标执行反向连接,运行 pocsuite3 系统 IP 的 6666 端口即可得到一个 shell
1 | def _shell(self): |
shell 模式下,只能运行单个 PoC 脚本,控制台会进入 shell 交互模式执行命令及输出
7.例子
如果你需要编写一个可以交互参数的 poc 文件(例如有的 poc 脚本需要填写登录信息,或者任意命令执行时执行任意命令),那么可以在 poc 文件中声明一个_options 方法。一个简单的例子如下
1 | from collections import OrderedDict |