打造一把网络安全“利刃” - (指纹篇)

前言

在安全行业里摸爬滚打也有将近7、8年的时间了,这几年来有一大半的时间是在干渗透。渗透分三个阶段:渗透前,渗透中,后渗透。在我的渗透经验里,渗透前,也就是信息收集这一步,占了整个渗透过程里80%的时间,太枯燥且繁琐了。这几年来一直在想,有没有可能将所有知名工具整合到一起,让他们合并成为一把网络安全里的“利刃”呢?

0x01 信息收集的来源

我经常使用的就是masscan+nmap,前者用来快速且批量的扫描目标的IP资产(B/C段),后者则用来给目标打上tag,例如:8080/http。再就是whatweb+wappalyzer用来识别目标的web资产指纹。子域名这方面,因为大多数工具都是字典组合爆破,速度有点慢,且深度不够。所以这里我常用的几个接口可以试试:

# 百度云观测
http://ce.baidu.com/index/getRelatedSites?site_address=域名

# 爱站
https://baidurank.aizhan.com/baidu/域名/

# HackerTarget
https://api.hackertarget.com/hostsearch/?q=域名

# IP138
https://site.ip138.com/域名/domain.htm

# 千寻
https://www.dnsscan.cn/dns.html

# crt.sh SSL 证书反查
https://crt.sh/?q=%25.域名

毕竟是干web渗透的,web方面的信息收集是至关重要的,光收集到了这些片面的还不够,我们还需要对这些收集到的资产进行指纹识别。

0x02 Web指纹识别

Web指纹识别通常有2种,白盒识别:运用主机agent、公司代码库等,从源码级别执行的白盒指纹识别,这种方式的识别很全面。当然我们属于攻击方,一般只会用到黑盒识别:通过一些特征进行爬虫识别目标的指纹结果。

黑盒识别主要方式有以下几种:

  • 响应体中包含特定字符串,例如phpBB Group
  • 响应头中包含特定字符串,例如Set-Cookie: phpbb
  • 特殊url路径中包含特定字符串,例如/wp-admin
  • 存在特殊文件,例如wordpress/wp-includes/wlwmanifest.xml

这样的规则还有很多,所以在设计“利刃”的时候我考虑到了很多因素,最后我通过json的形式来定义扫描规则,以discuz为例,一条规则可以是这样的:

{
        "name": "Discuz!",
        "scope": "10",
        "type": "response_body",
        "position": "",
        "value": {
            "body": {
                "match": ["<meta\\s+name=['\"](generator|author)['\"]\\s+content=['\"]Discuz![^'\"]*['\"][^>]*/?>"],
                "nomatch": []
            },
            "headers": {},
            "url": {},
            "status_code": {}},
    }

其中type代表识别类型,有response_header(响应头信息),response_body(响应体信息),other_page(特定页面)以及url(特定url)。position,只有type为特定页面时,用于指定页面的具体url;value则是匹配正则,不同字段匹配不同位置然后返回数据,status_code可以指定某个响应码,与前面几种相结合,可以减少误报的数量。

0x03 主机指纹识别

主机指纹识别主要包括操作系统,端口和banner的信息。端口和baanner可以通过masscan+nmap进行获取,而操作系统我目前没有找到什么很好的办法,先不提。端口扫描主要获取端口的开放信息、服务以及端口对应的banner。但是这里要注意的是,如果目标IP很多(例如C段),那么请不要进行全端口扫描,比如有些人就会单纯的用nmap进行全端口扫描... 这里给个方案,可以用masscan对所有ip进行大致的扫描,然后针对masscan获取到的ip和开放端口使用nmap进行打tag。打tag的意思就是给资产打标签,例如10.10.10.10有个8080端口为http服务,则tag为8080/http

0x04 结尾

打造一把网络安全里的“利刃”,我上面写的仅仅是这个系列的开始,我这里所说的利刃,也该揭晓下是什么东西了。其实就是一个分布式的,集网络空间测绘+漏洞扫描为一体的web平台(可视化)。是的, 我想做一个集大成者