20222312 2024-2025-2 《网络与系统攻防技术》实验四报告

一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者
(1).通过kali中的file命令查看文件格式和可运行平台,即exe文件,Win32平台
通过PEID查壳文件发现使用UPX壳

二、使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
(1).解析Crackme1.exe:
直接运行crackme1.exe会报错

然后按F5反编译,得到伪代码如下:

int __cdecl main(int argc, const char **argv, const char **envp)
{
void *v3; // esp

v3 = alloca(16);
__main();
if ( argc == 2 )
{
if ( !strcmp(argv[1], "I know the secret") )
{
printf("You know how to speak to programs, Mr. Reverse-Engineer\n");
return 0;
}
else
{
fprintf(&__iob[2], "Pardon? What did you say?\n");
return 2;
}
}
else
{
fprintf(&__iob[2], "I think you are missing something.\n");
return 1;
}

故,输入”I Know the secret”,得到结果

三、分析一个自制恶意代码样本rada
(1).提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息

(2)识别并说明这个二进制文件所具有的不同特性
能修改靶机注册表,能发动DDos攻击,截图,强制休眠,检查用户键盘输入

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

(4)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
木马
私自通过隐秘通道与攻击者联系,并上传下载靶机文件,并且无宿主,不依赖其他程序。另外,virustotal显示大部分杀软都检测出该恶意代码为木马。

6)给出过去已有的具有相似功能的其他工具
比如Metasploit中的msfvenom

(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
要调查二进制文件的开发作者,通常可以通过以下方式进行追踪,但这需要一定的条件和环境支持:

静态分析:

检查二进制文件的元数据和符号信息。某些编译器和工具链可能会在生成的文件中嵌入特定的标记、版本信息或路径,可能揭示开发环境的信息。
利用反编译工具(如IDA Pro、Ghidra等)分析代码,寻找开发者可能嵌入的调试信息或字符串。
动态分析:

在受控环境(如虚拟机或沙箱)中执行文件,观察其行为,包括网络连接、文件访问和注册表操作。这可能会揭示某些开发者特意编写的特征或使用的工具。
文件特征指纹:

比较文件哈希值或代码模式,检查是否与已知的恶意软件样本或公开的代码库有相似性,从而推测开发者或开发团队。
威胁情报和历史记录:

如果二进制文件与某些攻击样本类似,可以通过威胁情报数据库(如VirusTotal、MITRE ATT&CK等)进行比对,可能查到其来源或开发者的相关信息。
限制条件
文件不得经过混淆或加密,否则可能很难解析开发者信息。
需要权限使用特定分析工具或威胁情报数据库。
若文件是通过正规开发工具链生成,且没有明显的开发者信息嵌入,直接确认作者身份会非常困难。

四、取证分析实践
Windows 2000系统被攻破并加入僵尸网络
问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC(Internet Relay Chat) 是一种早期的互联网聊天协议,它允许用户通过实时文本进行通信。IRC基于客户端-服务器架构,用户通过IRC客户端连接到IRC服务器,然后加入各种不同的频道进行群聊或进行一对一的私聊。

当IRC客户端申请加入一个IRC网络时,发送的消息是:

"NICK":这个命令用于设置客户端的昵称。例如:NICK user123 表示将客户端的昵称设置为 user123。
"USER":用于设置用户的身份信息。通常是一个四个参数的命令,格式如下:USER 。这个命令提供了关于用户的详细信息。
"PASS":如果IRC网络需要密码认证(例如对某些私有网络或受限制的服务器),客户端也会发送一个 PASS 命令来进行认证。
这两个消息(NICK 和 USER)是客户端在尝试连接到IRC网络时必须发送的标准消息。如果认证成功,客户端就可以进入IRC服务器并加入指定的频道进行聊天。

IRC通常使用的TCP端口:

端口 6660-6669:这些是IRC协议的标准端口。大多数IRC服务器会使用这几个端口之一进行通信。
端口 7000:这是IRC的另一个常用端口,通常用于加密连接(如使用SSL/TLS)。
如果一个IRC网络对安全性要求较高,可能会启用SSL或TLS加密连接,并且使用类似 6697 的端口(SSL的标准端口)。

(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet) 是一种由大量被恶意软件感染的计算机(这些计算机被称为“僵尸”)组成的网络。这些计算机通常在不被用户知情的情况下被黑客控制。僵尸网络的建立通常是通过传播木马、病毒、间谍软件等恶意程序来实现的,这些程序能够悄悄地让黑客远程控制目标计算机。

僵尸网络的功能:
DDoS攻击(分布式拒绝服务攻击):僵尸网络最常见的用途之一是发起大规模的DDoS攻击。黑客通过控制大量感染的计算机,发起流量洪水,压垮目标服务器或网络,导致其无法正常工作。

发送垃圾邮件:僵尸网络也被广泛用于发送垃圾邮件(Spam)。黑客控制的僵尸计算机会作为邮件代理,大量发送垃圾邮件,进行诈骗、广告、钓鱼攻击等。

窃取敏感信息:通过控制被感染的计算机,黑客可以远程访问用户的私人信息,包括登录凭证、银行卡信息等。这些信息通常会被用于身份盗窃或其他形式的诈骗。

点击欺诈:僵尸网络也可用于自动点击广告链接,从而给广告商造成虚假的点击量,实施广告欺诈。

传播恶意软件:僵尸网络的计算机可能会继续作为传播平台,向其他计算机或设备传播恶意软件。

在僵尸网络的控制下,这些计算机执行各种非法活动,而计算机的原始用户通常并不知情。控制这些僵尸计算机的黑客被称为“僵尸网络操控者”或“Botmaster”
(3).蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
将pacp包拖到wireshark中分析,使用规则:

可以看到与三个不同IP通信
故一共与63.241.174.144,217.199.175.10,209.196.44.172三个主机通信
(4).在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
设置过滤器为ip.addr209.196.44.172 and irc.response.commandJOIN
因为之前提到过当用户发送JOIN时表示主机加入irc网络,这样我们就过滤出请求加入了irc网络的所有包。但是由于一个包可能有多个JOIN,也有可能有主机重复加入,因此不能只看包的数量。

哪些IP地址被用于攻击蜜罐主机?
进入到统计->Ipv4 statistics->Source and Destination,然后输入以下过滤规则,然后应用

(6)攻击者尝试攻击了那些安全漏洞
思路:找出被访问次数最多的端口,那些应该就是收到攻击的端口。
利用统计功能,设置过滤器为ip.dst==172.16.134.191,然后统计其中次数较多的端口。
TCP:80,445,4899,1152,139,1077,1061,1051
UDP:65
可以发现有PSEXESVC.exe,是一种蠕虫。
(1)tcp135端口只有连接没有数据交互
(2)tcp139大多为正常连接
(3)tcp25端口只进行了连接,没有数据的交互,所以攻击者可能是对该端口进行了connect扫描。
(4)udp137是在进行NetBIOS查点

五、学习中遇到的问题和解决
在对抓包进行分析的时候,导出的数据一开始并不完全,同时信息显示不全,需要在导出时重新选取分组得到完整数据

六、实验感悟
在参与恶意代码分析的实验过程中,我深感这是一项既严密又充满挑战的工作,它不仅要求我们具备扎实的计算机技术基础,还需要极高的安全防范意识和敏锐的逻辑思维能力。通过这次实验,我进一步理解了恶意代码的运作机制和对互联网安全的威胁,也学习到了如何使用各种工具和技术进行恶意代码的辨识、分析和中和。

实验中,我们首先被教导如何在安全的沙箱环境中运行恶意程序,观察其行为表现,记录文件系统、注册表、网络活动的变化。这一步骤对于分析恶意代码的目的和传播方式至关重要。通过对比恶意程序修改前后的系统变化,我们可以推测出其可能的恶意行为,如数据窃取、广告弹出等。

随后的逆向工程部分则更为复杂和挑战性强。使用工具如IDA Pro, Ghidra等进行代码的逆向,使我们能够窥探到恶意程序的具体实现逻辑。这种深入的代码分析不仅帮助我们理解攻击者的技术手段,还能找到防御的切入点,为制定有效的防御策略提供依据。

此外,实验也让我体会到编写恶意代码的意图多种多样,并且不断进化的恶意软件技术带来了前所未有的分析难题。例如,代码混淆和加密技术的使用,大大增加了分析的复杂度,要求我们不断更新知识和工具以跟上恶意软件的更新步伐。

posted @ 2024-11-08 23:22  zhx164  阅读(2)  评论(0编辑  收藏  举报