2019-2020-4 20175121杨波《网络对抗技术》Exp4 恶意代码分析

标签:恶意代码


一、实践目标

1.实践对象

  • 实验二中的后门程序meter_backdoor.exe

2.实践内容

  • 系统运行监控
    • 使用如计划任务每隔一分钟记录电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标:找出所有连网的程序的连接和操作,这个操作是否合适合理,并有针对性的抓包做进一步的分析;
    • 安装配置sysinternals中的sysmon工具,设置合理的配置文件,监控主机的重点事可疑行为;
    • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行(难点在于从大量数据中理出规律、找出问题)。
  • 恶意软件分析
    • 分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏),该后门软件:
      • 读取、添加、删除了哪些注册表项;
      • 读取、添加、删除了哪些文件;
      • 连接了哪些外部IP,传输了什么数据(抓包分析)。

二、基础知识

1.实践要求

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

2.指令参数

  • schtasks安排命令和程序定期运行或在指定时间内运行
    • TN任务名,这里命名为schtasks5121
    • sc计时方式,这里用MINUTE表示以分钟为单位
    • bnb是显示可执行文件的名字,n是用数字表示IP和端口
    • TR要运行的指令
    • >输出重定向即输出的文件路径,本次为c: etstatlog.txt
    • schtasks /create /TN schtasks5121 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"

3.预备知识

  • MAL_动态分析_Windows计划任务schtasks
  • 微软轻量级监控工具sysmon原理与实现
  • 分析工具
    • Schtasks 安排命令和程序定期运行或在指定时间内运行
    • excel 导入Schtasks记录的数据并使用表格生成统计信息
    • Sysmon 通过系统服务和驱动程序实现记录进程创建、文件访问以及网络信息的记录(Windows日志事件)
    • Wireshark 在恶意代码回连服务端(Kali)时对网络协议(TCP ICMP等)进行捕包分析
    • SysTracer 跟踪并监视进程对整个系统的修改行为并进行比较
    • PEiD 侦测加壳文件(类型和签名)
    • VirusTotal 在线分析恶意代码(相应的的系统文件和注册表)

三、实践步骤

1.系统运行监控

  • 使用schtasks指令 schtasks /create /TN schtasks5121 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"
    添加计划任务

  • 新建schtasks5121.txt输入
date /t >> c:
etstat20175121.txt 
time /t >> c:
etstat20175121.txt 
netstat -bn >> c:
etstat20175121.txt
  • 保存并退出,修改扩展名schtasks5121.bat并复制到C盘目录
  • 任务计划程序编辑计划任务

  • 运行任务netstat开始记录后台的数据,保持电脑的正常使用,约两小时后在C盘目录打开netstat20175121.txt查看数据

网易云音乐cloudmusic.exe
officeExcel.exe
实验二后门meter_backdoor.exe
英伟达显卡驱动nvcontainer.exe
windowssvchost.exe
VMware Workstation Provmware.exe vmware-authd.exe vmware-hostd.exe
微信wechat.exe
系统推送服务Wpnservice.exe

  • 在这段时间中使用最多的vmware虚拟机,符合实际情况

  • 下载SysinternalsSuite.zip并解压

  • 因为系统是64位的系统所以选择Sysmon64.exe,右键属性在详细信息查看产品版本,在SysinternalsSuite所在目录下创建sysmon20175121.xml,以文本文档方式打开输入代码保存并退出

  • 文件sysmon20175121.xml中代码为(版本改为自己下载的Sysmon版本号)

<Sysmon schemaversion="10.12">
  <!-- 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>

  • 以管理员身份运行CMD在Sysmon64.exe目录下执行Sysmon64.exe -i sysmon20175121.xml

  • 点击agree,安装成功
  • 事件查看器(本地)-应用程序和服务日志-Microsoft-Windows-Sysmon-Operational查看根据配置信息sysmon20175121.xml记录的进程信息进程号、 路径等系统信息

2.恶意软件分析

  • 使用恶意软件(实验二中的后门程序进行回连),以日志信息和Wireshark捕包信息分析系统进程规律
  • Kali系统与Windows系统Ping通时的数据包

  • MSF反弹连接时的TCP

  • dir查看磁盘中后门程序目录下的文件,日志没有更新

  • getuid查看作为运行服务器的用户,日志更新一条

  • SearchFilterHost.exe桌面搜索引擎的索引程序,主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录
  • screenshot截屏,日志更新三条

  • webcam_snap通过摄像头拍照,日志更新了两条

  • 总的来看,在没有针对性地绕过Sysmon监控的情况下,Sysmon也不能完全监控到恶意软件的攻击行为,而删除配置项或卸载SysmonDrv过滤器的驱动程序更可以绕过Sysmon,所以安全软件还是非常重要的。从Wireshark的捕包结果来看,协议包数量主要是由传输数据(文件)大小决定
  • 下载SysTracer并安装,下载地址
    SysTracer是一款集成HIPS以及进程行为跟踪功能的安全辅助工具,可以跟踪并监视进程对整个系统的修改行为,包括文件操作,注册表操作,内存操作和危险行为。SysTracer可以监视全部进程,或者用户指定的某一个进程及其子进程,并提供监视日志以帮助用户对特定进程的行为进行分析。可在任何想要的时间获取无数个屏幕快照,可比较任何一对想要的屏幕快照,并且观察其间的不同之处。获取屏幕快照通常会持续几分钟的时间,取决于文件和文件夹的数量和注册表项目的总数。
  • 首先下载完成后进行安装,步骤为:agree->选第二个

  • 安装时要输入相应端口

  • 运行SysTracer共进行4次记录,为控制变量Kali始终在运行状态,同时因为后门程序与虚拟机的位置都在C盘和D盘,所以可以根据实际情况只勾选相应的内容以精简分析过程
  • 在打开后门前先快照一下,点击“take snapshot”,scan选择Only selected items,然后点击start开始

  • Snapshot #1未植入恶意软件前
  • Snapshot #2植入恶意软件后
  • Snapshot #3恶意软件回连后
  • Snapshot #4MSF相关的操作sysinfo screenshot
  • Snapshot #5退出恶意软件后
  • 点击上方“Applications”->左侧“Running Processes”->找到后门进程“meter_backdoor.exe”可以看到对应的调用过程

  • 在下方选择好要比较的两个快照,在快照界面“Snapshots”右下角点击“view differences list”,比对一下回连前后计算机发生的变化

  • 比较#1#2,可以发现加入了一些注册表值

  • 比较#2#3,又可以发现增加了大量可能无关的注册表值还有相关的进程

  • 比较#3#4,执行的MSF指令操作没有发现特别明显的相关变化

  • 比较#4#5,相关的进程和文件还有键值都有删除

  • 后门程序已经没有在后台运行了,但是相关的注册表值暂时还没有变化(可能重启后也会删除),所以我们除了定期要清理磁盘垃圾文件以外也需要工具对注册表进行维护(修复或删除等)

  • 使用VirusTotal检查恶意代码,可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息
Basic Properties
MD5	c68f5f089544634816ee7d115b327c78
SHA-1	ebde084c4d3de28db835ff3e94edc82ed8e1c299
SHA-256	74b9f08a8edd0180816cb2f232a13502889b517721b94f6e887b4c3fdb1bc24b
Vhash	074046755d151028z2e32tz27z
Authentihash	a9bc27d788fd344262f3bfa898ecd103166d4089444a9752a92752803802fc14
Imphash	481f47bbb2c9c21e108d65f52b04c448
SSDEEP	1536:IqIlIAkIaacFC691zYWzyVBQ66KcMb+KR0Nc8QsJq39:DINkIYCU1xzmQ6qe0Nc8QsC9
File type	Win32 EXE
Magic	PE32 executable for MS Windows (GUI) Intel 80386 32-bit
File size	72.07 KB (73802 bytes)
History
Creation Time	2009-06-23 12:47:45
First Submission	2020-03-26 04:06:46
Last Submission	2020-03-26 04:06:46
Last Analysis	2020-03-26 04:06:46
Names
meter_backdoor.exe
ab.exe
Signature Info
Signature Verification
 File is not signed
File Version Information
Copyright	Copyright 2009 The Apache Software Foundation.
Product	Apache HTTP Server
Description	ApacheBench command line utility
Original Name	ab.exe
Internal Name	ab.exe
File Version	2.2.14
Comments	Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Portable Executable Info
Header
Target Machine	Intel 386 or later processors and compatible processors
Compilation Timestamp	2009-06-23 12:47:45
Entry Point	21121
Contained Sections	4
Sections
Name	Virtual Address	Virtual Size	Raw Size	Entropy	MD5
.text	4096	43366	45056	7.01	ec1f468c27a1f0859e9c6cc68db03006
.rdata	49152	4070	4096	5.32	25d7ceee3aa85bb3e8c5174736f6f830
.data	53248	28764	16384	4.41	283b5f792323d57b9db4d2bcc46580f8
.rsrc	86016	1992	4096	1.96	c13a9413aea7291b6fc85d75bfcde381
Imports
ADVAPI32.dll
KERNEL32.dll
MSVCRT.dll
WS2_32.dll
WSOCK32.dll
Contained Resources By Type
RT_VERSION	1
Contained Resources By Language
ENGLISH US	1
Contained Resources
SHA-256	File Type	Type	Language
465417d96548ce85076f6509efac41e5ad02fee2b8f712416e8b6aa08d93c494	Data	RT_VERSION	ENGLISH US
ExifTool File Metadata
CharacterSet	Unicode
CodeSize	45056
Comments	Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
CompanyName	Apache Software Foundation
EntryPoint	0x5281
FileDescription	ApacheBench command line utility
FileFlagsMask	0x003f
FileOS	Win32
FileSubtype	0
FileType	Win32 EXE
FileTypeExtension	exe
FileVersion	2.2.14
FileVersionNumber	2.2.14.0
ImageFileCharacteristics	No relocs, Executable, No line numbers, No symbols, 32-bit
ImageVersion	0.0
InitializedDataSize	40960
InternalName	ab.exe
LanguageCode	English (U.S.)
LegalCopyright	Copyright 2009 The Apache Software Foundation.
LinkerVersion	6.0
MIMEType	application/octet-stream
MachineType	Intel 386 or later, and compatibles
OSVersion	4.0
ObjectFileType	Executable application
OriginalFileName	ab.exe
PEType	PE32
ProductName	Apache HTTP Server
ProductVersion	2.2.14
ProductVersionNumber	2.2.14.0
Subsystem	Windows GUI
SubsystemVersion	4.0
TimeStamp	2009:06:23 13:47:45+01:00
UninitializedDataSize	0

四、实验总结与体会

1.基础问题回答

  • (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    • 可以通过计划任务,来建立一个定时更新的日志来查看
    • 通过sysmon来监控。
    • 通过Process Explorer工具,查看是否有程序调用了异常的dll库
  • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 可以通过抓包工具,进行分析。
    • 通过systracer工具分析某个程序执行前后,计算机注册表、文件、端口的一些变化情况。
    • 使用VirusTotal、Virscan等渠道进行检查

2.实验收获与感想

通过本次实验,我对自己电脑空闲时间哪些进程在工作,连接到哪些地方有了一定了解。通过各种工具监控检测自己的电脑是否存在一些恶意代码软件,学会了杀毒软件所不能解决的事情。在实验过程中遇到了各种各样的问题,查出来文件、进程或是注册表都比较陌生,这些都需要耐心的一一解决。在恶意代码检测方面自己的知识储备还是相当的匮乏,仍需不断学习总结,将理论知识与实践相结合,做到知行合一,才能在接下来的学习中游刃有余,不断前进。

原文地址:https://www.cnblogs.com/xposed/p/12694224.html