Python分布式工具开发(二)--指纹识别与POC验证

  • A+
所属分类:安全开发


Python分布式工具开发(二)--指纹识别与POC验证

点击上方蓝字关注我们

0x01 指纹与poc在分布式中的架构问题

因为加入工具后的合理问题,所以在控制节点与执行节点都要进行一些更改。

控制节点:
1.载入数据
2.数据分配
执行节点:
1.载入指纹识别代码
2.载入poc验证代码
3.载入数据存储代码

0x02 指纹识别的相关问题

对于web指纹的匹配大致有如下位置:

1.title
2.body
3.http头
4.相关目录

前三项发送的请求数据较小,在大批量数据采集时可以考虑放弃目录探测,以此提升速度以及避免呗发现。

指纹识别代码可以参考github上一些工具,因为作者也是改的别人的,这里就不发出来了,下面写一下web指纹识别的大致逻辑。

1.访问目标网站
2.提取出目标网站的title body http头
3.指纹库中提取数据
4.做指纹匹配
5.存储指纹名

在这里其实是对指纹进行数据库存储的,这个留到下章再详细讲以下。

指纹库的选择问题:

1.使用开源指纹库
2.使用其他工具的指纹库
3.使用自己收集的指纹库

0x03 POC验证代码的规范问题

提取出相关指纹的域名后,可对其进行历史漏洞的验证。

因为此代码是写入到分布工具内的,就要考虑代码格式的问题,以下为作者使用的格式:

import urllib3,configdef run(fingerprint,domains):    '''    :param fingerprint:    :param domains:  list    :return:    '''    filename='[email protected]'    for domain in domains:#a.fetchall():        #1. 发送攻击载荷的代码,具体为:        1.get发送        2.post发送        3.相应编码后发送        if xxx in a.data.decode('UTF-8'):            #此处为判断是否攻击成功,具体方式有:            1.dnslog验证            2.相关数据匹配            #匹配为攻击成功后,对数据进行存储        else: print('匹配未成功')

0x04 分布式工具中POC验证的逻辑

上面写完规范了,这里写以下工具现在的逻辑:

1.匹配出web指纹2.提取相关指纹3.导出发送至POC验证处4.验证完成

0x05 总结

相关代码并不复杂,但是写到一起就要考虑很多问题以及整体的逻辑性。本文相关代码并不打算发出,因为有部分代码使用的是其他工具中的内容。

整体难度并不是很高,所以有兴趣的大佬可以根据自己的习惯写一下。


原文始发于微信公众号(灼剑安全团队):Python分布式工具开发(二)--指纹识别与POC验证

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: