当前位置: 首页 > news >正文

渗透测试信息收集详解

我们来详细解析一下渗透测试中信息收集(Information Gathering)的完整内容、步骤及工具方法。信息收集是整个渗透测试的基石,其深度和广度直接决定了后续测试的成功率,因此有“渗透测试成功与否,90%取决于信息收集”的说法。


一、信息收集的核心目标

  1. 绘制攻击面:尽可能全面地发现与目标相关的所有资产(域名、IP、子域名、端口、服务、人员等)。

  2. 缩小攻击范围:从海量信息中识别出关键、脆弱、易受攻击的点,为后续深度测试提供方向。

  3. 建立目标画像:了解目标的技术栈、组织结构、安全态势,甚至员工习惯,以便发起更具针对性的攻击(如钓鱼攻击)。


二、信息收集的分类与步骤

信息收集通常分为两大类:被动信息收集主动信息收集。标准的流程是先进行被动收集,再进行主动收集,以避免过早触发目标的入侵检测系统(IDS/IPS)。

步骤一:被动信息收集(Passive Reconnaissance)
  • 定义:在不与目标系统直接交互的情况下,通过第三方渠道获取信息。目标无法感知到你的探测行为,因此非常隐蔽。

  • 核心原则:所有信息都来自公开渠道或第三方数据库,不向目标发送任何数据包。

步骤二:主动信息收集(Active Reconnaissance)
  • 定义:直接与目标资产进行交互,以获取更详细、更准确的信息。这种行为会被目标的监控设备(如防火墙、IDS)日志记录,存在被发现的风险。

  • 核心原则:在获得授权的前提下进行,并且通常是在被动信息收集之后,用于验证和深化已知信息。


三、信息收集的详细内容与方法

下面我们按照从外围到核心的顺序,详解信息收集的具体内容和所用工具方法。

1. 初始信息收集(Initial Discovery)
  • 内容:明确测试范围。如果目标是公司,首先要确定其官方域名、子公司、收购公司等。

  • 方法

    • 公司官网:了解业务、产品、新闻(如使用了新的CMS系统)。

    • 搜索引擎(Google Hacking):使用Google高级搜索语法(如 site:target.com filetype:pdfinurl:adminintitle:"index of /")查找敏感文件、目录、错误信息等。

    • 社交媒体(LinkedIn, GitHub):在LinkedIn上寻找员工技术栈信息;在GitHub上搜索员工误上传的代码、配置文件、API密钥等敏感信息。

    • 第三方商情平台(如天眼查、企查查):了解组织架构、子公司、投资关系,从而扩大目标范围。

2. 域名系统(DNS)信息收集
  • 内容:获取所有关联的域名和子域名,以及对应的IP地址。

  • 方法与工具

    • WHOIS查询:获取域名注册信息(注册人、邮箱、电话、DNS服务器)。

      • 工具whois 命令、在线WHOIS网站(如 whois.domaintools.com)。

    • 子域名枚举(Subdomain Enumeration):这是最关键的一步,旨在发现主域名下的所有子域名(如 dev.target.comapi.target.com)。

      • 工具

        • 被动枚举Sublist3rAmassSubfinder(通过搜索引擎、证书透明度日志、DNS聚合商等第三方数据源获取)。

        • 字典爆破gobusterffufdnsrecon(使用强大的字典进行暴力猜解)。

        • 证书透明度(CT)日志crt.sh 网站是宝藏,可以查询到为某个域名签发的所有SSL证书,从而发现子域名。

    • DNS记录查询:获取A, AAAA, MX(邮件服务器), TXT, SPF, DMARC, CNAME等记录。

      • 工具dignslookupdnsrecon

      • 在线工具:DNSDumpster。

3. 网络拓扑与IP发现
  • 内容:确定目标的IP地址段、网络架构(CDN?云服务器?)、真实的服务器IP(绕过CDN)。

  • 方法与工具

    • 判断CDN:通过多地Ping(如 www.boce.com)查看IP是否一致。

    • 查找真实IP

      • 查询历史DNS记录(如 SecurityTrails, ViewDNS)。

      • 查询子域名的IP(很多子域名可能直接解析到真实IP)。

      • 通过邮件服务器源头(发送一封邮件,查看邮件头中的服务器IP)。

      • 利用SSL证书信息(censys.ioshodan.io)。

    • IP段查询:通过 arin.net(北美)或 apnic.net(亚太)等RIR查询目标拥有的ASN(自治系统号)和IP地址段。

4. 端口扫描(Port Scanning)
  • 内容:发现目标IP开放了哪些端口,从而判断运行了哪些服务。

  • 方法与工具

    • 全连接扫描nmap -sT <target_ip>(准确但易被记录)。

    • 半开扫描(SYN扫描)nmap -sS <target_ip>(默认方式,更快更隐蔽)。

    • 服务与版本探测nmap -sV <target_ip>(尝试识别端口上运行服务的具体版本)。

    • 操作系统探测nmap -O <target_ip>(通过指纹识别目标OS)。

    • 详细脚本扫描nmap -A <target_ip>(综合扫描,包含版本、OS、脚本等)或使用NSE脚本 nmap --script=<script-name>

    • Masscan:最快的端口扫描器,适用于大范围IP段扫描。

5. 服务指纹识别与漏洞枚举
  • 内容:准确识别开放端口上运行的服务、应用、版本号,并查找已知的漏洞或错误配置。

  • 方法与工具

    • Banner Grabbing:使用 netcat 或 telnet 直接连接端口获取服务横幅信息。

      • nc -nv <target_ip> 80,然后输入 HEAD / HTTP/1.0

    • 漏洞扫描器NessusOpenVAS(自动化程度高,但噪音大,需谨慎使用)。

    • 专项工具

      • Web服务器WhatWebWappalyzer(浏览器插件,识别Web技术栈)。

      • SMB共享enum4linuxsmbclient

      • SNMP服务snmpwalkonesixtyone

6. Web应用信息收集(如果存在Web服务)
  • 内容:这是针对Web渗透测试的重点,收集一切与Web相关的信息。

  • 方法与工具

    • 目录与文件发现:使用字典爆破隐藏的目录和文件(如后台、备份文件、配置文件)。

      • 工具gobusterdirbdirsearchffuf

      • 字典SecLists 项目提供了优秀的字典集合。

    • 爬取网站OWASP ZAPBurp Suite 的蜘蛛功能。

    • 分析技术栈Wappalyzer 识别前端框架、Web服务器、编程语言等。

    • 查找参数:从JavaScript文件中挖掘API接口、隐藏参数。

    • 检查安全头:如 X-Frame-OptionsCSPHSTS 等是否存在缺失或错误配置。

    • 虚拟主机扫描gobuster vhost

7. 其他信息收集
  • 人员信息:为社工钓鱼做准备,收集邮箱(theHarvester)、姓名、职位、社交动态。

  • 公开漏洞情报:在 Exploit-DB, GitHub, NVD 等平台搜索已公开的目标相关组件的漏洞和EXP。


四、工具总结清单

类别工具名称主要用途
子域名枚举Sublist3r, Amass, Subfinder, Assetfinder被动子域名发现
Gobuster, ffuf, dnsrecon暴力破解子域名
crt.sh证书透明度日志查询
DNS查询dig, nslookup, dnsrecon各类DNS记录查询
端口扫描Nmap (王者)综合端口扫描、版本探测、OS识别
Masscan高速端口扫描
Netcat (nc)网络瑞士军刀,手动Banner抓取
Web应用扫描Burp Suite (Professional)代理、爬虫、漏洞扫描(全能)
OWASP ZAPBurp的免费替代品,功能强大
Gobuster, dirsearch, ffuf目录/文件/子域名/VHost爆破
WhatWeb, WappalyzerWeb应用指纹识别
浏览器开发者工具手动分析请求、响应、JS文件
综合情报平台Shodan搜索引擎 for 物联网设备
Censys类似Shodan
FOFA国内的网络空间测绘引擎
ZoomEye知道创宇的网络空间测绘引擎
其他theHarvester搜索邮箱、主机名、子域名
Metasploit (辅助模块)集成了多种信息收集功能
SearchSploit搜索Exploit-DB中的漏洞利用代码
SecLists伟大的字典集合,不是工具但至关重要

五、最佳实践与注意事项

  1. 授权第一:始终在获得书面授权的前提下进行测试,明确测试范围(哪些IP/域名可以测,哪些绝对不能碰)。

  2. 先被动,后主动:最大程度减少对目标的影响和被发现的风险。

  3. 记录一切:使用工具(如 KeepNoteDradis)或笔记详细记录每一步的发现,这些信息在后续阶段和报告编写中至关重要。

  4. 自动化与手动结合:自动化工具提高效率,但手动分析才能发现逻辑更深层的漏洞和关键信息。不要完全依赖工具。

  5. 持续进行:信息收集并非一次性阶段,在整个渗透测试过程中,根据新发现可能需要不断回头进行更深入的信息收集。

信息收集是一个需要耐心、创造力和细致心态的过程。掌握得越熟练,你就越能像攻击者一样思考,从而更好地帮助客户防御真正的威胁。


文章转载自:

http://dYAMGlJN.dkcpt.cn
http://Taf826Jg.dkcpt.cn
http://Pd4s9lQb.dkcpt.cn
http://j9tyoO8h.dkcpt.cn
http://p8pDoXBs.dkcpt.cn
http://445GjLxA.dkcpt.cn
http://r11gPU6L.dkcpt.cn
http://ck4LsBud.dkcpt.cn
http://suW2tekj.dkcpt.cn
http://kzDihKjp.dkcpt.cn
http://c72ci438.dkcpt.cn
http://1AqEcAJi.dkcpt.cn
http://cqGjUUAp.dkcpt.cn
http://bYuu9M9b.dkcpt.cn
http://f3gLFXng.dkcpt.cn
http://3y4uPETP.dkcpt.cn
http://OirDDl0D.dkcpt.cn
http://tq8VnFua.dkcpt.cn
http://fwI2OghS.dkcpt.cn
http://o4RXJKtJ.dkcpt.cn
http://v3dRdHnM.dkcpt.cn
http://FZvrUFrU.dkcpt.cn
http://Z0QZ14lh.dkcpt.cn
http://KPprouxq.dkcpt.cn
http://f1XQbrXL.dkcpt.cn
http://78xxGd1o.dkcpt.cn
http://4284kvoc.dkcpt.cn
http://jJhE2WPB.dkcpt.cn
http://tzW8PoeL.dkcpt.cn
http://uOJgkash.dkcpt.cn
http://www.dtcms.com/a/381503.html

相关文章:

  • 【连载3】C# MVC 异常日志进阶:结构化日志与性能优化技巧
  • 冯诺依曼体系:现代计算机的基石与未来展望
  • 关于在阿里云DMS误操作后如何恢复数据的记录
  • 贪心算法应用:神经网络剪枝详解
  • 灵活学习PyTorch算法:从动态计算图到领域最佳实践
  • [code-review] 部署配置 | Docker+PM2 | AWS Lambda | Vercel+边缘函数
  • 递归,搜索与回溯算法
  • 31.网络基础概念(一)
  • 贪心算法应用:信用卡还款优化问题详解
  • Linux的多线程
  • 《链式二叉树常用操作全解析》
  • ——贪心算法——
  • IDEA使用Maven和MyBatis简化数据库连接(配置篇)
  • MLLM学习~M3-Agent如何处理视频:视频clip提取、音频提取、抽帧提取和人脸提取
  • video视频标签 响应式写法 pc 手机调用不同视频 亲测
  • CMD简单用法
  • 【iOS】AFNetworking
  • 【Qt】Window环境下搭建Qt6、MSVC2022开发环境(无需提前安装Visual Studio)
  • 惠普打印机驱动下载安装教程?【图文详解】惠普打印机驱动下载官网?电脑连接惠普打印机?
  • 【PHP7内核剖析】-1.1 PHP概述
  • ajax
  • STM32之RTOS移植和使用
  • [VL|RIS] RSRefSeg 2
  • Hadoop伪分布式环境配置
  • Python中的深拷贝与浅拷贝
  • 冒泡排序与选择排序以及单链表与双链表
  • 垂直大模型的“手术刀”时代:从蒙牛MENGNIU.GPT看AI落地的范式革命
  • 【高并发内存池】六、三种缓存的回收内存过程
  • 缓存常见问题与解决方案
  • 【pure-admin】登录页面代码详解