20242825 2024-2025-2 《网络攻防实践》第八周作业

@

一. 实验内容

1.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、那些攻击成功了?是如何成功的?

1.2 实验相关知识概述

1.脱壳

  • 概念:脱壳是一段附加在可执行程序上的代码,用于保护程序代码不被非法修改或反编译,同时可能具备加密、压缩等功能。加壳后的程序体积可能变小,执行效率也可能改变。
  • 软件原理:超级巡警脱壳机等工具,通过分析程序的执行流程,找到壳程序的入口点和结束点,将壳从原始程序上剥离,恢复出原始的可执行代码,以便后续分析。

2.Snort 工具与网络数据分析

  • Snort:是一款开源的网络入侵检测系统(IDS )和入侵预防系统(IPS )。它通过规则匹配的方式,对网络流量进行分析,能检测到各种网络攻击和异常流量。
  • 蜜罐主机:是一种诱捕攻击者的系统,模拟存在漏洞或有价值的目标,吸引攻击者来攻击,从而收集攻击者的行为数据,分析攻击手段和目的。
  • IRC(Internet Relay Chat ):互联网中继聊天,是一种网络聊天实时通信协议,于1980年代晚期开发,至今仍广泛应用于各种在线社区、支持频道和社交聚会等场景。客户端通过特定消息(如 JOIN 消息用于申请加入网络 )与服务器通信,常用 TCP 端口有 6667、6668 等。
  • 僵尸网络(botnet):是一种恶意网络, 由大量被控制的计算机(僵尸主机 )组成的网络。这些计算机可以被攻击者远程控制,而不需要计算机所有者的知情或同意。攻击者可利用其进行分布式拒绝服务攻击(DDoS )、发送垃圾邮件、窃取数据等恶意活动。
  • 恶意软件:通常是一种木马程序,允许攻击者访问和控制感染的计算机,将它们变成 “僵尸” 或 “机器人”。

3.恶意代码分类

  • 病毒:具有自我复制能力,能感染其他文件或系统,破坏系统正常运行,如 CIH 病毒会破坏计算机硬件。
  • 蠕虫:可自行传播,利用系统漏洞在网络中扩散,消耗网络资源,如尼姆达蠕虫。
  • 木马:伪装成正常程序,骗取用户运行,从而获取目标主机的控制权,如冰河木马。

二. 实验过程

2.1 实践任务一

2.1.1 实验要求

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

2.1.2 实验过程展示

本实验需要用到的虚拟机环境为WinXP虚拟机。

打开WinXP虚拟机,并使用账号密码:Adminstrator/mima1234进行登录。
在这里插入图片描述

首先在学习通中将老师提供的rada.rar文件进行解压,解压密码为rada,将解压后的两个文件拖入WinXP虚拟机中。(需要注意的是:rada.rar文件其中包含一个示例性分析样本,可能会触发反病毒引擎报警。)
在这里插入图片描述
在这里插入图片描述
使用Win+R快捷键打开cmd终端,并使用以下命令找到RaDa.exe文件:

cd 桌面
file RaDa.exe

在这里插入图片描述
先对RaDa.exe恶意代码文件进行分析。
在这里插入图片描述
可以看到RaDa.exe文件是PE32位类型的EXE可执行文件,且带有GUI界面,所处的系统架构为英特尔的80386系列,所处的系统为32位Windows。
在这里插入图片描述
使用以下命令进行RaDa.exe文件恶意代码字符串的查看:

strings RaDa.exe

在这里插入图片描述
可以看到输出的字符串为一堆乱码,猜测是因为加壳的原因。
在这里插入图片描述

此外,最后面出现的几个dll文件名称,查询发现均为Windows操作系统中重要的DLL动态链接库文件,还出现了一些调用的函数等信息。
在这里插入图片描述

使用以下命令查看作者信息:

rada --authors
RaDa.exe --authors

在这里插入图片描述
在这里插入图片描述
发现是Raul Siles & David Perez这两个人的作品,在给文件脱壳后可以验证是否是这两人。

以下两种查看作者的命令弹出的信息一致:
在这里插入图片描述
在WinXPattacker虚拟机中寻找PEid工具,用于查看RaDa.exe的加壳信息。
在这里插入图片描述
在这里插入图片描述
可以看到内容为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo的信息,说明所加的壳即为此形式。
在这里插入图片描述
再使用WinXPattacker上自带的超级巡警脱壳工具进行脱壳:
在这里插入图片描述
在这里插入图片描述
该工具会生成一个脱壳后的unpacked的exe文件在桌面:
在这里插入图片描述
可以看到在桌面上得到一个RaDa_unpacked.exe的文件:
在这里插入图片描述

再次使用以下命令查看字符串:

strings RaDa_unpacked.exe

在这里插入图片描述

对脱壳后的文件RaDa_unpacked.exe进行字符串分析,可以发现大量的函数调用信息,但是仍然不够详细,需要再次借助反汇编来进行分析,字符串分析是不够的。
在这里插入图片描述

再次使用IDA Pro Free反汇编工具进一步分析:
在这里插入图片描述
选择PE Exe对脱壳后文件RaDa_unpacked.exe进行反汇编分析:
在这里插入图片描述
在这里插入图片描述
点击打开后:
在这里插入图片描述
发现String界面是与上述查看字符串的输出是相同的:
在这里插入图片描述
在Sting窗口单机右键 --> 选择Setup修改编码模式后进一步查看:
在这里插入图片描述
选择Unicode改变编码格式,会发现内容发生变化:
在这里插入图片描述
在这里插入图片描述
点击OK后:
在这里插入图片描述
内容发生变化:
在这里插入图片描述
下拉找到作者信息:
在这里插入图片描述
与上述命令RaDa.exe --authors查看的作者信息相同,均为Raul Siles & David Perez。
在这里插入图片描述

实验成功!!!

2.1.3 问题回答

回答问题如下:

(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具?

RaDa.exe文件是PE32位类型的EXE可执行文件,且带有GUI界面;
所处系统架构为英特尔的80386系列,运行平台为32位Windows;
加壳工具为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo 。

(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理?
详情可见上述实验过程展示小节。

(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
发现恶意代码的编写作者为:Raul Siles & David Perez。

2.2 实践任务二

2.2.1 实验要求

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

2.2.2 实验过程展示

同上述实验一样,首先进入学习通下载相关资料:

出现问题

这里出现了一些问题,发现文件下载不下来:
在这里插入图片描述
解决了好久,最后询问同学发现更改一下设置即可。

解决问题

在这里插入图片描述
选择仍然保留。
在这里插入图片描述
下载成功,继续试验:
在这里插入图片描述

继续实验

将下载后的两个文件拖入WinXP虚拟机中。
在这里插入图片描述

①crackme1.exe

和前面实验一样打开cmd终端,进入桌面后,使用以下命令(即crackme1.exe+指令)进行输入格式的试探:

crackme1.exe
crackme1.exe 1
crackme1.exe 1 2
crackme1.exe open
crackme1.exe bhy

根据回复会发现其中缺少输入内容或格式问题,因此得出结论:直接进行试探较为困难。
在这里插入图片描述

需要再次借助IDA工具:
在这里插入图片描述
与上述实验一样,选择PE Exe新建一个分析界面。
在这里插入图片描述
在这里插入图片描述
点击打开后内容如下所示:
在这里插入图片描述
打开String窗口,发现了其回复总共有4条,而上面直接探测只能发现两条。
猜测没有出现的两条:一条要寻找特定输入,一条是对特定输入的回复。
在这里插入图片描述
进一步查看:
点击打开IDA View窗口,在右上角菜单栏选择:view—>graphs—>function calls 进入流程图查看。
在这里插入图片描述
找到其输出(即printf),发现属于sub_401280模块。
其中sub_401280中的strcmp块就是使用字符串匹配密码的模块。

进一步查看:
点击选择:view->Graphs->Functions call 查看函数调用图。
可看到输出函数printf被sub_401280调用,sub_401280还调用了strcmp函数,猜测是用于判断输入与密码是否一致。
在这里插入图片描述

进行sub_401280块的代码查看:
在这里插入图片描述

使用如下操作在Flow chart中查看其代码流程图:
View->Graphs->Flow chart查看汇编代码。
在这里插入图片描述
可以看到,这里是一个条件分支。
红色线条代表False,绿色代表True。
在这里插入图片描述
着重分析这部分汇编代码:
分析可知:
push offset alKnowTheSecret:"I know the secret" 字符串的地址被推入到栈上;
offset指令用于获取一个标签或数据的偏移量;
dword ptr [eax];char 将eax寄存器中的值解释为一个指向char的指针,后将栈上的地址存储到这个指针指向的内存位置;
call strcmp 调用字符串比较函数strcmp,用于比较两个字符串是否相等。

简单来说就是判断你是否输入 “I know the secret”
如果是则走绿色分支并得到回复 You know how to speak to programs
在这里插入图片描述
接下来继续实验,在cmd中使用以下命令进行验证:

crackme1.exe “I know the secret”

在这里插入图片描述
发现得到回复,实验结束!

②crackme2.exe

与①中类似,这里不作过多解释。

对该文件也进行IDA反汇编分析:
在这里插入图片描述
在这里插入图片描述
打开内容如下所示:
在这里插入图片描述
与crackme1不同的是,crackme2.exe有5条回复。
在这里插入图片描述
进一步分析查看:
点击打开IDA View窗口,在右上角菜单栏选择:view—>graphs—>function calls 进入流程图查看。
在这里插入图片描述

找到printf所属代码块,发现仍然是sub_401280模块:
在这里插入图片描述
查看其反汇编代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
着重分析分支语句部分的汇编代码:
分析可得:
与crackme1.exe文件不同的是此处crackme2.exe文件有两个参数,多出一个分支来判断是否输入正确:先判断是否输入了“crackmeplease.exe”,再判断是否输入了”I know the secret“
在这里插入图片描述
使用以下代码进行验证:

crackme2.exe “crackmeplease.exe” “I know the secret”

结果发现是错的:
在这里插入图片描述
再次阅读汇编代码,发现原来不是输入两个参数,是需要将第一个参数“crackmeplease.exe”作为文件的命名,即将crackme2.exe重命名为crackmeplease.exe,再输入第二个参数“I know the secret”

更改以下命令重新进行验证:

crackmeplease.exe “I know the secret”

在这里插入图片描述

发现成功验证,实验结束!!!

2.2.3 问题回答

回答问题如下:

在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息?

①crackme1.exe

特定的输入为:crackme1.exe “I know the secret”

②crackme2.exe

特定的输入为:crackmeplease.exe “I know the secret”

2.3 分析任务一

2.3.1 实验要求

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

2.3.2 实验过程展示

所使用的相关资料在实践任务一中均已下载好,详情见2.1.2 。

分析过程如下:

使用以下命令进行MD5摘要的获取:

md5sum RaDa.exe

可得到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.3.3 问题回答

回答问题如下

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息?

摘要为:caaa6985a43225a0b3add54f44a0d4c7:

2、找出并解释这个二进制文件的目的?

①进行DDos攻击;②连接http://10.10.10.10/RaDa网站,下载并留下后门; ③修改注册表,设置RaDa开机自启动; ④攻击192.168、172.16、10等三个网段。

3、识别并说明这个二进制文件所具有的不同特性?

①会在初次运行时,下载文件到C盘下,留下后门 ;②启动DDos攻击;③初次运行时,修改注册表实现自己的开机自启动

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

在实践任务一中可知使用加壳技术为:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由?

该文件通过修改注册表实现开机自启动,通过连接网站下载文件,留下后门,并实现DDos攻击。通过分析可知其主要目的是让主机瘫痪,无法提供服务。因其不复制感染的特性所以不属于病毒或蠕虫,且因其没有伪装成可用程序欺骗用户运行所以不属于木马,仅是一个后门程序。

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

①Bobax-2004年发现的木马,也是使用HTTP协议从指定的服务器下载命令文件后解析并执行其中的指令;

②Setiri及其前辈Gatslag。

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

可以,并且有三种方式,作者为Raul Siles & David Perez。
使用命令RaDa - authors 即可知晓作者(详情可见实践任务一2.1.2小节);或是进行反编译脱壳文件也可以发现(详情可见实践任务一2.1.2小节);或是运行Process Explorer软件进行监听,也能知晓作者(详情可见分析任务一2.3.2小节)。

2.4 分析任务二

2.4.1 实验要求

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.4.2 实验过程展示

所使用的相关资料在实践任务一中均已下载好,详情见2.2.2 。

分析过程如下:
本次实验需要用到kali虚拟机:
在这里插入图片描述
首先在学习通平台下载所需要的分析资料:
在这里插入图片描述

打开Kali虚拟机,将文件直接拖入kali虚拟机:
在这里插入图片描述

单击右键,使用Wireshark打开进行分析:
在这里插入图片描述
发现该文件存在各种IP地址以及各种包,有TCP、UDP、HTTP、NBNS、NBSS、DCERPC、SMB等种类。
在这里插入图片描述
在这里插入图片描述

由于数据过多在此就不集中一一回答问题了,进行边分析边回答,回答如下:

问题1

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

IRC(Internet Relay Chat ):互联网中继聊天,是一种网络聊天实时通信协议,于1980年代晚期开发,至今仍广泛应用于各种在线社区、支持频道和社交聚会等场景。客户端通过特定消息(如 JOIN 消息用于申请加入网络 )与服务器通信,常用 TCP 端口有 6667、6668 等。

当IRC客户端(连接到IRC网络的程序)想要加入IRC网络时,会向IRC服务器发送一系列命令。初始命令通常包括以下内容,发送这些命令后,客户端等待IRC服务器回应欢迎信息和可用频道列表:

1、NICK 命令:设置客户端在网络上的昵称(用户名);
2、USER命令:设置客户端的用户名和真实姓名;
3、MODE 命令:设置客户端的用户模式。

IRC通常使用以下TCP端口:
6665 - 6669:常规IRC通信端口;
6697:IRC连接的备用端口;
7000:另一个IRC连接的备用端口。

问题2

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

“僵尸网络”(botnet)是一种恶意网络, 由大量被控制的计算机(僵尸主机 )组成的网络。这些计算机可以被攻击者远程控制,而不需要计算机所有者的知情或同意。攻击者可利用其进行分布式拒绝服务攻击(DDoS)、发送垃圾邮件、窃取数据等恶意活动。

僵尸网络通常用于恶意活动:

1、分布式拒绝服务攻击(DDoS):从多个感染的计算机对网站或网络进行流量攻击,使其不可用。

2、垃圾邮件和钓鱼:从感染的计算机发送大量垃圾邮件或钓鱼邮件。

3、恶意软件传播:从感染的计算机传播恶意软件、病毒或勒索软件。

问题3

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

由于IRC端口众多,常用有:6665 - 6669,使用以下命令,将IRC服务器的端口和蜜罐主机的ip作为过滤条件,对Wireshark日志进行包的筛选:

ip.src==172.16.134.191 && tcp.port == 6665

ip.src==172.16.134.191 && tcp.port == 6666

ip.src==172.16.134.191 && tcp.port == 6667

ip.src==172.16.134.191 && tcp.port == 6668

ip.src==172.16.134.191 && tcp.port == 6669

ip.src==172.16.134.191 && tcp.port == 6697

ip.src==172.16.134.191 && tcp.port == 7000

6665
在这里插入图片描述
6666
在这里插入图片描述
6667
在这里插入图片描述

6668
在这里插入图片描述
6669
在这里插入图片描述
7000
在这里插入图片描述
发现只有6667号端口才有数据,其他均没有。

6667号端口截图如下所示:
在这里插入图片描述
可知,蜜罐主机与以下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。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题4

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

此处需要用到kali虚拟机。

使用以下命令安装TCPflow工具:

sudo apt-get install tcpflow

在这里插入图片描述
在这里插入图片描述
使用以下命令进行Wireshark日志进行分析:

sudo tcpflow -r botnet_pcap_file.dat " host 209.196.44.172 and port 6667"

需要注意的是:先要cd到桌面文件系统。

发现其生成report.xml报告文件。
在这里插入图片描述
使用以下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

在这里插入图片描述
可以看到总共有3461台主机访问了以209.196.44.172为服务器的僵尸网络。

问题5

5.那些IP地址被用于攻击蜜罐主机?

使用以下命令重新利用tcpflow来进行分析,并生成一个名为IP.txt的文件,文件中是被用于攻击蜜罐主机的所有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

在这里插入图片描述
生成的IP.txt文件如下所示,共有165个IP被用于攻击蜜罐主机。

双击打开IP.txt文件:
在这里插入图片描述在这里插入图片描述

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

问题6

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
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

使用tcpflow工具进行筛选,筛选TCP端口和UDP端口:
在这里插入图片描述
可以看到TCP端口有:135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)被攻击。
在这里插入图片描述
UDP端口有:137(NetBIOS Name Service)被攻击。

以上便是攻击者攻击的安全漏洞。

问题7

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

经过筛选分析,最后得知只有445端口的PSEXESVC.EXE攻击成功,获取了权限,进行了远程控制。

其伪装成一个蠕虫病毒文件PSEXESVC.EXE,并通过开放的445端口将其植入到目标主机,然后逐步拿下了admin、administrator的管理员权限,实现了远程连接,掌控了目标主机。

逐个分析攻击是否成功:

①135端口
使用以下命令在Wireshark中查询:

ip.addr == 172.16.134.191 && tcp.port ==135

在这里插入图片描述
在这里插入图片描述
只发现了一些TCP数据包握手连接,没有交互。

②139端口
使用以下命令在Wireshark中查询:

ip.addr == 172.16.134.191 && tcp.port ==139

在这里插入图片描述
在这里插入图片描述
发现TCP、SMB和NBSS等数据包,但攻击未成功。

③25端口
使用以下命令在Wireshark中查询:

ip.addr == 172.16.134.191 && tcp.port ==25

在这里插入图片描述
在这里插入图片描述

发现一些TCP数据包握手连接,没有交互攻击未成功。

④445端口
使用以下命令在Wireshark中查询:

ip.addr == 172.16.134.191 && tcp.port ==445

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

可以看到,攻击者逐步拿下权限:
拿下admin
在这里插入图片描述
拿下administrator
在这里插入图片描述
攻击成功,攻击者成功拿下靶机权限,导致被远程控制。

⑤4899端口
使用以下命令在Wireshark中查询

ip.addr == 172.16.134.191 && tcp.port ==4899

只发现了一些TCP数据包握手连接,没有交互,攻击未成功。
在这里插入图片描述
在这里插入图片描述
但此处发现一条cmd命令,是http包,但攻击没有成功。
在这里插入图片描述
⑥80端口
使用以下命令在Wireshark中查询:

ip.addr == 172.16.134.191 && tcp.port ==80

在这里插入图片描述
又发现cmd,与上述4899端口出现的一致。
在这里插入图片描述

⑦ 137端口(UDP)
使用以下命令在Wireshark中查询:

ip.addr == 172.16.134.191 && udp.port ==137

在这里插入图片描述
在这里插入图片描述
只发现一系列的NBNS包(一种网络基本输入/输出系统(NetBIOS)名称服务器的交互)

综上所示,只有445端口的PSEXESVC.EXE攻击成功,获取了权限,进行了远程控制。

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

在这次实验中,主要问题有以下几点:

  • 问题1:Crackme程序文件下载不成功。

  • 解决方案:询问同学后更改一下浏览器设置即可成功下载。详情可见2.2.2中第2小节。

  • 问题2:rada.rar文件无法解压。

  • 解决方案:电脑防火墙进行检测到异常文件直接进行删除,关闭防护墙后解压即可得到文件。

四.学习感悟、思考等

在本次实验,与前面实验不同之处在于此次实验直接进行恶意软件、恶意代码实践。
实验期间,我深入了解了什么是木马,什么是蠕虫,什么是病毒、什么是后门等知识,并知晓其之间的区别和联系,对多种逆向工具和监听工具的用法进行了掌握,让我对网络安全的学习更加深入。同时,此次实验拓展了我在网络攻防技术领域的知识储备,强化了相关知识要点,为后续开展网络攻防实验筑牢根基。

参考资料

https://blog.csdn.net/weixin_55819433/article/details/146334695

https://blog.csdn.net/weixin_55819433/article/details/146058856?spm=1001.2014.3001.5502

posted @ 2025-04-22 22:02  ShirlyW  阅读(65)  评论(0)    收藏  举报