作者: Beard_lin

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,config
def run(fingerprint,domains):
    '''
    :param fingerprint:
    :param domains:  list
    :return:
    '''
    filename='asdnui2@djiaejiwa'
    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 总结

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

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

0x06 了解更多安全知识