20182217刘洪宇_Exp4 恶意代码分析
1.实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容
2.1系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
为实现每1min记录哪些程序在联网,以及其连接的外部地址,输入以下命令
schtasks /create /TN 20182217netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > e:\netstatlog.txt"
ps.TN是TaskName的缩写,我们创建的计划任务名是20182217netstat;sc表示计时方式,我们以分钟计时填MINUTE;MO 1表示每隔一分钟记录一次;TR=Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
- 此命令完成后,每一分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里,但是不显示记录的时间和日期,这可能不便于我们判断,要是想显示日期和时间,我们可以通过bat批处理文件来实现。
在e盘下创建一个文件e:\netstatlog.bat,用记事本打开在其中写入
date /t >> e:\netstatlog.txt time /t >> e:\netstatlog.txt netstat -bn >> e:\netstatlog.txt
打开任务计划程序,找到我们建好的任务20182217netstat,打开属性将常规中的使用最高权限打勾
在操作>>新建>>浏览 选择刚刚创建的bat文件,并点击确认
在E盘点开netstatlog.txt文件
接下来我们要做的便是等待有足够的记录,再进行分析
我们选择用excel进行分析
选择 自文本
点击完成
用数据透视图工具可以得出,各个进程的联网频率
emmm这个apple的进程是个嘛
问题不大,我的进程基本都没有问题,都是正常的运行进程,说明我的电脑现在没有恶意进程在运行。
(2)安装配置sysinternals里的sysmon工具,设置合理配置文件,监控自己主机的重点事可疑行为。
参考学习博客
https://www.freebuf.com/sectool/122779.html
- 哪些算是重点可疑行为呢
- 我认为有网络连接、驱动加载、远程线程创建、进程创建、访问和结束等
- 配置文件
<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> <Image condition="end with">firefox.exe</Image> </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
-
sysmon.exe -i config_file_name.(注意路径)
用管理员身份运行cmd
- 配置文件可以随时修改,修改完需要用如下指令更新一下
sysmon.exe -c config_file_name
- 查看日志
日志位置在 事件查看器>>应用程序和服务日志/Microsoft/Windows/Sysmon/Operational下。
举例: 日志的条目特别多,真正的强者敢于自黑,用我们自己的后门文件试一试。
先用我的kali获得win10的shell
在日志查看器中,我们可以看到我的后门文件调用了cmd
2.2恶意软件分析
2.2.1静态分析
分析方法 | 目的 | 使用工具 | 难度 |
---|---|---|---|
恶意代码扫描 | 标识已知恶意代码 | 反病毒引擎,VirusTotal | 低 |
文件格式识别 | 确定攻击平台和类型 | file,peid,FileAnalyzer | 低 |
字符串提取 | 寻找恶意代码分析线索 | Strings | 低 |
二进制结构分析 | 初步了解二进制文件结构 | binutils(nm,objdump) | 中 |
反汇编 | 二进制代码->汇编代码 | IDAPro,GDB,VC,… | 中高 |
反编译 | 汇编代码->高级语言 | REC,DCC,JAD,… | 中高 |
代码结构与逻辑分析 | 分析二进制代码组,理解二进制代码逻辑成结构 | IDAPro,Ollydbg,… | 高 |
加壳识别和代码脱壳 | 识别是否加壳及类型;对抗代码混淆恢复原始代码 | UPX,VMUnpacker,手工 | 高 |
2.2.1.1特征库对比
将不做伪装的后门文件放入VirSCAN.org进行分析
可以获取其基础信息。
2.2.2动态分析
分析方法 | 目的 | 使用工具 | 难度 |
---|---|---|---|
快照比对 | 获取恶意代码行为结果 | FileSnap,RegSnap,完美卸载 | 低 |
动态行为监控(APIHooking) | 实时监控恶意代码动态行为轨迹 | Filemon,Regmon,ProcessExplorer,lsof… | 中 |
网络监控 | 分析恶意代码网络监听端口及发起网络会话 | Fport,lsof,TDImon,ifconfig,tcpdump,… | 中 |
沙盒(sandbox) | 在受控环境下进行完整的恶意代码动态行为监控与分析 | NormanSandbox,CWSandbox,FVMSandbox,… | 中高 |
动态跟踪调试 | 单步调试恶意代码程序,理解程序结构和逻辑 | Ollydbg,IDAPro,gdb,SoftICE,systrace,… | 高 |
2.2.2.1用SysTracer进行动态分析
分别用SysTracer抓取
(1)自然状态计算机快照
(2)启动后门回连msf
(3)远程在win10上建立新文件夹
(4)抓屏
比较(1)和(2)
可以看到我的后门文件通过2217端口开始运行啦。
在running processes可以看到,我的后门文件在运行ing,并且被识别为腾讯qq。
看看注册表有啥变化没
有着很多删除和增加,其中可能是回连时操作的。
在opened handles中可以看到有文件的增删
对比(2)和(3)
后门文件依然在运行
我的后门文件删除了一个文件\Device\NamedPipe\wkssvc,并增加了一个key文件
注册表有一些文件被删除
在running processes中可以看到调用shell开启的cmd文件有被记录
在file对比可以看到后门创建的文件夹
对比(3)和(4)
看到running processes可以看到之前的cmd进程已经关闭了,后门文件依然运行
增加了许多注册表
后门文件增加了\Device\NamedPipe\
2.2.2.2 wireshark抓包
打开wireshark进行抓包,用虚拟机回连后门文件,设置好过滤器后可以看到进行tcp三次握手协议,目的端端口为2217,即我之前设置好的。
3.报告内容
3.1实验后回答问题
- 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 创建计划任务netstat进行记录,并且定期查看,看是否有可疑的操作,比如多次连接未知的ip地址,以及多次运行的未知进程
- 用sysmon,配置好想要查看的选项,记录一段时间后进行分析,查看是否有可疑举动。
- 用sysTracer工具进行快照对比,查看一段时间内是否有对文件和注册表的可疑操作。
- 使用wireshark,分析抓包数据。
- 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 上传到virustoal等网站,进行特征库对比,静态分析
- 用systracer分析其操作期间发生了什么.
- 用wireshark监视其与其他地址的通信过程。
3.2实验总结与体会
- 本次实验主要是重在分析,主要是通过用各种记录工具来查看自己电脑中是否有恶意代码在运行,在这一过程中既加深了我对恶意代码的认识的同时,也对各种工具有了更深的认识,这对我之后的学习有着很好的作用。