• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wangJL02

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

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

1. 实验内容

动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

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

分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

分析实践任务二:
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 动手实践任务一

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
“RaDa.exe” 是一个可执行文件,采用 PE32 格式,适用于 Intel 80386 架构的处理器,并且是用于 MS Windows 操作系统的图形用户界面 (GUI) 程序,它被分成了3个部分。 PE32 是指 Portable Executable 32-bit 的缩写,它是 Windows 系统上可执行文件的标准格式之一。
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
作者为Raul Siles & David Perez

首先我们在我们的虚拟机上下载好学习通里的rada.rar压缩包文件。里面有两个exe文件
我们可以在kali上输入file /home/kali/learn/rada/RaDa.exe命令来查看信息,如下:

这段信息表明,“RaDa.exe” 是一个可执行文件,采用 PE32 格式,适用于 Intel 80386 架构的处理器,并且是用于 MS Windows 操作系统的图形用户界面 (GUI) 程序,它被分成了3个部分。 PE32 是指 Portable Executable 32-bit 的缩写,它是 Windows 系统上可执行文件的标准格式之一。

输入'strings RaDa.exe',进行RaDa.exe文件恶意代码字符串的查看,可以看到输出的字符串为一堆乱码,猜测是因为加壳的原因。此外,出现了几个dll文件的名称,还出现了一些调用的函数等信息。

使用'rada --authors'和'RaDa.exe --authors'查看作者信息,能够发现是以下两个人的作品,脱壳后可以验证是否是这两人,且以下两种查看作者的命令弹出的信息一致:

用PEiD打开RaDa.exe文件,可以看到这个文件的加壳工具为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo

使用超级巡警之虚拟机自动脱壳器对其进行脱壳,脱壳后的文件为RaDa_unpacked.exe

再次使用'strings RaDa_unpacked.exe'查看字符串的命令,对脱壳后的文件RaDa_unpacked.exe进行字符串分析,可以发现大量的函数调用信息,但是仍然不够详细,需要反汇编来分析,字符串分析是不够的。

于是,使用IDA Pro Free,选择PE Exe对脱壳后文件RaDa_unpacked.exe进行反汇编分析,修改编码模式,在Sting窗口,右键,选择Setup,然后选Unicode改变编码格式。

找到作者信息。

与上述命令RaDa.exe --authors查看的作者信息相同,均为Raul Siles & David Perez

2.2 动手实践任务二 分析Crackme程序

在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
1.crackme1.exe
特定的输入:crackme1.exe “I know the secret”
2.crackme2.exe
特定的输入:crackmeplease.exe “I know the secret”

在学习通上下载crackme1.exe和crackme2.exe文件,先检查一下两个文件的完整性,计算其 md5 值(md5sum命令用于计算文件的 MD5 摘要,并将结果显示为 32 个字符的十六进制数字串。MD5 摘要是根据文件内容生成的唯一标识符,通常用于验证文件的完整性或比较两个文件是否相同。通过比较文件的 MD5 摘要,可以检查文件是否在传输或存储过程中发生了改变,以及确定文件是否被篡改),再用file命令查看文件类型,可以看到这两个文件都是32位windows下PE文件。

md5sum crackme1.exe
md5sum crackme2.exe
file crackme1.exe
file crackme2.exe

用IDA Pro Free打开crackme1.exe进行分析。打开strings窗口查看字符串,可以看到“I think you are missing something.” “Pardon? What did you say?”“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer\n”。

点击view–Graghs–Function calls查看该程序函数调用图,分析可以得出,关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用print和fprint函数输出。

再查看它的代码流程图,在Flow chart中查看sub_401280的汇编代码以及函数调用图。可以看到,左侧参数个数不匹配的输出,右侧正确的输出。

push offset alKnowTheSecret:"I know the secret"字符串的地址(偏移量)被推入到栈上。offset指令用于获取一个标签或数据的偏移量。
dword ptr [eax];char *:将eax寄存器中的值解释为一个指向char的指针,然后将栈上的地址存储到这个指针指向的内存位置。
call strcmp:调用字符串比较函数strcmp,用于比较两个字符串是否相等。
简单的说就说判断你是否输入“I know the secret”(要带双引号,因为反汇编代码中带了),如果是,就能走true分支,得到回复You know how to speak to programs
在cmd里输入命令,验证上述分析.

用上述相同的方法打开crackme2.exe进行分析,

看它的函数调用图,首先得找到printf所属于的那个代码块,仍然是sub_401280

着重分析分支语句部分的汇编代码,可以看到,它比crackme1.exe多了一个分支来判断是否输入正确,它先判断是否输入了“crackmeplease.exe”,再判断是否输入了”I know the secret“,因此是两个参数.

在cmd里输入命令,验证上述分析.

2.3 分析实践任务一

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
该二进制文件的md5摘要caaa6985a43225a0b3add54f44a0d4c7我们也知道了这是一个PE可执行文件,同时也是一个UPX加壳文件。

2、找出并解释这个二进制文件的目的;
该程序会自动连接到目标为10.10.10.10/RaDa的主机下一个名为RaDa_commands.html的网页上;分别下载和上传某些文件,并且在受害主机C盘目录下创建一个文件夹“C:/RaDa/tmp”来保存其下载的文件;在注册表编辑器中,增加了bin/目录下的RaDa.exe,说明该程序已经成为自启动项,还试图从一个HTML页面获取并解析命令;最后还可以发现该恶意程序中可执行DDos拒绝服务攻击;故猜测这应该是一个后门程序或僵尸网络程序。攻击了三大内网,即192.168、172.16、10三个网段.

3、识别并说明这个二进制文件所具有的不同特性;
会在初次运行时,下载文件到C盘下,留下后门,启动DDos攻击.初次运行时,修改注册表实现自己的开机自启

4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
UPX 加壳技术

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
该文件通过修改注册表实现开机自启,通过连接网站下载文件,留下后门,并实现DDos攻击可以知道,它的目的是让主机瘫痪,无法提供服务。此外,它不复制感染,不属于病毒和蠕虫,且没有伪装成可用程序欺骗用户运行,因此不属于木马,所以是一个后门程序

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

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

在实验一'md5sum RaDa.exe'进行MD5摘要的获取,可得到MD5为:caaa6985a43225a0b3add54f44a0d4c7
打开自带的Process Explorer软件,用于监听脱壳后的RaDa.exe文件(脱壳可见实验一部分),即RaDa_unpacked.exe(需要启动此脱壳后的恶意代码文件,以实现监听)

点击它,进行监听查看,打开String,看红框内的监听信息可知,该恶意软件先访问了http://10.10.10.10/RaDa这个网站,将RaDa_commands.html下载到了C:\RaDa\tmp,应该是下载了一个恶意软件或其他东西进行执行,留下了后门。它还判断当前环境是否是在虚拟环境下,如果不是,就进行DDos泛洪攻击,占据目标主机的资源,然后还修改了注册表,用Wscript.Shell对象读写 Wscript.Shell有三个方法,分别是RegWrite、RegRead、RegDelete,这里它均用到了。

修改注册表后,它应该是将RaDa设置为了开机启动项,最后它还攻击了三大内网,即192.168、172.16、10三个网段。此外,还能在这里看到作者的信息,即Raul Siles & David Perez,于2004年编写了此恶意软件。

2.4 分析实践任务二

Windows 2000系统被攻破并加入僵尸网络

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

1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC是互联网中的即时聊天协议,全称为Internet Relay Chat。当IRC客户端申请加入一个IRC网络时,将发送一条消息称为“NICK”消息,其中包含用户选择的昵称。IRC一般使用TCP端口6667,但也可以使用其他端口。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是由一组受控制的计算机(被感染的主机)组成的网络,这些计算机通常在未经用户授权的情况下被黑客或恶意软件控制。这些被控制的计算机可以被用来进行各种恶意活动,如发送垃圾邮件、发动分布式拒绝服务攻击(DDoS攻击)、进行网络钓鱼等。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
见实验操作。可知,蜜罐主机与以下IRC服务器进行了通信
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为服务器的僵尸网络?
见实验操作。3461个主机访问了该僵尸网络。
5、那些IP地址被用于攻击蜜罐主机?
见实验操作。总共165个IP被用于攻击蜜罐主机。
6、攻击者尝试攻击了那些安全漏洞?
见实验操作。TCP端口有135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)被攻击。UDP端口有137(NetBIOS Name Service)号端口被攻击。
7、那些攻击成功了?是如何成功的?
针对TCP445端口的普通查点、口令猜测、MSRPC-SVCCTL服务枚举漏洞以及PSEXESVC等攻击成功了。可知,这些攻击是通过向对TCP445端口发送含有PSEXESVC.EXE的数据包,且将PSEXESVC.EXE地址改到系统目录下攻击成功的。攻击成功后通过利用SVCCTL漏洞获取目标主机服务。

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

首先在学习通下载botnet_pcap_file.dat文件并用wireshark打开,IRC服务器明文传输通常在6667端口监听;
所以我们设置过滤条件ip.src == 172.16.134.191 and tcp.dstport == 6667

之后打开statistics–ipv4statistics–all addresses,输入过滤条件

我们可以看到五个IRC服务器,分别为:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10和209.196.44.172
且通信最多的是此服务器:209.196.44.172

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

关于僵尸网站的访问,先使用命令sudo apt-get install tcpflow 安装TCPflow工具.使用命令tcpflow -r /home/kali/Desktop/botnet_pcap_file.dat "host 209.196.44.172 and port 6667"进行wireshark日志进行分析,它将生成report.xml文件,这是一个报告文件.

使用vim可以查看文件,但是文件较大,数据冗杂,需要用以下命令,使用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 来筛选:
grep获取昵称输出,sed去除前缀,tr将空格转换为换行,tr -d删除\r,grep -v去除空行,sort -u排序并去除重复,wc -l输出行数

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 > IP.txt;wc -l IP.txt,重新利用tcpflow来进行分析,它将生成一个名为IP.txt的文件(文件名自定义),文件中是被用于攻击蜜罐主机的所有IP地址.
cut -d是指定字段的分隔符,uniq命令用于删除文本文件中重复出现的行,将结果输出到txt文件中,wc -l显示行数.

输出165表示共有165个IP被用于攻击蜜罐主机.

打开IP.txt,查看信息。

总共165个IP被用于攻击蜜罐主机。

2.4.6 攻击者尝试攻击了那些安全漏洞?

使用以下命令,利用tcpflow工具进行筛选,筛选的是TCP端口和UDP端口。

我们可以看到
TCP响应端口为135、139、25、445以及4899、80;
UDP响应端口为137

2.4.7 那些攻击成功了?是如何成功的?

攻击需要逐个来分析判断是否成功:

2.4.7 135端口

使用命令ip.addr == 172.16.134.191 && tcp.port ==135在wireshark中查询

没有交互。

2.4.7 139端口

使用命令ip.addr == 172.16.134.191 && tcp.port ==139在wireshark中查询

发现了一些数据包,但是没有下文。

2.4.7 25端口

使用命令ip.addr == 172.16.134.191 && tcp.port ==25在wireshark中查询

没有交互。

2.4.7 445端口

使用命令ip.addr == 172.16.134.191 && tcp.port ==445在wireshark中查询

在这里查看到了PSEXESVC.EXE这一可疑的exe可执行文件,百度查询,是一个恶意远控程序,也是蠕虫病毒。
PSEXESVC.EXE 是一个服务,在使用 PsExec 连接到远程系统时安装在远程系统上。此服务允许 PsExec 在远程系统上执行过程并与本地系统通信。然而,需要注意的是,恶意作者有时会使用名称 “PSEXESVC.EXE” 作为恶意程序的伪装,以使其看起来像合法程序一样。

可以看到攻击者逐步拿下权限,先是admin,再是administrator。


由上述分析可知,这些攻击是通过向对TCP445端口发送含有PSEXESVC.EXE的数据包,且将PSEXESVC.EXE地址改到系统目录下攻击成功的。

2.4.7 4899端口

使用命令ip.addr == 172.16.134.191 && tcp.port ==25在wireshark中查询

没有交互。

2.4.7 80端口

使用命令ip.addr == 172.16.134.191 && tcp.port ==80

没有异常。

2.4.7 137端口

使用命令ip.addr == 172.16.134.191 && udp.port ==137

没有异常。

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

  • 问题1:在winXP中没办法下载文件。因为学习通登录网页在winXP上显示有问题
  • 问题1解决方案:在主机上下载好,直接拖到winXP中。
  • 问题2:我的Microsoft Edge没办法在学习通下载exe文件下来,一直提示不安全,还没办法更改设置
  • 问题2解决方案:换了火狐浏览器就好了。
  • 问题3:分析实验时对攻击方法和漏洞都不太熟悉
  • 问题3解决方案:上网查资料,并与同学们沟通交流

4.实践总结

这次试验内容很多,知识点也很多,做完下来感觉学到了很多恶意代码方面的知识对漏洞方面的知识也有了进一步的学习了解。

posted on 2025-04-17 13:00  Wang_JL  阅读(56)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3