本文暂时不讨论日志记录被清/关掉的情况

一般情况下,日志被清除会有一个1102事件日志被记录
而且各类安全软件基本在日志被清除的时候也会告警

Windows安全日志分析基础

基础知识

Windows Server 2003以上的日志位置:%SystemRoot%\System32\winevt\logs
一般情况也就是C:\Windows\System32\winevt\Logs

日志扩展名:低版本.evt;2003以上则是.evtx
2003以前的版本主要只有三种日志类型,03以后逐渐增多

分析思路

日志分析主要可以按照以下思路展开

  1. 定位关键线索(一般来自EDR、HIDS、杀软等安全设备的告警,首先把日志和告警关联起来)
  • 木马、恶意dll文件名
  • 可疑进程
  • 失陷IP地址、机器名
  • 已失陷账户
  1. 定位到关键线索位置后,可以从以下几个角度进行分析,从而将线索关联起来
  • 攻击者的最开始的入侵方式
  • 攻击者恶意进程相关用户名
  • 攻击者的入侵时间
  • 攻击者后渗透阶段的进程、创建/删除的文件
  • 是否进行了横向移动、持久化

拓展资料

常见事件ID查询地址
http://www.eventid.net/search.asp
https://www.myeventlog.com/
https://kb.eventtracker.com/

日志分析样本
https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES

Windows日志分析工具

上节提到的都是分析的基础,生产环境一台机器一天日志量基本都是十万起步,噪音非常大,这时候单纯依赖人工进行筛选就很不现实

如果生产环境有日志接收服务器,并购买了splunk、ELK等设备会很方便,如果没有购买,可以使用下面的工具进行分析

FullEventLogView

介绍

比Windows自带eventvwr更强的日志查看器。
下载地址:https://www.nirsoft.net/utils/full_event_log_view.html
特点:免安装,开箱即用,搜索能力强

使用

导入外部日志:文件–选择数据源–选择导出的Windows日志目录
FullEventLogView的使用.png
然后就可以查看日志,对比一下Windows自带的事件查看器

FullEventLogView的查看.png

上图是FullEventLogView的界面,下图是Windows自带的事件查看器界面

Windows自带的事件查看器界面.png
可以通过快速过滤功能,筛选出需要的日志

FullEventLogView筛选日志.png

此外FullEventLogView支持的导出格式比较多: text/csv/json/html/xml

所以可以导出Windows日志到其他格式供其他工具比如Timeline Explorer、Excel分析。下图就是导出为csv格式,并在Timeline Explorer中查看

FullEventLogView结果导入Timeline Explorer.png

Timeline Explorer

背景

现在的安全事件,比如攻防演练一般是一个过程,而不是孤立的事件。在分析安全事件时,基于时间线的工具就可以更方便的帮助分析人员把各类事件线索联系在一起。

介绍

Timeline Explorer是一款SANS推荐的时间线分析工具,也是SANS评选出的2021年年度十大受欢迎开源工具

下载地址:https://www.sans.org/tools/timeline-explorer/
TimelineExplorer.png

使用

支持分析的类型:excel、csv
因此可以使用之前的FullEventLogView导出excel格式的文件供分析,不过excel只能看第一个sheet
双击可以单独查看一行过长影响查看效果的字段
双击可以单独查看一行过长影响查看效果的字段.png

支持即时过滤,复杂过滤,搜索等功能,而且筛选功能是即时生效的,对于时效性要求较高的应急比较友好
即时过滤,复杂过滤,搜索等功能.png

下图是分组聚合功能,对相同类型进行聚合,从而寻找异常迹象
分组聚合功能.png
比如这里快速发现日志清除事件
日志擦除事件.png

相比excel,更适合安全人员根据时间线进行分析,而且基本覆盖了excel的安全场景,缺点就是只能复制、标记,但是不能编辑。

时间线在事件响应过程是比较关键的,因为事件最终报告必然是基于时间线呈现的。如,xx时间,xxx发生了xxx告警,攻击者做了xxx,进行了应急响应xxx

LogonTracer

介绍

可视化解析Windows登录日志,后端数据库和bloodhound一样,用的是Neo4j图数据库。
项目地址:https://github.com/JPCERTCC/LogonTracer

部署

不同于前面的客户端工具,这款工具是BS架构。这里支持采用docker部署,注意机器配置,另外页面没有任何访问控制,不要在公网部署,注意敏感信息泄露
本地环境中20w条日志,8C 32G,最高曾到达20%占用

1
2
3
4
5
6
sudo docker run \
--detach \
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \
-e LTHOSTNAME=<替换成IP> \
-e TZ=Asia/Shanghai \
jpcertcc/docker-logontracer

使用

导出日志

1
2
wevtutil epl Security c:\windows\temp\1.evtx
wevtutil epl Security "/q:*[System [(EventID=4624) or (EventID=4625) or (EventID=4662) or (EventID=4768) or (EventID=4769) or (EventID=4776) or (EventID=4672) or (EventID=4720) or (EventID=4726) or (EventID=4728) or (EventID=4729) or (EventID=4732) or (EventID=4733) or (EventID=4756) or (EventID=4757) or (EventID=4719) or (EventID=5137) or (EventID=5141)]]" c:\windows\temp\1.evtx

访问IP地址即可,没有任何访问控制或者鉴权
上传需要注意选择东八区
!上传日志.png

出现Import Success: You need to reload the web page 方为上传完成,刷新页面
上传日志完成.png

查看登录日志
查看登录日志.png

颜色的含义如下
红色:SYSTEM权限账户
蓝色:标准用户帐户
绿色:主机/IP 地址

左侧可以根据一些预制规则对一些事件进行筛选
通过预制规则筛选.png
左下方的Create Timeline可以创建时间线进行分析

创建时间线分析日志.png

创建事件线分析日志2.png
这点有点像常见的SIEM的UEBA提供的时间线分析页面,

chainsaw

介绍

chainsaw可以快速识别Windows日志中的威胁信息,相比上面的三款工具,这款工具更偏识别威胁本身。
项目地址:https://github.com/countercept/chainsaw/

部署

linux 下需要安装一下GLIBC

1
2
3
4
5
6
7
8
9
yum install gcc -y
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install

然后下载项目执行chainsaw可执行文件即可

使用

1
./chainsaw hunt /root/security.evtx

使用chainsaw狩猎威胁.png

将当前日志映射到sigma检测规则

1
./chainsaw hunt evtx_attack_samples/ --rules sigma_rules/ --mapping mapping_files/sigma-mapping.yml

使用chainsaw将当前日志映射到sigma检测规则.png

总结

小心日志被清掉