Exp4 恶意代码分析
Exp4 恶意代码分析
1 基础知识
-
监控你自己系统的运行状态,看有没有可疑的程序在运行。
-
分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
-
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2 实践过程记录
2.1系统运行监控(2分)
2.1.1schtasks创建定时netstat计划任务监控网络
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
-
输入以下命令创建计划任务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",作用是在将cmd中netstat -bn(连接网络的程序名称)的结果放入``c:\netstatlog.txt`文件中![image-20210409220206534]()
-
由于只传入
netstat -bn的结果,不方便记录查看,还需要通过bat批处理文件来实现。在C盘建立c:\netstatlog.bat,内容如下:date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt -
打开任务程序计划,找到计划任务
netstat1214![image-20210409221225833]()
-
编辑该任务操作为启动任务使执行
netstatlog.bat脚本![image-20210409221515014]()
-
在
netstatlog.txt中查看记录![image-20210409222556826]()
-
将数据导入Excel
新建xlsx文件,从外部自文本导入数据,选择
netstatlog.txt![image-20210409223011399]()
原始数据类型为分隔符号,分隔符号点满,导入表
![image-20210409230433396]()
-
生成数据透视表和柱状图
点击插入数据透视表,选中B列,将右侧
周五勾上,并将周五字段拖到行和值里,并将无关的数据去掉![image-20210412092034560]()
之后再插入柱状图即可
![image-20210412091956370]()
-
分析统计数据
![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
-
安装sysmon
下载并解压老师的资源包,管理员模式打开
cmd进入Sysmon.exe所在的文件夹,输入命令sysmon -accepteula –i -n一键安装![image-20210412185415856]()
-
配置文件
在同路径下新建配置文件
sysmon.xml,其中onmatch为include为白名单,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]()
-
在事件查看器中查看日志
打开
事件查看器\应用程序和服务日志\Microsoft\Windows\Sysmon\Operational![image-20210412190132908]()
-
使用后门文件回连
找到实验二中的后门程序,在Kali里开监听,在Windows里运行
![image-20210412191704830]()
打开事件查看器搜索后门文件名,可以看到日志记录
![image-20210412192002985]()
可以看到协议、ip地址、回连kali的ip地址、源端口和目标端口等信息
2.2恶意软件分析(1.5分)
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
该实验重点在“分析”,不是“如何使用某软件”。
2.2.1静态分析
- 文件扫描
使用VirusTotal分析恶意软件

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

-
文件格式识别
将后门程序放入PEiD,什么都没查到
![image-20210412195003134]()
放入upx压缩壳,查到了压缩壳
![image-20210412195112433]()
对先用upx压缩后用Hyperion加密的壳倒是也什么都没找到
![image-20210412195234578]()
-
反编译、反汇编
将文件放入PE Explorer中
![image-20210412195753573]()
点击引入按钮,可以看到其调用的dll链接
![image-20210412195656619]()
2.2.2动态分析
-
快照比对
使用SysTracer对回连前、回连后、进行快照之后可以查看到Regs、Files、Apps中增删改的信息
![image-20210412202651252]()
下图中可以找到增加了后门程序的执行记录
![image-20210412202929708]()
从应用的句柄中可以看到后门程序的链接记录
![image-20210412203514166]()
-
抓包分析
打开kali端wireshark,设置过滤条件为
ip.addr == 192.168.31.48 and tcp.port == 11214,可以看到从主机端回连的TCP包![image-20210412222643318]()
-
行为监控
打开Process Monitor可以看到系统中的详细进程记录
![image-20210412210739065]()
通过配置过滤器,可以看到后门文件的进程行为
![image-20210412210720117]()
3 实践中的问题
1.执行后看不到netstatlog.txt文件、不能创建netstatlog.bat文件
是由于C盘中无法创建txt文件。在任务计划程序中赋予任务使用最高权限运行即可创建netstatlog.txt文件。根据周昱涵同学的方法,在桌面创建netstatlog.bat文件后拖进C盘并统一管理员要求即可

2.Wireshark只有USBPcap1
管理员运行Wireshark即可

4 问题回答
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:可以通过schtasks设置计划netstat任务,监控联网进程的行为,也可以通过sysmon工具生成日志进行检查
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:可以使用systrace进行快照对比一点一点找出详细的信息,也可以使用Wireshark抓包查找数据、传输时间等信息判断攻击方式。。
5 实验总结与体会
在前几次实验中一直在学着如何攻击,这次实验开始学着做检测了。让我印象比较深的是快照对比和网络日志。快照对比的方式能收集的信息极为全面,不过如果恶意攻击长期存在的话,想要从海量的数据中找到也不是件容易的事。通过几天网络日志的监控,找到了许多完全没察觉到的进程,尤其是阿里巴巴的安全控件和Windows的一堆莫名其妙的同步插件,网上说这些进程出错时还会百分百占用内存、引起风扇异响等问题,也不知道有没有几个星期没关防火墙的原因,真是amazing。



























浙公网安备 33010602011771号