一款用于可视化分析恶意登录Windows系统的安全日志取证工具

Windows安全事件日志中详细记录了是谁在什么时候通过什么手段登录到系统或者注销了登录,通过分析该日志可以详细了解服务器的安全情况以及必要时的取证工作。

传统的查看Windows安全日志方法是通过系统自带的“事件查看器”,操作方法如下:

1、右键“我的电脑”,选择管理,打开“事件查看器”;

或者按下Windows键+R的组合键,在运行窗口中输入“eventvwr.msc”直接打开“事件查看器”。

2、在“事件查看器”窗口,展开Windows日志,选择“安全”,登录日志就显示出来了。

3、接下来你会在窗口中看到一个列表,包括 “关键字”、 “日期和时间”、“来源”、“事件ID”、“任务类别”。

4、在这里我们可以筛选“事件ID”进行事件分类查看。按不同的事件ID来分析登录情况。

以上是我们传统的查看Windows系统安全日志的方法,通过以上方法可以看出我们需要很大工作量才能把所有的日志一条一条的看完,非常不方便,不利于我们进行取证等

那么有没有什么方法或工具可以帮助我们自动处理这些日志,并帮助我们分析出来想要的数据,帮助我们进行取证呢?

答案是:YES!有的,下面我们就进入今天的主题,在这里给大家分享一款可以自动帮助我们分析Windows安全日志的工具,并且开源免费的。

工具简介:

LogonTracer:是一款用于可视化分析Windows安全事件日志寻找恶意登录的工具。它会将登录相关事件中找到的主机名(或IP地址)和帐户名称关联起来,并将其以图形化的方式展现出来。通过这种方式,可以看到哪个帐户中发生过登录尝试以及哪个主机被使用。基于此研究,该工具可以可视化与Windows登录相关的下列事件ID。

4624:登录成功

4625:登录失败

4768:Kerberos身份验证(TGT请求)

4769:Kerberos服务票据(ST请求)

4776:NTLM身份验证

4672:分配特殊权限

LogonTracer使用 PageRank和ChangeFinder从事件日志中检测恶意主机和帐户。

使用LogonTracer,也可以按时间顺序显示事件日志。

首先LogonTracer是基于Python编写的,并使用Neo4j作为其数据库,同时还使用了Neo4jJavaScript driver、Cytoscape和Flask,若想在自己电脑上安装以上环境配置起来还是挺麻烦的,并且也要有很多坑需要爬。那我们该怎样快速安装并使用呢?其实这个工具已经自带了Docker镜像了,我们只要安装好Docker就可以了。

安装Docker的方法大家可以搜索一下,网上很多这里就不讲了,这里主要讲下这个工具有几个“坑”是需要“爬”以及使用效果。

环境搭建:

系统:kali linux

IP地址:10.10.110.112

安装软件:Docker

日志文件:Windows的evtx格式的安全日志

分析工具:LogonTracer

1、打开linux终端后启动Docker:

root@killer:~#service docker start

2、拉取镜像:

root@killer:~#docker pull jpcertcc/docker-logontracer

3、运行镜像:

root@killer:~#docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080-e LTHOSTNAME=10.10.110.112jpcertcc/docker-logontracer

提示:以上红色IP地址换成自己的本机IP地址。

4、这一步最为关键,是爬坑的开始,为什么说有坑呢?通过上述3步之后LogonTracer的Docker环境已经搭建好并正常运行了,此时你可以通过浏览器访问http://[IP]:8080看到Web页面,打开的页面中有几个JS文件是调用的远程网址,这些网址由于一些原因在国内无法正常访问,所以,在通过浏览器访问首页后,点击“Upload Event Log”按钮是无反应的,那就无法上传日志文件,这就是这一步要解决的坑。

解决这个坑要对2处JS进行修改:

第一处:

https://cdn.rawgit.com/neo4j/neo4j-javascript-driver/1.4.1/lib/browser/neo4j-web.min.js

执行命令:

root@killer:~#vim /etc/hosts

然后在文件中增加如下图最后一行;

第二处:

进入Docker镜像编辑index.html模板文件,

执行命令:

root@killer:~#docker exec -it349d/bin/sh(备注:红色349d为镜像名)

进入Docker镜像的终端内执行命令,编辑模板文件:

/var/lib/neo4j# vi /usr/local/src/LogonTracer/templates/index.html

找到

https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js

将该网址的改为

https://ajax.loli.net/ajax/libs/jquery/3.2.1/jquery.min.js

这个时候就可以了。

5、打开http://自己的ip:7474,执行以下命令删除原来的neo4j的节点信息:

输入以下命令:

MATCH(n)

OPTIONALMATCH (n)-[r]-()

DELETEn,r

点击右侧的第三个按钮执行,即可。如果不执行这步,后面上传日志之后可能会导致浏览器响应。

6、重启Docker镜像:

root@killer:~#docker restart349d

备注:红色349d为镜像名

7、访问前台http://本机ip地址:8080,点击“UploadEvent Log”上传保存在本机的evtx格式或者XML格式的Windows安全日志文件,

点击“Browse”选择日志文件,然后点击“Upload”,进行上传,

上传成功之后,按提示刷新下页面,就可以查看分析结果了!

8、上传日志之后的前台界面:

图 所有登录分析

图 RDL login登录分析结果

图 按时间排序的日志事件

图 LogonTracer主界面

上图左侧为一些筛选按钮,右侧为按排行列出的系统用户和登录过服务器的电脑名或IP地址。

最顶部是搜索区,可以自定义搜索选项,进行日志分析查找。

总结:通过这个工具可以很直观的看出有哪些用户登录过服务器,以及有没有隐藏恶意用户或其他用户,他们是通过什么方式进行登录的。可以分析出来哪些恶意主机成功登录了服务器,哪些没有成功登录。通过Timeline 可以按时间顺序显示事件日志,方便我们对服务器进行取证。

注意:上传的日志文件为Windows的evtx格式的系统安全日志。

在工具中还可以看出登录的LogonType,用于判断登录到服务器的用户使用的登录类型:

常见的登录类型有2和3,“2”表示用键盘和鼠标登录,而“3”意味着有人通过网络远程登录。

作者:JIN编辑:信大天瑞 EMLab攻防实验室

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180709G17CAQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券