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

news/2025/1/11 17:56:58/文章来源:https://www.cnblogs.com/wangdarui/p/18519679

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

1.实验内容

恶意代码分析、IDA Pro 静态或动态分析可执行文件、自制恶意代码样本 rada 分析、Windows 2000 系统被攻破后的取证分析。

2.实验过程

2.1 恶意代码文件类型标识、脱壳与字符串提取

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。

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

先去学习通下载.rar压缩包并复制到虚拟机中,输入密码rada将文件提取出来:


通过命令行查看文件类型,输入file RaDa.exe查看文件信息:

进入学习通下载peid.rar并解压,使用.exe查看加壳类型:

文件格式:PE32说明该文件是32位的可执行文件。
运行平台:(GUI) Intel 80386, for MS Windows说明能在基于Intel 80386的Windows操作系统系统上运行。
加壳工具:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo

2.1.2 使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理

在学习通下载脱壳.rar,即超级巡警脱壳软件,按路径寻找文件,选择刚下载的RaDa.exe,进行脱壳处理:

接下来会出现脱壳后的代码文件:

2.1.3 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁

将Windows端的unpacked文件拖到Kali虚拟机中,这里我们使用命令strings RaDa_unpacked.exe


从上图可知作者是Raul Siles && David Perez

2.2 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息

2.2.1 查看crackme1.exe信息

在学习通下载crackme1.exe和crackme2.exe并拖进kali:

输入命令file crackme1.exe查看信息:

32位的可执行文件,能在基于Intel 80386的Windows操作系统系统上运行。

2.2.2 在命令提示符中测试

在windows中的命令提示符中输入crackme1.exe 2406crackme1.exe 2406 wangruicrackme1.exe 2406 wr

由上图可以发现,命令行只输入一个参数时输出Pardon? What did you say?,输入超过两个参数时输出I think you are missing something.

2.2.3 利用IDA Pro分析文件

在学习通下载IDA pro.rar,解压后打开.exe文件进行安装:

随后在IDA中打开crackme1.exe即可发现:

可以发现,如果输入"I know the secret"的话,就会输出You know how to speak to programs, Mr. Reverse-Engineer。如果不是I know the secret,就会输出pardon? what did you say?。参数数量更多就会输出I think you are missing something.

2.2.4 得到正确结果

输入"I know the secret"

2.2.5 查看crackme2.exe信息

输入file crackme2.exe

2.2.6 在命令提示符中测试

在windows中的命令提示符中输入crackme2.exe 2406crackme2.exe 2406 wangruicrackme2.exe 2406 wr

由上图可以发现,命令行只输入一个参数时输出I have an identity problem.,输入超过两个参数时输出I think you are missing something.

2.2.7 利用IDA Pro分析文件

经过与2.2.3同样的步骤后,可以看出,要想得到正确的结果,需要输入crackmeplease.exe "I know the secret"
我们将文件名修改为crackmeplease.exe,即可得到正确的结果:

2.3 分析一个自制恶意代码样本rada,并撰写报告,回答以下问题

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

在虚拟机中输入md5sum RaDa.exe查看MD5摘要值:

2.3.2 找出并解释这个二进制文件的目的

在学习通下载ProcessExplorer.rar并解压打开:

双击运行unpacked的RaDa.exe文件,注意出现弹窗后不要点确定:

在Process Explorer中双击进程,可以看到:

点击String:




可以发现:
该程序使用HTTP协议连接到目标为10.10.10.10\RaDa\RaDa_commands.html的网页上,下载和上传某些文件,
并且在主机C盘中创建一个文件夹C:/RaDa/tmp,并且将文件RaDa.exe复制到了C:\RaDa\bin中,
添加了一个注册表项:HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,激活了自启动,
还添加了一个注册表项:HKLM\Software\VMware, Inc.\VMware Tools\InstallPath,实现了对入侵主机的远程控制,
该程序还可以执行DDos攻击,对注册表内容进行更改,还可以执行其他入侵操作,作者是Raul siles和David Perze。

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

1.该二进制文件能修改注册表,添加了一个注册表项:实现了开机自启动RaDa。
2.自我复制到C盘,将RaDa.exe复制在Rada\bin文件夹中。
3.实现远程控制。
4.实现入侵系统并操纵主机,如get screenshot sleep操作。

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

upx加壳,在上面的截图中我们可以看到存在乱码,这是加壳后的结果。

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

这属于后门程序。首先它不具备自我复制的机制,没有实现在计算机中的传播;其次它没有伪装操作,也不存在欺骗下载的操作。而其可以实现操控目标主机、提权的行为,是后门程序的主要特点,所以判定为后门。

2.3.6 给出过去已有的具有相似功能的其他工具

msfvenom

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

可以,在Windows的命令提示符中,输入RaDa.exe --authors即可查看作者:

2.3.8 给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法

  1. 基于特征码的检测方法
    原理:特征码是后门恶意软件特有的一段代码或字节序列。安全厂商通过对已知的后门程序进行分析,提取出这些独特的特征码。检测工具在扫描文件或系统内存时,会将目标内容与特征码数据库进行比对,如果发现匹配的特征码,则判定存在后门恶意软件。
    举例:对于著名的 “灰鸽子” 远程控制后门程序,它有特定的通信协议特征码和程序内部某些关键函数的特征码。安全软件可以将这些特征码记录下来,当扫描到新的程序或网络流量中有这些特征码时,就会发出警报。
  2. 行为分析检测方法
    原理:通过监测程序在系统中的行为来判断是否为后门恶意软件。例如,观察程序是否有异常的网络连接行为,是否对系统关键文件或注册表进行未经授权的修改,是否有隐藏自身进程或文件的行为等。
    举例:有些后门程序会在系统启动时自动运行,并尝试连接到攻击者指定的服务器,接收指令来窃取用户数据。如果监测到某个程序在启动时建立了可疑的网络连接,并且没有合理的业务逻辑解释,就可能是后门。
  3. 启发式检测方法
    原理:基于对程序代码结构、逻辑以及运行时特征的启发式规则来判断是否存在恶意行为。这些规则是根据对大量恶意软件和正常软件的分析总结出来的。例如,程序代码中存在大量加密函数且加密逻辑不明、使用异常的系统调用序列、有不合理的动态内存分配和释放模式等。
    举例:如果一个程序在运行过程中频繁调用一些用于隐藏自身或绕过系统安全机制的系统函数,如通过非常规的方式修改内存中的进程信息以达到隐藏目的,启发式检测系统就会认为它有较高的恶意可能性。
  4. 基于沙箱的检测方法
    原理:将可疑程序放置在一个隔离的沙箱环境中运行,这个环境模拟真实的操作系统,但对系统资源和网络访问有严格的监控和限制。通过观察程序在沙箱中的行为,包括文件操作、注册表访问、网络连接等,来判断其是否为后门恶意软件。
    举例:当检测到一个来源不明的可执行文件时,将其放入沙箱中运行。如果它在沙箱中试图连接到一些可疑的 IP 地址、尝试突破沙箱限制访问主机系统资源,就可以判断为恶意软件。
  5. 基于文件完整性检查的方法
    原理:对系统中的关键文件和重要的可执行文件计算其哈希值(如 MD5、SHA - 1、SHA - 256 等),并将这些哈希值存储在安全的数据库中。定期或实时重新计算这些文件的哈希值,并与数据库中的值进行对比。如果哈希值发生变化,说明文件可能被后门恶意软件修改或替换。
    举例:对于系统的关键动态链接库文件,计算其初始的 SHA - 256 哈希值。如果有后门程序试图修改这个文件来注入恶意代码,重新计算哈希值时就会发现与原始值不同,从而发现异常。

2.4 取证分析实践

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

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

  1. IRC即互联网中继聊天,是一种通过网络进行实时文本通信的协议。它允许用户连接到 IRC 服务器,并在频道(可以是公开或私人的)中与其他用户交流。IRC网络由多个IRC服务器组成,这些服务器相互连接以传递消息,使得用户可以在全球范围内参与聊天。IRC在早期的互联网社交中扮演了重要角色,至今仍在一些特定领域和社区中使用。
  2. 当 IRC 客户端申请加入一个 IRC 网络时,它会发送 NICK和 USER命令。
  • NICK 命令:用于指定客户端在 IRC 网络中的昵称。例如:NICK username,这里的 “username” 就是用户选择的昵称,它在整个 IRC 网络或特定服务器的频道中代表该用户的标识。如果昵称已被其他用户使用,服务器可能会要求客户端重新选择。
  • USER 命令:提供关于用户的更多信息,格式通常为USER :。不过在实际应用中,一些字段可能并不完全按照字面意义填写。例如:USER guest 0 * :Guest User,其中 “guest” 是用户名,“0” 和 “*” 可以是占位符或特定的标识信息,“Guest User” 是用户的真实名称(可以是随意指定的)。
  1. IRC 一般使用的 TCP 端口是 6667。不过,也存在一些其他的端口可用于 IRC。
  • 6660 - 6669:这一系列端口都可能被 IRC 使用。不同的 IRC 网络或服务器可能会选择其中的某个端口,6667 是最常见的默认端口。
  • 7000:部分 IRC 服务也可能使用这个端口来建立连接。
  • 这些端口的使用可能因不同的 IRC 服务器配置而有所不同。需要注意的是,在网络安全环境中,对这些端口的监控和管理是很重要的,因为 IRC 也曾被恶意利用,如作为僵尸网络控制通信的途径等。

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

  1. 僵尸网络是指采用一种或多种传播手段,将大量主机感染僵尸程序病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。这些被感染的主机就像 “僵尸” 一样,虽然本身具有一定的计算和网络连接能力,但被恶意攻击者掌控,执行攻击者下达的各种指令。
  2. 僵尸网络通常的用途:
  • 发动分布式拒绝服务攻击(DDoS)
    攻击者利用僵尸网络中的大量 “僵尸主机” 同时向目标服务器发送海量的请求,这些请求数量远远超过服务器的处理能力,导致服务器资源耗尽,无法正常响应合法用户的请求。例如,通过发送大量的 TCP SYN 包(SYN Flood 攻击),使服务器的连接队列被填满,无法建立新的连接。
  • 发送垃圾邮件
    僵尸网络控制者可以在僵尸主机上安装邮件群发软件,利用这些主机的网络连接和邮件发送功能,大量发送垃圾邮件。由于邮件来源分散在众多被感染的主机上,很难被简单地识别和拦截。
  • 窃取信息
    僵尸程序可以在被感染的主机上搜索并收集用户的敏感信息,如登录凭证(用户名和密码)、银行卡信息、个人隐私文件等。这些信息可以通过僵尸网络的控制通道回传到攻击者手中。
  • 进行点击欺诈
    在按点击付费的网络广告模式中,攻击者利用僵尸网络中的主机自动点击广告链接,使广告主误以为获得了大量真实的点击量,从而消耗广告主的预算,并可能从中获取非法利益(如果攻击者与广告发布平台存在不正当交易)。

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

在学习通下载文件botnet_pcap_file.dat,使用wireshark打开,设置过滤条件ip.src == 172.16.134.191 && tcp.dstport == 6667,观察结果:

查看Destination一列,会发现一共出现过5台IRC服务器:66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172、209.126.161.29。

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

首先在虚拟机中输入sudo apt install tcpflow安装tcpflow:

再把2.4.3的文件拖到虚拟机中,然后命令行中输入tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667

可以发现除了原文件外我们还有三个新文件:

使用命令来获取访问该服务器的主机数量cat 209.196.044.172.06667-172.016.134.191.01152 | grep --text "^: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个结果。

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 > ipaddr.txt;wc -l ipaddr.txt

再输入cat ipaddr.txt查看详细结果:

这里我们可以看到一堆IP地址。

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端口:

然后我们再输入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端口:

可以发现被攻击的端口结果如下:
TCP:135(rpc),139(netbios-ssn),25(smtp),445(smb),4899(radmin),80(http)
UDP:137(netbios-ns)
输入(tcp.dstport == 135 || tcp.dstport == 25)&& ip.dst == 172.16.134.191在Windows端使用Wireshark过滤TCP端口:

可以发现,25端口和135端口仅仅进行了TCP三次握手,没有明显的攻击行为。
再输入tcp.dstport==80 && ip.dst == 172.16.134.191

缓冲区溢出攻击。发送了好多重复字母的请求包,说明也许正在攻击服务器的漏洞从而获取系统权限。

但是以上攻击被蜜罐主机识别并发送RST数据包,所以80端口的攻击失败。
再输入tcp.dstport==139 && ip.dst == 172.16.134.191

可以发现虽然多个IP尝试和蜜罐主机在此端口建立连接,但都被蜜罐主机识别并发送RST数据包,所以攻击也是失败的。
再输入tcp.dstport==445 && ip.dst == 172.16.134.191

可以发现,数据包有一个PSEXESVC.EXE。PsExec 是由 Mark Russinovich 创建的 Sysinternals Suite中包含的工具。最初,它旨在作为系统管理员的便利工具,以便他们可以通过在远程主机上运行命令来执行维护任务。后来因为太过方便,被利用到内网渗透之中。它是一种Dv1dr32蠕虫,并且每个IP地址连入的返回信息中含有\PIPE\ntsvcs,命名管道\Pipe\Ntsvcs是作为 SCM 和与特定服务交互的 SCP(服务控制进程)之间的远程过程调用接口,所以攻击成功。
输入tcp.dstport==4899 && ip.dst == 172.16.134.191

可以发现只有210.22.204.101访问过这个端口,经查询可知该端口是Radmin远程控制工具,可能是被利用来控制蜜罐主机。
再输入udp.port==137

NBNS是NetBIOS的命名服务,并不是攻击行为。

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

综上,445的蠕虫攻击、4899的远程攻击是成功的,实现过程见2.4.6。

3.问题及解决方案

  • 问题1:无
  • 问题1解决方案:无

4.学习感悟、思考等

本次《网络与系统攻防技术》实验让我收获颇丰,深切体会到实践与理论结合的重要意义,在恶意代码分析、可执行文件分析和取证分析中,网络安全理论、操作系统原理、编程知识等都得以实践应用,像 rada 恶意代码样本分析的每一步,从文件类型识别、脱壳到字符串提取找作者,都需运用多种知识和工具,这种交互加深了我对知识的理解,也让我明白只有理论用于实践才能真正掌握和灵活运用网络安全知识。同时,自制 rada 恶意代码样本的分析让我深入认识恶意软件,以前我仅了解其概念,而此次剖析让我看清其运作方式,包括利用系统漏洞、修改注册表自启动和远程控制以及执行入侵操作等,我意识到其危害不仅是窃取信息,还会破坏系统稳定性和安全性,且不同类型恶意软件目的和行为模式各异,需多种检测和防范方法。
此外,Windows 2000 系统被攻破的取证分析让我深刻感受到网络安全防护的重要性,从僵尸网络借 IRC 通信到攻击者对蜜罐主机的攻击尝试,可知网络环境充满潜在威胁,看似安全的系统也可能因安全漏洞被攻破,这促使我今后在系统配置、网络使用和软件安装等方面注重培养防护意识,采取安全措施保护系统和数据。随着信息技术发展,软件和网络技术不断更新,网络安全威胁也更复杂多样,实验中恶意软件开发者利用先进技术隐藏代码、突破防御的现象,让我思考如何平衡技术创新与网络安全,既要鼓励技术发展创新满足数字化需求,也要投入更多资源研发安全技术应对挑战。而且,实验中多种恶意软件检测方法各有优缺点,没有一种能完全有效检测和防范所有恶意软件类型,这使我思考构建更完善的网络安全防护体系,将多种检测方法有机结合形成多层次、全方位防护机制,并不断更新改进方法以适应新的恶意软件和攻击手段。
最后,网络安全涉及多学科知识,需要专业人才保障系统和网络安全,此次实验让我深知相关知识和技能的重要性,所以我认为要加强网络安全教育和培训,不仅在高校培养更多专业人才,还要在全社会普及安全知识、提高普通用户安全意识和防范能力,如此才能形成全社会共同参与的防护环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/825635.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

signal协议

密码学专题训练 实 验 报 告 实验名称 实验二 signal协议 实验二 signal协议实验目的基于signal协议制作一个通信系统二、实验原理2.1简介Signal是一种私人通信平台,它使用Signal Protocol作为加密协议来保护用户的信息安全和隐私。Signal Protocol是一种…

【backdoor attack】 POISONED FORGERY FACE: TOWARDS BACKDOOR ATTACKS ON FACE FORGERY DETECTION

一、研究动机 ​ 虽然目前在图像识别任务中有许多有效后门攻击方法,直接扩展到人脸伪造检测领域却存在着一定的问题,例如存在一些伪造人脸检测的算法(SBI, Face X-ray)是通过真实图像合并转换为负样本进行模型训练的,这种情况下会导致:Backdoor label conflict[!NOTE] 存…

# 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第六周学习总结

学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第六周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个…

C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等…

10种数据预处理中的数据泄露模式解析:识别与避免策略

在机器学习教学实践中,我们常会遇到这样一个问题:"模型表现非常出色,准确率超过90%!但当将其提交到隐藏数据集进行测试时,效果却大打折扣。问题出在哪里?"这种情况几乎总是与数据泄露有关。 当测试数据在数据准备阶段无意中泄露(渗透)到训练数据时,就会发生数据泄露…

【填算符】(log 值域的做法)

比赛在这里呢 填算符 下发题解说的神马东西,赛时根本想不到 讲一个赛时想得到的 \(O(n\log 值域)\) 的思路,很好理解 我们处理出二进制下每一位上的 1 的最后一次出现的位置,将第 \(i\ (i\in[0,60])\) 位上的 1 最后一次出现的位置记作 \(pos_i\) 同时我们设 \(H=n-k-1\) 为…

CF573D Bear and Cavalry

原题链接 比较简单的 \(\text{dp}\) 题。 看见题目的 \(\sum w_ih_i\) 式子,很容易想到排序不等式,所以我们先对 \(w,h\) 排序,然后分情况讨论。若 \(w_i,h_i\) 对应的编号不相等,肯定是把它们配对。若 \(w_i,h_i\) 对应的编号相等,考虑这样的连法:若是这种情况也不合法,…

多校 A 层冲刺 NOIP2024 模拟赛 17

难度 ★★★★☆多校A层冲刺NOIP2024模拟赛17 T1 网格 签到题 注意到 \(+\) 与 \(\times\) 由于优先级其实是分开的,所以可以考虑每到达一个 \(+\) 计算一次贡献(乘上一个组合数),然后将前置贡献重新赋值为方案数,DP 只需考虑连续 \(\times\) 段即可。 时间复杂度 \(O(nm)…

图吧垃圾佬理解的早期国产芯片历史(龙芯中科和同行的恩怨解析)

额……老铁们,我图吧老捡国产芯片垃圾的了。最近有人问咱关于国产芯片发展故事的事,所以咱简单答疑了一下顺带做了个记录的整理,简单看下情况。 水友: 就是我有个同学,已经魔怔了,现在已经在同学群里说天玑吊打国产芯片了 前几天说的是吊打9950x… 垃圾佬: 吊打国产芯片…

Apple Safari 18 - macOS 专属浏览器 (独立安装包下载)

Apple Safari 18 - macOS 专属浏览器 (独立安装包下载)Apple Safari 18 - macOS 专属浏览器 (独立安装包下载) 适用于 macOS Sonoma 和 macOS Ventura 的 Safari 浏览器 18 请访问原文链接:https://sysin.org/blog/apple-safari-18/ 查看最新版。原创作品,转载请保留出处。 作…

记录一次大炮打蚊子的modbustcp通讯连接异常问题

一.问题描述 某种场景下,安装有Ubuntu22系统的设备A开机后,1-2min内设备E遥控器不能遥控设备A移动,之后恢复正常。 二.设备组网设备A和设备C之间使用modbustcp协议进行通讯。 三.首战 3.1 查看日志 放开该端口的modbus查询帧日志打印,发现整体的帧格式,发现返回了modbus数…

读数据工程之道:设计和构建健壮的数据系统25查询

查询1. 查询 1.1. 通过理解查询、建模和转换​,你会掌握将原始数据转化为下游利益相关者可用数据的工具 1.2. 被很多人熟知的SQL,这是最流行和通用的查询语言 1.3. 查询是数据工程、数据科学和数据分析的基础 1.4. 在了解数据转换的基本模式和技术之前,你需要了解什么是查询…