20174323张加欣-Exp4 恶意代码分析

1.实验内容及软件准备

1.1  实验目标  

  • 监控你自己系统的运行状态,看有没有可疑的程序在运行。
  • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

1.2  实验内容  

系统运行监控:

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

恶意软件分析:

  • 分析该软件在

    • 启动回连
    • 安装到目标机
    • 及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)
  • 该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 连接了哪些外部IP,传输了什么数据(抓包分析)

1.3  软件准备  

  • 为后续实验方便,可以提前下载软件Sysmon、PEID、PE Explorer、Systracer、Wireshark

 

2.系统运行监控

2.1  使用schtasks设置计划任务  

  • 以管理员身份运行cmd。
  • 输入指令schtasks /create /TN netstat4323 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt",创建计划任务netstat4323
  • 在C盘中创建一个netstat4323.bat脚本,文本中输入内容如下:
date /t >> c:\netstat4323.txt
time /t >> c:\netstat4323.txt
netstat -bn >> c:\netstat4323.txt

 

  • 打开任务计划程序,可以看到新创建的这个任务。
  • 双击打开任务,点击操作中的编辑,将“程序或脚本”改为我们创建的netstat4323.bat。
  • 同时,需要取消条件中的“电源”选项;点击常规中的“使用最高权限运行”。

  • 等到脚本执行一定的时间,就可以在netstat4323.txt文件中查看到本机在该时间段内的联网记录。
  • 当记录的数据足够丰富时,将存储的数据通过excel表进行整理,步骤如下:
  1. 新建Excel文件,在查找输入“获取外部数据”,点击”连接”。
  2. 选择记录连接情况的文本netstatlog.txt,点击“导入”。
  3. 进入文件导入向导第一步,选中“分隔符号”,点击“下一步”。
  4. 进入文件导入向导第二步,选中全部分隔符号,点击“下一步”。
  • 数据导入后,再进行下列操作:

  1. 选中要操作的B列,点击上方“插入”的“数据透视图”。
  2. 选择在一个新工作表中生成。
  3. 右侧项目栏“选择要添加到报表的字段”中点击小箭头,取消选择那些没有意义的字段,并将该字段拖动到下方的“轴字段”和“数值”两个区域中。
  • 得到统计图可以进行分析

2.2  使用sysmon工具监控系统  

  • 下载SysinternalsSuite.zip,电脑是64位的系统,选择Sysmon64.exe,在程序的属性中查看版本信息。
  • 在Sysmon所在的目录下创建相应的配置文件 sysmon20174323.xml ,配置文件内容如下:
<Sysmon schemaversion="10.42">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <ProcessCreate onmatch="exclude">     
      <Image condition="end with">chrome.exe</Image> 
      <Image condition="end with">firefox.exe</Image>
    </ProcessCreate>
 
    <ProcessCreate onmatch="include"> 
      <ParentImage condition="end with">cmd.exe</ParentImage>
    </ProcessCreate>
 
    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.exe</Image>
    </FileCreateTime>
     
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>
 
    <NetworkConnect onmatch="include">     
      <DestinationPort condition="is">80</DestinationPort>      
      <DestinationPort condition="is">443</DestinationPort>    
    </NetworkConnect>
 
    <CreateRemoteThread onmatch="include">
      <TargetImage condition="end with">explorer.exe</TargetImage>
      <TargetImage condition="end with">svchost.exe</TargetImage>
      <TargetImage condition="end with">firefox.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>

  

  • 以管理员身份打开命令行,使用指令 Sysmon.exe -i C:\sysmon20174323.xml 安装 sysmon。
  • 进入事件查看器,选择“应用程序和服务日志”,查找“Microsoft>Windows>Sysmon>Operational"。
  • 可以看到配置文件记录的第一个日志是打开C:\sysmon20174323.xml配置文件。
  • 运行实验三的后门程序。
  • 进入事件查看器,可以找到该后门程序的运行记录。(由于实验三进行了加壳处理,所以许多信息都是“?”)
  • 接着还有以下事件。

3.恶意软件分析

3.1  静态分析-使用VirusTotal分析恶意软件  

  • 运用在实验三中我们使用过的VirusTotal,将后门程序上传到VirusTotal,可得以下详细信息。

3.2  静态分析-使用PEiD分析恶意软件  

  • 将实验三中加壳后的文件使用PEiD进行扫描,首先扫描未加壳的程序。

  • 再扫描加过压缩壳与加密壳的程序。

3.3  静态分析-使用PE Explorer分析恶意软件  

  • 打开软件,使用其引入功能查看文件引用的动态链接库。
  • 经过查询"KERNEL32.dll"控制着系统的内存管理、数据的输入输出操作和中断处理,"msvcrt.dll"是微软编译软件的函数库。
    通过分析生成的后门程序都会使用"KERNEL32.dll",所以如果有陌生软件使用"KERNEL32.dll"则应当提高警惕。

3.4  动态分析-使用wireshark对后门软件进行分析  

  • 回连完成后结束捕获,并把过滤规则设置为ip.addr == 192.168.145.128 
  • ping通时的ICMP包。
  • MSF 反弹连接时的TCP包。
  • dir时查看包,返回的是TCP三次握手的包。
  • 其余的回连包。

3.5  动态分析-使用Systracer进行分析  

  • 下载安装Systracer,之后存储如下快照:

  1. 快照一:未移植后门程序,保存为Snapshot #1
  2. 快照二:移植后门程序,保存为Snapshot #2
  3. 快照三:运行后门程序并在kali中实现回连,保存为Snapshot #3
  4. 快照四:在kali中使用dir指令,保存为Snapshot #4
  5. 快照五:在kali中使用record_mic指令,保存为Snapshot #5
  • 5次快照完成。
  • 首先对比快照一与快照二,可以看得出增加了后门文件20174323exp4.exe

  • 对比快照二与快照三,可以看到后门启动后快照三中后门程序20174323exp4.exe加入了正在运行的程序。

  • 同时还多了许多的文件,均是启动后门程序后增加的dll文件。
  • 对比快照三与快照四,可以看到对key_local_machine根键中的内容进行了修改,KEY_LOCAL_MACHINE保存了注册表里的所有与这台计算机有关的配置信息,执行dir会改变该注册表的信息。

  • 对比快照三与快照五,可以看到kali执行record_mic录音指令后,后门程序增加了audioses.dll,这是与声卡驱动有关的动态链接库,可见该后门程序启动了主机声卡。

 

4.问题回答

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

  • 使用本实验初的方法,使用schtasks指令设置一个计划任务,观察一天左右的联网情况,对其进行分析查看是否有可疑的联网程序
  • 使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件
  • 使用Process Explorer,查看系统中是否存在可疑进程
  • 使用Process Monitor,监视文件系统、注册表、进程/线程的活动
  • 使用Systracer拍摄几个时间点的快照,对比不同时间的快照,查看是否有可疑的增删注册表、启动项,的行为。
  • 使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输

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

  • 最简单的方法,使用VirusTotal分析恶意软件,上传后查看detail
  • 使用PEiD查看程序是否加壳,加的什么壳
  • 使用PE Explorer查看其引用的动态链接库
  • 使用wireshark查看他在运行时传输信息的方式以及内容、端口以及目的地址是哪里
  • 使用Systracer工具拍摄快照,查看其对注册表和文件的修改

5.实验心得

  • 本次实验比之前的简单一些,使用了数款用于检测恶意代码的指令或是软件,例如SysTracer、SysinternalsSuite、ProceMonitor等。这些工具都能很好地辅助我们对主机进行监控,以发现恶意行为并进行及时处理。虽然恶意代码的分析工具多种多样、日趋完善,但作为计算机用户的我们更不能掉以轻心,而应该时刻保持警惕。要时常对电脑的行为进行监控,不要只寄希望于杀毒软件,因为杀毒与免杀的博弈关系会使二者共同发展,并不是所有的恶意代码都会被杀毒软件拒之门外。
posted @ 2020-04-17 21:02  张加欣  阅读(78)  评论(0编辑  收藏