简单的渗透信息搜集姿势

写在前面的话

笔者是一名刚刚开始学习渗透测试的菜鸟,以下的总结都是自己在实践的时候整理的,比较的不全面,还请各位师傅多多指教。

一、基础信息收集

(一)域名搜集

  • 域名收集:除了常规途径,利用 DomainTools、SpyOnWeb 等工具获取域名历史 Whois 记录,查看所有权变更和 DNS 解析历史,挖掘潜在信息。

  • 子域名

    • Google 搜索语法:熟练运用特定语法,如 “site: 目标域名 -www” 可查找部分子域名。

    • 空间搜索引擎:如 ZoomEye、Shodan 等,从网络空间搜索维度发现子域名。

    • OneForAll:支持多种数据源,可灵活配置参数进行高效子域名收集。

    • Subdomainsbrute:多线程扫描,优化字典和线程数提升扫描效果。

    • Subdomain3:通过不断更新字典和调整扫描策略,提高子域名发现率。

    • SubFinder + KSubdomain + HttpX:结合工具优势,SubFinder 快速发现子域名,KSubdomain 深度挖掘,HttpX 验证存活。

(二)ip 与 CDN

  • 真实 ip 与 CDN 绕过

    • 获取真实 ip

      • ping 方法:根据 TTL 值初步判断操作系统类型辅助定位,但存在局限性。不能绕过CDN

      • nslookup 方法:查询 DNS 记录获取 IP,部分情况受 CDN 影响。不能绕过CDN

      • 在线工具:站长工具方便快捷,但结果准确性需进一步核实。

      • traceroute 工具:在 Linux 和 macOS 系统中,跟踪数据包路由路径,尝试绕过 CDN 找真实 IP。

      • 邮件头信息:若目标有邮件服务,分析邮件头获取邮件服务器 IP,可能是真实 IP 或相关 IP。

      • 绕过CDN:

        • 使用
    • CDN 检测工具:对比 CloudFlare Radar 专注检测 CloudFlare CDN,CDNView 涵盖多种主流 CDN 供应商,结合多工具提高检测可靠性。

二、网络与系统架构信息

(一)端口,网络服务

  • 端口与网络服务

    • 端口扫描:使用 nmap,根据目标选择扫描方式,如 TCP SYN 扫描(-sS)隐蔽性好,结合脚本扫描(-sC)和版本探测(-sV)获取详细服务信息。

    • 网络拓扑:利用 SolarWinds Network Topology Mapper 自动发现设备绘制拓扑图,Netdiscover 专注局域网设备发现辅助绘制。

(二)系统与中间件

  • 操作系统

    • ping 判断:Windows 的 TTL 值一般为 128,Linux 为 64 ,TTL 大于 100 一般为 Windows,几十一般为 Linux,ping ipv6 无 TTL 值,只能 ping ipv4。一般不准确

    • nmap:通过扫描获取操作系统指纹信息。
      命令:nmap -o IP
      可能被某些防护机制阻止扫描

    • 大小写敏感性:Windows 大小写不敏感,Linux 区分大小写。尝试访问目标系统上的文件或目录时,如果发现对大小写不敏感,那么该系统很可能是 Windows;反之,则更有可能是 Linux

    • p0f 工具:被动嗅探网络流量,分析数据包特征识别操作系统类型、版本及网络配置。

  • 中间件与容器

    • F12 查看响应头 Server 字段:切换到网络面板,刷新找初始请求查看 “server” 字段判断,如显示 “Apache” 可能使用 Apache HTTP 服务器。

    • 在线工具:WhatWeb、Wappalyzer 可识别多种技术组件。

    • 错误页面分析:不同中间件和容器错误页面有特定信息和布局,如 Tomcat 错误页面含版本信息。

(三)网站服务、容器类型、脚本类型

  • F12 中的网络中,观察加载的文件的拓展名:如.js 是 JavaScript 文件,.php 是 PHP 脚本文件。

  • 分析响应内容和请求行为:网页响应内容含特定脚本语法特征或标记可判断,如 html 页面出现 “” 标签。

  • 判断容器类型:

    • 查看响应头Server字段:
      如果显示了“Apache”可能使用了基于Apache的容器
      如果显示了“Nginx”可能是使用了Nginx的相关容器
      使用whatweb
  • 判断脚本类型:

    • 根据文件拓展名:
      .jsp,.asp .aspx .php

    • 根据服务器响应信息判断:
      可以查看cookie值
      可以分析Server值

    • 在线工具:whatweb

    • 通过服务器的类型
      IIS:一般与.asp或者.aspx相关
      Tomcat,Resin,JBoss:一般与.jsp相关
      Nginx:能搭配多种脚本语言,如 PHP、Python 等。Nginx 是一款高性能的 Web 服务器,常与 PHP - FPM 配合使用来运行 PHP 脚本,也可以作为其他语言(如 Python 的 Flask、Django 框架等)应用的反向代理服务器。

(四)数据库类型

  • 常见的数据库类型:oracle、mysql、SQL Server、Postgresql 等。

  • 前端数据库类型:asp 对应 SQL Server、Access ,.net 对应 SQL Server,php 对应 MySQL、PostgreSQL,java 对应 Oracle、MySQL。

  • 常见的数据库端口:Oracle 为 1521,MySQL 为 3306,SQL Server 为 1433,Postgresql 为 5432,Mongodb 为 27017。

  • 判断方法:

    • 使用工具:whatweb

    • SQL注入判断

(五)CMS 识别

  • CMS:内容管理系统用于网站内容文章管理,常见有 WordPress、Joomla、Drupal、dedecms(织梦)、Discuz、phpcms 等。

  • CMS 检测识别工具:CMSeeK、joomscan、wpscan、TPscan 等。

三、业务与应用信息

(一)敏感目录与文件

  • 常见敏感文件或者目录:robots.txt、crossdomain.xml、sitemap.xml、后台目录、网站安装目录等。

  • 源代码泄露

    • Github 泄露:开发人员上传代码未删重要信息。

    • .git 泄露

      • 成因及危害:开发人员使用 git 版本控制自动部署时配置不当,导致.git 文件部署到线上,引发源码泄露,攻击者可审计代码挖掘漏洞。

      • 防护方法:部署时删除.git 文件夹,在 nginx 配置中屏蔽.git 目录访问,定期检查清理敏感文件和目录,对网站备份文件强密码保护并安全存储。

  • 目录扫描:工具包括 feroxbuster、dirb、dirsearch、dirmap、dirBuster、御剑等,根据目标选择合适字典,调整扫描线程数和超时时间。

  • Google Hacking:运用特定搜索语法查找敏感信息,如 “inurl:admin login” 查找含特定关键词的 URL。

(二)漏洞与防御措施

四、企业与社会工程信息

(一)企业架构与人员数据

  • 组织画像:查询子公司、合作伙伴、供应商信息,关注行业动态、并购和项目合作,挖掘潜在攻击入口。

  • 人员信息:通过社交媒体、GitHub 泄露代码或历史密码库搜集,利用 Maltego 整合关联信息构建关系网络。

五、敏感信息与漏洞利用

(一)业务逻辑与权限

  • 登录入口:探测后台地址、API 接口及默认凭据,分析 URL 结构和资源文件找隐藏入口。

  • 权限提升途径:分析用户角色,利用 Burp Suite 抓包修改参数测试越权漏洞,结合业务逻辑找提升机会。

(二)历史漏洞关联

  • 同类系统漏洞:利用 CVE Details、SecurityFocus 等数据库查询同类系统漏洞,关注安全厂商和社区预警修复建议。

  • EDU 漏洞的一些小技巧

    • 正常搜集域名、ip、端口、目录等,关注社交平台学生动态找信息泄露。

    • 登录学校官网搜索公示,公众号文章找学号,找操作手册、邮箱,使用site:example.com 登录 | 管理员 | 学号 | 奖学金 | 身份证 | 账号 | 密码 | admin|login 语法搜索。
      body=“login”

    • 发布兼职广告套取身份信息(此方法存在法律风险,仅作技术探讨)。

    • 收集信息尝试登录,检查边缘资产默认密码。

1 個讚