2019-2020-1 20175313张黎仙《网络对抗技术》Exp4 恶意代码分析

1、实验目标

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

2、预备知识

恶意代码概念html

  • 是经过存储介质和网络进行传播,从一台计算机系统到另外一台计算机系统,未经受权破坏计算机系统完整性的程序或代码
  • 最多见的恶意代码有病毒、木马、蠕虫、后门、僵尸网络、Rootkit等
  • 恶意代码都有如下共同特征:
  • 恶意的目的
  • 自己是计算机程序
  • 经过执行发生做用

更多详情请参见恶意代码linux

Schtasks的使用git

C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
  • TN(TaskName)任务名,这里为netatat
  • sc(ScheduleType)计时方式,这里为MINUTE,表示以分钟为单位
  • MO(Modifier)指定任务在其计划类型内运行的频率,这里为5,结合上面的sc,表示每5分钟执行一次
  • TR(TaskRun)要运行的指令,这里为cmd /c netstat -bn > c:\netstatlog.txt

更多详情请参见Schtasks官方网站chrome

Sysmon的使用shell

  • Sysmon是微软Sysinternals套件中的一个工具。能够监控几乎全部的重要操做。
  • 基本操做能够描述为三步:
  1. 肯定要监控的目标
  2. 写好配置文件
  3. 启动sysmon

而后就能够在事件查看器里找到日志了api

  • Sysmon.exe -i <configfile>:Sysmon安装
  • Sysmon.exe -c <configfile>:Sysmon配置
  • Sysmon.exe -u [force]:Sysmon卸载

更多详情请参见Sysmon官方网站浏览器

3、实验内容

任务一:系统运行监控

(1)使用如计划任务,每隔一分钟记录本身的电脑有哪些程序在联网,链接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出全部连网的程序,连了哪里,大约干了什么(不抓包的状况下只能猜),你以为它这么干合适不。若是想进一步分析的,能够有针对性的抓包。

  • 使用schtasks /create /TN netstat5313 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat5313.txt"命令建立计划任务netstat5313安全

  • 在C盘要目录下建一个文件c:\netstat5313.bat,内容以下:网络

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

  • 打开计算机管理-任务计划程序,能够看到咱们新建立的任务:

  • 双击netstat5313,点击操做->编辑,将程序或脚本改成咱们建立的netstat5313.bat批处理文件,参数可选项为空,常规中勾选使用最高权限运行

  • 对该任务右键点击运行,可在netstat5313.bat目录下看到netstat5313.txt,打开就可看到每隔一分钟被输到这里的联网数据。

  • 一段时间后,打开Excel表格,选择数据->导入数据->选择数据源,点击肯定。

  • 原始数据类型中选择分隔符号,勾选全部分隔符号便可

  • 选择插入->数据透视图,选择咱们要分析的那一列,并默认位置新表格,点击肯定

  • 在字段中去除不须要的字段

  • 该字段拖动到下方的轴和值两个区域中

  • 最后,获得咱们须要的联网信息统计图

  • 从图中可知:
  • 使用最多的是youdao.exe,由于我正在写博客/(ㄒoㄒ)/~~
  • chrome.exe、wps.exe、wpscenter.exe这些均为正常的
  • WpnService和WpnUserService至关于一个软件检测版本更新同样有更新就会自动检测到自动更新,也是正常的
  • 值得注意的是出现了SearchUI.exe和svchost.exe猜想个人电脑里应该是出现了恶意代码。。。

(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控本身主机的重点事可疑行为。

  1. 肯定要监控的目标
  • 进程建立ProcessCreate
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
  • 进程建立时间FileCreatTime
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
  • 网络链接NetworkConnect
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
  • 远程线程建立CreateRemoteThread
过滤事件选项:
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
  1. 写好配置文件
<Sysmon schemaversion="3.10">
  <!-- 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> 
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
    </FileCreateTime>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.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">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>
  • exclude至关于白名单,不用记录;include至关于黑名单
  • Image condition根据本身使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,写在exclude中就是不记录由谷歌浏览器建立的进程
  • 进程建立时间相似,也是不建立浏览器建立进程的时间
  • 网络链接过滤掉了浏览器的网络链接、源IP为127.0.0.1(localhost)的网络链接和目的端口为137的链接服务,且查看目的端口为80(http)和443(https)的网络链接。(137端口的主要做用是在局域网中提供计算机的名字或IP地址查询服务,通常安装了NetBIOS协议后,该端口会自动处于开放状态)
  • 远程线程建立记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
    • explorer.exe是Windows程序管理器或者文件资源管理器
    • svchost.exe是一个属于微软Windows操做系统的系统程序,是从动态连接库 (DLL) 中运行的服务的通用主机进程名称
    • winlogon.exe是Windows NT 用户登录程序,用于管理用户登陆和退出
    • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,二者既能够独立使用也能够组合使用
  1. 启动sysmon
  • 以管理员身份进入到SysinternalsSuite201608文件夹下,执行sysmon.exe -i C:\20175313Sysmoncfig.txt

  • 点击事件查看器,在应用程序和服务日志->Microsoft->Windows->Sysmon->Operational能够看到按照配置文件的要求记录的新事件,以及事件ID、任务类别等

  1. 分析实验二生成的后门程序20175313_backdoor.exe
  • 回连成功

  • 在点击Sysmon->Operational刷新记录,查看运行后门文件20175313_backdoor.exe日志具体内容

  • kali执行shell获取win7的cmd,并查看事件查看器


  • kali执行migrate 2224迁移到explore.exe进程上,并查看事件查看器


  • kali执行record_mic获取win7的录音,并查看事件查看器

这里发现了一个被建立的的进程svchost.exe,并且他还迁移到explore.exe上,隐藏本身。(svchost.exe是微软视窗操做系统里的一个系统进程,管理经过Dll文件启动服务的其它进程,一些病毒木马假装成系统dll文件经过Svchost调用它,试图隐藏本身。每一个svchost能够同时调用多个dll文件,启动多个服务)app

任务二:恶意软件分析

你能够在任何想要的时间获取无数个屏幕快照,比较任何一对想要的屏幕快照,而且观察其间的不一样之处。获取屏幕快照一般会持续几分钟的时间,这取决于文件和文件夹的数量和注册表项目的总数。

  • 远程扫描设置端口号5313

  • 开启后门程序回连kali,成功后建立第二个快照Snapshot #2
  • 一段时间事后(中间发生了一些事情),从新截取快照Snapshot #3
  • kali执行shell获取目标机cmd,执行dir后,捕获快照Snapshot #4

(1)安装到目标机,启动回连并进行其余任意操做进行分析

  • 快照Snapshot #3和快照Snapshot #4对比分析:


  • 从图中能够看出:
  • 运行后门程序须要加载apphelp.dll 应用程序兼容性客户端库
  • explore.exe新增了一个tquery.dll,说明explore.exe正在运行程序,这里猜想是因为后门程序为了隐藏本身,迁移到浏览器上了。
  • SearchIndexr.exe新增了大量的.dll猜想是在进行大量的查询工做,由于攻击机kali执行了dir

(2)查看该后门软件读取、添加、删除了哪些注册表项

  • 快照Snapshot #3和快照Snapshot #4对比分析:

(3)查看该后门软件读取、添加、删除了哪些文件

修改



从这里能够看出来,后门程序修改了注册表配置文件。

新增


  • kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操做和中断处理,是必需的
  • advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,会受到病毒的侵扰及篡改,致使系统文件丢失、损坏
  • wsock32.dll是Windows Sockets应用程序接口,用于支持不少Internet和网络应用程序,是一个对系统很关键或很可疑的文件,易遭受木马病毒(如“犇牛”病毒)破坏致使系统找不到此文件,出现错误提示框。
  • ws2_32.dll是Windows Sockets应用程序接口。一些病毒会在杀毒软件目录中创建伪"ws2_32.dll"的文件或文件夹,在杀毒软件看来这是程序运行须要的文件而调用,这个所谓的“文件”又不具有系统"ws2_32.dll"文件的功能,因此杀毒软件等就没法运行了而提示:应用程序正常初始化失败。
  • wsock32.dll和ws2_32.dll,这两个是会常常被木马、病毒等进行侵略篡改的文件,能够分析出咱们的后门程序对其作必定的修改来实现反弹链接控制被控机。

删除

  • EhStorAPI.dll Windows加强的存储API
  • netprofm.dll网络列表管理器
  • 这里能够看到后门程序进行反弹链接后还删除了浏览器对其行为了记录

(4)查看该后门软件链接了哪些外部IP,传输了什么数据(抓包分析)



从上图可知,win7给kali发送SYN请求链接,说明该后门程序采用反弹式链接;创建链接后,Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包(进行数据传输)。

4、实验思考

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

  • 监控进程:使用Process Explorer
  • 查看网络链接状况:使用Windows任务计划netstat
  • 查看数据包:使用wireshark捕包,进行数据流分析
  • 查看端口:使用nmap查看可疑端口
  • 最后,还可利用sysmon工具,配置好想要监控的端口、注册表信息、网络链接等信息,经过其生成的日志文件进行查看

(2)若是已经肯定是某个程序或进程有问题,你有什么工具能够进一步获得它的哪些信息。

  • 使用命令tasklist查看程序进程号
  • 使用SysTracer隔断时间截取快照,对截取的快照进行对比分析,分析文件、注册表、应用程序等信息之间的差别
  • 使用PEiD进行外壳检测
  • 使用PE explorer查看PE文件头中包含代码信息
  • 使用Process Monitor分析该程序。Process Monitor至关于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操做过程,而Regmon用来监视注册表的读写操做过程

5、实践体会

  • 本次实验,理论性是知识偏多,须要学习的内容也比较多。须要准备一个清醒的头脑,以及勤劳的双手。可是,不用安装许多软件,真是让个人电脑又多了一线生机。由此,也让我更加愿意进行本章节内容的学习。
  • 固然经过本次实验,更加加深了我对恶意代码的认识,也彷佛让我找到了某同窗安插在我电脑上的后门程序🙃

6、参考资料

相关文章
相关标签/搜索