powershell 登录 rdp_无来源IP的RDP爆破防御对策小记

好久不见(~ ̄▽ ̄)~,水文啦,主要是记录~~

前言

本是风和日丽的一天,闲得无聊,鬼使神差的打开了windows的事件查看器。

诶!我不是换了rdp(远程桌面连接)的默认端口了吗,竟然还这么多登录日志,得~ 换端口果然是自欺欺人的事情。

被爆破了。再仔细一看事件中竟然没有记录ip。那么,开搞吧。640?wx_fmt=png

安全事件分析

先说下我的环境Windows Server 2012 R2,除了更换了3389的端口以外,没有做任何安全配置。

其实第一眼,看到日志,我本以为是SMB(445),NETBIOS(135,139)这些服务的锅,因为安全日志的事件ID为4625和4776。

前者的LogonProcessNameNtLmSsp

后者PackageNameMICROSOFT_AUTHENTICATION_PACKAGE_V1_0

通过上面两个关键词,查到许多NtLm攻击相关的文章(后面发现其实和这个没关系...)

我就先从SMB安全配置入手(绝招是直接关闭SMB,简单方便,读者可不做下面的操作。但我想探究这次的攻击究竟是怎样的)。

关闭漏洞满天飞的SMBv1

1、检查SMBv1状态的方法:

在Powershell中运行命令:

Get-SmbServerConfiguration | Select EnableSMB1Protocol

如果打印“Ture”,则说明SMBv1为开启状态。

2、关闭SMBv1的方法

在power shell中运行命令:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

更多参考信息见微软文档[1]

启用SMB签名

又因Freebuf的一篇Windows SMB请求重放攻击分析[2],我决定再启用SMB签名

将注册表项RequireSecuritySignature设置为 1 可以启用 SMB 签名。

可用powershell执行

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" RequireSecureNegotiate -Value 1 –Force

通过策略组配置NTLM相关安全选项

本地组策略->计算机配置->Windows设置->安全设置->安全选项中一些配置进行了修改。例如:

  1. 网络安全: 限制 NTLM: 审核传入 NTLM 流量 设置为 为所有帐户启用审核
  2. 网络访问: 不允许匿名枚举 SAM 帐户 设置为启用

上述设置,我也不是非常清楚。这里就不展开了。

注意: 错误的修改,可能会导致自身无法连接到服务器。

具体可看这篇文章保护内网安全之提高Windows AD安全性

爆破依旧

进行上述的修改后,安全事件日志还是哗啦啦的警告~ಠ_ಠ

然后我一查看云服务器的安全组,我其实根本都没有开放445,139这类的端口。

然后我注意到了在应用程序与服务日志中的Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational事件日志。

640?wx_fmt=png

将信息级别的日志筛除后,得到了上图的结果。

嗐!原来还是RDP爆破啊。并且有来源IP了,来,继续。

RDP爆破防御

640?wx_fmt=png

简单有效-策略组限制

通过上图大佬的总结,我优先使用了策略组进行配置 - 账户锁定策略。

这个配置也比较简单。运行打开gpedit.msc,参考下图配置即可。

640?wx_fmt=png

但是配置后,即使等了一段时间后还是有大量的不同IP在进行爆破尝试。让我甚至一度怀疑这里的IP都是通过什么漏洞伪造的。

并且因为使用了云服务商的安全组策略,为避免多余的麻烦

没有开启windows防火墙,所以可能无法成功拦截?所以我只好继续~

Wail2ban

Wail2ban,linux有个很好用的工具,叫做fail2ban

wail2ban算是它的windows版本,做的事情大致相同,从日志(事件)匹配并提取ip,进行封禁。

使用方式参考:Windows Server Wail2ban and Folder Sharing not working together - Error 4625 no IP[3]

使用还是比较简单的。

  1. 按照上面的介绍,需要在wail2ban.ps1增加为$EventTypes增加一个事件

    即修改

    $EventTypes = "Application,Security,System,Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational"

    $CHECK_COUNT用来控制尝试次数,默认为5

  2. 然后在wail2ban_config.ini中添加

    [Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational]140=RDP Logins139=RDP Logins With Tls1.0

    最后的139事件在后面会用到。

  3. 开启windows防火墙

    注意开启防火墙时,如果不是默认3389的默认端口的话

    需要手动添加入站规则。

**配置好后的效果如下: **

640?wx_fmt=png

这样一目了然的发现,还真的都是不一样的IP。

(并且似乎开启防火墙后,策略组的配置也生效了)

数据包分析

其实到此为止已经差不多了

但是我想肯定还是服务器有什么地方配置的脆弱了,才会受到此次攻击。

我就想看看对方的RDP爆破和我正常的RDP连接有什么区别~

恩,Wireshark安装!

因为用到了TLS层,我后面甚至还做了解密(不做也可以)。

实现方式见如何使用Wireshark解密Windows远程桌面(RDP)协议[4]

我的捕获过滤器是 port 端口号

显示过滤器为not ip.addr eq 本机ip

爆破数据包:640?wx_fmt=png

正常登陆数据包:640?wx_fmt=png

可以看到他协议用的是Tlsv1, 而我自身使用的是Tlsv1.2。

Tls 1.0也不少问题,那么简单了,赶紧禁用Tls1.0吧。

禁用TLS1.0

  1. 策略组强制使用TLS(不好使)

    在策略组 计算机配置 \windows 组件 \ 远程桌面服务桌面会话安全中设置远程 (RDP) 连接要求使用特定的安全层为 TLS1.0。

    你可能很疑惑...说好的不用1.0了,怎么你还强制1.0了。

    这个好像是微软的显示错误T_T,不过经我测试,的确也不好使...

    情况说明见微软文档[5]

  2. 通过注册表禁用Tls1.0

    HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server

    项中新建一个名为Enabled的DWORD,值设置为0。

    为了避免不必要的麻烦,设置好后我进行了重启。

效果

禁用TLS1.0后,再去查看事件

发现已经由原先的140事件,变为了139事件

描述为服务器安全层在协议流中检测到一个错误(0x80090304),并中断了客户端连接(客户端 IP:45.145.64.5)。

攻击方的一次尝试也不能成功了!


wail2ban也可以继续开着,并且做一些配置,防御更多的爆破事件。

最后我也照猫画虎的来一次威胁情报IOC

下面的ip是本次攻击事件中出现的

193.106.30.234, 185.202.1.110, 113.65.153.144, 222.187.245.198, 202.146.219.27, 47.107.182.101, 43.248.186.80, 112.25.212.219, 111.40.223.9, 113.62.177.19, 185.202.1.105, 118.180.214.5, 37.71.141.162, 193.165.191.59, 45.145.67.173, 185.202.1.106, 185.202.1.113, 45.145.64.5, 185.202.1.103, 185.202.1.111, 106.52.138.52, 185.202.1.107, 193.106.29.82, 60.10.62.235, 121.151.155.170, 45.145.66.157, 185.202.1.148, 219.139.151.18, 223.78.106.25, 183.110.79.147, 58.120.225.117, 60.6.224.242, 185.202.1.109, 185.202.0.117, 117.146.37.90, 176.96.82.182, 220.179.227.205, 118.163.153.6, 60.167.165.166, 89.248.168.221, 58.120.225.122, 112.175.114.17, 218.6.9.84, 61.180.90.12, 223.99.164.133, 185.202.1.100, 185.202.1.96, 111.9.153.42, 60.22.91.240, 106.52.170.87, 185.202.1.104, 113.12.64.58, 36.99.161.37, 211.47.236.220, 185.202.1.102, 175.16.218.50, 180.168.74.70, 87.251.75.176, 222.178.239.184, 124.116.171.30, 142.11.249.99, 195.54.160.99

参考链接

Windows 2016 服务器安全配置和加固[6]

windows 系统简单加固[7]

参考资料

[1]

微软文档: https://docs.microsoft.com/zh-cn/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3

[2]

Windows SMB请求重放攻击分析: https://www.freebuf.com/articles/system/176206.html

[3]

Windows Server Wail2ban and Folder Sharing not working together - Error 4625 no IP: https://serverfault.com/questions/822206/windows-server-wail2ban-and-folder-sharing-not-working-together-error-4625-no

[4]

如何使用Wireshark解密Windows远程桌面(RDP)协议: https://forum.90sec.com/t/topic/552

[5]

微软文档: https://support.microsoft.com/zh-cn/help/3097192/incorrect-tls-is-displayed-when-you-use-rdp-with-ssl-encryption

[6]

Windows 2016 服务器安全配置和加固: https://www.javatang.com/archives/2018/11/13/33232615.html#139Netbios4455355LLMNR

[7]

windows 系统简单加固: https://www.jianshu.com/p/103a9f3177e5

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用和引用,powershell_shortcut_miniconda是指使用miniconda来创建一个powershell快捷方式。Miniconda是一个轻量级的Anaconda版本,可以用来创建和管理虚拟环境以及安装Python和其他软件包。要创建powershell_shortcut_miniconda,你需要按照以下步骤进行操作: 1. 首先,从conda官网下载并安装Miniconda。 2. 安装完成后,打开powershell终端。 3. 使用以下命令创建一个新的虚拟环境: ``` conda create -n 虚拟环境名称 python=3.6 ``` 在这个命令中,你可以指定任何Python版本,从2.7到3.10都可以。 4. 创建成功后,使用以下命令激活虚拟环境: ``` conda activate 虚拟环境名称 ``` 5. 现在你可以在powershell中使用所创建的虚拟环境了。你可以安装所需的Python包,执行Python代码等。 注意:powershell_shortcut_miniconda是一个自定义的名称,你可以根据自己的需求来命名。 希望这个回答能够帮到你!如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【入门基础】conda+jupyter玩转数据科学环境搭建](https://blog.csdn.net/fengdu78/article/details/105337419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Miniconda安装指南(通过虚拟环境管理多版本Python)](https://blog.csdn.net/LILI00000/article/details/124415516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值