lmy12

导航

20252821 2025-2026-2 《网络攻防实践》第8周作业

20252821 2025-2026-2 《网络攻防实践》第8周作业

1.实践内容

1.1 动手实践任务一

对名为 rada 的恶意代码样本进行分析,目标是找出其作者。需要依次完成:

  • 通过文件识别工具判断该样本的文件格式、目标运行平台以及使用了哪种加壳工具;
  • 使用脱壳软件(如超级巡警脱壳机)对样本进行脱壳处理;
  • 利用字符串提取工具从脱壳后的文件中获取有效字符串,从中定位编写作者的信息。

1.2 动手实践任务二

在 Windows XP Attacker 虚拟机环境下,借助 IDA Pro 对 crackme1.exe 和 crackme2.exe 进行静态或动态分析。需要找到能使程序输出成功提示信息的特定输入内容。

1.3 分析实践任务一

针对一个名为 rada 的自制恶意代码样本进行分析,并撰写报告,报告需涵盖以下问题:

  • 提供该二进制文件的概要信息,包括能够用于识别同一样本的关键特征;
  • 确定并解释该文件的主要功能目的;
  • 指出并说明该文件具备的各类特征;
  • 识别并解释该文件中用于防范分析或逆向工程的技术手段;
  • 对该恶意代码进行分类(如病毒、蠕虫等),并说明分类依据;
  • 列举过去已知的、功能相似的其它工具;
  • 判断是否可能追踪到该文件的作者,若可以,说明在何种环境与限制条件下可行。

1.4 分析实践任务二

分析一份来自被攻破的 Windows 2000 系统(已加入僵尸网络)的网络日志数据。原始数据由 Snort 在蜜罐主机上收集,持续 5 天,经过编辑去除了无关流量并合并为单个二进制日志文件,IP 地址和敏感信息已被混淆。需要回答:

  • 解释 IRC 的含义、客户端加入 IRC 网络时发送的消息类型、以及 IRC 常用的 TCP 端口;
  • 解释僵尸网络的概念及其常见用途;
  • 确定蜜罐主机(IP 为 172.16.134.191)与哪些 IRC 服务器有过通信;
  • 统计在观测期间访问 209.196.44.172 这个僵尸网络服务器的不同主机数量;
  • 找出用于攻击蜜罐主机的源 IP 地址;
  • 识别攻击者尝试利用的安全漏洞;
  • 说明哪些攻击成功、成功的方式及大致过程。

2.实践过程

2.1 追踪rada恶意代码

安装 解压工具unrar。

点击查看代码
sudo apt update
sudo apt install unrar

image

将学习通上的rada.rar下载到kali中。然后用刚刚下载的解压工具unrar进行解压。
unrar x -prada rada.rar
image

将老师提供的RaDa程序拷贝到虚拟机环境后,在kali虚拟机中使用file命令查看文件的类型,返回的信息显示该文件是一个有GUI图形界面的32位的windows平台上的可移植可执行程序

image

使用命令strings查看该文件的字符串,输出内容为乱码,说明已经加壳
image

在windows解压文件后,直接拖拽至winxp
image

使用winXP虚拟机自带的PEid工具查看RaDa.exe的加壳情况,显示加的壳为
UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
image

image

使用XP虚拟机自带的超级巡警脱壳机软件进行脱壳
image

image

输入指令strings RaDa_unpacked.exe | more,查看脱壳后的文件
image

使用指令RaDa.exe --authors查看文件的作者,作者为Raul Siles & David Perez
image

2.2 分析Crackme程序

在本机上下载crackme1.exe和crackme2.exe文件后,复制到winxp里面去。
image

打开IDA分析程序,将Crackme1.exe导入到IDA
image
image

image

查看Crackme1.exe的函数调用图(路径View → Graphs → Function calls)
image

打开Functions窗口(Shift+F3)在列表中找到 sub_401280(这是 IDA 自动生成的子函数地址标识)
image

查看sub_401280函数段的代码,其中有特定的输入输出信息,判定输入信息为I know the secret,输出Pardon? What did you say?
image

按F12查看流程图,得到正确的输入信息为I know the secret,对应的输出信息为You know how to speak to programs, Mr.Reserve-Engineer
image

同理使用IDA对Crackme2.exe进行分析
image

查看Crackme2.exe的函数段
image

查看Crackme2.exe的流程图,根据流程图中提供的信息可知需要先修改文件名为crackplease.exe,再输入I know the secret
image

2.3 分析恶意样本rada

使用指令md5sum查看RaDa.exe的文件摘要,使用指令file查看RaDa.exe文件的信息
image

通过 Process Explorer 运行并分析 RaDa.exe
image

点击Strings,可知:程序执行后会在 C 盘创建 RaDa\binRaDa\tmp 目录,通过修改注册表实现开机自启;运行中会周期性与 10.10.10.10 建立 TCP 连接,将下载数据存入 tmp 文件夹,并将自身复制到 bin 目录,为 DDoS 攻击做准备。
image

继续对程序行为进行分析可以看到,RaDa.exe 依次执行了注册表读取、写入与删除操作,随后通过 exeputget 指令完成文件下载与数据交互;在执行 screenshot 截图操作后,程序调用了 sleep 函数进入休眠状态。
image

借助 PEid 工具对 RaDa.exe 进行检测,结果显示该程序经过加壳工具加密处理。程序双击运行后无任何弹窗提示,无可视化交互界面,仅能通过进程列表察觉其运行状态,整体隐蔽性极强。
image
image

UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo是 PEiD 给出的壳类型识别结果

  1. RaDa.exe 属于后门程序。该程序的运行完全依赖攻击者下发远程指令,自身不具备主动传播能力,因此不属于病毒与蠕虫;同时程序未采取伪装伪装伪装伪装手段,也不符合木马程序的典型特征。
  2. 综合行为特征寻找同类恶意样本,2004 年爆发的 Bobax 威胁程序与该样本功能高度相似,同样基于 HTTP 协议访问指定服务器,下载指令文件并完成解析执行。经溯源可知,该恶意程序由 Raul siles 与 David Perze 于 2004 年开发编写。

2.4 分析数据源并回答问题

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

  1. IRC的全称是 Internet Relay Chat,中文常译为“互联网中继聊天”。它是一种历史悠久、架构经典的即时通信协议。
  2. 加入IRC网络的关键消息:NICK 和 USER
    当客户端申请加入时,它不会只发送一条消息,而是会先后发送两个关键命令来完成注册:
  • NICK:这条命令用于向服务器设定或更改用户的“昵称”(Nickname),这是你在聊天室里显示的代号,必须是唯一的。
  • USER:这条命令紧随NICK之后,用于向服务器提供更详细的用户身份信息,通常包括用户名和“真实姓名”(Real Name)等。
    服务器在成功接收到并验证了上述两条命令后,才会将该用户正式注册到网络中,并允许其开始通信。
  1. 常用的TCP端口
    IRC 是一个基于 TCP 协议的文本通信协议,它通过以下几种端口与服务器建立连接:
  • 6667:最标准的明文通信端口。绝大多数 IRC 服务器默认监听的端口,适用于未加密的普通连接。
  • 6697:SSL/TLS 加密通信的默认端口。用于建立更安全的连接,这可以有效防止通信内容被窃听或篡改。
  • 6660-6669:备用的明文端口范围。当默认的 6667 端口因网络策略或其他原因不可用时,服务器或客户端可能会尝试使用这个范围内的其他端口进行连接。
  • 194:一个较旧的IRC端口号。在早期的IRC实现或某些系统的/etc/services文件中,有时会将其分配给 IRC 服务。目前,它远不如 6667 等端口常用。

2.4.2 僵尸网络是什么?僵尸网络通常用于干什么?

  1. 僵尸网络(Botnet)是指攻击者通过恶意软件(如木马、蠕虫)将大量受感染的计算机(称为“僵尸主机”或“肉鸡”)秘密地控制起来,形成的一个可被远程操控的计算机网络。这些主机在用户不知情的情况下,会定期与攻击者的命令与控制服务器(C&C,Command and Control)通信,等待执行指令。
  2. 僵尸网络的常见用途
    由于僵尸网络能够汇聚成千上万台设备的网络带宽和计算能力,攻击者通常将其用于以下非法活动:
  • 发起分布式拒绝服务攻击:这是最广为人知的用途。攻击者命令所有僵尸主机同时向一个目标(如网站、游戏服务器)发送海量请求,使其资源耗尽,无法为正常用户提供服务。
  • 发送垃圾邮件:利用大量受感染的主机绕过反垃圾邮件策略,发送海量的广告、钓鱼邮件或传播其他恶意软件。这能有效隐藏真正的垃圾邮件源头。
  • 窃取敏感信息:僵尸程序可以扫描受感染计算机上的文件、记录键盘输入、窃取登录凭证、信用卡信息或加密货币钱包,并将这些数据回传给攻击者。
  • 分发恶意软件:作为载体,进一步下载和安装其他恶意软件(如勒索软件、银行木马),将一个初始感染点扩展为更广泛的攻击平台。
  • 点击欺诈:控制僵尸主机模拟真实用户,在后台自动点击广告链接,从而欺骗广告网络,为攻击者牟取非法佣金。
  • 加密货币挖矿:部署挖矿程序,利用众多被感染设备的CPU/GPU资源进行挖矿,所有收益归攻击者所有,而受害者只会感到电脑运行变慢、电费增加。
  • 作为跳板隐匿身份:攻击者在实施其他网络攻击(如爆破、入侵)时,可以通过多层僵尸主机进行转发,使追踪原始攻击源变得极其困难。

2.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?

将botnet_pcap_file.dat拷贝到kali虚拟机后再使用wireshark将其打开
image

蜜罐主机 IP 地址为 172.16.134.191,IRC 服务默认使用 6667 端口,因此设置筛选条件:ip.src == 172.16.134.191 && tcp.dstport == 6667
经过筛选分析,共捕获到 5 个 IRC 服务器通信地址,分别为:209.126.161.2966.33.65.5863.241.174.144217.199.175.10209.196.44.172
image

2.4.4 在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

在 Kali 虚拟机中安装tcpflow工具,输入指令sudo apt install tcpflow -y
image

切换至样本文件botnet_pcap_file.dat所在目录
image

输入指令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667",以此提取并捕获对应的 IRC 通信数据包。
image

输入指令cat 209.196.044.172.06667-172.016.134.191.01152 | grep -a "^:irc5.aol.com 353" | sed 's/^:irc5.aol.com 353.*@ #//g' | tr ' ' '\n' | grep -v "^$" | sort -u | wc -l 查看有多少主机连接,结果显示有3459个主机
image

2.4.5 哪些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 > lmy20252821.txt;wc -l lmy20252821.txt
找出所有连接主机的IP地址,将IP地址存入lmy20252821.txt文档中,显示有165个IP地址
image

打开文档查看具体的IP地址
image

2.4.6攻击者尝试攻击了那些安全漏洞?哪些成功了?如何成功的?

输入指令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筛选TCP,结果显示有5个TCP端口响应,分别是 135、139、25、445、4899、80
image

输入指令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,结果显示只有1个UDP端口响应,137号端口
image

在wireshark中设置筛选条件:ip.addr == 172.16.134.191 && tcp.port ==135,分析135号tcp端口,只进行了扫描操作
image

同理,分析139号tcp端口,可以看到建立连接失败,攻击失败
image

分析445号tcp端口,追踪相关 TCP 流后,发现了psexesvc.exe的特征字符串。可判定445 端口已受到Dv1dr32 蠕虫的入侵,该蠕虫通常会利用 SMB 协议(445 端口)传播,并通过psexesvc.exe实现远程控制与恶意代码执行
image

分析4899号tcp端口,存在多次SYN连接被RST拒绝的情况,即有尝试连接但未成功
image

对 TCP 80 端口流量进行分析
image
攻击主机向靶机持续发送大量异常字符数据;同时,靶机频繁回复 TCP DUP ACK 重复确认错误报文。可判断,靶机大概率遭受了缓冲区溢出攻击。
image

分析137号UDP端口,未发现异常,未收到攻击
image

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

  1. kali虚拟机指定文件位置不会解决
    进过哎查询,可使用指令cd “文件位置”

4.实践总结

经过这几日的实验与数据分析,我对恶意代码分析及僵尸网络的工作原理有了更具体的认识。最初接触rada样本时,仅知道加壳会隐藏字符串,但实际用PEiD识别UPX壳、再用脱壳机处理后再用strings提取作者信息的过程,让我直观理解了静态分析中“脱壳”这一关键步骤的必要性。分析crackme程序时,IDA Pro的静态反汇编帮助我定位到关键比较逻辑,但crackme2对文件名的检查却一度让我陷入困惑——这提醒我,逆向工程不能只关注参数和返回值,程序自身的运行上下文(如文件名)同样可能成为验证条件。
在分析蜜罐日志时,通过逐条查看IRC协议的NICK和USER消息,我逐渐理清了攻击者如何将受控主机接入僵尸网络。看到大量对同一IP的访问记录,才真正体会到僵尸网络“以量取胜”的威胁本质。整体而言,这次实践让我意识到,安全分析不仅依赖工具的使用技巧,更需要耐心梳理攻击链条、站在攻击者角度思考。每一步动手踩坑带来的收获,远超过单纯阅读文档。

posted on 2026-05-25 19:21  无敌暴龙战神lmy  阅读(99)  评论(0)    收藏  举报