网络对抗技术 20164323 Exp4 恶意代码分析
1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
监控注册表和文件改动、端口占用、进程驻留等操作。可使用本次实验的netstat记录网络连接情况然后分析,当然wireshark等工具也可以使用。
2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
可通过查看sysmon日志找到该进程邻近或同一时刻的进程动态,源IP、目的IP,端口号和进程号等,以及进一步分析它所创建的子进程。
实验内容
任务一:使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
1、在windows命令行下输入命令
schtasks /create /TN 20164323netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt
"创建名20164323netsta的任务计划
> TN:Task Name,本例中是netstat > SC: SChedule type,本例中是MINUTE,以分钟来计时。本例中设置为5分钟 > MO: MOdifier > TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
2、通过notepad创建netstatlog.bat
内容如下:
date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
然后将其放到C盘根目录下(需要管理员权限)
3、编辑任务操作
进入管理工具,在任务计划程序中找到刚创建的任务20164323netstat
将操作页面里的启动程序修改为netstatlog.bat,并且在常规页面里开启以最高权限执行以防权限不够无法在C根目录创建.txt文件
4、由于是每隔一分钟就记录网络情况,所以此时可以看到netstatlog.txt里已经有更新的内容。(然后等待很长一段时间)
5、用excel生成图表分析
任务二:安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为
1、创建20164323monconfig.txt作为sysmon的配置文件
内容如下:
<Sysmon schemaversion="4.20"> <!-- Capture all hashes --> <HashAlgorithms>*</HashAlgorithms> <EventFiltering> <!-- Log all drivers except if the signature --> <!-- contains Microsoft or Windows --> <ProcessCreate onmatch="exclude"> <Image condition="end with">chrome.exe</Image> </ProcessCreate> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </FileCreateTime> <NetworkConnect onmatch="exclude"> <Image condition="end with">chrome.exe</Image> <SourcePort condition="is">137</SourcePort> <SourceIp condition="is">127.0.0.1</SourceIp> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</DestinationPort> </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,解压。
安装sysmon:以管理员身份执行命令sysmon.exe -i C:\20164323moncfig.txt
会提示出错,输入命令sysmon -accepteula -i -n;
就会在任务管理器中看到sysmon.exe已经在运行了
在事件查看器里查看日志
图标“计算机”右键,点击打开“管理”。点击左侧“系统工具”->“事件查看器”->应用程序和服务日志/Microsoft/Windows/Sysmon/Operational
运行之前制作的后门回连我的kali
查询得到进程号为3452
在日志中以进程号为关键词搜索相关信息
首先找到了我的后门程序
日志名称: Microsoft-Windows-Sysmon/Operational 来源: Microsoft-Windows-Sysmon 日期: 2019/4/6 19:55:47 事件 ID: 3 任务类别: Network connection detected (rule: NetworkConnect) 级别: 信息 关键字: 用户: SYSTEM 计算机: LAPTOP-TH3K87JU 描述: Network connection detected: RuleName: UtcTime: 2019-04-06 11:55:46.020 ProcessGuid: {1283ad99-93c1-5ca8-0000-0010a9cbc502} ProcessId: 3452 Image: D:\作业\gongxiang\4323met.exe User: LAPTOP-TH3K87JU\dzy Protocol: tcp Initiated: true SourceIsIpv6: false SourceIp: 192.168.38.1 SourceHostname: LAPTOP-TH3K87JU SourcePort: 52768 SourcePortName: DestinationIsIpv6: false DestinationIp: 192.168.38.128 DestinationHostname: DestinationPort: 4323 DestinationPortName: 事件 Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-Sysmon" Guid="{5770385F-C22A-43E0-BF4C-06F5698FFBD9}" /> <EventID>3</EventID> <Version>5</Version> <Level>4</Level> <Task>3</Task> <Opcode>0</Opcode> <Keywords>0x8000000000000000</Keywords> <TimeCreated SystemTime="2019-04-06T11:55:47.962346900Z" /> <EventRecordID>4020</EventRecordID> <Correlation /> <Execution ProcessID="16028" ThreadID="17196" /> <Channel>Microsoft-Windows-Sysmon/Operational</Channel> <Computer>LAPTOP-TH3K87JU</Computer> <Security UserID="S-1-5-18" /> </System> <EventData> <Data Name="RuleName"> </Data> <Data Name="UtcTime">2019-04-06 11:55:46.020</Data> <Data Name="ProcessGuid">{1283AD99-93C1-5CA8-0000-0010A9CBC502}</Data> <Data Name="ProcessId">3452</Data> <Data Name="Image">D:\作业\gongxiang\4323met.exe</Data> <Data Name="User">LAPTOP-TH3K87JU\dzy</Data> <Data Name="Protocol">tcp</Data> <Data Name="Initiated">true</Data> <Data Name="SourceIsIpv6">false</Data> <Data Name="SourceIp">192.168.38.1</Data> <Data Name="SourceHostname">LAPTOP-TH3K87JU</Data> <Data Name="SourcePort">52768</Data> <Data Name="SourcePortName"> </Data> <Data Name="DestinationIsIpv6">false</Data> <Data Name="DestinationIp">192.168.38.128</Data> <Data Name="DestinationHostname"> </Data> <Data Name="DestinationPort">4323</Data> <Data Name="DestinationPortName"> </Data> </EventData> </Event>
任务三:恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
1、使用VirusTotal分析恶意软件
将后门程序丢到VirusTotal中进行分析,并得到SHA-1、MD5摘要值、文件类型、大小、TRiD文件类型识别结果和算法库支持情况
2、使用Process Monitor分析恶意软件
先反弹连接kali,并且得到进程号10892
发现有很多记录,找出需要的很不容易得到结果
3、使用Process Explorer分析恶意软件
4、使用PEiD分析恶意软件
加壳:
不加壳:
5、使用systracer分析恶意软件
正常运行和成功回连
通过compare发现注册表里出现了改动
查看后门软件的“opened handles”来对比
Wireshark进行抓包分析
其先进行了TCP的三次握手,之后再进行数据的传输,如图所示,带有PSH,ACK的包传送的便是执行相关操作指令时所传输的数据包。
问题
在安装system monitor时,在按照博客编写配置文件开始执行安装后,需要把3.10改成4.20,在抓包的时候 ,我首先监听的是计算机所连接的wifi,监听了一段时间后没有发现我主机跟kali之间的数据传输,于是我重新选择虚拟网卡进行监听,抓到了两个互相通信所产生的包。
实验感想
在此次实验中,我使用了许多恶意代码分析软件,从网络连接和端口、系统注册表变化等多方面的监控,然后具体定位到某一个或某一些进程后进入深入分析。有时候杀软并不可靠,有一些我们没有发现的东西在计算机深层运行,这些就需要我们分析各种信息从而找到问题所在。