360网神防火系统 配置端口映射_如何配置安全的rdp进行远程内网运维操作

新朋友点上方蓝字“网络空间安全社”即可关注

2019/1/14 7:20

前言

本文讲解了如何进行安全的远程桌面连接内网某服务器进行运维

关于RDP的中间人窃听,大家从文末的网盘下载看里面的文献有原理和脚本的说明,英文原文和中文翻译都有。

欢迎大家对不足之处进行指正!

大纲

1.windows server桌面远程

1.5防火墙规则设置

2.对此时rdp的安全性说明

3.端口映射

4.中间人窃听、爆破的风险说明

5.参考文献

示范环境: 

windows server 2012(服务器),windwos 2010(我们连接者),同一内网(稍后说明端口映射)。

虚拟机网络:桥接到同一个网关

1windows server桌面远程

如果使用RDP的话,首先得让功能完成,再考虑安全性。参考上一段的环境,来打开rdp服务。

打开win2012 serve,

77ebb91f97eb537170b4f6b71b3c1f86.png

a7dcff4e06dfadf102bdd6dc645b9b3d.png

进入 菜单 点击  计算机 的属性

eaa394b139ca538b47c819e970e06a75.png

点击远程设置

0e076be88a0b10a5f1efc7a9e64dd694.png

在这里,管理员的本地组是默认的都可以作位远程用户rdp登入;

如果想新建一个不是管理员的用户来登入rdp:(在计算机管理中 用户 新添加一个用户,设置密码,此时用户虽然被创建但是权限很小,但是作位rdp登录的一个用户,你需要在上图这个位置把新用户添加进来,此时这个用户拥有了rdp登入的权限);

(友情提示:rdp中不能切换用户,如果注销的当前登录用户的话,RDP也就随之关闭。)

如图创建一个不是管理员权限但是可以rdp登录的用户:

d5a26976bf43cc6f78849d00006d7175.png

以管理员身份的命令创建一个remotetester用户(密码为@WSXxsw2)(此时用户几乎没有权限)

我们回到上文的下图位置

f94c587ebabaeab4afe3a2c73dd085bc.png

ead8ff7b79972b1c6726190ab6964805.png

ee4b922ab082f390ab40cb3c221178b6.png

添加remotetester用户

此时可rdp登录本机的就是管理员组的用户和上图rdp组的添加用户

部分win2012的RDP被自己OS的防火墙禁用了,这种情况读者得看 一点五 操作防火墙的内容,首先把“RDP-用户模式(User-mode)”启用为公用模式;

回到win10(win10模拟网站管理员在自己家的电脑)

win + R 打开mstsc进行远程登录

76d866f0f903ca4e867333c131c1e7f4.png

然后输入win2012的可rdp的用户凭证,就可以rdp登录了

或者有时候出现CredSSP 的加密函数发生变化导致无法通过凭证,

(这是由于  CVE-2018-0886 : https://support.microsoft.com/zh-cn/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018   ,微软修改了加密函数;但是这个CVE是说可远程登录的用户作为中继执行任意代码,该不安全性可以忽略。如果想通过补丁方式升级加密函数,参考下面第二段aliyun网站的文章来进行补丁升级)

如果出现上述凭证由于加密无法通过的情况,就按照下面的步骤来更改加密性来让RDP功能实现;没有出现上述步骤的话,就跳过下面让功能实现的步骤了。

(参考文献:https://help.aliyun.com/knowledge_detail/71931.html?spm=a2c4e.11153940.blogcont629079.8.672678a393HdfT

https://blog.csdn.net/nan_cheung/article/details/80290476)

打开win10的运行,输入regedit,打开注册表编辑器,

依次打开:

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters

这个路径,如果后面没有CredSSP\Parameters的,就打开

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

,如果有CredSSP\Parameter的话直接按照后面的修改一下Parameters中的参数“ AllowEncryptionOracle”的值为2即可。

右击System

f1a06bcdd4c2cb52984aea6f53f80bc2.png

新建一个名为“CredSSP”的项

再右击CredSSP这个项,新建一个名为“Parameters”的项

9758cb026c1c104d376c01b2532ee241.png

右击Parameters,新建DWORD(32)位,命名为“AllowEncryptionOracle ”

ec3dbb072e8dc7a3f2a9c49b42a51b6c.png

双击“AllowEncryptionOracle”,修改为十六进制数值2:

9557a91c1ef2182fc14f6d694a1c1093.png

这样子,就可以通过加密凭证了。

1.5防火墙设置

继续以win server 2012说明,操作防火墙:

846830cbc57f0362369dccd08a86521f.png

在服务器管理器这里点击“工具”

d2ac04ca599487caac0c6d9c2fc1f056.png

高级安全Windows防火墙

34f836ceaf2b03041c30bb7e63021883.png

点击入站规则

fb3206029be06edf71700998ad94501a.png

滚动条拉到最底下,

06910fc350dd513c28ed546a5052ce91.png

我们只启用如图的“远程桌面-用户模式(TCP-In)”接即可,其他的关于RDP的设置通通禁用。

0d0156eee8c0d434e7532da039952f5a.png

点击属性

95784ebfe1d5418efd6120ff50767024.png

点击  “允许连接”  ,如上图,然后再到“作用域”,如下图:

4ed9d23f2f6b4c8bb8c110c7bf40adee.png

本地IP地址的话,写127.0.0.1就行

远程ip可以写内网或者外网的ip。

如果先进行内网主机是否可以rdp连接,那么远程ip地址就添加这个内网地址。

如上图,由于我使用39.105.78.253这个主机进行端口映射,所以我只写了这一个地址。

建议远程ip地址只保留你要进行传输层连接的主机的ip。这样,能连接被RDP的服务器只能通过公网的端口映射来连接。

还有一处,

48702afba421b324fbc23c13520dfb41.png

这里得写公用进行连接。

至此,在内网环境下(现在还没有端口映射)的DP的连接你应该是可以做到的。

注意一下,内网要进行连接的话,先简单把本地ip和远程ip都开启为“任何ip地址”。

否则内网主机都连接不上。

5cd39f8814a4301ea2d7ce2430f10e82.png

成功连接,如图:

604cd5877e47e1ae47e82a04406b27dd.png

通过凭证后,会出现一个证书:

7cf8ad6b7a4b8c26101ad88934a74ab2.png

点击“是”

然后,内网下RDP连接就成功了。

2安全性说明

上面步骤中修改客户端注册表只是为了绕过rdp这一层CredSSP微软升级加密算法的差异性。

修改Parameters下那个键值为2是为了使用旧的不安全的算法。这个的安全性可以忽略,因为登录的管理员或者创建的remote组的身份登录,我们并不泄露这些信息。安全性cve的文献在上文和下文的参考文献有,我们可以选择忽略。

操作防火墙只是为了只连接公网的端口映射进行传输层的TCP连接。

证书:

RDP协议自带SSL加密传输的,可防止中间人窃听。

但是RDP通过用户凭证后,会弹出无法确认证书,如下:

7cf8ad6b7a4b8c26101ad88934a74ab2.png

这个很头疼,因为安装证书到所有的信任区依然无法解决。

我们选择手工验证:查看证书:

e13966e39c8be4fc61ed860b3b818fa4.png

简单记住指纹的前几位就行,以后连接的时候手动查看指纹校验一下前几位,来确认证书,然后回到证书不确认的那儿

7144348a99b8254e04c2bb3eea4a53c9.png

点击“是”即可。。。(每回每回千万不要在“不再询问我是否连接到此计算机”这里打勾)

win2012的证书有效期一般默认半年,如果你手工校验发现证书指纹不太一样。。。可能有中间人截断流量准备进行窃听。。涉及安全性的话,手工校验发现问题的话,就不要进行连接了。换一条线路重新搭一下rdp的端口映射。

RDP:

微软的远程桌面协议自带SSL,协议本身是安全的,因为用到了非对称加密。不过,服务器校验了你输入的用户凭证才会返回一个公钥,用户凭证的用户名密码是散列值进行的传输,笔者在wireshark抓了几轮流量都没有发现能ascii编码出来的用户名密码。所以这一点上讲,安全性是可以的。不过勤换用户的密码也是一个好习惯。

RDP爆破:

RDP最害怕最不防的就是爆破,举例的常见的工具就是Hydra,不过这个工具爆破时流量特征很明显,而且它也得需要一个非常强大的字典来进行爆破很长很长时间。关于爆破,建议设置用户密码至少10位包含大小写字母和数字,一般这种情况可以防止爆破的问题。

端口映射的服务器的防火墙:

建议和上面的防火墙操作一样,如果运维人员想通过rdp进行运维,那么建议端口映射的服务器也用防火墙限制一下连接的ip。

3端口映射

端口映射,一般就是讨论如何在外网准确访问到某个内网进行通信。

1.路由器是直接连接外网的话,可以直接进行端口映射,或者和ISP运营商沟通,进行端口映射

(这个是最方便的)

2.远程RDP的话,建立一个VPN也是可以的,直接问到内网

3.点对点的端口映射(这也需要一个处于公网的服务器,在上面运行一个程序即可建立两个内网主机的通信)

按照笔者的操作步骤来走的话,这里就示范端口映射。

文件:RDP/端口映射/文章示范修改参数文件(相较原文件,更改了debug、重试次数、重试连接时间三个参数)

48eb65679992163e37aafb42b04107c8.png

(rtcp-master.zip是知道创宇的原文件,默认配置是调试的,所以使用脚本的话直接用改了参数的“文章示范修改参数文件”)

这里的python程序并不长,是知道创宇的github中寻找到的,github上他们的源文件就是同目录下的rtcp-master.zip这个压缩包。

(注:被RDP控的主机、公网服务器需要py2运行端口映射程序,

文件中有py2.7.9的安装包。如果公网服务器OS是windows,就安装文件夹的py2的安装包。)

a6c411c03dec531140278b4b81d9242c.png

公网服务器:运行python rtcp.py l:10001 l:10002

就是两个端口互通tcp这一层的流量

bcb05ab40fab308fb9dc48326722bb60.png

python rtcp.py l:30004 l:30005

(这里我用的公网服务器是windwosserver,这得安装一下python2的安装包。如果公网进行端口映射的服务器是linux的os的话,上传个脚本就能直接运行,比windwos更方便,命令和上图windows的一样)

(假设公网ip:xx.xx.xx.xx)

被rdp的主机:运行python rtcp.py c:localhost:3389 c:xx.xx.xx.xx:30005

35a26196f7bf6e572fbb3a3a47b47ac9.png

先把公网的服务器开了程序,再开客户端的程序。

服务器输出

49a120c61474fcbb0c6ab70cdb2e45e4.png

这个字样,标识tcp连接成功。

如果没有弹出,则需要杀掉当前进程,重新开一下程序重走其他端口,成功连接即可。

然后,你在家中或者其他地方,按win + R打开‘运行’窗口输入mstsc,连接xx.xx.xx.xx:30002,就可以连接到被rdp的主机了。

864fbdd925f34a0e10508ece5c816a8c.png

fe807acce3e794f04129750664f55e5f.png

如图,连接成功。

4中间人窃听、爆破的风险说明

爆破工具Hydra

c9b5c56392b86c7f309cfa49d48f42e8.png

windows下的RDP爆破工具笔者放进来了,这个工具在kali linux中也默认安装。

0b6262d1be98c66139e7af584ce6dadb.png

需要在cmd环境下运行该hydra.exe文件并输入参数进行爆破。

hydra 192.168.1.12 rdp -L users.txt -P pass.txt -V 

上面这句话就是要进行rdp协议的爆破。工具本身没有任何字典,所以工具者会在同目录下上传字典来被hydra加载,进行用户名密码的全排列爆破。

关于防止爆破,在本文的讲述中,设置端口映射的服务器的防火墙,或者设置被RDP主机的用户的密码强度即可防止爆破。在上文中提到过。

中间人窃听(MitM)

在参考文献RDPattacking.doc中有讲述

解决方案的话,依然在上文有提到过,就是手动校验证书的指纹。

关于本文的文件,网盘链接如下:

https://pan.baidu.com/s/1vTCimcKQAadTF0T59FKx9w

5参考文献(部分参考文献放进了文件夹)

https://help.aliyun.com/knowledge_detail/71931.html

https://windard.com/project/2017/03/10/Proxy-In-Python

CVE-2018-0886 :

https://support.microsoft.com/zh-cn/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018

https://help.aliyun.com/knowledge_detail/71931.html?spm=a2c4e.11153940.blogcont629079.8.672678a393HdfT

https://blog.csdn.net/nan_cheung/article/details/80290476)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值