网络攻防实战研究:漏洞利用与提权
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.11 Windows 7/2008服务器64位版本MS12-042漏洞提权

本节主要针对Windows 7/2008服务器64位版本MS12-042漏洞提权进行分析。

2.11.1 MS12-042漏洞简介

MS12-042(Microsoft Windows用户态调度机制特权提升漏洞), CVE漏洞编号CVE-2012-0217,发布于2012年6月12日。Windows User Mode Scheduler在处理系统请求时存在权限提升漏洞,成功利用后可导致在内核模式中运行任意代码。该漏洞对64位Windows Server 2008及Windows 7操作系统有效,对x86无效,详细情况可以参考微软官方网站(http://support.microsoft.com/kb/2711167/zh-cn),影响系统如下。

· Windows Server 2008 R2

· Windows Server 2008 R2 SP1

· Windows 7 Gold

· Windows 7 SP1

2.11.2 提权工具

MS12-042提权工具被编译成sysret.exe,其参数的具体含义如下。

· sysret-p:表示把此时的进程提升到system权限。

· sysret-e:表示把程序提升到system权限运行。

所以,使用此EXP提权有3种方法。

· NC反弹交互Shell,直接执行“sysret-e cmd.exe”命令,会在当前终端提权到system。

· NC反弹Shell,找到该交互Shell的PID,在WebShell中执行“sysret-p PID”命令。

·使用“sysret wce64-w”命令直接获取系统的明文Hash值或者Hash值。

查找反弹的交互Shell的PID,这里提供2种方法。

·使用“tasklist | find "cmd.exe"”命令比对多出来的cmd.exe。

·使用“wmic process get commandline, processid | find "cmd.exe"”命令查看独立的cmd.exe的PID。

2.11.3 实战提权利用

1.提权服务器信息收集与分析

对提权服务器来说,一定要具备一些前置条件,这些前置条件在这里就不讨论了。这里假设已有WebShell权限,且可以执行cmd命令。对于服务器信息分析,需要对服务器上面的软件、数据库、代码及其他可以下载和打开的文件进行分析,寻找一个最有可能提权的方向进行突破。在本案例中,服务器是Windows Server 2008+IIS 7+Oracle 11g,通过Oracle提权根本行不通。Oracle最新版本没有可供溢出的漏洞,服务器上也没有其他可供提权的软件,只能从Windows操作系统入手。

(1)收集系统版本信息

在WebShell中使用ver参数获取该操作系统的版本信息为“Microsoft Windows [版本6.1.7601]”,与Windows 7/Server 2008为同一个版本号,如图2-106所示。

图2-106 获取Windows版本信息

(2)使用systeminfo命令获取补丁及操作系统信息

使用systeminfo命令获取补丁及操作系统的详细信息,通过操作系统名称及处理器来决定使用什么类型的提权工具,如图2-107所示。

图2-107 获取处理器类型

(3)查看当前用户权限

使用whoami命令查看当前权限。如图2-108所示,当前权限为“iis apppool\member”,为低权限用户。

图2-108 获取当前用户的权限

2.实施提权

与其通过WebShell执行命令,不如在“中国菜刀”或者反弹Shell中执行命令。在获取以上信息后,可以将提权工具上传到服务器可写目录下,然后通过“中国菜刀”终端命令进行提权。如图2-109所示,在本例中我们上传了wce64.exe、g64.exe等程序,可以通过“sysret g64”命令直接获取操作系统的密码明文或者Hash值。

图2-109 获取明文密码

在WebShell中获取的Hash值是“Administrator:WIN-641CTSU8K4B:12C5CB5EC824FC2DF77D 3BFFFF39CD95:D2B62DAAAFF409B6C3B6C2C696AA978D”。在该值后面添加“:::”,然后放入Ophcrack中进行破解,如图2-110所示,耗时11分33秒成功破解该超强密码。使用该密码成功登录该服务器,如图2-111所示。

图2-110 破解密码

图2-111 远程登录该服务器