代码改变世界

20154314 王儒君 Exp4 恶意代码分析

2018-04-12 10:34  20154314王儒君  阅读(564)  评论(0)    收藏  举报

20154314 王儒君 Exp4 恶意代码分析

  1.实践内容

  目录

  • 使用schtasks指令监控系统运行
  • 使用sysmon工具监控系统运行
  • 使用virscan分析恶意软件
  • 使用systracer工具分析恶意软件
  • 使用wireshark分析恶意软件回连情况
  • 使用Process Monitor分析恶意软件
  • 使用Process Explorer分析恶意软件
  • 使用PEiD分析恶意软件

  1.1使用schtasks指令监控系统运行

    先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到netstatlog.txt文件中,netstatlog.bat内容为:

 

   date /t >> c:\netstatlog.txt      

   time /t >> c:\netstatlog.txt

   netstat -bn >> c:\netstatlog.txt

    这样可以记录日期,时间。

    打开Windows下命令提示符,输入指令schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"指令创建一个每隔五分钟记录计算机联网情况的任务

    似乎不能完全用命令行的方式来完成任务的设置,因为还要勾选“使用最高权限运行”。

    

    在之前的许多失败的尝试中,发现了一个主体对netstat.exe的权限竟然比管理员还要高(所有者是更改过的)。

    

 

 

    之后查看一下netstatlog.txt文件

     

    这是在正常使用情况下记录的,进程基本是正常联网的应用。

    用excel分析,数据→自文本。

    

    搞了半天终于会一点数据透视了,进程联网次数:

    

    绝大多数都认识,battle.net,agent,HS开头的都是战网客户端及子进程等。

    svchost.exe是是一个属于微软Windows操作系统的系统程序,但记录其为IP52.230.84.217,在新加坡,为什么是新加坡呢?

    关于wpnservice,找到以下信息:

    

    既然是微软的,应该安全吧。

    diagtrack,任务管理器中可找到

    

    根据描述把它在服务中停止了。

    

    sass.exe是一个系统重要进程,用于微软Windows系统的安全机制。

    至此,根据进程名全部排查完毕。

    根据目的IP:

    

    第一个是本机地址。

    第二个是美国的IP,根据图表:

    

    

    

    想不到该程序还会直接与美国通信,但是好像没有成功建立连接过。

    第三个IP定位到上海市浦东新区 电信,1119是agent.exe使用的端口,这说明该程序的服务器在上海。

    netstat就先学习到这里吧

  1.2使用sysmon工具监控系统运行

    配置文件内容就不贴了,创建配置文件后,使用指令安装

    S:\sysmon\Sysmon64.exe -i S:\sysmon\sysmoncfg.txt

    

    这里报错说4.00的版本不能用3.10的代码,那就直接把代码中的版本改成4.00吧。

    

    这样做很OK。

    

    然后打开事件查看器,默认在”应用程序和服务日志/Microsoft/Windows/Sysmon/Operational”里能找到日志记录。

    分别找出要求的三种类型吧。

    ①进程创建(Description有描述,搜狗拼音输入法工具)

    

    ②文件创建时间(chrome的临时文件)

    

    ③网络链接(这是个steam的)

    

  1.3使用virscan分析恶意软件

    这里记录了回弹连接的网络行为

    

 

    注册表行为应该是shellcode在起作用。

 

 

 

    

    

  1.4使用systracer工具分析恶意软件

    使用systracer工具建立了4个快照,分别是在主机中恶意软件未运行时、恶意软件启动时、回连成功时、恶意软件执行dir命令进行查看时:

    

    比较#1和#2来看。

    

 

    Explorer.exe应该是恶意程序的伪装,因为我的浏览器是chrome,平时不用Explorer。可以看到传送了大量数据给虚拟机。

    比较#2和#3来看,建立了主机与虚拟机的链接

    

    比较#3和#4来看,区别是使用了dir,这体现在:

    

  1.5使用wireshark分析恶意软件回连情况

    需要选中Vmnet8接口

    

    然后在回弹前开启捕获,使用wireshark进行抓包后可以看到,其先进行了TCP的三次握手,之后再进行数据的传输,如图所示,带有PSH,ACK的包传送的便是执行相关操作指令时所传输的数据包:

    

  1.6使用Process Monitor分析恶意软件

    Process Monitor一款系统进程监视软件,有了Process Monitor,使用者就可以对系统中的任何文件和注册表操作同时进行监视和记录。

    可以看到,绝大多数操作都是之前的sysmon进行的。

    

    想到监听会增加系统开销,做到这里赶紧使用指令 S:\sysmon\Sysmon64.exe -u 把系统监听关闭了。

    在使用本程序前难以想象程序注册表的操作如此频繁。

    Process Monitor似乎不能刷新,在启动恶意程序后重新打开Process Monitor。

    

    找不到可疑操作,不过这倒是和systracer的结果吻合:我使用的恶意程序似乎不修改注册表。

  1.7使用Process Explorer分析恶意软件

    GUI比Process Monitor好看一些,但显得比较乱。

    

    运行恶意程序回弹后

    

    双击打开,到TCP/IP界面,端口号4814是上次实验验收时要求学号+500时生成的。

    

    以及其调用的ntdll.dll库,该库中所包含的函数与对象的安全性,注册表的操控以及事件日志有关:

    

  1.8使用PEiD分析恶意软件

    

    

  2.报告内容

   2.1实验后回答问题

  (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

    联网记录可用netstat设置计划任务监控;

    日志可用sysmon监控。

  (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

    可用virscan分析结构,确认是否为病毒。

    systracer可以通过快照开比较运行程序带来的变化,但缺点是需要运行程序。

    wireshark可抓包分析网络链接。

    process monitor可监视、记录文件和注册表。

    process explorer可查看远程主机的IP,端口号,以及进程调用的库。

    PEiD可分析壳.

   2.2实验总结与体会

    本次实验简单来说,是学会亡羊补牢。但当通过这种方式发现恶意程序的时候,恶意程序应该已经实现了它的目的。

    虽然通过这两次的实验感觉攻要比防容易,但通过本次实验感觉防守还是有许多功能强大的工具可用的,并且很多还是轻量级。

    遇到问题,分析问题,解决问题的过程也是令人愉快的,但万万不能少了最后一步,解决问题。