【新功能】黑客利器!Pocsuite3 漏洞测试框架

admin 2022年1月13日18:14:25评论679 views字数 4228阅读14分5秒阅读模式

【新功能】黑客利器!Pocsuite3 漏洞测试框架

作者:fenix@知道创宇404实验室



Pocsuite3 是由知道创宇 404 实验室打造的一款基于 GPL v2 许可证开源的远程漏洞测试框架,自2015年开源以来(可以看看团队成员在2015年时写的关于Pocsuite开源的文章:https://paper.seebug.org/1570/,知道创宇安全研究团队持续维护至今,不断更新迭代。



Pocsuite3 是团队发展的基石,也保障了我们的 Web 安全研究能力的领先。官网:https://pocsuite.org


Kali Linux 是基于Debian的Linux发行版,设计用于数字取证和渗透测试,Kali Linux 拥有超过600个预装的渗透测试程序,包括 Armitage(一个图形化网络攻击管理工具), Nmap(一个端口和服务扫描工具), Wireshark, John the Ripper password cracker, Aircrack-ng, Burp Suite 等知名安全工具。


2021年11月,Pocsuite3通过了Debian官方的代码及合规检查,正式入选debian、ubuntu、kali linux等发行版的软件仓库,可以通过apt命令一键获取。


可从以下链接获取支持的具体发行版信息:

Debian:https://tracker.debian.org/pkg/pocsuite3

Ubuntu:https://launchpad.net/ubuntu/+source/pocsuite3

Kali:http://pkg.kali.org/pkg/pocsuite3


另一个好消息是,Pocsuite3也已经推送到Homebrew的homebrew-core (https://formulae.brew.sh/formula/pocsuite3)仓库中,在MacOS上可以通过 brew 命令一键安装。


与此同时,Pocsuite3 中又新增了很多新的功能,如下:






正向Shell

1.8.5 版本开始,Pocsuite3 支持 bind shell。shell 模式和原来的操作方式一致,也需要指定监听 ip 和端口,监听 ip 可以是本地任意 ip,也可以是远程服务器 ip。


bind shell 的实现位于 ./pocsuite3/modules/listener/bind_tcp.py,原理是实现了一个中间层,一端连接远程目标的 bind shell(如 telnet 服务、nc 启动的 shell、php 一句话等),另一端连接用户指定的监听 ip 和端口,如此一来,shell 模式可以不受网络环境限制,支持在内网使用。


目前支持三种 bind shell,使用场景如下:


bind_shell:通用方法,在 shell 模式中直接调用 return bind_shell(self, rce_func) 即可,非常便捷。针对有回显的漏洞,在 PoC 中实现一个 rce(函数名可自定义)方法,函数参数为命令输入,输出为命令输出。如果漏洞无回显,也可以通过写一句话转为有回显的。值得一提的是,用户也可以在 rce 方法中实现流量的加解密。


bind_tcp_shell:对 tcp 绑定型 shell 的原生支持,在 shell 模式中 return bind_tcp_shell(bind_shell_ip, bind_shell_port)

bind_telnet_shell:对 telnet 服务的原生支持,在 shell 模式中 return bind_telnet_shell(telnet_ip, telnet_port, username, password)


简单举几个例子,telnet 弱口令 shell 模式实现,实际只需要一行代码:

def _shell(self):
  return bind_telnet_shell(ip, port, 'iot', 'attify')


【新功能】黑客利器!Pocsuite3 漏洞测试框架


php shell 模式,在目标写入一句话,然后在 _rce 方法中实现了流量的 AES 加解密:


【新功能】黑客利器!Pocsuite3 漏洞测试框架


值得一提的是,针对有回显的漏洞,只要在 PoC 中实现一个 _rce 方法,就可轻松实现 Pocsuite3 的  _verify_attack_shell 三种模式,如下:


# 重写这个方法
def _rce(self, cmd='id'):
   result = ''
   try:
       res = requests.get(
           self.url,
           timeout=10
      )
       logger.debug(res.text)
       result = res.text
   except Exception as e:
       logger.debug(str(e))
   return result

# 验证漏洞存在
def _verify(self):
   result = {}
   if not self._check():
       return self.parse_output(result)
   flag = random_str(10)
   cmd = f'echo {flag}'
   res = self._rce(cmd)
   if flag in res:
       result['VerifyInfo'] = {}
       result['VerifyInfo']['URL'] = self.url
       result['VerifyInfo'][cmd] = res
   return self.parse_output(result)

def _options(self):
   o = OrderedDict()
   o['cmd'] = OptString('id', description='The command to execute')
   return o

# 从命令行参数获取用户命令,并输出命令执行结果
def _attack(self):
   result = {}
   if not self._check():
       return self.parse_output(result)
   cmd = self.get_option('cmd')
   res = self._rce(cmd)
   result['VerifyInfo'] = {}
   result['VerifyInfo']['URL'] = self.url
   result['VerifyInfo'][cmd] = res
   return self.parse_output(result)

# 交互 shell 模式
def _shell(self):
   return bind_shell(self, '_rce')


加密的反向Shell


1.8.6 版本开始,Pocsuite3 支持传输层加密的 shell。PoC 中使用 openssl 的反弹命令(也可以用代码反弹),并且在运行时指定 --tls 选项。


【新功能】黑客利器!Pocsuite3 漏洞测试框架



可以看到,通信流量加密了:


【新功能】黑客利器!Pocsuite3 漏洞测试框架



通过关键词选取 PoC


1.8.8 版本开始,-r 选项支持指定一个或多个目录,Pocsuite3 将遍历目录然后加载所有符合条件的 PoC,用户可以用 -k 选项指定关键词对 PoC 进行筛选,如组件名称、CVE编号等。


【新功能】黑客利器!Pocsuite3 漏洞测试框架



如果我们确认了目标组件,就可以用 -k 选项找到所以对应的 PoC 对目标进行批量测试。


pcap 录包


在运行 PoC 时使用 --pcap 参数,可以将通信流量保存为 pcap 文件。



【新功能】黑客利器!Pocsuite3 漏洞测试框架



通过 wireshark 打开该文件进行流量分析。



【新功能】黑客利器!Pocsuite3 漏洞测试框架


interactsh 集成


interactsh 是知名开源软件组织 projectdiscovery 开发的一款 dnslog 工具,和 ceye 类似。Pocsuite3 从 1.8.8 版本开始集成了 interactsh,给用户更多选择。


from pocsuite3.api import Interactsh

# 支持指定自定义服务器
ish = Interactsh(token='', server='interact.sh')

# 获取子域名
url, flag = ish.build_request()
print(url, flag)
https://dES2othwBG.n27g256h94174h3wt328916sd6769i9ub.interact.sh dES2othwBG

# 模拟 dnslog 请求
requests.get(url, verify=False)

# 结果验证
ish.verify(flag)


有趣的是,该功能刚更新就被 log4j-scan(https://github.com/fullhunt/log4j-scan/blob/master/log4j-scan.py#L215)工具所使用 。



如果在使用过程中遇到任何问题,或者有啥新想法,欢迎提交 issue (https://github.com/knownsec/pocsuite3/issues/new) 或者 PR (https://github.com/knownsec/pocsuite3/compare)



感谢404实验室过去,现在,未来的所有团队成员。【新功能】黑客利器!Pocsuite3 漏洞测试框架

【往期推荐】

【内网渗透】内网信息收集命令汇总

【内网渗透】域内信息收集命令汇总

【超详细 | Python】CS免杀-Shellcode Loader原理(python)

【超详细 | Python】CS免杀-分离+混淆免杀思路

【超详细 | 钟馗之眼】ZoomEye-python命令行的使用

【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现

【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现

【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现

【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞

【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现

【奇淫巧技】如何成为一个合格的“FOFA”工程师

【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】

【超详细】Fastjson1.2.24反序列化漏洞复现

  记一次HW实战笔记 | 艰难的提权爬坑

【漏洞速递+检测脚本 | CVE-2021-49104】泛微E-Office任意文件上传漏洞

免杀基础教学(上卷)

免杀基础教学(下卷)

走过路过的大佬们留个关注再走呗【新功能】黑客利器!Pocsuite3 漏洞测试框架

往期文章有彩蛋哦【新功能】黑客利器!Pocsuite3 漏洞测试框架

【新功能】黑客利器!Pocsuite3 漏洞测试框架

一如既往的学习,一如既往的整理,一如即往的分享【新功能】黑客利器!Pocsuite3 漏洞测试框架

如侵权请私聊公众号删文

原文始发于微信公众号(渗透Xiao白帽):【新功能】黑客利器!Pocsuite3 漏洞测试框架

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月13日18:14:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【新功能】黑客利器!Pocsuite3 漏洞测试框架http://cn-sec.com/archives/735333.html

发表评论

匿名网友 填写信息