目录
一、实验目标
二、实验原理
三、实验内容
四、实验步骤
五、思考题
六、实验总结
一、实验目标
- 监控你自己系统的运行状态,看有没有可疑的程序在运行;
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals systracer套件;
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
二、实验原理
1.恶意代码
- 恶意代码的概念和分类
- 恶意代码是一组使计算机按照攻击者的意图运行以达到恶意目的的指令合集。
- 恶意代码分为:计算机病毒(Virus)、蠕虫(Worm)、恶意移动代码(Malicious mobilecode)、后门(Backdoor)、特洛伊木马(Trojan)、僵尸程序(Bot)、内核套件(Rootkit)、融合型恶意代码等。
- 恶意代码分析方法
- 静态分析(通过反病毒引擎扫描识别已知的恶意代码家族和变种名;逆向分析恶意代码模块构成、内部数据结构、关键控制流程等,理解恶意代码的机理,并提取特征码用于检测)
- 动态分析(通过在受控环境中执行目标代码,以获取目标代码的行为以及运行结果)
- 恶意代码分析工具
- Schtasks 安排命令和程序定期运行或在指定时间内运行
- WPS 导入 Schtasks记录的数据并使用表格生成统计信息
- Sysmon 通过系统服务和驱动程序实现记录进程创建、文件访问以及网络信息的记录(Windows日志事件)
- 在恶意代码回连服务端(Kali)时对网络协议(TCP、ICMP等)进行捕包分析
- SysTracer跟踪并监视进程对整个系统的修改行为并进行比较
- PEiD侦测加壳文件(类型和签名)
- VirusTotal在线分析恶意代码(相应的的系统文件和注册表)
2、指令/参数
- schtasks安排命令和程序定期运行或在指定时间内运行
schtasks /create /TN schtasks*** /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"
-
- TN任务名
- sc计时方式,本实验用MINUTE表示以分钟为单位
- bnb是显示可执行文件的名字,n是用数字表示IP和端口
- TR要运行的指令
- >输出重定向即输出的文件路径
3、其他实验原理见MAL_动态分析_Windows计划任务schtasks
三、实验内容
1.系统运行监控
- 使用如计划任务每隔一分钟记录电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标:找出所有连网的程序的连接和操作,这个操作是否合适合理,并有针对性的抓包做进一步的分析;
- 安装配置sysinternals中的sysmon工具,设置合理的配置文件,监控主机的重点事可疑行为;
- 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行(难点在于从大量数据中理出规律、找出问题)。
2.恶意软件分析
- 分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏),该后门软件:
- 读取、添加、删除了哪些注册表项;
- 读取、添加、删除了哪些文件;
- 连接了哪些外部IP,传输了什么数据(抓包分析)。
四、实验步骤
(一)系统运行监控
1、使用计划任务与netstat命令运行监控
- 使用schtasks指令添加计划任务(以管理员身份运行cmd并输入指令schtasks /create /TN schtasks4321 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt")
- 在C盘目录下新建一个文本文件 schtasks4321.txt ,输入以下内容:
date /t >> c: etstatlog.txt time /t >> c: etstatlog.txt netstat -bn >> c: etstatlog.txt
保存并退出,修改文件名 schtasks4321.bat 并复制到C盘。
- 任务计划程序编辑计划任务
【常规】
【操作】——【编辑】
- 数据记录:运行任务netstat ,保持电脑的正常使用,一段时间后打开C盘netstatlog.txt查看记录的后台数据。
- 数据分析:用WPS的表格工具导入文档数据,生成数据透视图(参考博客)
【360se.exe】360浏览器 ,【dgservice.exe】驱动精灵,【DingTalk.exe】钉钉,【et.exe】WPS表格,【knbcenter.exe】猎豹浏览器安全及升级,【kvipwiz.exe】金山毒霸广告弹窗,【kxescore.exe】金山毒霸查杀子系统及文件实时监控服务进程,【QQPCTray.exe】腾讯安全程序,【SearchUI.exe】win10 Cortanar进程,【svchost.exe】windows系统程序,【Wechat.exe】微信,【wps.exe】WPS,【XLServicePlatform】迅雷基础服务
2.sysmon工具监控系统
- 下载SysinternalsSuite.zip并解压
- 选择Sysmon64.exe,在【属性】中查看【产品版本】,为【10.42】
- 在SysinternalsSuit目录中创建sysmon4321.xml,以文本文档方式打开输入代码保存并退出。
- 以管理员身份运行cmd,在SysinternalsSuite目录中执行 Sysmon64.exe -i sysmon4321.xml 安装和配置sysmon。
- 打开【事件查看器】→【应用程序和服务日志】→【Microsoft】→【Windows】→【sysmon】→【Operational】查看进程信息。
(二)恶意软件分析
分析恶意软件在启动回连和进行截屏、拍照等其他操作时
该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
1.动态分析
1.1通过日志信息和Wireshark捕包信息分析
在【事件查看器】中根据运行时间找到相应后门程序操作的相关信息,在【Wireshark】过滤器中输入筛选条件 ip.addr == 192.168.246.137 查看相关的协议包信息。
- Kali系统与Windows系统Ping通时捕获ICMP 包
- MSF 反弹连接时捕获 TCP 包,日志有所更新
jiake4321_code.exe 频繁调用的进程是explorer.exe,这是文件资源管理器的进程。
- dir查看磁盘中后门程序目录下的文件,捕获TCP包,日志没有更新
- getuid查看作为运行服务器的用户,日志更新一条
SearchFilterHost.exe 是桌面搜索引擎的索引程序,主要作用是建立快速索引文件。
- screenshot截屏,日志更新三条
audiodg.exe 属于Windows音频设备图形隔离程序。关系到设备是否能发出声音。(我不太懂这里截屏操作为什么会更新音频相关的程序日志)
- webcam_snap通过摄像头拍照,日志更新了一条
mspqm.sys 是系统文件,也有可能是木马病毒伪装的。
- 分析Wireshark捕包结果,协议包数量主要是由传输数据(文件)大小决定。另外,通过筛选,可以看出它连接的IP地址有kali的ip地址,数据通过4321端口传输。在后门程序进行一系列操作时,采用TCP协议传输数据。
- 分析sysmon记录的信息日志,sysmon不能完全监控到恶意软件的攻击行为,一些驱动程序能够绕过sysmon的记录。
1.2通过Systracer分析
- 下载Systacer并安装(安装过程中输入端口4321)
- 运行SysTracer共进行5次记录,为控制变量Kali始终在运行状态。筛选包含后门程序和虚拟机的内容以精简分析过程,缩短快照时间。
- Snapshot #1 安装后植入后门程序前
- Snapshot #2 植入后门程序后
- Snapshot #3 回连
- Snapshot #4 MSF 操作( getuid screenshot sysinfo 等)
- Snapshot #5退出后门程序后
- 比较1、2,发现增加了大量文件,有很少的一部分可以判断出来与后门程序有关,而大部分都无法判断是否与后门程序有关系。
另外,【Application】中可以看到增加了后门程序。【Registry】一项也有很多变化。
HKEY_CLASSES_ROOTLocal Settings是应用程序运行时必需的信息,HKEY_CURRENT_USERSoftware包含了所安装的应用程序信息,HKEY_LOCAL_MACHINESYSTEM包括设备驱动和其他服务的描述和控制,HKEY_USERS仅包含了缺省用户设置和登录用户的信息。
- 比较2、3,添加了大量的文件,也删除了很多dll文件。
查看到的相应IP和相应端口可以知道回连成功。
- 比较3、4,执行MSF 指令后注册表项并没有很大的变化。
- 比较4、5,可以看到相关的进程、文件以及键值都有删除。
【Applications】一项中可以看到删除了后门程序,端口号为4321。
2.静态分析
2.1VirusTotal
使用VirusTotal检查恶意代码可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息。(具体方法见Ep3)
Basic Properties MD5 6e016dcacae124a4352806d417b72b5a SHA-1 f1e97d6e3695df57572a9254d4aeeb73e2dae702 SHA-256 d1e8bacbbff3d932f97715abee3af55abae81b74a786c0c302030fd45125ba9c Vhash 01504d0d765d1bz3!z Authentihash a395d7dc03259285d7fbf65b99d9eb0bd494cc3a689b0e6baded3082b2a62587 Imphash 17a4bd9c95f2898add97f309fc6f9bcd SSDEEP 3072:bOKDuVGrs7CDwobcfj+jB1yLHFH8GPS8rhghxe95vqQQQt:SzVG47CDJowBoVJLtQ+X 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 16:37:45 First Submission 2020-03-31 16:50:13 Last Submission 2020-03-31 16:50:13 Last Analysis 2020-03-31 16:50:13 Names 4321_jiake_hyperion.exe Portable Executable Info Header Target Machine Intel 386 or later processors and compatible processors Compilation Timestamp 2020-03-31 16:37:45 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 bdfe92ca30bd0938923306ee9798aa71 .text 425984 14057 14336 5.17 5aab6a4f6bbef821d2f470f377441220 .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.69 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 17:37:45+01:00 UninitializedDataSize 0 File System Actions Files Opened C:WINDOWSsystem32winime32.dll C:WINDOWSsystem32ws2_32.dll C:WINDOWSsystem32ws2help.dll C:WINDOWSsystem32psapi.dll C:WINDOWSsystem32imm32.dll C:WINDOWSsystem32lpk.dll C:WINDOWSsystem32usp10.dll C:WINDOWSsystem32faultrep.dll C:WINDOWSsystem32winsta.dll C:WINDOWSsystem32wtsapi32.dll Registry Actions Registry Keys Opened RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionImage File Execution Options996E.exe RegistryMACHINESystemCurrentControlSetControlSafeBootOption RegistryMachineSoftwarePoliciesMicrosoftWindowsSaferCodeIdentifiers REGISTRYMACHINESOFTWAREPoliciesMicrosoftWindowsSaferCodeIdentifiersTransparentEnabled REGISTRYUSERS-1-5-21-1482476501-1645522239-1417001333-500SoftwarePoliciesMicrosoftWindowsSaferCodeIdentifiers RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionAeDebug RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionImage File Execution OptionsVERSION.dll RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionImage File Execution OptionsUSERENV.dll REGISTRYUSERS-1-5-21-1482476501-1645522239-1417001333-500SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell FoldersPersonal REGISTRYUSERS-1-5-21-1482476501-1645522239-1417001333-500SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell FoldersLocal Settings Registry Keys Deleted REGISTRYMACHINESOFTWAREMicrosoftPCHealthErrorReportingDW REGISTRYMACHINESOFTWAREMicrosoftPCHealthErrorReportingDWDWFileTreeRoot Modules Loaded Runtime Modules kernel32.dll KERNEL32.DLL
2.2peid工具
- 加过压缩壳的后门程序:
- 加过加密壳的后门程序:
加过压缩壳的后门程序被检测出来了,而加过加密壳的后门程序无法被检测出来。
五、思考题
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用schtasks指令设置一个计划任务,观察一段时间的联网情况,对其进行分析查看是否有可疑的联网程序;
- 使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件;
- 使用Process Explorer,查看系统中是否存在可疑进程;
- 使用Systracer拍摄几个时间点的快照,对比不同时间的快照,查看是否有可疑的增删注册表、启动项的行为;
- 使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输。
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用PEiD查看程序是否加壳,加的什么壳;
- 使用wireshark查看他在运行时传输信息的方式以及内容、端口以及目的地址是哪里;
- 使用Systracer工具拍摄快照,查看其对注册表和文件的修改。
六、实验总结
(一)实验中遇到的问题
解决方法:我创建的文件其实是名为sysmon4321.xml的txt文件,将文件转换为xml文件,问题就解决了。
(二)实验心得
这次实验让我认识到,使用systracer也是一种寻找木马的重要方法,比如可以在开机时使用一次快照,然后关机前使用一次,可以查看这一天的设备联网情况,通过对比两次快照的端口,文件修改,注册表修改寻找木马的痕迹,我觉得这种技术杀毒软件应该也在运用,通过对比发现异常,删除相应木马。