Exp4 恶意代码分析

Exp4 恶意代码分析

1 基础知识

  • 监控你自己系统的运行状态,看有没有可疑的程序在运行。

  • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。

  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

2 实践过程记录

2.1系统运行监控(2分)

2.1.1schtasks创建定时netstat计划任务监控网络

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

  1. 输入以下命令创建计划任务netstat1214,能够每5min记录以下有哪些程序

    image-20210409214842531

    schtasks /create /TN netstat1214 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn c:\netstatlog.txt"
    
    • /create:创建计划任务
    • /TN:TaskName 指定任务的名称
    • /sc: schedule 指定计划类型
    • /MO:modifier 指定任务在其计划类型内的运行频率
    • /TR:TaskRun 指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。

    结合以上参数我们可以知道,该命令使用schtasks创建一个名为netstat1214的计划任务,它每5分钟执行一次"cmd /c netstat -bn c:\netstatlog.txt",作用是在将cmdnetstat -bn(连接网络的程序名称)的结果放入``c:\netstatlog.txt`文件中

    image-20210409220206534

  2. 由于只传入netstat -bn的结果,不方便记录查看,还需要通过bat批处理文件来实现。在C盘建立c:\netstatlog.bat,内容如下:

    date /t >> c:\netstatlog.txt
    time /t >> c:\netstatlog.txt
    netstat -bn >> c:\netstatlog.txt
    
  3. 打开任务程序计划,找到计划任务netstat1214

    image-20210409221225833

  4. 编辑该任务操作为启动任务使执行netstatlog.bat脚本

    image-20210409221515014

  5. netstatlog.txt中查看记录

    image-20210409222556826

  6. 将数据导入Excel

    新建xlsx文件,从外部自文本导入数据,选择netstatlog.txt

    image-20210409223011399

    原始数据类型为分隔符号,分隔符号点满,导入表

    image-20210409230433396

  7. 生成数据透视表和柱状图

    点击插入数据透视表,选中B列,将右侧周五勾上,并将周五字段拖到行和值里,并将无关的数据去掉

    image-20210412092034560

    之后再插入柱状图即可

    image-20210412091956370

  8. 分析统计数据

    image-20210412092347875

周五 程序 汇总
[msedge.exe] 微软浏览器 2111
[ECAgent.exe] 1038
[nvcontainer.exe] NVIDIA控制面板 1009
[firefox.exe] 火狐浏览器 809
[AppleMobileDeviceProcess.exe] IOS驱动程序 696
[mDNSResponder.exe] Bonjour分享程序 694
[Lsf.exe] 联想账户 636
[svchost.exe] 微软后台传输 443
[NutstoreClient.exe] 坚果云客户端 364
[SangforPromoteService.exe] 深信服VPN进程 346
WpnService Windows 推送通知进程 345
[Video.UI.exe] 电影和电视 344
[ShadowsocksR-dotnet4.0.exe] SSR 205
[WeChat.exe] 微信 187
[SearchApp.exe] 微软搜索进程 138
[LenovoPcManagerService.exe] 联想电脑管家 64
[AlibabaProtect.exe] 阿里巴巴安全控件 61
[backgroundTaskHost.exe] 照片后台 36
[Spotify.exe] Spotify播放器 33
[Code.exe] VScode编辑器 27
[Microsoft.Photos.exe] 微软照片 26
WpnUserService_6729924 Windows 推送通知进程 24
CryptSvc 认证服务进程 24
wlidsvc office在线存储服务进程 22
[EXCEL.EXE] Excel 22
[BackgroundDownload.exe] 桌面壁纸下载 21
[FenbiZhiboke.exe] 粉笔直播课 20
[Typora.exe] Typora编辑器 18
[iTunes.exe] iTunes播放器 14
WpnUserService_eaabf4 Windows 推送通知进程 12
[OfficeClickToRun.exe] Office自动更新程序 9
[ctfmon.exe] 语言栏修复工具 8
[ServiceHub.SettingsHost.exe] 8
[devenv.exe] VS开发进程 7
[igfxEM.exe] intel核显驱动 5
[WINWORD.EXE] Word文本编辑器 5
[java.exe] java 5
[PerfWatson2.exe] 4
OneSyncSvc_eaabf4 4
[SettingSyncHost.exe] 账号同步 3
[ServiceHub.IdentityHost.exe] VS认证控件 3
DiagTrack 诊断跟踪服务 3
[Lenovo.Modern.ImController.exe] 联想控制中心 3
WpnUserService_7ba117b Windows 推送通知进程 3
BITS 后台智能传送服务 2
[ServiceHub.VSDetouredHost.exe] 2
[系统] 2
[VirtualBoxVM.exe] VirtualBox虚拟机 2
WpnUserService_d935e Windows 推送通知进程 2
[WhiteboardWRT.exe] 白板 1
[cleanmgr.exe] 磁盘清理 1
[Explorer.EXE] 1
CDPUserSvc_d935e 1
[GfxDownloadWrapper.exe] intel图像控制面板 1
[Snipaste.exe] Snipaste截图 1
[OneDriveStandaloneUpdater.exe] OneDriver 1
wuauserv windows自动更新 1
[taskhostw.exe] 计划任务程序 1
[processlasso.exe] processlasso 1
总计 9879

根据统计数据可以知道,联网次数最多的是msedge.exe,火狐、微信等日常软件也是可查的,还有些杂七杂八的微软推送和VS控件。比较可疑的是阿里巴巴安全控件,据说监控全磁盘的文件变动。根据网上资料得知阿里系的软件自带这个控件,但启用netstatlog期间并未启动任何一个阿里系软件。

2.1.2 sysmon监控主机

安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。参考:schtask与sysmon应用指导

https://www.freebuf.com/sectool/122779.html

  1. 安装sysmon

    下载并解压老师的资源包,管理员模式打开cmd进入Sysmon.exe所在的文件夹,输入命令 sysmon -accepteula –i -n一键安装

    image-20210412185415856

  2. 配置文件

    在同路径下新建配置文件sysmon.xml,其中onmatchinclude为白名单,exclude为黑名单,内容如下(注意第一行的版本应改成和版本一样):

    <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>
    

    输入.\Sysmon.exe -i sysmon.xml配置信息,之后预估更新了xml配置文件可以输入.\Sysmon.exe -c sysmon5306.xml来更新

    image-20210412185855877

  3. 在事件查看器中查看日志

    打开事件查看器\应用程序和服务日志\Microsoft\Windows\Sysmon\Operational

    image-20210412190132908

  4. 使用后门文件回连

    找到实验二中的后门程序,在Kali里开监听,在Windows里运行

    image-20210412191704830

    打开事件查看器搜索后门文件名,可以看到日志记录

    image-20210412192002985

    可以看到协议、ip地址、回连kali的ip地址、源端口和目标端口等信息

2.2恶意软件分析(1.5分)

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

  • 读取、添加、删除了哪些注册表项
  • 读取、添加、删除了哪些文件
  • 连接了哪些外部IP,传输了什么数据(抓包分析)

该实验重点在“分析”,不是“如何使用某软件”。

2.2.1静态分析

  1. 文件扫描

使用VirusTotal分析恶意软件

image-20210412194604691

根据详细信息可以看到此文件的MD5等值,及生成、运行环境等信息

image-20210412194836943

  1. 文件格式识别

    将后门程序放入PEiD,什么都没查到

    image-20210412195003134

    放入upx压缩壳,查到了压缩壳

    image-20210412195112433

    对先用upx压缩后用Hyperion加密的壳倒是也什么都没找到

    image-20210412195234578

  2. 反编译、反汇编

    将文件放入PE Explorer中

    image-20210412195753573

    点击引入按钮,可以看到其调用的dll链接

    image-20210412195656619

2.2.2动态分析

  1. 快照比对

    使用SysTracer对回连前、回连后、进行快照之后可以查看到Regs、Files、Apps中增删改的信息

    image-20210412202651252

    下图中可以找到增加了后门程序的执行记录

    image-20210412202929708

    从应用的句柄中可以看到后门程序的链接记录

    image-20210412203514166

  2. 抓包分析

    打开kali端wireshark,设置过滤条件为ip.addr == 192.168.31.48 and tcp.port == 11214,可以看到从主机端回连的TCP包

    image-20210412222643318

  3. 行为监控

    打开Process Monitor可以看到系统中的详细进程记录

    image-20210412210739065

    通过配置过滤器,可以看到后门文件的进程行为

    image-20210412210720117

3 实践中的问题

1.执行后看不到netstatlog.txt文件、不能创建netstatlog.bat文件

是由于C盘中无法创建txt文件。在任务计划程序中赋予任务使用最高权限运行即可创建netstatlog.txt文件。根据周昱涵同学的方法,在桌面创建netstatlog.bat文件后拖进C盘并统一管理员要求即可

image-20210409222107890

2.Wireshark只有USBPcap1

管理员运行Wireshark即可

image-20210412223420345

4 问题回答

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

答:可以通过schtasks设置计划netstat任务,监控联网进程的行为,也可以通过sysmon工具生成日志进行检查

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

答:可以使用systrace进行快照对比一点一点找出详细的信息,也可以使用Wireshark抓包查找数据、传输时间等信息判断攻击方式。。

5 实验总结与体会

在前几次实验中一直在学着如何攻击,这次实验开始学着做检测了。让我印象比较深的是快照对比和网络日志。快照对比的方式能收集的信息极为全面,不过如果恶意攻击长期存在的话,想要从海量的数据中找到也不是件容易的事。通过几天网络日志的监控,找到了许多完全没察觉到的进程,尤其是阿里巴巴的安全控件和Windows的一堆莫名其妙的同步插件,网上说这些进程出错时还会百分百占用内存、引起风扇异响等问题,也不知道有没有几个星期没关防火墙的原因,真是amazing。

posted @ 2021-04-12 23:35  一个李长兴  阅读(545)  评论(0编辑  收藏  举报