好久不见(~ ̄▽ ̄)~,水文啦,主要是记录~~
前言
本是风和日丽的一天,闲得无聊,鬼使神差的打开了windows的事件查看器。
诶!我不是换了rdp(远程桌面连接)的默认端口了吗,竟然还这么多登录日志,得~ 换端口果然是自欺欺人的事情。
被爆破了。再仔细一看事件中竟然没有记录ip。那么,开搞吧。
安全事件分析
先说下我的环境Windows Server 2012 R2,除了更换了3389的端口以外,没有做任何安全配置。
其实第一眼,看到日志,我本以为是SMB(445),NETBIOS(135,139)这些服务的锅,因为安全日志的事件ID为4625和4776。
前者的LogonProcessName
为NtLmSsp
后者PackageName
为MICROSOFT_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设置->安全设置->安全选项
中一些配置进行了修改。例如:
网络安全: 限制 NTLM: 审核传入 NTLM 流量
设置为为所有帐户启用审核
网络访问: 不允许匿名枚举 SAM 帐户
设置为启用
上述设置,我也不是非常清楚。这里就不展开了。
注意: 错误的修改,可能会导致自身无法连接到服务器。
具体可看这篇文章保护内网安全之提高Windows AD安全性
爆破依旧
进行上述的修改后,安全事件日志还是哗啦啦的警告~ಠ_ಠ
然后我一查看云服务器的安全组,我其实根本都没有开放445,139这类的端口。
然后我注意到了在应用程序与服务日志
中的Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
事件日志。
将信息级别的日志筛除后,得到了上图的结果。
嗐!原来还是RDP爆破啊。并且有来源IP了,来,继续。
RDP爆破防御
简单有效-策略组限制
通过上图大佬的总结,我优先使用了策略组进行配置 - 账户锁定策略。
这个配置也比较简单。运行打开gpedit.msc
,参考下图配置即可。
但是配置后,即使等了一段时间后还是有大量的不同IP在进行爆破尝试。让我甚至一度怀疑这里的IP都是通过什么漏洞伪造的。
并且因为使用了云服务商的安全组策略,为避免多余的麻烦
没有开启windows防火墙,所以可能无法成功拦截?所以我只好继续~
Wail2ban
Wail2ban,linux有个很好用的工具,叫做fail2ban
wail2ban算是它的windows版本,做的事情大致相同,从日志(事件)匹配并提取ip,进行封禁。
使用方式参考:Windows Server Wail2ban and Folder Sharing not working together - Error 4625 no IP[3]
使用还是比较简单的。
按照上面的介绍,需要在wail2ban.ps1增加为$EventTypes增加一个事件
即修改
$EventTypes = "Application,Security,System,Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational"
$CHECK_COUNT
用来控制尝试次数,默认为5然后在wail2ban_config.ini中添加
[Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational]140=RDP Logins139=RDP Logins With Tls1.0
最后的139事件在后面会用到。
开启windows防火墙
注意开启防火墙时,如果不是默认3389的默认端口的话
需要手动添加入站规则。
**配置好后的效果如下: **
这样一目了然的发现,还真的都是不一样的IP。
(并且似乎开启防火墙后,策略组的配置也生效了)
数据包分析
其实到此为止已经差不多了
但是我想肯定还是服务器有什么地方配置的脆弱了,才会受到此次攻击。
我就想看看对方的RDP爆破和我正常的RDP连接有什么区别~
恩,Wireshark安装!
因为用到了TLS层,我后面甚至还做了解密(不做也可以)。
实现方式见如何使用Wireshark解密Windows远程桌面(RDP)协议[4]
我的捕获过滤器是 port 端口号
显示过滤器为not ip.addr eq 本机ip
爆破数据包:
正常登陆数据包:
可以看到他协议用的是Tlsv1, 而我自身使用的是Tlsv1.2。
Tls 1.0也不少问题,那么简单了,赶紧禁用Tls1.0吧。
禁用TLS1.0
策略组强制使用TLS(不好使)
在策略组
计算机配置 \windows 组件 \ 远程桌面服务桌面会话安全
中设置远程 (RDP) 连接要求使用特定的安全层
为 TLS1.0。你可能很疑惑...说好的不用1.0了,怎么你还强制1.0了。
这个好像是微软的显示错误T_T,不过经我测试,的确也不好使...
情况说明见微软文档[5]
通过注册表禁用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