写在前面的话
笔者是一名刚刚开始学习渗透测试的菜鸟,以下的总结都是自己在实践的时候整理的,比较的不全面,还请各位师傅多多指教。
一、基础信息收集
(一)域名搜集
-
域名收集:除了常规途径,利用 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
- 查看响应头Server字段:
-
判断脚本类型:
-
根据文件拓展名:
.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。
(二)漏洞与防御措施
-
漏洞扫描:OpenVAS 开源,社区活跃规则库更新快,根据目标配置扫描策略。
-
WAF 识别
-
wafw00f:工具地址https://github.com/EnableSecurity/wafw00f ,https://www.kali.org/tools/wafw00f/ 。
-
Nmap 脚本:使用 nmap -sV --script=http-waf-detect <目标 IP> 检测。
-
手动测试:发送攻击请求观察目标响应判断 WAF 及防护强度。
-
四、企业与社会工程信息
(一)企业架构与人员数据
-
组织画像:查询子公司、合作伙伴、供应商信息,关注行业动态、并购和项目合作,挖掘潜在攻击入口。
-
人员信息:通过社交媒体、GitHub 泄露代码或历史密码库搜集,利用 Maltego 整合关联信息构建关系网络。
五、敏感信息与漏洞利用
(一)业务逻辑与权限
-
登录入口:探测后台地址、API 接口及默认凭据,分析 URL 结构和资源文件找隐藏入口。
-
权限提升途径:分析用户角色,利用 Burp Suite 抓包修改参数测试越权漏洞,结合业务逻辑找提升机会。
(二)历史漏洞关联
-
同类系统漏洞:利用 CVE Details、SecurityFocus 等数据库查询同类系统漏洞,关注安全厂商和社区预警修复建议。
-
EDU 漏洞的一些小技巧
-
正常搜集域名、ip、端口、目录等,关注社交平台学生动态找信息泄露。
-
登录学校官网搜索公示,公众号文章找学号,找操作手册、邮箱,使用site:example.com 登录 | 管理员 | 学号 | 奖学金 | 身份证 | 账号 | 密码 | admin|login 语法搜索。
body=“login” -
发布兼职广告套取身份信息(此方法存在法律风险,仅作技术探讨)。
-
收集信息尝试登录,检查边缘资产默认密码。
-