咸鱼的大学网络安全学习(三)
信息收集 知识与基础点详解
一、 网络
- 子网掩码(B段、C段)
• 核心概念: 子网掩码用于区分IP地址中的网络位和主机位。它与IP地址进行“与运算”,得出网络地址。
• 常见掩码与对应关系:
◦ C段 (/24): 子网掩码 255.255.255.0。一个C段有 256 - 2 = 254 个可用IP(去掉网络地址和广播地址)。例如 192.168.1.0/24 代表 192.168.1.1 到 192.168.1.254。
◦ B段 (/16): 子网掩码 255.255.0.0。一个B段包含 256 个C段,共 65534 个可用IP。例如 192.168.0.0/16 代表 192.168.0.0 到 192.168.255.255。
• 如何理解子网掩码?
◦ 形象比喻: IP地址是你的门牌号,子网掩码就是你的邮政编码。邮政编码决定了你在哪个大的区域(网络),而门牌号决定了你在这个区域的具体位置(主机)。
◦ 数学理解: 将IP和子网掩码都转换成二进制,对齐后做“与”运算。结果中为1的部分就是网络地址,为0的部分就是主机地址。
◦ 为什么重要: 在渗透测试中,知道目标在哪个C段或B段,可以帮你划定扫描范围,避免无效扫描,提高效率。
- 工具
• Masscan: 号称“最快的互联网端口扫描器”。它采用异步传输方式,可以在极短时间内扫描大量IP和端口。
◦ 用途: 快速发现全网范围内的开放端口,适合大规模资产探测。
◦ 特点: 速度极快,但功能单一,只负责端口存活检测。
• Zmap: 另一个著名的单端口高速扫描器。一次扫描通常只针对一个特定端口(如80、443、22)。
◦ 用途: 在公网上快速寻找特定服务的机器(如所有开放的SSH服务)。
◦ 特点: 模块化设计,输出格式灵活。
• zgrab2: 与Zmap配套的应用层抓取工具。Zmap告诉你端口是开的,zgrab2则去尝试完成应用层的握手(如TLS握手、HTTP请求),并返回服务端的响应信息。
◦ 用途: 获取开放端口上的服务版本、证书、HTTP响应头等详细信息。
• Nmap: 网络探测和安全审计的“瑞士军刀”。
◦ 核心功能: 端口扫描、服务/版本探测、操作系统识别、脚本引擎(NSE)。
◦ 常用扫描类型: -sS (半开SYN扫描)、-sT (TCP连接扫描)、-sU (UDP扫描)。
◦ 脚本引擎: 内置数百个脚本,可用于漏洞检测、暴力破解、服务枚举等。
- ASN(自治系统号)
• 什么是自治系统(AS)? 互联网是由无数个大型网络组成的。这些大型网络,如腾讯云、阿里云、谷歌、电信、联通,各自就是一个“自治系统”。它是一个拥有统一路由策略的网络集合。
• 什么是ASN? 每个自治系统都有一个全球唯一的编号,这就是ASN。它就像企业的“营业执照号”,用于在全球范围内标识一个网络实体。
• ASN与IP的关系: 一个ASN控制着一组特定的IP地址段(IP前缀)。当你知道了某个公司的ASN,就能知道它拥有的所有IP地址范围。
• ASN查询:
◦ 工具1: https://hackertarget.com/as-ip-lookup/
▪ 功能: 支持输入IP、ASN号或公司名称进行查询。免费版每天50次。
▪ 特点: 提供API接口,方便集成到脚本中;可导出为Excel。
◦ 工具2: https://dnschecker.org/asn-whois-lookup.php
▪ 功能: 经典的ASN WHOIS查询,显示ASN的注册信息、所属机构、IP前缀等。
▪ 特点: 界面清晰,信息详尽。
• 工具(高级):
◦ Amass: 强大的子域名和网络映射工具,集成了ASN查询功能,可以从ASN出发,递归发现关联的域名和IP。
◦ Zmap/Zgrab2: 可以用来对整个ASN的IP范围进行全端口扫描和服务识别。
◦ zcrypto: 专注于TLS/SSL证书分析的库和工具集,常与Zmap配合,用于分析ASN内所有HTTPS站点的证书情况。
- IP反查域名
• 概念: 通过一个已知的IP地址,查找该IP上绑定了哪些域名。
• 重要性: 一个服务器上可能托管着几十上百个网站。如果你只找到了其中一个域名,通过IP反查,可以发现其他同服务器的站点,这些站点可能是目标的分支、子公司,甚至是存在漏洞的“软柿子”。
• 工具: https://www.ipaddress.com/
◦ 功能: 输入IP,即可查询该IP上的所有域名(反向DNS解析)。
◦ 注意: 这类工具的数据来源多样,结果可能不完整或有延迟。
二、 域名
- 子域名(A记录/AAAA记录)
• A记录: 将域名指向一个IPv4地址。这是最基础的记录类型。
• AAAA记录: 将域名指向一个IPv6地址。
• 目的: 发现子域名(如 admin.target.com、dev.target.com、mail.target.com)可以极大地扩展攻击面。
- CNAME(别名记录)
• 概念: 将一个域名别名指向另一个域名。例如 cdn.target.com 的CNAME可能是 target.cdncloud.com。
• 价值: CNAME记录会暴露你的CDN提供商、云服务商或其他第三方服务。如果第三方服务存在漏洞,可能间接影响到你。
- MX记录(邮件交换记录)
• 概念: 指定接收该域名邮件的邮件服务器地址。
• 价值: 暴露了目标使用的邮件服务商(如腾讯企业邮、阿里云邮箱、Office 365等)。可以针对邮件系统进行钓鱼或暴力破解。
- TXT记录(文本记录)
• 常见用途:
◦ SPF记录: 声明哪些服务器有权发送该域名的邮件,防止伪造。
◦ DKIM记录: 数字签名,验证邮件是否被篡改。
◦ DMARC记录: 指导收件方如何处理未通过SPF/DKIM检查的邮件。
◦ 域名所有权验证: 第三方服务(如Google、微信开放平台)要求添加一段随机字符串的TXT记录来证明你对域名的所有权。
• 价值: SPF记录可能会泄露内部邮件服务器的IP。DKIM/DMARC配置不当可能导致邮件被伪造。
- 历史记录
• 概念: 域名在过去的所有DNS解析记录。包括曾经指向过的IP、子域名、MX记录等。
• 价值: 有些域名现在可能已经不用了,但其历史记录可能指向旧的、已废弃但仍有漏洞的服务器。或者,目标现在使用了CDN隐藏真实IP,但历史记录中可能保留了源站IP。
• 工具: https://securitytrails.com
◦ 功能: 强大的历史DNS数据查询平台。可以查看域名的所有历史A记录、NS记录、MX记录等,是溯源和发现隐藏资产的利器。
- 工具
• Whois: 查询域名的注册信息,包括注册人、注册邮箱、注册商、创建和过期时间。这是最基础的信息收集步骤。
• Amass: 集成了数十种数据源,可以进行深度子域名枚举。
• subdomain3: 另一个优秀的子域名发现工具,支持字典爆破和搜索引擎爬取。
• dnsmap: 经典的开源子域名爆破工具。
• ksubdomain: 一款高性能的子域名爆破工具,使用Go语言编写,速度非常快。
三、 公开信息
- 搜索引擎
• Google Hacking(Google Dork): 利用Google的高级搜索语法,在搜索结果中挖掘敏感信息。
◦ 常用语法:
▪ site:target.com filetype:pdf:查找目标网站的PDF文件。
▪ intitle:"index of" site:target.com:查找目标网站上的目录遍历漏洞。
▪ inurl:php?id= site:target.com:查找可能存在SQL注入的动态页面。
▪ "password" "username" site:target.com:查找明文密码文件。
▪ "powered by" target.com:查找目标网站所使用的CMS或建站程序。
- 网络空间搜索引擎
• FOFA:
◦ 特点: 国内最流行的网络空间搜索引擎,语法强大,资产覆盖面广。
◦ 典型用法: app="Apache-Tomcat" && country="CN" 查找中国境内所有的Tomcat服务器。
• Shodan:
◦ 特点: 国际知名的网络空间搜索引擎,对工业控制系统、物联网设备的收录非常全面。
◦ 典型用法: port:3389 os:"Windows Server 2019" 查找开放的远程桌面服务。
• Censys:
◦ 特点: 专注于TLS/SSL证书扫描,数据非常结构化,适合进行大规模的分析和研究。
◦ 典型用法: 查找使用了某家CA签发的证书,或包含特定组织信息的证书。
• ZoomEye:
◦ 特点: 由知道创宇出品,侧重于Web服务和组件指纹识别。
- 工商信息
• 目标: 通过国家企业信用信息公示系统、天眼查、企查查等平台,获取目标的完整组织架构。
• 关键信息:
◦ 子公司、分公司: 这些实体的安全防护水平可能低于母公司。
◦ 股东、高管: 他们个人名下的其他公司也可能成为攻击路径。
◦ 联系方式: 注册邮箱、电话等,可用于社工或账号注册。
◦ ICP备案信息: 在中国大陆运营的网站必须有ICP备案。通过备案号可以查到该主体下所有的已备案域名。
- 证书
• 概念: SSL/TLS证书是网站的身份凭证。通过证书透明度(Certificate Transparency, CT)日志,任何人都可以查询到某个域名或组织申请过的所有证书。
• 价值: 证书日志中包含了大量的子域名信息。即使某些子域名没有公开的DNS记录,只要它申请过证书,就会被记录下来。
• 工具: crt.sh 是最常用的证书查询网站。许多子域名发现工具(如Amass)都会自动查询 crt.sh。
- 邮箱
• 目标: 收集目标员工的邮箱地址。
• 用途: 制作钓鱼邮件、进行密码喷洒攻击、社工。
• 工具/方法: theHarvester、Hunter.io、Google搜索 @target.com email。
- 子公司、集团、合作商、供应商
• 思路: 安全防御最薄弱的环节往往是合作伙伴。攻击者常常会先攻破防护较差的供应商网络,然后以此为跳板,攻击最终目标。
• 方法: 利用工商信息、招聘信息、新闻报道、供应链关系图来梳理出目标的所有关联企业。
四、 HTTP
- 网站目录
• 目标: 发现网站中未公开的目录或文件,如后台登录入口、备份文件、配置文件、上传目录、PHPMyAdmin等。
• 工具:
◦ dirsearch: 目前最主流的目录扫描工具之一,速度快,支持多种HTTP方法、递归扫描和自定义字典。
◦ gobuster: Go语言编写的强力目录/文件爆破工具。
◦ ffuf: 灵活的模糊测试工具,不仅可以扫目录,还可以用于参数爆破、子域名爆破等。
- 工具
• Maltego: 图形化的信息收集和分析工具。它可以将你从各个渠道收集到的信息(域名、IP、邮箱、社交账号等)绘制成一张关系图谱,直观地展示它们之间的联系。
• JSFinder: 专门用于从JavaScript文件中提取URL、子域名和IP的工具。很多前端路由和API接口信息都藏在JS文件里。
• OneForAll: 一款功能强大的子域名收集工具,集成了多种收集模块(字典爆破、证书查询、搜索引擎、DNS数据集等)。
• subdomain-scanner: 泛指一类用于扫描子域名的脚本或工具。
五、 指纹
• 定义: 通过分析目标返回的HTTP响应头、HTML源码特征、特定文件的MD5值、favicon图标等信息,来判断目标网站所使用的Web服务器、CMS(内容管理系统)、编程语言、前端框架、第三方组件及其版本号。
• 重要性: 知道目标用了什么软件和版本,就可以直接去搜索该版本是否存在已知漏洞(CVE),从而实现精准打击。
• 常见指纹:
◦ Web服务器: Apache、Nginx、IIS、Tomcat。
◦ CMS: WordPress、Joomla、DedeCMS、Discuz!。
◦ 编程语言: PHP、ASP.NET、Java、Python。
◦ 前端框架: Vue.js、React、jQuery。
• 工具:
◦ WhatWeb: 命令行指纹识别工具,功能强大,规则库丰富。
◦ Wappalyzer: 浏览器插件,访问网站时自动识别技术栈,非常方便。
◦ TideFinger: 潮汐指纹识别工具,国内社区维护,更新较快。

浙公网安备 33010602011771号