这篇是我入门渗透测试时整理的流程笔记:从签授权、定边界开始,到信息收集的完整动作——whois 查注册信息、Nmap 扫端口、御剑扫目录、Google 语法挖敏感文件,这一套我全都亲手跑过。
核心知识点
1. 渗透测试基础概念
- 渗透测试:通过模拟恶意攻击行为,评估计算机系统、网络或应用程序安全性的测试方法。
- 测试分类:
- 黑盒测试:不了解目标结构,模拟真实黑客攻击
- 白盒测试:了解系统架构,可测试
- 灰盒测试:介于之间,部分了解系统信息
- 红队 / 蓝队 / 紫队:红队模拟真实攻击;蓝队负责防御和检测;紫队是红蓝对抗协作。
- 漏洞(Vulnerability):系统、软件或设备中存在的”弱点”或”缺陷”。软件都是人写的代码,人会犯错,程序没检查用户、权限设置不对、加密太弱等都会形成漏洞。
2. 渗透测试生命周期(阶段)
| 阶段 | 核心任务 | 通俗比喻 |
|---|---|---|
| 1. 前期交互 | 明确范围、获得合法授权、签 NDA | 签合同、划定红线 |
| 2. 信息收集 | 收集域名、IP、端口、资产信息 | 踩点、画房屋结构图 |
| 3. 漏洞分析 | 扫描和识别缺陷 | 找哪里门没锁、窗户破了 |
| 4. 漏洞利用 | 验证漏洞,获取系统控制权 | 撬锁房间 |
| 5. 后渗透 | 提权、网漫游、权限维持 | 在房间里找保险箱、拿钥匙开别的门 |
| 6. 编写报告 | 整理漏洞细节,提供修复建议 | 体检报告和加固方案 |
前期交互细节:明确哪些 URL/IP 可以测、哪些业务是禁区;约定测试手段(有些客户禁止 AWVS 等自动化只手工测试);签署 NDA 和渗透测试授权书。
漏洞分析要点:用户可控制且带回显的参数位置,SQL 、XSS 往往出现在这些点。
3. 信息收集
渗透测试中信息收集是最重要的第一步,占整个测试工作的 50% 以上。“信息收集决定了渗透测试的深度。”
- 被动收集:不与目标系统直接交互。搜索引擎查询(Google 语法)、whois、备案查询、社交媒体搜索、GitHub 泄露代码。
- 主动收集:与目标交互。端口扫描、目录扫描、漏洞扫描。注意主动收集会留下难以清除的痕迹,大都有 WAF 和日志监控。
- 收集:
- 域名信息:whois(注册人/注册商/联系方式)、备案号、DNS 记录
- 服务器信息:IP、操作系统、开放端口、中间件(Apache/Nginx/IIS)
- 网站信息:网站架构(PHP/Java/Python)、目录结构、指纹识别(CMS/框架)、敏感文件(robots.txt、备份文件)
- 人员信息:邮箱、姓名、职位、习惯爱好(用于社会工程学)
4. Google Hacking 语法(学)
Google Hacking 不是攻击 Google,而是利用 Google 高级搜索语法从索引中”淘”出目标泄露的敏感信息。
基础标点:
- 双引号
"":绝对精确,如"index of /admin" - 减号
-:排除干扰项(减号前有空格,后面直接跟词),如渗透测试教程 -视频 - 星号
*:万能填空符
五大核心指令(格式 指令:,冒号为英文半角,冒号后不能有空格):
| 指令 | 作用 | 示例 |
|---|---|---|
site: | 锁定域名 | site:example.com |
filetype: / ext: | 指定文件类型(找敏感文件) | filetype:sql、filetype:bak |
inurl: | 出现在 URL 中 | inurl:login、inurl:admin_login.php |
intitle: | 出现在标题中 | intitle:"后台管理系统" |
intext: | 出现在正文中 | intext:"默认密码是 123456" |
组合拳实战:
site:example.com filetype:xls intext:"password" OR intext:"密码"—— 找泄露的通讯录/密码表site:example.com intitle:"index of"—— 找目录遍历(目录列表)漏洞site:example.com filetype:sql intext:"INSERT INTO"—— 找数据库备份site:edu.cn inurl:php?id=—— 找教育网站的 SQL 点
道德红线:搜索语法本身合法;但点击搜到的后台、尝试默认密码登录、下载数据则构成非法(“非法获取计算机信息系统数据罪”)。
5. Whois 查询
在线:whois.aliyun.com / whois.domaintools.com
命令行:whois 域名
可查注册人姓名/邮箱、注册商、注册时间、过期时间。
6. Nmap 端口扫描
nmap -sV 目标IP # 扫描常用端口并识别服务版本
nmap -p- 目标IP # 扫描端口
nmap -sS 目标IP # SYN 半开扫描(隐蔽)
nmap -sT 目标IP # TCP 连接扫描
nmap -sU 目标IP # UDP 扫描
nmap -sn 网段 # 主机发现,不扫端口
常见端口对应服务与漏洞:
| 端口 | 服务 | 常见漏洞 |
|---|---|---|
| 21 | FTP | 匿名登录、弱口令 |
| 22 | SSH | 弱口令 |
| 23 | Telnet | 明文传输 |
| 80 | HTTP | Web 漏洞 |
| 139/445 | SMB(NetBIOS/TCP) | 永恒之蓝(445 高危端口,死记) |
| 3306 | MySQL | 弱口令、SQL |
| 3389 | RDP | 弱口令 |
| 6379 | Redis | 未授权访问 |
Windows 下查看端口监听:netstat -ano | findstr ":445"(需管理员权限运行 cmd)。
7. 目录扫描与子域名收集
- 目录扫描:dirsearch(Python)、御剑扫描器、Burp Suite DirBuster(枚举文件路径发现目录和文件)。
- 扫描目标:后台登录页面、敏感文件(.bak/.sql/.zip)、上传目录、。
- 子域名收集:Sublist3r、OneForAll、子域名挖掘器(暴力枚举);搜索引擎
site:*.域名。
8. HTTPS/TLS 加密基础(背景知识)
- HTTPS = HTTP + TLS 加密,解决明文传输被窃听的问题。
- 核心概念:明文、密文、算法、密钥。
- 对称加密:同一把密钥加密解密,效率高但密钥分发困难。
- 非对称加密:钥对,解决密钥分发问题,但计算开销大。
- CA(证书颁发机构):通过数字证书和 PKI 钥基础设施验证网站身份,防止中间人攻击。
- 抓注意:浏览器插件无法直接抓 HTTPS 流量(证书不在受信任列表),需将抓/插件的 CA 证书浏览器信任列表。
9. 环境搭建(靶场)
- phpStudy:Windows 一键启动 Apache + MySQL(官网 xp.cn,建议 D 盘,路径不含中文空格)。
- DVWA:GitHub 下载,
WWW目录重命名dvwa,改config/config.inc.php的数据库账号为 root/root,访问http://127.0.0.1/dvwa/setup.php点Create / Reset Database,默认账号admin / password,登录后可调整级别 Low/Medium/High/Impossible。 - Pikachu:GitHub 下载,改
inc/config.inc.php,访问http://127.0.0.1/pikachu/install.php初始化。 - Podman/Docker 容器靶场:
podman ps -a查看历史容器;podman start <容器名>启动;端口不通查容器是否运行再查端口映射和 Nginx ;ss命令验证端口监听。开机自启用podman generate生成 service 文件放到 systemd 目录后systemctl --user start+systemctl --user enable。
实操步骤
# 1. whois 查询
whois example.com
# 2. Nmap 扫描
nmap -sV 192.168.1.105
nmap -p- 192.168.1.105
# 3. 目录扫描
dirsearch -u http://192.168.1.105/dvwa/
# 4. Google 语法示例(浏览器中搜索)
site:example.com inurl:login
site:example.com filetype:sql
常见错误与排查
- Google 语法冒号后误加空格 → 语法失效;减号前后空格规则记反。
- nmap 只扫默认端口漏掉高危服务 → 用
-p-端口扫描。 - **Burp 抓不到 HTTPS ** → 未 CA 证书,或浏览器未代理。
- 靶场访问 403 → 打开了 VPN/代理软件与本机网络冲突,代理;或 phpStudy Apache/MySQL 未启动、端口被占用(80/3306)。
- 虚拟机网络:50.x.x.x 这类地址是虚拟机 NAT 模式地址,与物理主机隔离;Burp 抓不要用
127.0.0.1,改用真实局域网 IP(如192.168.50.1)。