Sysmon工具使用
一、Sysmon简介
日常的应急响应中,经常会遇到一些情况。比如远程上去的时候已经没有了现象,又或是恶意流量每隔几个小时就发一两个包,失分头疼。
Sysmon作为强大轻便的监视和记录工具,可以记录系统的各种活动。通过收集系统上发现的事件,可以了解到恶意程序再操作系统上进行了哪些操作。可选择记录网络连接,包括每个连接的源进程、IP 地址、端口号、主机名和端口名。记录注册表和文件的操作记录。
Sysmon同时具有windows版和linux版。
二、事件记录
- 参考微软官方文档,Sysmon可记录系统发生的事件,并以事件ID分类。在windows操作系统下,在 Vista 和更高版本中,事件存储在
Applications and Services Logs/Microsoft/Windows/Sysmon/Operational
中。而在早期版本系统上,事件被写入系统事件日志,事件时间戳采用 UTC 标准时间,Sysmon主要记录以下日志:
- 在应急响应的情况下,主要抓住:文件、进程、启动项、注册表、计划任务、网络连接、DNS请求这几个方面进行重点分析,能够找出大部分恶意软件的行为并最终解决问题。
三、Sysmon安装
windows下的安装
下载链接:https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
使用CMD或者powershell命令行调用即可。
使用默认设置安装:
sysmon -accepteula -i 安装必须使用 -accepteula 接受EULA
其他参数:
sysmon -accepteula -i config.xml 安装时自定义配置文件
切换配置文件
sysmon -c newconfig.xml
切换到默认配置文件
sysmon -c --
查看所有命令配置选项
sysmon -s
卸载sysmon
sysmon -u
安装sysmon,并指定配置文件成功
可以看到事件ID:22 谷歌浏览器请求googleapi域名
windows 8.1或者server 2012 以下系统安装sysmon失败,可以尝试更新补丁kb4474419之后再安装。
Linux安装
自行编译安装比较容易出现各种报错,可以参考github文档:
https://github.com/Sysinternals/SysmonForLinux/blob/main/INSTALL.md
这里以kali linux 2021为例,使用debian 11的方法进行安装
1. Register Microsoft key and feed
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/11/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
2. Install SysmonForLinux
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install sysmonforlinux
安装成功使用sudo tail -f /var/log/syslog | /opt/sysmon/sysmonLogView
可以查看日志:
四、 配置文件
上一步安装使用的 -i 选项,其实是指定了一个sysmon的事件过滤配置文件。通过调整事件过滤标签可以过滤出自己想要的日志。配置文件的编写这里不作深入讨论,直接使用github上安全大佬的配置文件就可以。
我使用的是这个:
https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml
注:图片来自微软sysmon官网
五、 使用实例
这里选择workminer病毒进行实验,kali linux 出现workminer流量,访问域名:xmr.crypto-pool.fr。
导出Sysmon日志直接搜索域名xmr.crypto-pool.fr,可以直接定位到挖矿进程创建日志,挖矿程序启动路径。
往前可以进一步回溯,看到系统启动项被修改的信息
病毒文件位置,执行的用户
病毒文件最终执行的命令。
六、 关于Sysmon绕过
简单的理解,sysmon是对windows API的操作进行监控,会生成日志。部分情况下如果操作不涉及这些API则有可能会被绕过,sysmon无法生成事件。
举例: 使用python脚本请求恶意域名,
Sysmon只记录了python的操作,DNS请求并无记录。
参考链接:
https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
https://github.com/Sysinternals/SysmonForLinux/blob/main/INSTALL.md
https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml
https://github.com/trustedsec/SysmonCommunityGuide