Exp4 恶意代码分析
1 基础知识
-
监控你自己系统的运行状态,看有没有可疑的程序在运行。
-
分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
-
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2 实践过程记录
2.1系统运行监控(2分)
2.1.1schtasks创建定时netstat计划任务监控网络
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
-
输入以下命令创建计划任务netstat1214,能够每5min记录以下有哪些程序
schtasks /create /TN netstat1214 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn c: etstatlog.txt"
/create
:创建计划任务/TN
:TaskName 指定任务的名称/sc
: schedule 指定计划类型/MO
:modifier 指定任务在其计划类型内的运行频率/TR
:TaskRun 指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。
结合以上参数我们可以知道,该命令使用schtasks创建一个名为netstat1214的计划任务,它每5分钟执行一次
"cmd /c netstat -bn c: etstatlog.txt"
,作用是在将cmd
中netstat -bn
(连接网络的程序名称)的结果放入``c: etstatlog.txt`文件中 -
由于只传入
netstat -bn
的结果,不方便记录查看,还需要通过bat批处理文件来实现。在C盘建立c: etstatlog.bat
,内容如下:date /t >> c: etstatlog.txt time /t >> c: etstatlog.txt netstat -bn >> c: etstatlog.txt
-
打开任务程序计划,找到计划任务
netstat1214
-
编辑该任务操作为启动任务使执行
netstatlog.bat
脚本 -
在
netstatlog.txt
中查看记录 -
将数据导入Excel
新建xlsx文件,从外部自文本导入数据,选择
netstatlog.txt
原始数据类型为分隔符号,分隔符号点满,导入表
-
生成数据透视表和柱状图
点击插入数据透视表,选中B列,将右侧
周五
勾上,并将周五
字段拖到行和值里,并将无关的数据去掉之后再插入柱状图即可
-
分析统计数据
周五 | 程序 | 汇总 |
---|---|---|
[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
一键安装 -
配置文件
在同路径下新建配置文件
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
来更新 -
在事件查看器中查看日志
打开
事件查看器应用程序和服务日志MicrosoftWindowsSysmonOperational
-
使用后门文件回连
找到实验二中的后门程序,在Kali里开监听,在Windows里运行
打开事件查看器搜索后门文件名,可以看到日志记录
可以看到协议、ip地址、回连kali的ip地址、源端口和目标端口等信息
2.2恶意软件分析(1.5分)
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
该实验重点在“分析”,不是“如何使用某软件”。
2.2.1静态分析
- 文件扫描
使用VirusTotal分析恶意软件
根据详细信息可以看到此文件的MD5等值,及生成、运行环境等信息
-
文件格式识别
将后门程序放入PEiD,什么都没查到
放入upx压缩壳,查到了压缩壳
对先用upx压缩后用Hyperion加密的壳倒是也什么都没找到
-
反编译、反汇编
将文件放入PE Explorer中
点击引入按钮,可以看到其调用的dll链接
2.2.2动态分析
-
快照比对
使用SysTracer对回连前、回连后、进行快照之后可以查看到Regs、Files、Apps中增删改的信息
下图中可以找到增加了后门程序的执行记录
从应用的句柄中可以看到后门程序的链接记录
-
抓包分析
打开kali端wireshark,设置过滤条件为
ip.addr == 192.168.31.48 and tcp.port == 11214
,可以看到从主机端回连的TCP包 -
行为监控
打开Process Monitor可以看到系统中的详细进程记录
通过配置过滤器,可以看到后门文件的进程行为
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。