20232409 2025-2026-1 《网络与系统攻防技术》实验四实验报告
恶意代码分析实践
1.实验内容
1.1识别恶意代码的文件类型标识,进行脱壳与字符串提取。
1.2使用IDA Pro静态或动态分析所给exe文件,找到输出成功信息的方法。
1.3分析自制恶意代码样本并撰写报告。
1.4取证分析实践。
2.实验目的
掌握恶意代码分析技术,包括文件识别、脱壳、字符串提取及静态动态分析,完成样本分析与取证报告撰写。
3.实验环境
安装Kali镜像的VMware虚拟机,具体配置如图1所示:
(图1,实验环境虚拟机)
4.实验过程与分析
4.1 恶意代码文件类型标识、脱壳与字符串提取
4.1.1 分析原始rada样本
在Kali虚拟机中使用file命令分析目标文件的类型和结构。
分析结果表明RaDa.exe是一个32位Windows GUI可执行文件,是一个带有图形用户界面的应用程序。它是针对Intel x86处理器设计的,内部包含3个段。如图2所示:

(图2,在Kali虚拟机中分析RaDa文件)
在Windows主机中使用软件PEiD对目标文件进行分析。利用软件PEiD可以发现文件使用了UPX加壳工具。
分析结果表明PEiD检测到该文件使用了UPX加壳,并给出了UPX加壳的版本区间,同时还显示Markus & Laszlo是该UPX的开发者。如图3所示:

(图3,使用PEiD分析RaDa文件)
4.1.2 分析脱壳后的RaDa样本
使用“超级巡警之虚拟机自动脱壳器”对RaDa样本进行脱壳处理(我的电脑无法正常安装超级巡警之虚拟机自动脱壳器,于是使用同学电脑脱壳后将文件传回使用)。如图4所示:

(图4,对RaDa文件进行脱壳处理)
打开IDA Pro,选择PE Executable,即对Windows下的可执行文件进行分析。所需分析的文件是经过脱壳后的RaDa_unpacked.exe文件。如图5所示:

(图5,打开IDA Pro工具)
选择IDA ViewA,在地址为00403F7A处可以看到RaDa文件的作者信息,为Raul Siles && David Perez;在地址为00403FD4处可以看到RaDa文件的创作时间,为2004年9月。如图6所示:

(图6,使用IDA Pro分析RaDa文件)
4.2 利用IDA Pro静态或动态分析所给的exe文件
4.2.1分析文件crackme1.exe
在Windows主机的PowerShell中运行此文件,发现当输入额外的参数不为1时,文件给出提示“I think you are missing something.”,当输入1个参数时,文件提示“Pardon? What did you say?”。说明该文件需要额外输入一个正确的参数。如图7所示:

在IDA Pro中打开文件crackme1.exe,选择View→Graphs→Function calls,打开该文件的函数调用图。如图8所示:

在函数调用图中,发现函数sub_401280会调用strcmp用于字符串比较的库函数以及fprintf、printf等涉及IO的库函数,说明sub_401280函数可能会对接收的参数进行比较判断,并输出相应语句。如图9所示:

选择Windows→Functions,打开函数管理工具。如图10所示:

在函数管理窗口中,双击需分析的函数sub_401280,打开该函数的流程图。如图11所示:

从函数流程图中分析可知,输入的参数不为2时,该程序将给出输出“I think you are missing something.”。当程序得到两个输入时,如果第二个输入为“I know the secret”,则程序给出输出“You know how to speak to programs, Mr. Reverse-Engineer”;否则输出“Pardon? What did you say?”。因此,我们需要输入的第二个参数为字符串“I know the secret”。如图12所示:

在Windows主机的PowerShell中再次运行此文件,输入额外参数“I know the secret”,得到了正确的回答。如图13所示:

4.2.2分析文件crackme2.exe
在Windows主机的PowerShell中运行此文件,发现返回情况大体与crackme1.exe相似.但输入额外参数为“I know the secret”时,仍然无法验证通过,说明还需寻找适合文件二的正确参数。如图14所示:

打开crackme2.exe的函数调用图,发现函数sub_401280会调用strcmp、fprintf、puts、putchar等可疑的库函数,说明sub_401280函数可能仍是对接收的参数进行比较判断的函数。如图15所示:

在函数管理工具中打开函数sub_401280的流程图,分析可知,除crackme1所具有的比较内容外,crackme2还对输入的第一个参数进行了比较,要求其为“crackmeplease.exe”。说明我们需要将该文件的文件名修改为crackmeplease.exe再运行。如图16所示:

修改文件名,再次输入参数。发现可以获得正确的结果。需要注意的是,这里需要在cmd中运行,不要在PowerShell下运行,因为PowerShell中运行需使用“./crackmeplease.exe”,这样会使得第一个参数匹配不通过而失败。如图17所示:

4.3 分析恶意代码样本RaDa,并撰写报告
4.3.1分析文件的基本信息
通过输入以下命令对RaDa文件的进行文件类型识别、完整性验证以及时间戳分析:
file RaDa.exe #识别文件类型 md5sum RaDa.exe #计算文件的md5摘要值 exiftool RaDa.exe | grep "Time Stamp" #提取文件元数据并过滤时间戳信息
从返回值中可以看出RaDa.exe是一个32位Windows GUI程序,其md5摘要值为caaa6985a43225a0b3add54f44a0d4c7,且在2004年10月30日编译的。如图18所示:

4.3.2分析文件的目的
在IDA Pro中分析脱壳后的RaDa文件。打开函数调用图,发现函数sub_404FB0下有很多的子函数,可以分析该函数的流程图以获取更多信息。查看函数调用图如图19所示,查看sub_404FB0流程图如图20所示:


查看sub_404FB0流程图发现,该文件主要通过修改注册表和定义恶意路径,以实现恶意软件的持久化驻留与远程控制。具体分析如下:
命令mov edx, offset aHttp10_10_10_1;"http://10.10.10.10/RaDa",是将地址http://10.10.10.10/RaDa加载到edx寄存器。而IP地址10.10.10.10很可能是攻击者的命令控制服务器。后续所有的下载指令、上传数据都会与这个服务器通信。如图21所示:

对于四条命令命令mov edx, offset aRada_commands_ ; "RaDa_commands.html" 与 mov edx, offset aCgiBin ; "cgi-bin"与mov edx, offset aDownload_cgi ; "download.cgi"与mov edx, offset aUpload_cgi ; "upload.cgi"。它们连续调用了字符串拼接函数,分别将四个字符串复制到内存中。其中RaDa_commands.html可能是攻击者用来下发指令的网页文件。cgi-bin可能是Web服务器上存放脚本的通用目录。download.cgi可能是用于下载新指令或恶意模块的脚本。upload.cgi可能是用于上传窃取数据的脚本。使得这个恶意文件具备了接收命令与回传数据的双向通信能力。如图22所示:

对于命令mov edx, offset aCRadaTmp ; "C:\\RaDa\\tmp"表示恶意软件在C盘根目录下创建一个名为RaDa的文件夹,并在其中创建一个名为tmp的子文件夹,存放下载的临时文件或窃取的数据。如图23所示:

对于命令offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersion",表示该文件通过HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run修改注册表路径,将自身添加为开机自启动项,确保每次开机自动运行。如图24所示:

对于命令mov edx, offset aCRadaBin ; "C:\\RaDa\\bin",是将"C:\\RaDa\\bin"复制到内存。随后连续调用两次字符串拼接函数,得到完整的可执行文件路径“C:\\RaDa\\bin\RaDa.exe”。这个路径将被用于保存自身的文件,并完成开机自启动配置。如图25所示:

此外,尝试运行脱壳后的RaDa进程,发现即使使用了管理员身份,且该文件不是只读,仍无法正常运行。如图26所示:

4.3.3问题回答
问题一:提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息。
回答一:它的md5摘要为caaa6985a43225a0b3add54f44a0d4c7。其他的基本信息包括:RaDa.exe是一个32位Windows GUI可执行文件,是一个带有图形用户界面的应用程序。它是针对Intel x86处理器设计的,内部包含3个段。具体截图见图2与图18所示。
问题二:找出并解释这个二进制文件的目的。
回答二:我认为这是一个远程控制的后门程序。首先它创建了专属的工作目录,构建开机自启动的持久化机制进行潜伏与环境准备,随后它连接远程C&C服务器,最终等待并执行任意恶意指令,比如数据窃取、参与DDoS攻击、充当跳板等。
问题三:识别并说明这个二进制文件所具有的不同特性。
回答三:该二进制文件是一个由添加了UPX压缩壳的、使用VBA编译的、具备持久化和网络通信能力的模块化后门程序。它的特性包括:开机自启动,动态动态创建工作目录、与硬编码C&C服务器进行HTTP通信,下载和执行后续恶意载荷。
问题四:识别并解释这个二进制文件中所采用防止被分析或逆向工程的技术。
回答四:该文件采用了UPX加壳技术,它通过压缩原始代码和劫持入口点隐藏程序逻辑。其应对方法是使用UPX脱壳工具还原原始代码,并通过动态调试绕过反调试机制。
问题五:对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
回答五:我认为这个RaDa恶意代码样本属于后门程序。它不具备自我复制或主动传播的能力,而是通过伪装诱导用户执行,其主要行为是在受害主机上建立一个隐蔽、持久的远程访问通道,以便攻击者可以完全控制该主机。
问题六:给出过去已有的具有相似功能的其他工具。
回答六:后门程序有灰鸽子,能够创建后门的工具包括msfvenom和veil。
问题七:可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
回答七:可以,该二进制文件的开发者是Raul Siles && David Perez。在IDA Pro中可以找到开发作者的信息。能够获取该信息需要作者在创作时就留下此类信息,同时该文件还需要以明文的形式展示(若加壳则需脱壳),此外还需要有一些专门的分析工具,比如此处的IDA Pro。
问题八:给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
回答八:我认为可以采用基于特征码的检测,基于启发式的检测,沙箱检测,基于网络流量分析的检测,基于日志分析的检测的方式检测该恶意软件。
方法一:基于特征码的检测。将该软件的内容与与病毒库中的特征码进行比对。如果匹配成功,就判定为恶意软件。它包括静态特征码和UPX壳特征码,对于使用了UPX加壳的可执行文件,可将其标记为可疑文件。这种方式资源消耗低,对已知病毒非常有效,但是不在病毒库中的特征值则无效。
方法二:基于启发式的检测。通过分析代码的行为和逻辑来猜测其是否为恶意。它使用一套预定义的规则和评分系统,如果程序的行为得分超过某个阈值,就会被判定为可疑。这种方式能够检测未知病毒和已知病毒的变种,但是漏报和误报的可能性较大。
方法三:沙箱检测。在隔离的虚拟环境安全地执行可疑文件并监控它的行为。这种方式能看到恶意软件的完整行为链,更加准确,但是资源消耗大,检测速度慢,且部分高级恶意软件能识别沙箱环境并选择不执行恶意行为。
方法四:基于网络流量分析的检测。这种方式通过监控网络中的数据包,分析网络流量的模式、协议和内容,发现恶意行为。比如可以检测主机是否连接了恶意IP地址并接收发送数据包,检测主机是否下载了DDoS模块往单一目标的SYN或UDP包。这种方式可以检测到已成功渗透到内网的恶意软件,不受文件加壳影响,但是如果恶意软件使用加密通信,检测会较为困难。
方法五:基于日志分析的检测。通过分析日志,发现恶意软件的恶意行为。这种方法是事后取证和发现失陷主机的手段,但是分析时日志量巨大,且攻击者一般会清除自己的日志,分析困难。
4.4 取证分析实践
4.4.1 IRC
问题:
(1)IRC是什么?
(2)当IRC客户端申请加入一个IRC网络时将发送哪个消息?
(3)IRC一般使用那些TCP端口?
回答:
(1)IRC的全称为Internet Relay Chat,它是一种基于文本的实时网络聊天协议,主要用于多用户、多频道的即时交流。僵尸网络的控制者经常利用IRC服务器作为命令控制服务器,被感染的肉鸡会作为客户端连接到指定的IRC频道,等待攻击者下达指令。
(2)当IRC客户端想要加入一个网络时,它需要完成注册操作,即发送一条PASS/NICK/USER组合消息。其中PASS是网络或服务器所需的口令(可选),NICK是网络上的昵称,USER是注册用户的个人信息。在这些消息中,最核心的、标识身份的消息NICK和USER。当服务器收到这些信息后,如果昵称没有被占用,就会把用户注册到网络中,并返回表示成功的代码。
(3)IRC最常使用的端口是6667端口与6697端口,偶尔也会使用其他相关的端口。其中6667端口是IRC的默认非SSL端口,其上通信是明文传输的;6697端口是现代IRC最常用的SSL/TLS加密端口,可防止通信被窃听。
4.4.2 僵尸网络
问题:
(1)僵尸网络是什么?
(2)僵尸网络通常用于什么?
回答:
(1)僵尸网络是一个由攻击者通过命令与控制服务器集中控制大量被感染的互联网设备组成的网络。其中被控制的设备就是僵尸主机或肉鸡。
(2)僵尸网络的核心价值在于庞大、可远程控制的资源。攻击者利用这些资源进行多种犯罪活动。比如发动DDOS攻击、作为跳板增加追踪难度、信息窃取与数据挖掘、静默挖矿等。
4.4.3 蜜罐主机
问题:蜜罐主机(IP地址:172.16.134.191)与哪些IRC服务器进行了通信?
回答:蜜罐主机与IP地址为209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10的IRC服务器进行了通信。
在Wireshark中打开botnet_pcap_file.dat文件,通过命令ip.src==172.16.134.191 and tcp.dstport==6667,筛选源IP为172.16.134.191,目的端口为6667的数据包。经过分析可知,蜜罐主机与4台IRC服务器进行通信,IRC服务器的IP分别是209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10。如图27所示:

4.4.4 访问过服务器的僵尸网络
问题:在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
回答:有3461个不同的主机访问了这一僵尸网络。
在Kali虚拟机中需安装软件tcpflower。通过命令sudo apt update更新软件包列表索引,再通过命令sudo apt-get install tcpflow,下载tcpflower。可通过命令tcpflow --version查看安装版本。如图28所示:

通过命令tcpflow -r botnet_pcap_file.dat “host 209.196.44.172 and port 6667”,使用tcpflow,从botnet_pcap_file.dat文件中,筛选出与IP为209.196.44.172且端口为6667的主机相关的所有TCP流量数据。对于待分析文件botnet_pcap_file.dat可以不用从Windows主机上传过来,可以直接用虚拟机登录学习通下载。如图29所示:

执行后,tcpflow会生成report.xml报告文件,包含了TCP流量的统计信息。此外还会生成独立的TCP连接流文件,其文件名格式为:源IP.源端口—目的IP.目的端口。如图30所示:

在僵尸网络场景中,受感染的主机会主动去连接服务器。因此,此处需要查找源IP为209.196.44.172的文件,使用命令cat 209.196.044.172.06667-172.016.134.191.01152 | grep -a "^:irc5.aol.com 353" | sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x ://g" | tr ' ' '\n' | tr -d "\15" | grep -v "^$" | sort -u | wc -l,精确统计访问僵尸网络服务器的不同客户端数量。
其中grep -a "^:irc5.aol.com 353"用于筛选,只保留以:irc5.aol.com 353开头的行;sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x ://g"用于清理修剪,只保留用户名列表;tr ' ' '\n'用于转换格式;tr -d "\15"用于删除隐藏字符;grep -v "^$"用于删除空行;sort -u用于排序去重;wc -l用于计数。
从返回数据可知,共有3461台不同的主机访问了以209.196.44.172为服务器的僵尸网络。如图31所示:

4.4.5 被用于攻击蜜罐主机的IP地址
问题:哪些IP地址被用于攻击蜜罐主机?
回答:共有165个IP地址被用于攻击蜜罐主机,具体IP地址如图32所示:

通过tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 20232409_1025.txt;wc -l 20232409_1025.txt,从botnet_pcap_file.dat文件中,找出所有向主机172.16.134.191发送数据包的源IP地址,保存并统计它们的具体数值。其中awk -F " " '{print $3}'表示提取源IP地址和端口,cut -d '.' -f 1-4表示从“源IP.源端口”中分离出纯IP地址,sort | uniq表示对IP地址进行排序和去重。命令与结果如图33所示:

4.4.6 攻击者使用的安全漏洞
在Wireshark中打开将botnet_pcap_file.dat文件,选择点Statistics→Protocol Hierarchy,分析网络流量中各种协议的分布情况和层次结构。从分析结果中可以看出,攻击者大部分使用了TCP数据包(占比约99.7%),也有使用少量的UDP数据包(占比约0.3%)。如图34所示。

在Kali终端中使用命令tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and tcp[tcpflags]== 0x12 | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq,筛选主机172.16.134.191发起的所有TCP连接的源端口号;使用命令tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq,筛选主机172.16.134.191发送的所有UDP数据包的源端口号。如图35所示:

对于TCP的分析结果可知,使用的端口有135(RPC,Windows远程过程调用)、139/445(SMB,Windows文件共享)、25(SMTP,简单邮件传输协议)、4899(Remote Administrator,远程控制软件)、80(HTTP,网页服务)。对于UDP的分析结果可知,使用的端口为137(NetBIOS,Windows网络邻居功能)。
4.4.7 成功的攻击与原因
成功的攻击有:TCP连接得到445端口、4899端口、80端口。成功原因见具体分析部分:
(1)TCP连接135端口
在Wireshark中打开将botnet_pcap_file.dat文件,设置过滤条件为ip.addr==172.16.134.191 and tcp.port==135。如图36所示:

(图36,筛选TCP连接的135端口)
经分析可知,对于TCP连接的135端口,只有三次握手的数据包,而没有后续的恶意数据包,且客户端很快发送FIN请求断开连接。因此135端口虽被成功连接,但未被成功利用。
(2)TCP连接139端口
设置过滤条件为ip.addr==172.16.134.191 and tcp.port==139。如图37所示:

(图37,筛选TCP连接的139端口)
经分析可知,对于TCP连接的139端口,具有三次握手的数据包,且攻击者尝试访问共享目录\\PC0191\c,但服务器返回RST拒绝访问,后续也没有恶意数据包。因此139端口虽然被成功连接,但未被成功利用。
(3)TCP连接25端口
设置过滤条件为ip.addr==172.16.134.191 and tcp.port==25。如图38所示:

(图38,筛选TCP连接的25端口)
经分析可知,对于TCP连接的25端口,具有三次握手的数据包。但接建立后,没有后续的恶意数据包,且服务器很快发送FIN,ACK请求断开连接。因此25端口虽然被成功连接,但未被成功利用。
(4)TCP连接445端口
设置过滤条件为ip.addr==172.16.134.191 and tcp.port==445。如图39所示:

(图39,筛选TCP连接的445端口)
经分析可知,外部主机195.36.247.77向172.16.134.191:445发起TCP三次握手,进行了NTLMSSP认证协商且通过认证,发起Tree Connect请求以访问共享资源。
此外,多个源IP向目标172.16.134.191:445发起大量SMB请求,其中包含了重复的NTLMSSP认证、Tree Connect到不同路径以及大量的SAMR/DCE/RPC操作,这可能是横向移动或扫描行为。
最后,攻击者通过445端口的SMB协议,成功删除了目标主机172.16.134.191上路径为C:\System32\PSEXESVC.EXE的文件。而PSEXESVC.EXE是Windows系统中PsExec工具用于远程执行命令的服务端组件,删除该文件会导致PsExec无法正常工作,可能是攻击者为清除痕迹或阻止后续检测而采取的行动。如图40所示:

(图40,攻击者删除系统文件)
综上,对于TCP连接的445端口,已被攻击者成功利用。攻击者的具体攻击方式为:初始连接→认证→权限扩张→恶意文件操作。且攻击者能够删除System32目录下的文件,说明它可能通过漏洞利用或则和弱口令攻击的方式获得了管理员权限。这属于SMB漏洞利用。
(5)TCP连接4899端口
设置过滤条件为ip.addr==172.16.134.191 and tcp.port==4899。如图41所示:

(图41,筛选TCP连接的4899端口)
经分析可知,外部主机向172.16.134.191:4899发起TCP三次握手,随后发送了大量rbakcupl > radmin-port [PSH,ACK]数据包,表示攻击者通过4899端口持续传输数据。而PSH表示“紧急需要立即处理的数据”,说明攻击者已建立稳定的通信通道。如图42所示:

(图42,攻击者传输数据)
最后,攻击者通过HTTP请求,发送目录遍历攻击HEAD /cgi/../../../../../winnt/system32/cmd.exe?/c+dir。如图43所示:

(图43,攻击者发送目录遍历攻击)
综上,对于TCP连接的4899端口,已被攻击者成功利用。攻击者的具体攻击方式为:初始连接→数据传输→恶意命令执行。攻击者通过4899端口的Web界面漏洞,成功执行了系统命令,说明4899端口已被用来控制目标主机。这属于远程控制软件漏洞利用。
(6)TCP连接80端口
设置过滤条件为ip.addr==172.16.134.191 and tcp.port==80。如图44所示:

(图44,筛选TCP连接的80端口)
经分析可知,在正常的TCP三次握手后,攻击者向80端口发送了由大量字符“c”组成的数据包,这是一个缓冲区溢出的攻击载荷。且在攻击包发送后,服务器没有返回任何RST或ICMP错误信息,说明服务器接收并处理了这个恶意请求。同时,在攻击之后,客户端和服务器之间还有正常的HTTP通信,虽然此次攻击没有导致服务崩溃,但攻击者可能已在服务器中植入后门或维持了访问权限,使得服务器被控制。如图45所示:

(图45,攻击者发送缓冲区溢出载荷)
综上,对于TCP连接的80端口,已被攻击者成功利用。攻击者的具体攻击方式为:初始连接→缓冲区溢出攻击→恶意代码执行。攻击者通过80端口的Web服务漏洞,成功发送了包含超长字符串的恶意载荷,导致目标服务器缓冲区溢出,从而控制目标主机。这属于Web服务缓冲区溢出漏洞利用。
(7)UDP连接137端口
设置过滤条件为ip.addr==172.16.134.191 and udp.port==137。如图46所示:

(图46,筛选UDP连接的137端口)
经分析可知,对于UDP连接的137端口,虽然具有大量的NetBIOS服务扫描活动,但数据包内容均为正常的名称查询与响应,未包含任何攻击载荷,应当未被攻击者成功利用。
5.问题及解决
问题一:对于“超级巡警之虚拟机自动脱壳器”无法启动其安装程序。无论是双击,还是在命令行下用普通用户或是管理员身份运行均无法打开。如图47所示:

(图47,没有权限访问文件)
解决一:不知道具体的原因所在,于是在其他同学的电脑上进行脱壳再将脱壳后的文件传回我的电脑进行分析。
问题二:在运行crackme2.exe时,已经将文件名改成了crackmeplease还是无法获得正确的回答。如图48所示:

(图48,修改文件名后无法得到正确回答)
解决二:这是因为我原先的PowerShell中运行,其前面会带“./”,使得参数名称不匹配,而不添加“./”又无法正常运行程序。将其改换到在cmd下就可以正常运行了。
问题三:在统计访问僵尸网络服务器的不同客户端数量。我是用命令cat 172.016.134.191.01152-209.196.044.172.06667 | grep -a "^:irc5.aol.com 353" | sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x ://g" | tr ' ' '\n' | tr -d "\15" | grep -v "^$" | sort -u | wc -l,却发现访问数量为0?如图49所示:

(图49,访问僵尸网络服务器客户端数量为0错误)
解决三:后续我了解到,在僵尸网络场景中,受感染的主机会主动去连接服务器。因此,在统计访问僵尸网络服务器的不同客户端数量时,需要查找源IP为209.196.44.172的文件。
6.心得体会
本次实验我学习了系统监控与恶意代码分析,学习的内容有:对恶意代码样本进行识别文件类型、脱壳、字符串提取操作,使用IDA Pro静态或动态分析所给exe文件,找到输出成功信息的方法,分析恶意代码样本并找出它的基本信息与目的,对于Snort收集的蜜罐主机网络数据源进行取证分析。通过进行实践以及相关问题的回答,我对于系统监控与恶意代码分析的实现方式与基本原理有了初步的了解。
实验过程整体顺利,但也遇到了一些问题。问题主要出现实验环境配置上:我使用的脱壳工具始终无法在本机正常运行。尽管我已尝试以管理员身份执行,并确保了所有必要的文件权限,问题依然存在。这一情况在其他同学中并未出现,由于无法准确定位根源,最终我只能在同学的设备上完成脱壳后,再将文件传回进行后续分析。
此外,在分析过程中,我也因对某些细节理解不足而走过弯路。例如,在分析crackme2样本时,由于未能第一时间意识到PowerShell与cmd在命令行参数传递机制上的差异,导致长时间无法获得预期结果。直至反复比对并总结出参数传递的规律后,才得以顺利解决。同样,在统计访问僵尸网络服务器的独立客户端数量时,初期因混淆了网络流量中源IP与目的IP的逻辑关系,使得统计结果始终为零。经过多次尝试与逻辑梳理,我才最终明确了数据包中IP地址的正确对应关系,完成了统计。
总而言之,在本次实验中,我学习了系统监控与恶意代码分析技术,并进行了相关实践,体验了分析恶意代码以及取证的方法。我相信本次的实验会对我未来在网络与系统攻防技术的学习有所帮助。

浙公网安备 33010602011771号