前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >黑客最爱!Pocsuite3 进入 Kali 软件仓库

黑客最爱!Pocsuite3 进入 Kali 软件仓库

作者头像
Seebug漏洞平台
发布2022-02-23 13:42:45
1K0
发布2022-02-23 13:42:45
举报
文章被收录于专栏:Seebug漏洞平台Seebug漏洞平台

作者: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 模式实现,实际只需要一行代码:

代码语言:javascript
复制
def _shell(self):
    return bind_telnet_shell(ip, port, 'iot', 'attify')

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

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

代码语言:javascript
复制
# 重写这个方法
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 选项。

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

通过关键词选取 PoC

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

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

pcap 录包

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

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

interactsh 集成

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

代码语言:javascript
复制
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实验室过去,现在,未来的所有团队成员。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Seebug漏洞平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档