全面信息收集指南:渗透测试中的关键步骤与技巧

文章目录

    • 一、什么是信息收集
    • 二、信息收集的分类
        • 1. 服务器相关信息
        • 2. 网站指纹识别
        • 3. Whois及目标背景信息
        • 4. 子域名及关联资产
        • 5. Google Hacking(搜索引擎利用)
        • 6. 网站目录和敏感文件
        • 7. 传输协议与漏洞利用
        • 8. 第三方依赖与拓展信息
    • 三、信息收集的方式
      • 1.whois在线查询
        • 使用技巧
      • 2.在线网站备案查询
      • 3.收集子域名
        • 3.1 网络空间绘测
        • 绘测的目的和意义
        • 3.2 子域名爆破工具
      • 四、端口
      • 五、查找真实IP
        • 1. 多地Ping确认是否使用CDN
        • 2. 查询历史DNS解析记录
        • 3. 使用其他技巧
      • 六、旁站和C段
        • 1. 旁站
        • 2. C段
      • 七、敏感目录扫描
        • 1. 目录扫描工具
        • 2. 网站敏感文件

一、什么是信息收集

信息收集,又称资产收集,是渗透测试过程中至关重要的前期工作。通过系统化地收集目标的关键信息,为后续的测试和攻击奠定基础。只有全面掌握目标的信息,才能更高效地找到潜在的突破点。

信息收集的核心内容包括:

  • 域名及子域名信息:识别目标站点的主域名及其关联子域名。
  • 目标站点基本信息:获取站点的架构、技术栈及功能模块。
  • 目标真实IP地址:绕过CDN等防护措施,直接定位服务器地址。
  • 敏感目录及文件:查找暴露的敏感数据或未授权访问的资源。
  • 开放端口及服务信息:枚举端口对应的服务及版本信息,识别潜在漏洞。
  • 中间件和技术组件:确认使用的服务器、中间件及框架,定位易受攻击的点。

通过多种渠道和技术手段(如搜索引擎、工具扫描、人工分析等)尽可能详细地了解目标,可以显著提高渗透测试的成功率。正所谓:“没有无法攻克的目标,只有不足的准备与信息收集。


二、信息收集的分类

1. 服务器相关信息
  • 真实IP地址:绕过CDN找到目标服务器的实际IP。
  • 操作系统类型和版本:识别目标服务器的操作系统(Windows/Linux等)。
  • 开放端口和服务:通过端口扫描确定运行的服务及版本信息。
  • 防火墙(WAF)检测:识别目标是否部署了WAF及其类型,规避或绕过防护。
2. 网站指纹识别
  • CMS信息:确定目标网站使用的内容管理系统(如WordPress、Joomla等)。
  • CDN检测:判断是否使用了内容分发网络(如Cloudflare),影响真实IP的获取。
  • SSL证书信息:分析证书中的域名和时间戳等,可能暴露附加信息。
  • DNS记录:解析A记录、MX记录等,进一步定位目标基础设施。
3. Whois及目标背景信息
  • Whois查询:提取域名注册信息(如注册人姓名、邮箱、电话等)。
  • 备案信息:尤其是针对中国境内网站,分析备案信息获取更多线索。
  • 邮箱反查:将注册邮箱丢入社工库,挖掘潜在关联账号和历史数据。
  • 社工准备:结合公开信息策划针对性的社会工程学攻击。
4. 子域名及关联资产
  • 子域名收集:全面枚举目标的子域名,扩展攻击面。
  • 旁站信息:识别与目标服务器共享IP的其他站点。
  • C段资产:探索同一IP段的关联主机或服务器。
5. Google Hacking(搜索引擎利用)
  • 目标化搜索:利用高级搜索语法精准挖掘目标暴露的信息。
  • 公开文件:发现目标暴露的Word、PDF、电子表格等敏感文件。
  • 中间件版本信息:定位服务器中间件的版本,寻找对应漏洞。
  • 弱口令扫描:针对暴露的服务(如FTP、SSH)进行弱密码测试。
6. 网站目录和敏感文件
  • 目录结构扫描:探测网站目录布局,识别潜在入口。
  • 后台和管理端口:寻找登录后台或管理界面。
  • 敏感文件泄露:检测备份文件、测试文件、配置文件等是否可访问。
  • Banner抓取:通过网站返回的信息标头分析站点版本及部署情况。
7. 传输协议与漏洞利用
  • 传输协议分析:检查是否使用明文协议(如HTTP/FTP)导致的数据泄露风险。
  • 通用漏洞排查:如SQL注入、XSS、CSRF等常见漏洞的存在。
  • EXP和POC:结合已知漏洞利用工具进行验证测试。
  • 源码泄露:通过GitHub、公开代码库等查找目标相关的源码。
8. 第三方依赖与拓展信息
  • 第三方组件信息:识别使用的前端、后端库及其版本(如jQuery、PHP)。
  • 社交媒体关联:分析社交平台上的公开信息,挖掘更多目标内容。
  • 开源情报(OSINT):通过公共渠道获取目标历史变化、舆情及其他可利用信息。

三、信息收集的方式

1.whois在线查询

Whois查询是获取目标域名注册信息的重要方式。通过Whois查询,可以了解域名的注册人、注册机构、邮箱、DNS服务器等关键信息。
因为有些网站信息查得到,有些网站信息查不到,所以推荐以下信息比较全的查询网站,直接输入目标站点即可查询到相关信息。

站长之家域名WHOIS信息查询地址
http://whois.chinaz.com/

爱站网域名WHOIS信息查询地址
https://whois.aizhan.com/

腾讯云域名WHOIS信息查询地址
https://whois.cloud.tencent.com/

美橙互联域名WHOIS信息查询地址
https://whois.cndns.com/

爱名网域名WHOIS信息查询地址
https://www.22.cn/domain/

易名网域名WHOIS信息查询地址
https://whois.ename.net/

中国万网域名WHOIS信息查询地址
https://whois.aliyun.com/

西部数码域名WHOIS信息查询地址
https://whois.west.cn/

新网域名WHOIS信息查询地址
http://whois.xinnet.com/domain/whois/index.jsp

纳网域名WHOIS信息查询地址
http://whois.nawang.cn/

中资源域名WHOIS信息查询地址
https://www.zzy.cn/domain/whois.html

三五互联域名WHOIS信息查询地址
https://cp.35.com/chinese/whois.php

新网互联域名WHOIS信息查询地址
http://www.dns.com.cn/show/domain/whois/index.do

国外WHOIS信息查询地址
https://who.is/
使用技巧
  1. 多平台比对:不同平台数据可能有所差异,通过多平台交叉验证提高准确性。
  2. 隐私保护:部分域名信息可能被隐私保护隐藏,可尝试联系注册商或利用历史记录查询服务。
  3. 溯源分析:通过邮箱和注册人信息进行社工库反查,结合OSINT进一步挖掘关联信息。
  4. 历史记录:利用历史Whois查询服务(如SecurityTrails或Wayback Machine)获取注册信息的变化。

2.在线网站备案查询

网站备案信息是根据国家法律法规规定,由网站所有者向国家有关部门申请的备案,如果需要查询企业备案信息(单位名称、备案编号、网站负责人、电子邮箱、联系电话、法人等),推荐以下网站查询

1.天眼查 
https://www.tianyancha.com/

2.ICP备案查询网
http://www.beianbeian.com/

3.爱站备案查询
https://icp.aizhan.com/

4.域名助手备案信息查询 
http://cha.fute.com/index

5.工信部ICP备案管理系统
https://beian.miit.gov.cn/

6.聚名网备案查询
https://icp.juming.com/

7.西部数码备案查询
https://www.west.cn/web/miit.htm

3.收集子域名

收集子域名可以扩大测试范围,通过收集并分析子域名,能够发现隐藏的服务、系统漏洞或管理接口,从而找到潜在的攻击入口。同一主域名下的二级域名(子域名)往往是攻击的突破口

子域名中的常见的资产类型一般包括办公系统,邮箱系统,论坛,商场,其他管理系统,网站管理后台也有可能出现子域名中。

3.1 网络空间绘测

查询目标域名信息的方式有:

1、FOFA
使用FOFA可以通过关键字查找目标网站或公司相关的信息。
查询示例:title="公司名称"

  • 用途:快速识别与目标公司相关的开放资产,例如服务器、服务或网站。
  • 网址:FOFA

2.百度
使用百度的intitle查询,找出包含特定公司名称的网站页面。
查询示例:intitle="公司名称"

  • 用途:可用于发现公开的公司信息、宣传页面、漏洞报告等,尤其适合中文网站。
  • 网址:百度

3.Google
通过Google的intitle操作符查找包含公司名称的网页标题。
查询示例:intitle="公司名称"

  • 用途:广泛用于信息收集,尤其是英文网站和服务,能找到相关的公开信息。
  • 网址:Google

4.站长之家
通过站长之家工具可以直接搜索目标的公司名称或域名,获取相关的备案信息、网站IP、域名归属等。
查询示例:直接搜索“公司名称”或“网站域名”。

  • 用途:查找域名的基本信息,进行备案信息、站点历史查询等。
  • 网址:站长之家工具

5.钟馗之眼(ZoomEye)
ZoomEye是一个强大的搜索引擎,专注于发现网络设备、服务、域名、IP等信息,支持特定域名的查询。
查询示例:site=域名

  • 用途:可以帮助渗透测试人员快速扫描网络空间,找出相关设备、服务和应用程序。
  • 网址:ZoomEye

6.Shodan
Shodan是一个搜索引擎,用于扫描并查找互联网连接的设备,如路由器、服务器、摄像头等。
查询示例:hostname:"公司名称"

  • 用途:查找目标公司或域名相关的网络设备,包括可能存在的安全漏洞。
  • 网址:Shodan

7.Censys
Censys提供对整个互联网进行实时扫描,用户可以查询任何公开暴露的资产。
查询示例:"公司名称" site:example.com

  • 用途:识别公司资产、证书、主机等信息,帮助构建网络资产图。
  • 网址:Censys

8.PassiveTotal
这是一个被动信息收集平台,可以获取目标的DNS记录、子域名、IP地址等。
查询示例:输入公司名称或目标域名进行详细信息收集。

  • 用途:通过被动查询收集与目标相关的网络资产信息。
  • 网址:PassiveTotal

9.Netcraft
Netcraft提供网络空间分析服务,查询域名的历史信息、Web服务器使用情况等。
查询示例:输入目标网站或域名。

  • 用途:查看网站的历史背景,揭示其技术栈,帮助测试人员找出潜在漏洞。
  • 网址:Netcraft

绘测的目的和意义
  • 网络拓扑图:通过网络空间绘测,可以绘制出目标的网络资产图,帮助识别所有公开服务、设备和系统。这有助于评估网络的整体安全性,找到潜在的攻击入口。
  • 识别潜在漏洞:通过分析网络空间的信息,可以发现公司使用的特定技术栈、服务版本等,暴露出已知漏洞的攻击点。
  • 社工和钓鱼攻击:通过绘测到的组织信息,如子域名、公开的邮箱地址等,可以为社工攻击提供有效线索。
  • 持续监控:定期进行网络空间绘测,帮助企业及时发现新暴露的资产或服务,防止潜在的风险。

通过有效的网络空间绘测,渗透测试人员可以深入了解目标的网络环境,从而更有针对性地进行攻击模拟,提高测试的覆盖范围和精准性。


3.2 子域名爆破工具

1.Layer子域名挖掘机

2.SubDomainBrute

3.改装版灯塔

4.subfinder


四、端口

1. 端口扫描

1.1 msscan端口扫描

msscan 是一个非常快速且高效的端口扫描工具,通常用于扫描目标主机的开放端口。

msscan -p 63353 ip --rate 100
  • -p:指定扫描的端口(也可以使用-p-表示扫描所有端口)。
  • --rate:设置扫描的速率(单位为每秒包数),可以通过调整此参数来控制扫描速度,以避免对目标造成过大负载。

1.2 御剑端口扫描

御剑(Yujian)是另一款功能强大的端口扫描工具,特别适合渗透测试人员进行快速扫描。其特点是图形化界面和强大的定制化扫描功能。

  • 常用功能:支持TCP、UDP端口扫描,服务版本检测,Web应用安全检测等。
  • 优点:界面友好,易于上手,适合渗透测试人员快速扫描和检测。

1.3 nmap端口扫描

nmap 是最常用的网络扫描工具之一,支持全面的端口扫描、服务版本探测、操作系统识别等多种功能。

nmap -sV 192.168.0.2
-sV:版本探测,显示开放端口的服务版本。

nmap -sT 192.168.0.2
-sT:进行TCP连接扫描,适用于不允许发送SYN包的环境。

nmap -sV -Pn -A -sC 192.168.0.2
-Pn:禁用ping扫描(假设目标主机处于在线状态)。
-A:启用操作系统检测、版本探测、脚本扫描等。
-sC:启用默认脚本扫描。

nmap -sU -sT -p- 192.168.0.2
-sU:UDP扫描。
-p-:扫描所有65535个端口。

nmap -oA filename 192.168.0.2
-oA:保存扫描结果为三种格式(XML、Nmap格式、Grepable格式)

nmap -iL ip.txt
扫描多个IP或IP段: 将IP地址保存到txt文件中,并使用-iL选项扫描多个IP或IP段

Nmap为端口探测最常用的方法,操作方便,输出结果非常直观。

1.4 在线端口检测

http://coolaf.com/tool/port

2. 常见端口的攻击方法

端口号 服务 攻击方法
21/22/69 ftp/tftp文件传输协议 扫描探测;暴力破解
22 ssh远程连接 暴力破解OpenSSH;28个弱口令
23 telnet远程连接 暴力破解
25 smtp邮件服务 邮件伪造
53 DNS域名系统 DNS域名解析欺骗;利用DNS隐蔽通道
67/68 dhcp 弱口令扫描
110 pop3 弱口令扫描
139 samba 未授权访问,远程执行
143 imap 暴力破解
161 snmp 暴力破解
389 ldap 未授权访问
512/513/514 linux rlogin 直接使用rlogin进行登录
873 rsync 未授权访问
1080 socket 进行反向连接
1352 lotus 弱口令信息泄漏;源代码曝光
1433 mssql 使用系统用户权限注入攻击
1521 oracle TNS注入攻击
2049 nfs 配置错误
2181 zookeeper 未授权访问
3306 mysql 暴力破解服务;注入
3389 rdp 暴力破解;shift反弹
4848 glassfish 控制脚本;命令执行
5000 sybase/DB2 弱口令扫描
5432 postgresql 缓冲区溢出;弱口令
5632 pcanywhere 远程执行控制
5900 vnc 弱口令;执行远程控制
6379 redis 未授权访问;弱口令
7001 weblogic Java反序列化漏洞
8069 zabbix 远程命令执行
8080-8090 web 弱口令;漏洞探测
9090 websphere Java反序列化漏洞
9200/9300 elasticsearch 远程执行攻击

五、查找真实IP

如果目标网站使用了CDN,使用了cdn真实的ip会被隐藏,如果要查找真实的服务器就必须获取真实的ip,根据这个ip继续查询旁站。

很多时候,主站虽然是用了CDN,但子域名可能没有使用CDN,如果主站和子域名在一个ip段中,那么找到子域名的真实ip也是一种途径。

1. 多地Ping确认是否使用CDN

CDN(内容分发网络)通常会通过多个地理位置的节点来加速网站的加载速度。因此,使用多地Ping测试可以帮助确定一个网站是否使用了CDN。通过比较不同地理位置的Ping结果,可以判断是否有CDN的迹象。

以下是一些常用的Ping工具网站:

  • 站长之家Ping工具
  • 爱站网Ping工具
2. 查询历史DNS解析记录

很多时候,网站历史的DNS解析记录可以透露真实的IP信息。特别是在CDN启用之前的记录中,可能会暴露出未被隐藏的真实IP。这个方法有时会帮助你找到目标网站的真实服务器IP。

2.1 DNSDB

DNSDB是一个DNS查询历史数据库,提供了从过去的DNS解析记录中获得真实IP的可能性。可以通过该平台查询一个域名的历史解析记录。

  • DNSDB

2.2 微步在线

微步在线提供的威胁情报平台,包括了丰富的DNS解析记录,可以用于查询目标域名的历史信息。

  • 微步在线

2.3 Ipip.net

Ipip.net是一个提供IP地址、CDN信息以及地理位置查询的工具,它支持通过分析DNS记录,帮助识别是否使用了CDN以及真实IP。

  • Ipip.net CDN查询工具

2.4 ViewDNS

ViewDNS是一个免费的在线工具,可以查询域名的DNS历史记录,包括IP地址、域名解析信息等。

  • ViewDNS
3. 使用其他技巧

除了以上工具外,你还可以通过以下技巧来帮助确认真实IP:

  • 子域名扫描:有时主站点使用了CDN,但其子域名没有启用CDN保护。通过扫描子域名,可以找到其未使用CDN的IP地址。
  • 检查反向DNS查询:通过反向DNS查询,可以查看一个IP地址是否属于CDN服务商,并进一步帮助确认其是否为真实IP。
  • 利用web应用漏洞:通过web应用的错误响应或漏洞,可能直接暴露真实IP。

六、旁站和C段

1. 旁站

旁站是指与目标网站位于同一服务器上的其他站点,但这些站点使用不同的域名。通过收集已有的IP信息,可以找到目标网站所使用的服务器,并进一步探测该服务器上可能存在的其他业务功能站点,这些站点往往可能包含敏感信息或未被保护的资源,成为渗透测试的重要突破口。

在收集到目标网站的IP后,建议先扫描旁站,找出可能存在的其他站点。此时,可以使用以下方法来帮助查找旁站:

1.1 站长之家

站长之家提供了“同IP网站查询”工具,通过输入目标IP,能够列出同一IP下的其他站点,帮助发现旁站。

  • 站长之家同IP网站查询
  • 查旁站工具

1.2 Google Hacking

Google Hacking是一种利用Google搜索引擎进行高级搜索的方法,通过特定的查询语句可以帮助发现旁站信息。例如,可以通过以下FOFA查询指令来搜索同一IP段内的站点:

  • FOFA查询:ip="10.0.0.0/24"

通过Google搜索特定的指令也可以帮助你进一步寻找旁站。例如,利用特定的关键字来搜索与目标网站相似的站点。

1.3 其他搜索引擎

除了Google外,使用其他搜索引擎也可以帮助发现旁站信息,以下是一些常见的工具:

  • FOFA:FOFA是一个强大的搜索引擎,可以通过查询IP段或其他信息来发现旁站。
  • Shodan:Shodan是一个互联网设备搜索引擎,可以查询到在同一服务器上托管的其他站点。
2. C段

C段扫描是指扫描目标网络段(即C类网段)的IP地址范围。通过扫描C段,可以识别出目标网络段内的其他潜在IP地址,并进一步确认是否属于目标域名或站点。C段扫描的重点是尽可能多地扫描该网段中的每个IP地址,以发现隐藏的站点或服务。

2.1 使用Nmap进行C段扫描

Nmap是网络安全领域中非常常用的扫描工具,可以通过指定IP段(例如C段网段)来扫描目标范围,检测开放端口及其他信息。例如:

nmap -p 80,443,8000,8080 -Pn 192.168.0.0/24

这个命令的作用是扫描C段192.168.0.0/24中的所有IP地址的端口80(HTTP)、443(HTTPS)、8000和8080。你可以根据需要指定其他端口,或者使用-p-扫描所有端口。

2.2 使用Msscan进行C段扫描

Msscan是另一个常用的扫描工具,它适合大范围的IP扫描。扫描命令通常是这样的:

msscan -p 80,443,8000,8080 ip --rate 1000

你可以根据目标的IP段调整扫描参数,确保扫描速度和精度。

2.3 注意事项

  • 在进行C段扫描时,务必确认该IP段是否归属于目标网站。因为同一个C段中的多个IP地址不一定都属于同一个目标,可能存在其他不同的业务或服务。
  • 探测时需要特别小心,避免过度扫描引起目标站点的警觉或封锁。

通过C段扫描,你可以进一步确定目标网络的边界,并且识别出更多潜在的测试对象。对于多个IP地址和站点的测试,可以有效地扩展渗透测试的范围。


七、敏感目录扫描

敏感目录扫描是渗透测试中的一项重要步骤,它通过字典爆破的方式检测网站是否存在敏感或未授权访问的目录和文件。进行敏感目录扫描时,务必获得目标站点的授权,因为未经授权的扫描行为可能会导致法律问题。敏感目录的存在可能导致网站信息泄露、系统漏洞暴露等安全风险,因此对其进行扫描可以帮助发现潜在的安全隐患。

1. 目录扫描工具

敏感目录扫描工具主要是通过字典进行路径爆破,常用的工具包括:

1.1 御剑

御剑是一款强大的Web目录扫描工具,支持通过字典对网站进行目录扫描,帮助识别潜在的敏感目录。

  • 工具地址:御剑目录扫描工具

1.2 7kbstorm

7kbstorm是一个开源的Web路径爆破工具,使用字典进行扫描,可以快速识别网站上的敏感目录和文件。

  • 工具地址:7kbstorm GitHub项目
2. 网站敏感文件

在进行敏感目录扫描时,需要关注一系列可能暴露重要信息的文件和目录。以下是常见的敏感文件和目录:

  1. robots.txt:用于告知搜索引擎哪些路径不应该被索引,可能包含一些敏感路径的信息。
  2. crossdomain.xml:用于Adobe Flash的安全策略文件,可能包含一些潜在的敏感信息。
  3. sitemap.xml:网站地图文件,通常列出了网站所有重要页面,有时也可能暴露一些隐藏路径。
  4. 后台目录:如/admin/adminer/panel等,可能是管理后台的入口,若未进行保护容易被攻击者利用。
  5. 网站安装包:如/install/setup等目录,安装文件可能存在漏洞。
  6. 网站上传目录:如/upload,攻击者可能通过上传恶意文件来攻破站点。
  7. mysql管理页面:如/phpmyadmin,若该页面未加密保护,攻击者可直接控制数据库。
  8. phpinfo:如/phpinfo.php,该页面泄露了关于服务器环境的详细信息,攻击者可利用这些信息进行进一步攻击。
  9. 网站文本编辑器:如/editor等,可能存在未经授权的访问路径。
  10. 测试文件:如/test.php/test.html,常用于开发过程中,若未清除可能暴露敏感信息。
  11. 网站备份文件:如.rar.zip.7z.tar.gz.bak等,可能包含数据库、配置文件或其他敏感数据。
  12. DS_Store 文件:Mac OS系统生成的文件,可能包含目录结构和其他信息。
  13. vim编辑器备份文件:如.swp,包含文件的临时备份信息,可能泄露敏感数据。
  14. WEB-INF/web.xml文件:Java Web应用的配置文件,可能泄露敏感的系统配置或数据库信息。
  15. .git:如果网站项目使用Git进行版本控制,.git目录可能会泄露完整的代码库。
  16. .svn:如果使用Subversion进行版本控制,.svn目录可能包含未公开的源代码或配置文件。

你可能感兴趣的:(信息收集,安全,web安全,渗透测试,漏洞挖掘)