metasploit渗渗透测试实验
Metasploit渗透测试实验
凌晨两点,渗渗试实实验室的透测屏幕泛着冷光。我盯着msfconsole的渗渗试实banner——那个ASCII艺术字体的骷髅头,光标在msf6>后闪烁。透测第一次运行search ms17_010时,渗渗试实我根本没指望能出结果。透测结果它秒回:4个exploit,渗渗试实2个auxiliary。透测永恒之蓝的渗渗试实模块就躺在那里,像一把上了膛的透测枪。
我没有直接打真实主机。渗渗试实实验环境是透测两台VMware虚拟机,靶机是渗渗试实未打补丁的Windows 7 SP1,攻击机是透测Kali 2023。网络设成Host-Only,渗渗试实确保流量不会漏到外面去。这很重要——渗透测试的第一条铁律是:你只能打你被授权打的东西。哪怕是练习,我也习惯在虚拟环境里模拟真实边界。
输入use exploit/windows/smb/ms17_010_eternalblue,设置RHOSTS为靶机IP,LHOST指向Kali的虚拟网卡。敲下run的瞬间,心跳明显加快了。三秒后,屏幕弹出Meterpreter session 1 opened——就这么简单。没有电影里的滚动代码,没有霓虹灯特效,就一行绿色文字。但那一刻我意识到,攻击的成败往往就在这些看似平淡的输出里。
拿到session后,第一件事不是乱敲命令。我执行sysinfo查看系统版本,getuid确认权限。结果是NT AUTHORITY\SYSTEM——最高权限,因为永恒之蓝利用的是内核漏洞。我甚至没碰任何密码,没做任何暴力破解,纯粹靠一个未修复的SMB漏洞就拿到了域控级别的权限。如果这是真实企业内网,意味着什么?意味着攻击者可以从这里横向移动,抓取内存中的明文凭证,或者直接dump SAM数据库。
最让我后背发凉的是hashdump命令。瞬间列出所有本地账户的NTLM哈希,包括Administrator。我拿着那个哈希去cmd5查了一下,管理员密码是P@ssw0rd2020——弱得可笑,但现实中真有企业用这种密码。实验结束后我删掉了快照,重新恢复干净靶机。但那种感觉留下来了:安全防线往往不是被高科技击穿的,而是被已知漏洞和懒惰的运维习惯击穿的。
后来我又试了post/multi/recon/local_exploit_suggester,它会自动扫描当前session还能提权到哪个级别。跑完列出7个本地提权模块,我一个一个试。有个叫ms16_032的,针对Windows 7的Secondary Logon Handle漏洞,一次成功。这让我想到真实渗透里常用的套路:先拿低权限webshell,再用本地提权模块升到SYSTEM。Metasploit把这些步骤封装成了菜单选项,但背后是无数安全研究员逆向出来的成果——每一条exploit都对应一个CVE编号,每个编号背后可能是一份几十页的漏洞分析报告。
实验收尾时,我执行clearev清空了事件日志。这不是为了掩盖什么,而是想看看这个动作在真实取证里会留下什么痕迹。结果日志清得很干净,但timestomp命令还能看到文件时间戳被修改的痕迹。攻防对抗从来不是单点突破,而是持续博弈。
关掉虚拟机前,我盯着Metasploit的框架代码想了一件事:这个工具集成了上千个漏洞模块,任何人都能下载使用。它既是渗透测试员的瑞士军刀,也是脚本小子的作弊器。但工具本身没有善恶,关键在于使用者的意图和授权边界。如果你只是好奇,建议在虚拟环境里玩;如果你要测试真实系统,先签好授权协议——否则你用的不是Metasploit,是手铐钥匙。
屏幕暗下去,只剩风扇声。实验结束,但那个Meterpreter session的绿色字符还印在视网膜上。下次遇到SMB服务,我大概会多留个心眼。