20242943 2024-2025-2 《网络攻防实践》实践八报告

一.实践内容

本次实验包括两个实践任务和两个分析任务。

实践任务一是对提供的rada恶意代码样本进行文件类型识别、脱壳与字符串提取,以获得rada恶意代码的编写作者等信息。

实践任务二是分析Crackme程序,在WinXP Attacker虚拟机中使用IDA Pro分析crackme1.exe和crackme2.exe,以寻找特定的输入,使其能够输出成功信息。

分析任务一是分析一个自制恶意代码样本rada,并获得以下信息:①获得这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;②找出并解释这个二进制文件的目的;③识别并说明这个二进制文件所具有的不同特性;④识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;⑤对这个恶意代码样本进行分类并说明理由;⑥给出过去已有的具有相似功能的其他工具;⑦调查出这个二进制文件的开发作者。

分析任务二是分析Windows 2000系统被攻破并加入僵尸网并回答问题:①IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?②僵尸网络是什么?僵尸网络通常用于什么?③蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?④在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?⑤那些IP地址被用于攻击蜜罐主机?⑥攻击者尝试攻击了那些安全漏洞?⑦那些攻击成功了?是如何成功的?

二.实践过程

1.动手实践任务一:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。

(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具。
①打开WinX主机,进入rada文件夹,查看文件的类型,命令为file RaDa.exe。可以看出这是一个二进制、32位的windows可执行文件,有GUI图形界面。

②查看可打印字符串,命令为strings rada.exe,发现都是乱码,推测是加壳导致。

③查壳。打开PEiD工具,可以看到加壳的工具为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo。

(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理。
①脱壳,使用的工具是超级巡警之虚拟机自动脱壳器。

②脱壳后,查看可打印字符串,命令为strings RaDa_unpacked.exe。

(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁。
打开IDA Pro Free工具,选择脱壳后的文件。分析结束后可以在Strings window窗口中看到作者的信息为(c) Raul Siles && David Perez。

2.动手实践任务二:分析Crackme程序。

(1)分析crackme1.exe。
①进入crackme文件夹,试探地输入一些格式。

②利用IDA分析程序,打开crackme1.exe文件,打开Strings window窗口。前四行是四个语句,“I think you are missing something.”是参数错误的返回语句,“I konw the secret.”是口令,“Pardon?What did you say?”是参数数量正确但内容错误的返回语句,“You konw how to speak to programs,Mr.Reverse-Engineer.”是口令输入正确时的返回语句。

③点击view-->graphs-->function calls,查看函数调用图。

④进入Functions窗口,查看控制输出的函数401280函数。

⑤点击view-->graphs-->flow chart,查看代码流程图。首先会判断输入参数个数是否为2,不是则输出I think you are missing something,是则与I know the secret作比较。

⑥验证。输入口令"I know the secret",可以看到验证成功。

(2)分析crackme2.exe。
①分析crackme2.exe的流程同crackme1.exe一样。




②不同的是crackme2.exe中有一个程序名的判断,需要把程序名更改为crackmeplease.exe,才可以验证成功。

3.分析实践任务一:分析一个自制恶意代码样本rada。

(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息:
输入md5sum rada.exe指令,得到这个二进制文件的md5摘要值为caaa6985a43225a0b3add54f44a0d4c7。输入file RaDa.exe命令识别出这是一个32位的PE文件,并且有GUI图形界面。

(2)找出并解释这个二进制文件的目的:
通过Process Explorer的监听,运行RaDa_unpacked.exe文件并且打开Strings界面。可以看到,程序使用http连接到目标地址为10.10.10.10的主机下名为RaDa_commands.html的网页;并创建了文件夹C:\RaDa\tmp来保存其下载的文件;对注册表进行了读写和删除的操作,将rada设置为开机启动;执行了get 下载文件、put 上传文件、screenshot 截图并保存文件、sleep RaDa休眠;进行DDoS攻击等命令。


(3)识别并说明这个二进制文件所具有的不同特性:
该文件会与10.10.10.10建立相关连接,并将文件移动至C盘,修改注册表,发动DDoS攻击。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术:
通过实践一可以得知此文件使用了UPX加壳技术。
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由:
该代码属于后门程序。因为攻击者可以利用它发动远程攻击,但它并不具有传播性,因此不是病毒或蠕虫。
(6)给出过去已有的具有相似功能的其他工具:
Back Orifice、Sub 7、NetBus等。
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
在Strings界面,可以看到作者信息为(C)2004 Raul Siles & David Perez。

4.分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?

IRC(Internet Relay Chat)是一种早期的实时互联网聊天协议,它允许用户通过客户端与其他用户进行即时文本通信。IRC使用客户端-服务器架构,用户通过IRC客户端连接到IRC服务器,然后可以在特定的频道内与其他用户交流。
当IRC客户端申请加入一个IRC网络时,它会发送一条NICK(昵称)命令来注册一个唯一的昵称,并且会发送一条USER命令来提供用户的详细信息(如用户名、主机名、真实姓名等)。
IRC通常使用以下TCP端口:
6660-6669:这些是最常见的IRC端口,适用于大多数IRC网络。
7000:用于某些IRC网络或作为备用端口。
6697:用于加密的IRC连接(SSL/TLS),通常用于保护IRC连接的隐私。

(2)僵尸网络是什么?僵尸网络通常用于什么?

僵尸网络(Botnet)是由大量被恶意软件感染的计算机或其他联网设备组成的网络。这些设备通常被称为“僵尸”或“机器人”,它们在不被用户知晓的情况下,受到黑客或恶意软件操控。
僵尸网络通车用于:发动DDoS攻击、发送垃圾邮件、窃取用户信息、密码破解、挖掘加密货币等。

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
通过命令ip.src==172.16.134.191 and tcp.dstport == 6667过滤,可以看到与蜜罐主机进行通信的RC服务器有66.33.65.58、63.241.174.144、217.199.175.10、209.126.161.29、209.196.44.172。

(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
安装tcpflow,命令为sudo apt-get install tcpflow。执行命令sudo tcpflow -r /home/swt/botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'得到三个文件,再使用管道命令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台主机访问了以209.196.44.172为服务器的僵尸网络。

(5)哪些IP地址被用于攻击蜜罐主机?
①创建一个txt文件20242943.txt,将攻击蜜罐主机的IP地址收集到该文件当中,命令为sudo tcpdump -n -nn -r /home/swt/botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 20242943.txt;wc -l 20242943.txt,可以看到一共有165个IP地址。

②打开20242943.txt文件查看。

(6)攻击者尝试攻击了那些安全漏洞?
①筛选与蜜罐主机有响应的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。可以看到响应的端口有135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)。

②同理,利用命令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筛选有响应的UDP端口,可以看到137(NetBIOS)端口是有响应的。

(7)哪些攻击成功了?是如何成功的?
①使用wireshark逐个排查,首先是135端口。可以看到只是进行了连接,没有数据的交互。

②139端口。有很多的TCP、SMB和NBSS的包,可以推测是进行SMB查点。

③25端口。同样只是进行了连接,没有数据的交互。

④445端口。发现在33280包中有一个PSEXESVC.EXE程序,这是一种Dv1dr32蠕虫,可以通过IRC控制主机。通过响应的数据包,可以判断攻击者已经获得了系统权限,这个攻击是成功了。


⑤4899端口。只是一些TCP链接,并没有其他的操作。

⑥80端口。
缓冲区溢出的攻击。

蠕虫病毒。

查看蜜罐主机通过80端口向外的流量,发现蜜罐主机做的几次回应都是IIS服务器的默认页面,可以得知针对80端口的攻击并没有成功。

⑦137端口。只是进行了NetBIOS网络查点,并没有攻击行为。

三.学习中遇到的问题及解决

  • 问题1:RaDa的两个程序会被主机自动删除,也无法复制到WinX虚拟机当中。
  • 问题1解决方案:原因是RaDa的两个程序被安全中心标记为了风险程序,将其标记为允许在设备上运行,就不会被自动删除,也可以复制到虚拟机当中了。

四.实践总结

本次实验让我收获很大,首先是学会了一种新的技术————对代码进行脱壳与加壳;然后是学会了使用IDA Pro工具,对一个程序进行细致地剖析,解开这个程序的底层逻辑;最后是学习了如何分析一个恶意代码和僵尸网络。总之,本次实验比较复杂,费的功夫也很多,但收获也很多。
posted @ 2025-04-23 22:11  ssswwwttt  阅读(42)  评论(0)    收藏  举报