20174307 周俊锴《网络对抗技术》 Exp4 恶意代码分析

一、实验目标与内容

1.实践目标

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

2.实践内容

2.1 系统运行监控

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点是可疑行为。

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

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

二、实践步骤

1.使用schtasks指令监控系统

1.使用命令 schtasks /create /TN schtasks5121 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"

  • TN:Task Name,本例中是netstat4308
  • SC: SChedule type,本例中是MINUTE,以分钟来计时
  • MO: MOdifier
  • TR: Task Run,要运行的指令是 netstat
  • -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口

2.在d盘根目录下新建netstat4307.bat(更改文件名即可),用于计时

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

3.打开任务计划程序,可以看到新创建的这个任务:

4.选择刚刚编辑好的脚本,添加到【设置】中。

5.在常规 栏勾选不管用户是否登录都要运行使用最高权限运行

6.接下来等待脚本执行一段时间(这段时间内要保持开机联网状态),就可以在netstat4307.txt文件中查看到这段时间内的联网记录
7.将存储的数据导入到excel表中进行整理,按照博客中所述调整添加到报表中的字段即可
8.整理好的数据图表及操作如下:

2.Sysmon

  • Sysmon是微软Sysinternals套件中的一个工具,可以在Microsoft官网上下载一个,不过这里我用的是老师给的3.1版本,这个软件需要编写一个设置文件,用来设置sysmon监视的内容,语法与XML较为相似,看了好多之前博客的示例,写了一个检测的代码。注意老师给出的软件版本为3.10,编写文件时要注意。

  • 编写的20174307sysmon.xml文件如下:

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

ProcessCreate 进程创建,这里的进程名包含了所有以该进程名结尾的进程
NetworlConnect 网络连接,过滤掉浏览器的网络连接,即源IP为127.0.0.1(回送地址)的网络连接和目的端口为137(提供局域网中ID或IP查询服务)的连接服务,且查看目的端口为80(http)和443(https)的网络连接
CreateRemote 远程线程创建

以管理员身份运行cmd,在Sysmon64.exe目录下执行Sysmon64.exe -i sysmon20174307.xml

之后通过【事件查看器(本地)】-【应用程序和服务日志】-【Microsoft】-【Windows】-【Sysmon】-【Operational】查看根据配置信息【sysmon20174307.xml】记录的进程信息进程号 路径等系统信息

3.恶意软件分析

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

  • 它们进行了握手协议。
  • 连接成功时,在kali虚拟机上进行dir指令。wireshark抓包为

  • 这里可以用PEID检测是否加壳
  • 首先先用一个未加壳的后门进行检测

  • 使用一个加壳的后门看看。

  • 可以检测出已经加壳了。
  • 最后使用一个加密壳检测。

  • 使用SysTracer分析
  • 下载SysTracer并安装(安装过程如下)

  • 输入端口号4307

  • 在打开后门前先快照一下,选择->take snapshot,完成后显示Snapshop #1。
  • Kali开始监听,Windows运行后门后,回连成功后拍摄快照,完成后显示Snapshop #2。
  • 在kali中使用MSF相关的操作sysinfo screenshot,完成后显示Snapshop #3。
  • 结束连接后,快照,显示Snapshop #4。

进行简单的分析,首先选择【 pplications】->【Running Processes】->【4307ss1.upxed.exe】->【Opened Ports】,查看回连地址、远程地址和端口号。

对比#1和#2。通过【compare】,可以看到后门运行前后注册表的变化。

 

  • 这些颜色有变化证明该目录下的注册表发生了变化,直接点进去寻找即可。
  • 我选取了目录为【HKEY_CURRENT_USERSoftwareMicrosoftInputMethodSHARED】为例

  • 其中有颜色的是发生的变化,old为原始的状态,new为后门启动之后发生的变化。
  • 就该后门启动,有比较多的注册表发生了变化。比如
  • HKEY_CURRENT_USERSoftwareMicrosoftInputMethodSHARED
  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNotificationsData
  • HKEY_LOCAL_MACHINESYSTEM
  • 使用virustotal扫描恶意软件

    使用virustotal扫描可以看到恶意软件的相关信息,以及使用的dll文件。

  • ##DETAILS Basic Properties MD5 05f98442cdf3c99c2ab353fa43ffafe5 SHA-1 31981112efc1b7de3a4156fcf3f931bc0ca0c543 SHA-256 da3bcf38d6c3b152f54aa71905c472d14ff066865a2052c99a1cb49e6a920507 Vhash 01504d0d765d1bz3!z Authentihash 4317eea0fe77d8bd04be774f07b55e0726bc8b62b7718c72b8a259a224ea2963 Imphash 17a4bd9c95f2898add97f309fc6f9bcd SSDEEP 3072:apDWW2/S9R9lvVWtHBOii/bwuJMO1ExNvGQQQt:CDWWGS9FstWZJ4T7 File type Win32 EXE Magic PE32 executable for MS Windows (GUI) Intel 80386 32-bit File size 113.50 KB (116224 bytes) History Creation Time 2020-03-31 13:31:58 First Submission 2020-03-31 13:41:28 Last Submission 2020-03-31 13:41:28 Last Analysis 2020-03-31 13:41:28 Names upxed_20175308_hyperion.exe Portable Executable Info Header Target Machine Intel 386 or later processors and compatible processors Compilation Timestamp 2020-03-31 13:31:58 Entry Point 439788 Contained Sections 4 Sections Name Virtual Address Virtual Size Raw Size Entropy MD5 .bss 4096 319488 0 0 d41d8cd98f00b204e9800998ecf8427e .data 323584 99872 100352 7.99 65e8c0da95bdbfbb5600b8b360d27d84 .text 425984 14057 14336 5.17 0db3da594560fbdee7cab4ec727c9f7b .idata 442368 136 512 1.29 260d24d41289a4ffd343ab548a3e76cc Imports KERNEL32.DLL ExifTool File Metadata CodeSize 14336 EntryPoint 0x6b5ec FileType Win32 EXE FileTypeExtension exe ImageFileCharacteristics No relocs, Executable, No line numbers, No symbols, 32-bit ImageVersion 0.0 InitializedDataSize 100864 LinkerVersion 1.71 MIMEType application/octet-stream MachineType Intel 386 or later, and compatibles OSVersion 1.0 PEType PE32 Subsystem Windows GUI SubsystemVersion 4.0 TimeStamp 2020:03:31 14:31:58+01:00 UninitializedDataSize 0 VirusTotal ##BEHAVIOR Files Opened C:WINDOWSsystem32winsock.dll C:da3bcf38d6c3b152f54aa71905c472d14ff066865a2052c99a1cb49e6a920507 \.PIPElsarpc C:WINDOWSsystem32winsock.dll C:WINDOWSsystem32drwtsn32.exe C:WINDOWSsystem32netmsg.dll Process And Service Actions Processes Created C:WINDOWSsystem32drwtsn32 -p 1200 -e 172 -g Synchronization Mechanisms & Signals Mutexes Created ShimCacheMutex Modules Loaded Runtime Modules kernel32.dll rpcrt4.dll shlwapi.dll version.dll shell32.dll user32.dll advapi32.dll ntdll.dll

三、实验后问题回答

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

  • 可以通过计划任务,来建立一个定时更新的日志来查看
  • 通过sysmon来监控。
  • 通过Process Explorer工具,查看是否有程序调用了异常的dll库

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

  我认为一定要及进行抓包分析,利用wireshark进行抓包,也可以利用sysmon进行针对相应的ip或者端口及ip进行日志文件的观测。也可以在正常时用SYSTracer拍摄快照,也可以进行进一步得到信息。或者利用Process Monitor也可以找到相关程序的信息。

四、实验总结

  • 我觉得通过本次实验收获还是不少的,不仅仅是因为学会了几种不同软件去监测的自己电脑,不像之前对这方面的知识基本上是空白的,除此之外,我觉得最重要的是它给我提供了一种思路,当我觉得自己的电脑可能是有恶意代码入侵的时候我可以有办法去查到关于这恶意代码的相关信息,从而进行相应的防范措施。
原文地址:https://www.cnblogs.com/zhoujunkai/p/12709126.html