# 20222419 2024-2025-1 《网络与系统攻防技术》实验四实验报告
1.实验内容
一、恶意代码文件类型标识、脱壳与字符串提取
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
二、使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
三、分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
(2)找出并解释这个二进制文件的目的;
(3)识别并说明这个二进制文件所具有的不同特性;
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
(6)给出过去已有的具有相似功能的其他工具;
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
(8)给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
四、取证分析实践
Windows 2000系统被攻破并加入僵尸网络
问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
(2)僵尸网络是什么?僵尸网络通常用于什么?
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
(5)哪些IP地址被用于攻击蜜罐主机?
(6)攻击者尝试攻击了那些安全漏洞?
(7)那些攻击成功了?是如何成功的?
2.实验过程
2.1 恶意代码文件类型标识、脱壳与字符串提取
2.1.1 使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(1)通过file命令识别文件类型,查看文件信息
“PE32”说明是一个32位的PE文件,“(GUI) Intel 80386”说明运行在Intel 80386 GUI上,“MS Windows”说明针对的操作系统是Windows
(2)使用PEiD工具查看文件加壳类型
可以看到这个是一个版本为0.89.6的UPX壳
2.1.2 使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(1) 使用超级巡警脱壳工具对程序进行脱壳处理,如下图,脱壳后的程序是RaDa_unpacked.exe
2.1.3 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
从图中可以看到这个恶意代码的制作人是Raul Siles、David Perez,制作的时间是2004年
用ida工具上传RaDa_unpacked.exe,也可以找到编写的作者是Raul Siles和David Perez,在2004年创建。
2.2 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息
(1)使用IDA软件查看crackme1.exe包含的字符串
(2)分析crackme1.exe,查看函数调用图。
_main函数可以调用_fprintf和_printf。据此,我们判断_main中包含选择输出哪些信息的逻辑结构,并且还有_strcmp可以比对输入结果的可能。
(3)查看main函数并进行反编译
分析伪代码可以得知,函数在输入从判断输入的参数要满足两个并且比对输入是否有"I know the secret",然后输出一些信息,如果没有则输出"Pardon? what did you say?",如果参数没有满足两个则输出"I think you are missing something.",查看效果
(4)仿照上述操作获得crackme2的输入
分析伪代码发现第一个输入的参数得是crackmeplease.exe,如果从argv中读取的字符串与“crackmeplease.exe”相等,程序会执行特定的操作,才能跳转到正确的输出
2.3 分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
md5sum RaDa.exe
指令得到其md5摘要。利用file RaDa.exe
查看RaDa.exe的文件格式。
2.3.2 找出并解释这个二进制文件的目的
打开Process Explorer,搜索RaDa,查看strings
该二进制文件展现了以下行为:
- 通过HTTP协议向10.10.10.10\RaDa\RaDa_commands.html发送请求;
- 在C盘创建RaDa文件夹,并在其下建立tmp和bin子文件夹,同时将RaDa.exe复制至bin子文件夹;
- 执行注册表的读取、写入及删除操作;
- 新增两个注册表项,分别位于HKLM\Software\Microsoft\Windows\CurrentVersion\Run和HKLM\Software\VMware, Inc.\VMware Tools\InstallPath,其中HKLM条目类型为REN_SZ,数据内容指向C:\RaDa\bin;
- 具备远程控制电脑的能力,包括put、get、screenshot、sleep等命令。
2.3.3 识别并说明这个二进制文件所具有的不同特性
1.可以修改系统,可以通过修改注册表的方式修改系统设置,比如通过修改HKLM\Software\Microsoft\Windows\CurrentVersion\Run\。
2.可以远程控制,如请求10.10.10.10\RaDa\RaDa_commands.html。
3.具有侵略性,修改系统后会触发截屏、挂起等操作。
2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
采用了UPX加壳技术。
2.3.5 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
此代码被判定为后门程序。它不具备自我复制的能力,因此可以排除蠕虫和病毒的可能性;同时,由于没有执行欺骗性行为,也可以排除是木马程序。并且此代码能够控制目标机器并提取权限,所以确认为后门程序。
2.3.6 给出过去已有的具有相似功能的其他工具
实验三制作的免杀程序,通过运行程序反弹shell,这样可以获取主机的权限并且可以进行一些任务计划程序设置;后门工具Meterprete...
2.3.7 可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,在Windows环境中,输入–author即可弹出开发作者。
2.3.8 给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
1.基于特征码的检测:通过预定义的特征码(签名)来识别恶意软件。特征码是从已知恶意软件中提取的独特字节序列或模式。
2.启发式分析:通过分析程序的行为和代码结构,检测潜在的恶意行为。启发式分析会寻找异常的指令或行为模式。
3.行为分析:监控程序在运行时的行为,例如文件修改、网络通信和系统调用等,判断是否存在恶意行为。
4.沙盒分析:在隔离的虚拟环境中运行可疑程序,观察其行为和影响。沙盒可以捕获恶意软件的动态行为。
5.基于机器学习的检测:使用机器学习算法训练模型,通过分析大量正常和恶意样本,识别恶意软件。常用的算法包括决策树、随机森林和神经网络等。
2.4 取证分析实践
Windows 2000系统被攻破并加入僵尸网络
问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
- IRC(因特网中继聊天)是一种由芬兰人Jarkko Oikarinen在1988年创立的网络聊天协议。它采用客户端-服务器模型,通常由一个服务器进程构成,作为客户端(或其他服务器)连接的核心,负责消息传递、多路复用等功能。这样的架构赋予了IRC良好的扩展性和灵活性。用户通过IRC客户端加入IRC网络时,会发送JOIN命令。该命令告知服务器用户希望加入的频道,服务器随后将用户加入该频道,实现与其他成员的实时通信。IRC通常使用TCP协议的6667端口进行通信。
(2)僵尸网络是什么?僵尸网络通常用于什么?
- 僵尸网络(Botnet)是通过一种或多种传播方式,感染大量主机以bot程序(僵尸程序)病毒,形成一个控制者可对多个被感染主机进行控制的网络。攻击者通过多种手段传播僵尸程序,感染互联网上众多主机,这些主机将接收攻击者指令的控制信道,构成僵尸网络。
僵尸网络常用于多种恶意活动,包括但不限于:
分布式拒绝服务攻击(DDoS攻击):僵尸网络能控制大批受感染计算机,协同发起大规模DDoS攻击,使目标网络或网站因大量流量而服务中断。
垃圾邮件传播:攻击者可通过僵尸网络发送大量垃圾邮件,传播恶意软件、钓鱼链接或其他诈骗信息。
数据盗窃:攻击者可利用僵尸网络窃取敏感信息,如个人身份资料、银行账号信息或商业秘密。
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
通过wireshark软件打开数据包,筛选条件如下
ip.src == 172.16.134.191 && tcp.dstport == 6667
蜜罐主机已与IP地址209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172进行了通信。
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
1.安装tcpflow
2.通过如下命令查找有多少主机访问了以209.196.44.172为服务器的僵尸网络:
tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
得到以下三个文件:209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667与report.xml
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
有3461台主机访问过服务器。
(5)哪些IP地址被用于攻击蜜罐主机?
通过如下指令将攻击蜜罐主机的ip地址筛选出来,并放到生成的20222419ip_list.txt文件中,并且查看生成的文件,发现一共有165个IP。
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> 20222419ip_list.txt;wc -l 2022419ip_list.txt
(6)攻击者尝试攻击了那些安全漏洞?
使用wireshark的“统计-协议分级”:可发现其中只包含IP包,186个为UDP协议,54350个为TCP协议。
通过tcpdump工具进行进一步的筛选
# 哪些TCP端口是开放的、响应的
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
# 哪些UDP端口时开放的、响应的
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 | more
(7)那些攻击成功了?是如何成功的?
1.TCP 135
正常连接,没有攻击行为
2.TCP 139
没有攻击行为
3.TCP 25
没有攻击行为
4.TCP 445
发现IP地址61.111.101.78传输了PSEXESVC.EXE文件。PsExec会将PSEXESVC.EXE上传到目标计算机的ADMIN$共享文件夹,并作为服务运行。这一过程通过SMB协议进行,利用命名管道重定向输入/输出。
5.TCP 4899
4899端口是一个远程控制软件Radmin服务端监听的端口,经常被黑客用来控制被控机。且这类软件一般不会被杀软查杀,比后门更安全。
http协议包,其中包含获取主机cmd的恶意程序
6.TCP 80
在32889分组中有一个蠕虫攻击
7.UDP 137
NBNS是一种用于局域网中计算机间通过NetBIOS名称进行通信的网络协议,它通过广播查询的方式实现名称解析和服务通告。但由于NBNS使用广播且缺乏身份验证机制,存在一些安全风险,如广播风暴和欺骗攻击。因此,在现代网络中,NBNS已逐渐被更安全的DNS和直接基于IP的通信所替代。
3.问题及解决方案
- 问题1:学习通IDA pro没有反编译功能
- 问题1解决方案:下载版本更近的IDA pro
- 问题2:一开始不会使用IDA pro
- 问题2解决方案:参考学习
https://blog.csdn.net/qq_52642385/article/details/135620222
4.学习感悟、思考等
这次实验主要涉及恶意代码分析、静态和动态分析工具的使用、以及取证分析实践。通过这次实验,我掌握了恶意代码的识别与分析方法,了解了如何使用IDA Pro等工具进行逆向工程,并通过实际案例深入理解了僵尸网络的工作原理和取证分析的步骤,但是实验中存在的某些技术已经过时,比如NBNS已逐渐被更安全的DNS和直接基于IP的通信所替代。