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

news/2025/11/10 22:36:20/文章来源:https://www.cnblogs.com/wrb060208/p/19208488

一、实验内容

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

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

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

4、取证分析实践

二、实验过程

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

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

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

输入file RaDa.exe
image
学习通下载peid.rar并解压,查看加壳类型
image

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

image

3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中找出rada恶意代码的编写作者

image

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

1)寻找crackme1.exe的特定输入

直接运行crackme1.exe尝试

没有输入时,显示的是“I think you are missing somethhing.”
只有1个输入时,显示的是“Pardon? What did you say?”
多于一个输入时,显示的是“I think you are missing somethhing.”

可以推断出,特定输入只有一个值。

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

1)寻找crackme1.exe的特定输入

直接运行crackme1.exe尝试

没有输入时,显示的是“I think you are missing somethhing.”
只有1个输入时,显示的是“Pardon? What did you say?”
多于一个输入时,显示的是“I think you are missing somethhing.”

可以推断出,特定输入只有一个值。
image
打开IDA Pro,选择选项PE Executable,选择crackme1.exe,打开IDA View-A页面。
image
点击View->Graphs->Function calls,打开函数调用图,发现sub_401280调用了strcmp、printf等这些有关字符串处理的函数,可以合理推测它在参数判断中有重要作用。
image
在Functions页面点击sub_401280。
image
点击View->Graphs->Flow chart,打开函数流程图。
image
对函数流程图进行如下分析,可以合理推测正确的输入参数是“I know the secret.”
image
按分析输入相应的参数,显示“”
image

2)分析crackme2.exe

直接运行crackme2.exe进行尝试
可以看出依旧是1个输入
image
按照上次的方式打开函数调用图,发现sub_401280调用了strcmp、fprintf、putchar、puts这些字符串处理函数,推测它具有重要作用。
image
在Functions页面点击sub_401280,再打开函数流程图。
image
这一流程和crackme1.exe中看到的流程类似,但多了一个第一个参数的判断流程,由此可以推断出函数需要将第一个参数改成特定名称。
image
按分析结果改变文件的名称为crackmeplease.exe,再次运行,程序输出了成功信息。
image

3.分析一个自制恶意代码样本rada

1)信息获取

使用file命令和md5sum命令,得到RaDa.exe的摘要和基本信息。
image
打开process explorer,然后运行脱壳后的Rada,双击进程,查看Strings窗口。

在Strings窗口中,可以看到如下图的一些重要信息。
image
image
image
image
image

2)问题回答

问题一:提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息。
回答一:它的MD5摘要为 caaa6985a43225a0b3add54f44a0d4c7。其他基本信息:RaDa.exe 是32位 Windows GUI可执行文件,面向Intel x86处理器,内部含3个段。

问题二:找出并解释这个二进制文件的目的。
回答二:这是一个远程控制后门程序。它先创建专属工作目录,通过开机自启动实现持久化潜伏与环境准备,随后连接远程C&C服务器,等待并执行数据窃取、参与DDoS攻击、充当跳板等恶意指令。

问题三:识别并说明这个二进制文件所具有的不同特性。
回答三:该二进制文件是经UPX压缩壳保护、VBA编译的模块化后门程序,具备持久化与网络通信能力,特性包括:开机自启动、动态创建工作目录、与硬编码C&C服务器HTTP通信、下载并执行后续恶意载荷。

问题四:识别并解释这个二进制文件中所采用防止被分析或逆向工程的技术。
回答四:该文件采用 UPX 加壳技术,通过压缩原始代码、劫持入口点隐藏程序逻辑。应对方法:使用脱壳工具还原原始代码,通过动态调试绕过反调试机制。

问题五:对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
回答五:该RaDa恶意代码样本属于后门程序。理由:它不具备自我复制或主动传播能力,需通过伪装诱导用户执行,核心行为是在受害主机建立隐蔽持久的远程访问通道,供攻击者完全控制主机。

问题六:给出过去已有的具有相似功能的其他工具。
回答六:功能相似的工具包括:后门程序灰鸽子,可创建后门的工具msfvenom、veil。

问题七:可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
回答七:可以调查出开发作者。该二进制文件开发者为Raul Siles && David Perez,可在IDA Pro中找到相关信息。

问题八:给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
回答八:

1. 基于特征码的检测

原理

基于特征码的检测是最传统的恶意软件检测方法。特征码是从已知恶意软件样本中提取的一段唯一标识符,通常是恶意代码中的特定字节序列。防病毒软件使用这些特征码来匹配和识别系统中的恶意软件。

实施步骤

  1. 收集已知恶意软件样本:从多个来源收集已知的恶意软件样本,包括公共数据库和私人样本库。
  2. 提取特征码:使用专门的工具(如YARA规则引擎)从这些样本中提取特征码。
  3. 构建特征码数据库:将提取的特征码存储在一个数据库中,以便快速查找和匹配。
  4. 扫描系统文件:使用防病毒软件扫描系统中的所有文件,将每个文件的内容与特征码数据库进行比对。
  5. 匹配和报告:如果发现匹配的特征码,防病毒软件会标记该文件为恶意软件,并提供相应的处理建议(如删除、隔离或修复)。

2. 基于行为的检测

原理

基于行为的检测方法通过监控软件的行为来识别恶意活动。这种方法不依赖于已知的特征码,而是关注软件在运行时的行为模式,如文件操作、网络通信、注册表修改等。

实施步骤

  1. 定义正常行为模型:建立一个系统正常行为的基线模型,包括常见的文件操作、网络活动、注册表修改等。
  2. 实时监控:使用行为监控工具(如EDR解决方案)实时监控系统中的所有活动。
  3. 异常检测:将监控到的行为与正常行为模型进行对比,识别出偏离正常行为的活动。
  4. 分析和响应:对异常行为进行进一步分析,确定是否存在恶意活动。如果确认是恶意活动,采取相应的应对措施(如终止进程、隔离文件等)。

3. 基于机器学习的检测

原理

基于机器学习的检测方法使用机器学习算法来识别恶意软件。这些算法通过训练大量已知的恶意软件和良性软件样本,学习区分恶意和良性软件的特征。

实施步骤

  1. 数据收集:收集大量的已知恶意软件和良性软件样本,作为训练数据。
  2. 特征提取:从样本中提取特征,如文件头信息、API调用、字符串、行为模式等。
  3. 模型训练:使用机器学习算法(如决策树、随机森林、神经网络等)对提取的特征进行训练,生成分类模型。
  4. 模型评估:使用交叉验证等方法评估模型的性能,确保其准确性和鲁棒性。
  5. 部署和检测:将训练好的模型部署到检测系统中,对系统中的文件和进程进行实时检测。

4. 基于沙箱的检测

原理

基于沙箱的检测方法通过在隔离环境中运行可疑文件,观察其行为来判断是否为恶意软件。沙箱环境可以防止恶意软件对真实系统造成损害。

实施步骤

  1. 设置沙箱环境:创建一个与生产环境隔离的虚拟机或容器,作为沙箱环境。
  2. 上传可疑文件:将可疑文件上传到沙箱环境中。
  3. 运行和监控:在沙箱环境中运行可疑文件,并使用监控工具记录其行为,包括文件操作、网络通信、注册表修改等。
  4. 分析行为:将监控到的行为与已知的恶意行为模式进行对比,判断是否为恶意软件。
  5. 报告和处理:生成详细的报告,描述可疑文件的行为,并提供处理建议。

5. 基于信誉的检测

原理

基于信誉的检测方法通过评估文件和URL的信誉来识别恶意软件。这种方法依赖于一个信誉数据库,该数据库包含已知的恶意文件和URL的列表。

实施步骤

  1. 构建信誉数据库:收集已知的恶意文件和URL,建立一个信誉数据库。这些数据可以从公共威胁情报平台、安全厂商和社区获取。
  2. 文件和URL哈希计算:对系统中的文件和URL计算哈希值(如MD5、SHA-256)。
  3. 哈希值比对:将计算得到的哈希值与信誉数据库中的哈希值进行比对。
  4. 信誉评分:根据比对结果,为文件和URL分配一个信誉评分。高评分表示可能存在恶意。
  5. 处理和报告:根据评分结果,采取相应的处理措施,如隔离文件、阻止访问URL等

4.取证分析实践

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

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

IRC (Internet Relay Chat) 是一种实时的互联网文本消息协议,它允许用户加入频道并与其他用户进行群聊,或者通过私信功能一对一交流。
当一个IRC客户端想要加入一个IRC网络时,它会发送一个连接请求到服务器,并且在成功建立连接后,通常会发送一个NICK命令来指定用户的昵称,以及一个USER命令来提供一些额外的用户信息。
IRC最常用的TCP端口是6667,但是也可以使用其他端口如6660-6669范围内的端口号,以及更安全的SSL/TLS加密连接使用的6697端口。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet)是由一系列被恶意软件感染的计算机组成的网络,这些计算机可以被远程控制者(通常称为“僵尸牧者”或“Botmaster”)用来执行各种非法活动。
僵尸网络通常用于以下几种目的:
分布式拒绝服务攻击(DDoS):通过大量的请求淹没目标网站或服务,导致其无法正常响应合法用户的请求。
垃圾邮件发送:利用僵尸网络中的计算机大量发送未经请求的电子邮件,以推广产品或传播恶意软件。
点击欺诈:自动产生虚假的网页点击,以增加广告费用或影响搜索引擎排名。
信息窃取:从受感染的计算机中收集敏感数据,如银行账户信息和个人身份信息。
密码破解:使用僵尸网络中的计算资源尝试暴力破解密码。
僵尸网络的存在对网络安全构成了严重威胁,因此打击和预防僵尸网络活动是网络安全领域的一个重要方面

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
首先,我们使用Wireshark打开数据文件botnet_pcap_file.dat,过滤源IP地址为172.16.134.191,目的端口为6667或6697
image
设置过滤条件为:ip.src == 172.16.134.191 && tcp.dstport == 6667 || tcp.dstport == 6697
image
过滤统计结果有如下五个IP地址:
63.241.174.144
66.33.65.58
217.199.175.10
209.196.44.172
209.126.161.29
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
首先输入:apt install tcpflow
对捕获到的数据包进行分流,指令为:tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
我们得到了这样的三个文件
image
209.196.044.172.06667-172.016.134.1 91.01152,report.xml
我们关心的是访问IP地址为209.196.44.172的主机,所以看第一个文件,使用命令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 -a "^:irc5.aol.com 353":查找以 :irc5.aol.com 353 开头的行。
sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x ://g"在文本中查找所有以 :irc5.aol.com 353 rgdiuggac @ #x 开头,后跟零个或多个不是 x 的字符,然后以 x (x 后跟一个空格)结尾的字符串,并将这些字符串删除。
tr ' ' '\n'将空格替换为换行符。
tr -d "\15"删除回车符。
grep -v "^$"删除所有空行。
sort -u去除重复的行。
wc -l统计行数。
image
从输出中可以看到有3461个不同的主机访问了这一僵尸网络。

(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 > 20232406.txt;wc -l 20232406.txt,将攻击蜜罐主机的ip筛选出来并输出至文件中。
命令解释

tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191'筛选保存的数据包,不要解析ip地址和端口号。
awk -F " " '{print $3}'使分隔符为空格,筛选出所有源地址。
cut -d '.' -f 1-4将输出整理为ip地址的格式。
sort | uniq | more > 20222316.txt排序,删除重复行,按页显示,输出。
wc -l 20232406.txt计数。
image
总计有165个IP地址用于攻击蜜罐主机,下图中截取了文件的开头和结尾
image
image
(6)攻击者尝试攻击了那些安全漏洞?
点击wireshark的统计->协议分级,可以看到有tcp包和udp包,tcp包占了大部分。
image
在kali终端中输入命令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
image
从中可以看出响应的端口有135(RPC远程过程调用)、139(NetBIOS/SMB)、25(SMTP简单邮件传输协议)、445(SMB,用于文件、打印机等的共享)、4899(Radmin,用于远程控制)、80(HTTP)。
再使用命令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端口。
image
从中可以看出响应的端口有137(NetBIOS)
(7)那些攻击成功了?是如何成功的?
输入筛选条件tcp.port == 135 && ip.dst == 172.16.134.191
发现只是普通地建立了一个连接
image
输入筛选条件tcp.port == 139 && ip.dst == 172.16.134.191
image
输入筛选条件tcp.port == 25 && ip.dst == 172.16.134.191
观察报文发现,除了“三次握手”建立连接和“四次挥手”释放连接外没有其他数据传输。
image
image
输入筛选条件tcp.port == 445 && ip.dst == 172.16.134.191
观察报文发现,返回信息中含有\PIPE\lsass,通过搜索可知,这是一个远程调用,所以攻击者肯定是获得了权限。
可以发现数据包中有PSEXESVC.exe,是一种蠕虫病毒,因此端口445被攻击。
image
image
image
输入筛选条件tcp.port == 4899 && ip.dst == 172.16.134.191
观察报文发现,此时有大量数据交互。攻击成功
image
输入筛选条件tcp.port == 80 && ip.dst == 172.16.134.191
观察报文发现,向目标成功请求默认网页。攻击成功
image
image
输入筛选条件udp.port == 137 && ip.dst == 172.16.134.191
image

三、问题及解决方案

  • 问题1:打开process explorer,然后运行脱壳后的Rada,双击进程,查看Strings窗口显示错误。
  • 问题1解决方案:在出现这个提示时,不要点确定。
    image

四、学习感悟、思考等

通过实验,我对恶意软件的种类、工作方式以及对系统的影响有了更加深刻的理解。例如,通过分析rada恶意代码样本,我了解到恶意软件可以通过修改注册表、执行网络攻击等多种手段实现其目的。
在实验过程中,我学会了使用多种工具和技术来分析恶意软件,如使用file命令识别文件类型、使用IDA Pro进行静态和动态分析、使用tcpdump和Wireshark分析网络流量等。这些技能不仅对恶意软件分析有用,也适用于其他信息安全领域的研究。

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

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

相关文章

软件工程学习日志2025.11.10

在软件设计中,我们经常会遇到需要处理多个维度变化的场景。今天,我们将通过一个生动的例子——"在路上开车"问题,来深入探讨桥接模式(Bridge Pattern)的应用。这个例子中,车辆可以是小汽车或公交车,道…

172. 阶乘后的零

题目链接:172. 阶乘后的零 - 力扣(LeetCode)解析: 方法一:数学n! 尾零的数量即为 n! 中因子 10 的个数,而 10=25,因此转换成求 n! 中质因子 2 的个数和质因子 5 的个数的较小值。 由于质因子 5 的个数不会大于质…

2025 年 11 月储罐厂家推荐排行榜,钢衬塑储罐,钢塑复合储罐,化工储罐,防腐储罐,PE储罐,盐酸储罐,硫酸储罐,聚丙烯储罐,不锈钢储罐,次氯酸钠储罐公司推荐

2025年11月储罐厂家推荐排行榜:专业选购指南与权威榜单 在化工、制药、环保等工业领域,储罐作为关键设备,其性能和质量直接关系到生产安全与运营效率。随着技术进步和市场需求多样化,各类储罐如钢衬塑储罐、钢塑复…

AWS云从业者认证学习指南与练习平台

本项目提供完整的AWS云从业者认证(CLF-C02)学习资源,包含详细的学习笔记、思维导图、23套模拟试题和在线练习平台,帮助考生系统掌握云计算概念、AWS服务、安全架构等核心知识点,高效备考认证考试。AWS云从业者认证学…

微服务已死?别再盲目跟风微服务!这3种情况下单体架构更适合你。

本文对比单体架构与微服务架构,指出架构选择应基于业务需求,无绝对好坏。单体架构简单直接、适合业务初期;微服务架构灵活可扩展、适合大型项目。强调架构应渐进演进,根据团队规模和发展阶段灵活选择。文 / 勇哥 原…

2025 年 11 月扒胎机厂家推荐排行榜,液压无损扒胎机,全自动扒胎机,汽保扒胎机,轮胎扒胎机,汽车扒胎机公司推荐

2025年11月扒胎机厂家推荐排行榜:液压无损扒胎机与全自动扒胎机选购指南 行业背景与发展现状 随着汽车保有量的持续增长和汽车后服务市场的快速发展,扒胎机作为汽保设备领域的重要工具,其技术水平和产品性能不断提升…

Oracle LogMiner实战指南:误删误改数据的救命稻草

Oracle LogMiner实战指南:误删误改数据的救命稻草作为DBA,最令人心惊肉跳的时刻莫过于业务同学突然惊呼:"核心数据被误删/误改了!"如果此时备份缺失或已过时,你是否想过只能跑路?别慌!Oracle提供了一…

Spring 事务 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月危险品运输厂家推荐排行榜,危险品运输车,危险品运输罐,危险品运输物流,危险品运输公司专业实力与安全服务深度解析

2025年11月危险品运输厂家推荐排行榜:危险品运输车、危险品运输罐、危险品运输物流、危险品运输公司专业实力与安全服务深度解析 行业背景与发展现状 危险品运输作为特种物流领域的重要组成部分,承载着化工、能源、医…

Spring AI Alibaba 项目源码学习(二)-Graph 定义与描述分析

Graph 定义与描述分析 请关注公众号:阿呆-bot 概述 本文档分析 spring-ai-alibaba-graph-core 模块中 Graph 的定义和描述机制,包括入口类、关键类关系、核心实现代码和设计模式。 入口类说明 StateGraph - Graph 定…

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

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

SpringBoot热启动

引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency>设置确…

SPI 设备与多从机冲突的解决之道:片选管理、CS 去抖与总线隔离策略 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月超声波检测设备厂家推荐排行榜,超声波检测系统,相控阵/高频/水浸/液冷板/钎焊超声波检测,高频相控阵超声波检测设备厂家推荐

2025 年 11 月超声波检测设备厂家推荐排行榜,超声波检测系统,相控阵/高频/水浸/液冷板/钎焊超声波检测,高频相控阵超声波检测设备厂家推荐 行业技术发展背景 超声波检测技术作为现代工业无损检测的重要手段,在材料…

对于生成虚tree进行DP——CF1097G Vladislav and a Great Legend

对于生成虚tree进行DP——CF1097G Vladislav and a Great Legend 首先 \[\sum_Xf^k(X)=\sum_{i=1}^k{k \brace i}i!\sum_X{F(X)\choose i} \]考虑如何 \(dp\) \(\sum_X{F(X)\choose i}\)。 设 \(f_{x,i}\) 表示考虑 \(…

2025 年 11 月除蜡水厂家推荐排行榜,钢铁除蜡水,不锈钢除蜡水,金属除蜡水,工业除蜡水公司推荐

2025年11月除蜡水厂家推荐排行榜:专业解析钢铁除蜡水与金属表面处理技术 在当今精密制造与金属加工行业快速发展的背景下,除蜡水作为金属表面处理的关键制剂,其性能优劣直接影响着工件的清洁度与产品质量。钢铁除蜡…

使用napi-rs,通过node调用rust代码

0、node版本建议在16以上 1、安装napi-rs npm init -y npm install @napi-rs/cli --save-dev2、初始化一个 napi 项目 npx @napi-rs/cli new my-rust-addon # 如果这句不行就试试 npx napi new my-rust-addon3、进入my…

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

1.实验内容 1.1学习内容 1.恶意代码分析方法(静态分析、动态分析等) 2.PEiD、IDA Pro、ProcessExplorer等分析工具的使用方法 1.2实验任务恶意代码文件类型标识、脱壳与字符串提取 使用IDA Pro静态或动态分析crackme…

智语写作都有哪些功能?看这一篇就够了!智语写作全功能详解

作为AI写小说全能工具箱的智语写作,功能非常丰富,其AI生成能力可覆盖小说、短剧、公众号、视频等创作全流程。 本篇文章,就来给大家详细介绍一下这些功能。 一、AI辅助创作功能:已对接GPT、Gemini、claude、grok、…

pythontip 字符串转为字典

编写一个程序将字符串转换为字典。 定义函数convert_str_list_to_dict(),参数为str_list(输入的字符串)。 在函数内部,创建一个字典,其中每个字符串使用=进行分割,第一部分为键,第二部分为值。 返回字典。先用字符…