流程笔记:签授权、定边界 → 信息收集(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,而是用高级搜索语法从索引中”淘”目标泄露的敏感信息。
基础标点:双引号 "" 绝对精确("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+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/代理与本机网络冲突,先关代理;或 Apache/MySQL 未启动、端口被占(80/3306)。
- 虚拟机网络:50.x.x.x 是 NAT 模式地址、与物理主机隔离;Burp 抓包别用
127.0.0.1,改用真实局域网 IP(如192.168.50.1)。