本地提权真机实操

极客

从踩坑到拿下System权限的血泪史

说实话,写这篇文章之前我犹豫了很久,为啥?因为本地提权真机实操这玩意儿,网上教程一抓一大把,但真正能落地的、不坑人的,真没几个,我自己就踩了无数坑,今天索性把心一横,把最近一次真机实操的全过程扒出来,给各位兄弟避避雷。

本地提权真机实操

先说场景哈,前阵子做内网渗透测试,拿到一个普通用户权限的Shell,Windows Server 2016,补丁打得不算勤快但也没到裸奔的程度,按流程走,先信息收集。systeminfo 一敲,好家伙,热乎的补丁列表出来了,我习惯性地丢进提权辅助脚本里跑了一遍,结果出来一堆"可能可利用"的条目,但兄弟们,听我一句劝——脚本说能提,不代表你真能提,这就是本地提权真机实操和打CTF最大的区别,环境变量、杀软、组策略,分分钟教你做人。

第一个尝试的是经典的MS16-032,脚本检测显示存在,我兴冲冲地编译了EXP,结果一跑——直接蓝屏,真的,那一刻我心态差点崩了,后来复盘才发现,目标机器上装了某数字杀软的企业版,EXP落地就被盯上了,所以啊,本地提权真机实操的第一课:先摸清对方的防护体系,别上来就莽。

换思路,既然硬刚不行,那就走"软"的,我开始仔细翻目标机器的服务配置。wmic service get name,pathname,startmode,startname 一条命令下去,眼睛都看花了,突然,一个路径里带空格的、引号没加的服务映入眼帘——哎哟,这不就是典型的未加引号的服务路径漏洞嘛!

这里我得插一句,很多兄弟做本地提权真机实操的时候,看到这个漏洞就激动得不行,直接往 C:\Program Files\ 里丢个 Program.exe,兄弟,醒醒!那目录你有写权限吗?我这次运气好,那个服务的路径是 C:\Users\Public\Some App\service.exe,Public 目录普通用户可写,完美。

接下来就是构造Payload了,我用msfvenom生成一个反弹Shell的exe,命名成 Some.exe,丢进 C:\Users\Public\,然后重启服务——sc stop 再 sc start,心跳加速,盯着监听端……叮!Session上来了,权限是 NT AUTHORITY\SYSTEM,那一刻,真香!

但你以为这就完了?Too young!本地提权真机实操的精髓从来不是"提上去"就完事,而是提上去之后怎么稳住,我见过太多人提权成功,结果一重启,权限没了,白干,所以拿到System后,我立马做了两件事:一是用 sc create 建了个自启动服务做权限维持,二是把提权路径记进笔记,方便复盘写报告。

哦对了,还有个坑得提一嘴,这次实操中我还试了AlwaysInstallElevated,脚本检测是启用的,结果一跑msi——失败,为啥?因为组策略虽然开了,但目标机器的Windows Installer服务被禁用了,你看,这就是真机环境的魔幻之处,理论和实践之间隔着一条银河。

最后总结几条血泪经验吧:

  1. 信息收集永远不嫌多,补丁、服务、计划任务、注册表,一个都别放过;
  2. 杀软是绕不开的坎,本地提权真机实操前先做免杀或者找白名单路径;
  3. 别迷信自动化脚本,它只是辅助,最终还得靠人脑分析;
  4. 权限维持要趁早,提权成功的第一秒就开始想怎么保住它。

好了,洋洋洒洒说了这么多,手都敲酸了,希望这篇本地提权真机实操的碎碎念能帮到正在踩坑的你,记住啊兄弟们,技术这东西,纸上得来终觉浅,真机练手才是王道,有啥问题评论区见,我看到就回!

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]