勒索病毒防护之RDP远程桌面加固

背景

最近有客户中勒索病毒。导致业务数据丢失,幸好有快照备份,顺利恢复到最近数据。查中毒计算机日志,有大量用户验证失败的记录。猜测对方通过开放在公网上的远程桌面RDP协议,频繁尝试密码,暴力破解远程桌面的用户密码后控制服务器并加密文件勒索。

业务需要,有些服务器远程桌面无法关闭。用户可能随时随地登录,不能加IP范围限制。使用VPN又增加用户登录难度和需要加软硬件配置。网络上也未找到相应的应对工具。

解决方案

本着业务自动化,数据规范化的思路。周末两天,断断续续工作成果如下。

程序主界面

程序运行后添加防火墙规则(红色阻止规则)

程序原理

统计一段期间内(通常是一天),同一IP地址密码验证失败次数,超过设定的阀值,把这个IP加入黑名单,用Windows系统防火墙拦截此IP继续连接验证登录。

程序构成

程序包含,一个绿色版exe和一个ini配置文件。无需安装,双击exe即可运行。ini配置文件记录程序运行的参数。如运行时没有配置文件会在exe文件目录生成初始配置的ini文件。

程序界面说明

点击搜索按钮,搜索指定时间范围内,登录失败的记录。结果显示在下方表格。

黑名单显示可加入防火墙阻止列表的IP地址,已经按照配置文件筛选的结果。如同一ip,一天内密码验证失败超过3次的IP会被加入黑名单。

点击“添加规则”按钮,添加黑名单IP到防火墙阻止规则列表。

如图右上角绿色框选区域,勾选“自动执行”,每间隔10秒,自动执行搜索,并把符合条件的IP加入黑名单,间隔时间在后方设置。

自动执行时,黄色框选区域,小绿灯闪烁,并显示已经执行的次数。

取消勾选“自动执行”,停止程序自动执行。

右上角的帮助,打开本文链接,查看帮助说明。

表头字段说明
  • FailureReason:失败原因
  • Status:状态
  • EventType:事件类型,SuccessAudit是成功验证登录,FailureAudit是验证失败
  • EventCreateTime:事件创建的时间
  • IP:对方IP地址
  • UserName:对方验证的用户名
  • FailureCount:搜索时间范围内,验证失败的次数
  • IpPort:端口
  • EventMessage:事件详细信息
程序配置文件说明

本程序除了界面上的设置,更多设置写在配置文件中,用记事本打开可修改配置。删除配置文件在程序运行时会自动重建,配置值为初始值。

以下是配置说明,可复制“#—–”内区域,保存到配置文件。

#———————————————

#程序设置部分
[Setting]
#规则最后更新时间
LastUpdated=2022-09-18 00:00:00
#过滤器默认过滤事件范围,”Application”应用程序, “Security”安全, “System”系统
Filters=Security
#自动执行刷新时间间隔,单位秒
Refreshtime=60
#程序启动是否自动运行
AutoRun=false
#搜索起始日期天数,0为当天;前一天填-1;正数1为明天,填写1会导致无法搜索出结果。
BeginDate=0
#登录验证失败默认是否勾选
FailureAudit=true
#登录验证成功默认是否勾选
SuccessAudit=false
#扩展事件ID,能让程序搜索更多类型的事件
ExtEventIDs=
#程序运行MAC物理地址,用于识别程序运行机器,不同机器拷贝后首次运行会清空黑名单IP地址。
MacAddress=005056C00001
#是否隐藏帮助链接
HideHelpLink=false

#程序规则部分
[Rules]
#最大失败验证次数
MaxFailures=5

#黑名单IP地址
[BlackIPs]
#程序记录执行后加入防火墙阻止规则列表的黑名单IP地址
IP=

#白名单IP地址
[WhiteList]
#白名单IP地址不会加入防火墙地址列表,多个请逗号分隔
IP=127.0.0.1
UserNames=

#———————————————

程序下载

点击按钮下载,最后更新时间:2022年9月18日 15点46分

其他说明
  1. 本程序针对网络暴力尝试远程桌面密码的特征增加防火墙规则,病毒使用其他方式的破解登录无防范。
  2. 程序适合无人值守的服务器运行使用,Windows10 等系统运行需要以管理员权限运行,否则会报错。
  3. 需要开启Windows防火墙,配合本程序使用。否则无法正常防护。
  4. 程序仅供学习参考,完整防护勒索病毒,请配合其他文件备份方案使用,或联系我们提供数据备份方案。
  5. 需要源码请联系我们,程序未加壳。欢迎交流探讨。

7 条评论

  • dyc086 2023年9月9日 回复

    #程序启动是否自动运行
    这部分的意思是开机自动运行吗?

    • RedLab 2023年9月9日 回复 作者

      这个做了个winform程序,可以添加到开始菜单,需要每次登录下系统。
      理想的状态是改成系统服务,这样启动就自动运行了。
      后面有空了想改成web程序,rdp规则可以设置成仅允许白名单。登录前通过web程序加个白名单IP。

  • dyc086 2023年9月11日 回复

    登录前通过web程序加个白名单IP,这个蛮实用,毕竟都是动态IP。我现在的一个防护措施是黑名单和计算机名。

  • a 2024年5月28日 回复

    IP 这一列是空的,失败的日志也读到了,也没有添加到防火墙,不知是哪里原因

    • RedLab 2024年5月28日 回复 作者

      程序的原理是读取服务器的安全日志,分析日志记录是否有多次密码尝试登录。如果有的话把IP加防火墙的黑名单,来阻止继续尝试密码。如果日志记录不到对方的IP,那这个方法就无效了。
      应该和你服务器本身的网络配置有关,找下网络管理员咨询下。

  • Mason Zhao 2024年6月23日 回复

    点击搜索按钮显示:应用程序尝试执行安全策略不允许的操作。若要授予该应用程序所需的权限,请与系统管理员联系,或使用Microsoft 。NET Framework配置工具。

    • RedLab 2024年6月24日 回复 作者

      试试看右击以管理员权限执行。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

本站提供金蝶、钉钉等开发实施相关技术文章的发布和转载。如有侵权,联系立删(info@zjgkd.cn) 。
Powered by WordPress · 苏ICP备13058196号-11