漏洞名称:Microsoft Windows RPCSS服务隔离本地权限提升漏洞
CVE编号:CVE-2009-0079
漏洞编号:MS09-012
发布日期:2009-04-14
微软公布:https://support.microsoft.com/zh-cn/help/956572/ms09-012-description-of-the-security-update-for-windows-service-isolat
受影响系统:
Microsoft Windows XP x64 SP2
Microsoft Windows XP x64
Microsoft Windows XP SP3
Microsoft Windows XP SP2
Microsoft Windows Server 2003 SP2
Microsoft Windows Server 2003 SP1
(也就是说只有Windows Server 2003和windows xp系统能够被提权利用)
漏洞描述:
RPCSS服务没有正确地隔离NetworkService或LocalService帐号下运行的进程,本地攻击者可以利用令牌劫持的方式获得权限提升。成功利用此漏洞的攻击者可以完全控制受影响的系统,攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。该漏洞的补丁序列号为KB952004。
什么是溢出漏洞?
溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名:缓冲区溢出漏洞。 因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。
PR提权工具
pr.exe
是一款windows本地溢出工具,主要作用就是可以将低权限用户提升为系统权限,常见于webshell提权。攻击利用场景一般是获得Webshell后,登录进去,点击cmd命令,执行命令whoami,查看当前所获的权限,若是低权限用户则可以该工具进行权限提升。 PR提权工具的具体使用命令跟下面的巴西烤肉一样,参见下文。
【附】Windows系统几条命令:
目的 | 命令 |
---|---|
查看文本文件内容 | type C:\flag.txt |
查看系统版本和补丁信息 | systeminfo |
查看系统所有用户 | net user |
添加本地用户 | net user username password /add |
将用户提升为系统管理组用户(使其具有超级权限) | net localgroup administrators **** /add |
巴西烤肉工具
Churrasco.exe
(巴西烤肉)是Windows2003系统下的一个本地提权漏洞利用工具,通过此工具可以以SYSTEM权限执行命令,从而可以达到添加用户的目的。 提权命令如下:
churrasco "net user /add"
net users //查看新建用户是否成功
churrasco "net localgroup administrators /add"
net localgroup administrators //查看用户是否别加入到管理员组
churrasco 3389.bat //开启3389端口,用于远程登录主机
本次攻击的主要过程为:
Churrasco.exe
,成功以管理员身份执行命令并查看Flag文件,攻击结束。本次在线实验的地址为:
墨者学院的靶场实验——https://www.mozhe.cn/bug/detail/d1JMR1FrRDR2RmdJdzdJK09DZlNFZz09bW96aGUmozhe
。
访问靶场,页面如下:
好了,接下来很明显,借助IIS 6.0的解析漏洞,上传ASP一句话木马:
上传成功并获得路径:
接下来,不废话,上菜刀连接一句话木马:
在C盘根目录下找到Flag文件:
但是发现没有权限访问:
既然当前没有权限,那下面就需要寻找入侵点进行权限提升。
1、为了进行主机漏洞信息收集,先在可执行的路径下(此处为C:\inetpub\wwwroot\upload\hask.asp\
)上传cmd.exe
(注意得是32位的)文件:
2、以虚拟终端的形式打开cmd.exe
可执行文件:
3、查看是否可正常执行命令:
4、执行systeminfo
命令,查看系统版本及补丁情况,发现为Win2003系统:
5、未发现补丁序列号为KB952004的补丁,可判定该主机存在MS09-012主机溢出提权漏洞:
接下来要做的,就是如何对该漏洞进行利用了。
1、在可执行的路径下(此处为C:\inetpub\wwwroot\upload\hask.asp\
)上传Churrasco.exe
(巴西烤肉)提权工具:
2、提权之前,尝试直接使用type
命令查看Flag文件,结果失败,拒绝访问:
3、在终端输入命令Churrasco.exe "type c:\KEY_2124121388.txt"
,从而实现借助巴西烤肉进行提权,以管理员身份查看Flag文件:
至此,成功拿到Flag值,此次攻击演示结束。
以上实验仅仅是在以获取目标服务器主机的Flag文件,下面介绍i春秋上另一个类似的提权靶场实验。本实验是一次非常深入彻底的模拟渗透,虽然只针对一台服务器,但却经历了从最初的获取网站管理员账号密码,到获得网站的Webshell,最后到通过提权获得服务器系统最高权限的完整渗透过程。题目链接:https://www.ichunqiu.com/battalion?t=2&r=54399
。
具体的攻击步骤大致如下:
pr.exe
提权工具创建新的普通用户hacker
,并将其添加到系统管理员组(使其具有超级权限),然后开启3389
端口,接着使用hacker
账户成功远程登录主机;QuarksPwDump
工具,获取主机管理员账户administrator
的密码Hash值并解密,从而获得服务器主机的最高权限(Hacker账户其实已经就是最高权限了),攻击结束。本文重点在于提权漏和进阶利用,故前三个步骤关于如何获得WebShell的过程,下文将跳过不介绍。
下文流程简述:提权添加账户 —> 开启3389端口 —> 远程桌面连接 —> 获取管理员账户密码。
1、进入C:\RECYCLER
目录,上传提权工具(包括pr.exe
,3389.bat
,cmd.exe
)等:
2、在菜刀中成功上传提权工具:
3、右键cmd.exe
,选择 “虚拟终端”,进入命令控制窗口:
4、将目录切换到C:\RECYCLER
,用pr.exe
执行cmd命令,添加账户hacker
:
5、第一次执行命令有可能不成功,没关系,再执行一次就OK了:
6、账户添加成功,下一步,将hacker
账户添加到系统管理员组:
7、添加成功,下一步,开启主机3389
端口:
8、如果出现如上图中的一大堆命令,说明执行成功了,不成功就多执行几次命令,下一步,远程连接目标主机(输入目标IP地址:172.16.12.2,开始连接,继续输入用户名hacker
和密码123):
9、成功进行远程登录,如下图所示:
远程登录目标服务器的主机后,攻击本可以结束,因为Hacker账户已拥有系统的最高权限。但为了“耀武扬威”,接下来是获取主机本身的管理员administrator
的密码,准确的说是获取系统管理员密码的Hash值。
QuarksPwDump
是 Quarkslab 发布的一款开源工具,能导出 Windows 下各种类型的用户凭证(如本地用户密码哈希值),但必须有管理员权限下才行。
1、上传主机账户密码获取工具(这里我们使用QuarksPwDum
),还是使用菜刀上传:
2、打开cmd,用命令行启动QuarksPwDump
:
运行后,会出现如下界面:
3、继续输入命令:QuarksPwDump --dump-hash-local
,获取管理员administrator
的密码Hash值:
4、使用在线Hash解密工具破解以上密码的Hash值:
最终获得主机管理员administrator
的密码明文如下:
至此,攻击结束,成功利用提权工具进行普通用户hacker的创建(并将其加入系统管理员组)、开启3389端口,然后进行远程登录,接着破解主机管理员administrator
的账户密码。