当前很难在网络中探测攻击者横向渗透,其中原因有很难获取必要的日志和区别正常与恶意行为。本篇文章介绍通过部署Sysmon并将日志发送到SIEM来探测横向渗透。
工具:
Sysmon + Splunk light
安装配置:
sysmon -i -n
本地查看sysmon事件日志,打开事件查看器
- Microsoft - Windows - Sysmon - Operational
如下图可以看到sysmon记录到powershell.exe进程创建:
将下列配置写入inputs.conf文件:
[WinEventLog://Microsoft-Windows-Sysmon/Operational]
disabled = false
renderXml = true
在splunk中查询当前主机的sysmon日志:
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"
安装Splunk插件(Splunk “Add-on for MicrosoftSysmon”)插件下载地址:https://splunkbase.splunk.com/app/1914/#/overview
下载加压插件并将插件放到:
C:/ProgramFiles/Splunk/etc/apps
重启Splunk Light.
然后在Splunk中可以看到Sysmon事件已经导入:
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"
Sysmon事件ID
在下面的案例中,我们关注如下了两类事件
Event ID 1: Process creation 进程创建
Event ID 3: Network connection 网络连接
检测到攻击者建立了SMB会话:
攻击者使用了类似的命令建立SMB会话:
net use //192.168.1.88
在splunk中搜索Sysmon事件,识别出可疑的SMB会话(445端口):
sourcetype=”XmlWinEventLog:Microsoft-Windows-Sysmon/Operational”192.168.1.90 445 | table _time, EventCode, EventDescription, host, SourceIp,src_port, User, DestinationIp, DestinationPort, Image, ProcessID, Protocol
在被攻击机器上面执行下面的命令,看到攻击者建立的SMB会话:
netstat nao | find"ESTABLISHED"
然后通过分析当前的Windows事件日志,辨别进程的创建/终止,网络连接的建立/销毁来区别正常与异常的SMB会话。
探测攻击者使用PowerShell进行横向渗透。
PowerShell初始化 Windows RemoteManagement (WinRM) 的时候会通过5985和5986端口。在这个例子中,攻击者在被攻击机器上面远程执行脚本,或者连接了受害者机器。
在Splunk中,我们可以通过下面的Sysmon事件来辨识出 恶意的行为,我们可以攻击者使用WinRM
远程连接了被攻击机器的5896端口:
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"5985 OR 5986 | table _time, EventCode, EventDescription, host, SourceIp,src_port, User, DestinationIp, DestinationPort, Image, ProcessID, Protocol
我们可以看到受害者机器上面WinRM Remote PowerShell 进程(wsmprovhost.exe)启动了ping.exe和systeminfo.exe这两个进程,而且我们可以看到执行的命令参数。
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"wsmprovhost.exe | table _time, EventCode, EventDescription, host, Image,ProcessID, ParentProcessId, CommandLine
上面的案例经常会发生在大家的网络环境中,有时候攻击者会使用原生的系统工具来使隐藏恶意行为,所以熟悉自己网络环境中的正常行为非常重要。
*本文原创作者:ArkTeam/w0lf,转载请注明来自FreeBuf