NukeSong

导航

20252801 2025-2026-2 《网络攻防实践》实践8报告

1. 实践内容

1.1 追踪 Rada 恶意代码

  • 使用文件格式和类型识别工具,对 Rada 恶意代码样本进行分析。
  • 对 Rada 恶意代码样本进行脱壳处理。
  • 对脱壳后的 Rada 恶意代码样本进行分析,以发现编写该代码的作者。

1.2 分析 Crackme 程序

  • 使用 IDA Pro 对 crackme1.execrackme2.exe 进行静态或动态分析(在 WinXP Attacker 虚拟机中),以找到特定的输入,从而触发成功信息的输出。

1.3 分析恶意样本 Rada

  • 提供该二进制文件的摘要信息,分析并解释其行为与结构。
  • 尝试辨识该二进制文件,并详细说明其中采用的反分析与反逆向工程技术。
  • 对该恶意代码样本进行归类。
  • 列举与该二进制文件功能相似的其他已知工具。
  • 在特定环境和限定条件下,尝试溯源并定位该二进制文件的开发作者。

1.4 分析数据源并回答以下问题

  • IRC 相关信息
  • 僵尸网络的架构与具体用途
  • 蜜罐主机与哪些 IRC 服务器建立了通信?
  • 不同主机访问该僵尸网络的数量分布如何?
  • 攻击蜜罐主机的源 IP 地址有哪些?
  • 攻击者尝试利用的安全漏洞是什么?
  • 成功的攻击案例及其具体利用方式。

2. 实践过程

2.1 动手实践任务一

(1)文件格式和类型识别

Tips:当前文件rada.rar存放在学习通第八章,建议先在本地解压好(win自带的解压操作不了),密码:rada;直接借助VMWare拖拽进去即可传输(以前我都是跑到虚拟机的浏览器上下载)

  • 首先,将待分析文件放置于命令行(CMD)的当前工作目录或工具路径下。
  • 执行命令 file rada.exe 以查看文件元数据信息。
  • 分析输出结果可见:Rada.exe 为一个 32 位 Windows 可执行文件,其 PE 头标识符表明该程序为 GUI 图形界面 应用程序。
    image
    image

打开开始菜单,在winxp系统内找到PEiD工具(左下角-开始-所有文件-PE-PEiD_cn.exe),使用该工具可以看到文件的入口点为0000FD20、文件偏移为00004120、EP段为JDR1,加壳类型为UPX壳
image

(先win+R打开cmd,然后cd 桌面,再👉)输入strings RaDa.exe查看RaDa.exe中可打印字符串,但是发现都是乱码,说明还需要做进一步的脱壳处理
image

使用超级巡警脱壳机工具(winxp它自带的,不在学习通上,我一开始还找了半天QAQ)对rada.exe进行脱壳处理,看到“脱壳成功”的字样后,会发现在当前目录下生成了rada_unpacked.exe文件:

image
输入strings RaDa_unpacked.exe,查看脱壳后的rada.exe中可打印的字符串,发现有大量的函数调用名

image
使用IDA工具打开rada_unpacked.exe文件,在string界面中选择Unicode编码
IDA路径:
image
image

找到Authors:Raul Siles & David Perez,2004,此处信息即编写作者(总算找到了)
image

2.2 动手实践任务二

先准备文件:image

输入file crackme1.exe和file crackme2.exe
可以判断这两个文件均为windows系统下运行的32-bit可执行程序,是命令行程序,但是与Rada.exe不同,这两个软件没有图形界面。
在cmd中输入crackme1.exe,尝试运行该程序。但是却弹出了缺乏相关口令的提示。
image

使用IDA进行分析;
image

在Strings页面可以看到两个字符串“I know the secret”和“You know how to speak to programs, Mr.Reverse-Engineer”;
因此猜测I know the secret是我们需要的口令,You know how to speak to programs, Mr.Reverse-Engineer是口输入令正确时的程序反馈信息;

进入到IDA View界面里,选择view—graphs—function calls;
发现包含函数fprintf和printf ,猜测sub_401280即为我们要找的核心函数(右侧,第三行,中间灰黑色的,太小了,找起来费眼)
image
在view—graphs中打开sub_401280函数的流程图,可以看到入口那里会比较判断输入的参数个数是否为2,若参数个数不为2时输出I think you are missing something,若参数个数为2则会将第二个输入与I know the secret作比较,正确则输出You know how to programs
image
输入crackme1.exe “I know the secret”验证刚刚口令为“I know the secret”的猜想,得到了程序反馈信息“You know how to speak to programs, Mr.Reverse-Engineer”,验证猜想正确。
image
同理,验证crackme2.exe;程序的过程同上。查看Strings一共有五条输出命令。Strings window界面,明文字符串如下图所示:
image
查看Function call,主要查看 sub_401280:
image
image
可知如果命令行输入两个参数,则跳转至loc_4012D5;
比较第一个参数是否为”crackplease.exe”。
是的话,比较是否为第二个参数”I know the secret”;
是的话,输出We have a little secret : Chocolate;
否则,输出Pardon? What did you say?;
否则,输出I have an identity problem.
如果命令行输入参数个数不为2,则输出I think you are missing something.
image

2.3 分析实践任务一

分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1.使用md5sum命令查看摘要信息, md5摘要值为caaa6985a43225a0b3add54f44a0d4c7。
image

2.找出并解释这个二进制文件的目的;
用radaprocess explorer软件监测rada.exe与radaunpacked.exe
image

可见脱壳后的通过HTTP协议连接到10.10.10.10主机下RaDa的网页上;
该文件下载后门到目标主机,发动DOS攻击,与10.10.10.10主机进行了通信,并查询了Mac地址。
image

3.识别并说明这个二进制文件所具有的不同特性;
该文件会添加注册列表、移动文件位置至C盘,并与10.10.10.10建立相关连接,接收相关指令并执行相关指令。

4.识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
采用了UPX加壳技术,直接对文件进行解析会呈现乱码形式。
干扰字符串Starting DDoS Smurf remote attack使分析者误认为是程序执行 DDoS 攻击。

5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
首先,由于不具有传播传染属性,所以判断其不是病毒或蠕虫;
其次,该程序没有附加在邮件等,所以判断不是木马;
攻击者利用该程序远程接收执行命令,判断为后门程序或者僵尸程序。

6.给出过去已有的具有相似功能的其他工具;
Bobax、Setiri

7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
image
开发作者:Raul siles和David Perze
开发时间:2004

2.4 分析实践任务二

Windows 2000系统被攻破并加入僵尸网络
任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答下列问题:

1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天。IRC的工作原理非常简单,只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。IRC明文传输使用的端口6667,偶尔也会使用6660—6669SSL加密。使用的端口6697。

2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是一组以协调方式连接的计算机,用于恶意目的。僵尸网络中的每台计算机都称为僵尸网络。这些机器人形成受损计算机网络,由第三方控制并用于传输恶意软件或垃圾邮件或发起攻击。

3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
先准备文件:
image

用wireshark打开botnet_pcap_file.dat文件,输入筛选条件
ip.src == 172.16.134.191 && tcp.dstport == 6667,筛选源地址为蜜罐主机,目的端口为6667的包。可得到五个地址:
209.126.161.29
66.33.65.58
63.241.174.144
217.199.175.10
206.196.44.172
image

4.在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
输入sudo apt-get install tcpflow,安装tcpflow;(安装失败就多安装几次?)
输入tcpflow -r botnet_pcap_file.dat “host 209.196.44.172 and port 6667”,将分析的结果输出到report.xml文件中;
image

打开report.xml文件,查看有关TCP流的信息;
image
输入命令使用grep过滤sudo 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利用管道进行分析
image
可以看到有3462个主机进行通信了

5、哪些IP地址被用于攻击蜜罐主机?
输入命令利用tcpdump进行分析: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 > result.txt;wc -l result.txt
image
可以发现总共有165个ip地址,打开result.txt,查看IP:
image

6、攻击者尝试攻击了那些安全漏洞?
首先分析tcp端口和udp端口
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
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
TCP:image
UDP:image
可以看到TCP有135、139、25、445、4899、80,UDP有137。

7、那些攻击成功了?是如何成功的?
用wireshark打开文件botnet.pcap,分析个端口,wireshark中使用条件tcp.dstport==80 && ip.dst == 172.16.134.191进行筛选,这些是目标地址为172.16.134.191、目标端口为80的数据包。
image

在80端口上,发现24.197.194.106发送的消息包好像已经进入了主机,使用了cmd.exe,可能正在输入什么命令获得蜜罐的机密消息。
image

再使用tcp.dstport==445 && ip.dst == 172.16.134.191来看TCP 445号端口,发现一个PSEXESVC.EXE字符串,是由61.111.101.78发起的,这似乎是一个类似于telnet的远程控制程序,某些反病毒扫描程序会报告其中的一个或多个工具感染了“远程管理”病毒。
image

再看,通过字符串信息可以知道主机210.22.204.101对蜜罐使用了LAN Manager口令猜测,并且成功攻击。
image

3.学习中遇到的问题及解决
1)实践任务一,一开始在学习通上没找到相关分析软件,最后查找XPAttacker本机自带相关分析软件,在这里对教学组表示感谢。

4.学习感想和体会
通过本节课对于恶意代码的学习和分析,对恶意代码的攻击方式新的理解

posted on 2026-04-24 08:07  琴雇  阅读(8)  评论(0)    收藏  举报