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

news/2025/11/10 23:00:17/文章来源:https://www.cnblogs.com/gaoyiming/p/19187676

1. 实验内容

  • (1)对恶意代码进行文件类型标识、脱壳与字符串提取

  • (2)学会使用IDA Pro进行静态或动态分析

  • (3)对一个自制的恶意代码样本rada进行各方分析

  • (4)进行取证分析

2. 实践要求

  • 掌握对恶意代码进行文件类型标识、脱壳与字符串提取,学会使用静态或动态分析,尝试进行取证分析

3. 实践内容

3.1 对恶意代码进行文件类型标识、脱壳与字符串提取

3.1.1 对RaDa.exe基本检测

  • (1)将RaDa.exe传入linux中,在linux中使用命令“file + 文件名”检测该文件的文件类型

image

  • 结果中显示,该文件是一个32位windows平台下PE格式的图形化的可执行文件,且该文件内部结构包含3个段

  • (2)使用命令“strings + 文件名”打印字符串

image

  • 由于该文件被加壳了,所以打印出的是乱码

  • (3)在win上使用PEiD工具检测RaDa.exe的信息

image

  • 结果如图显示了该文件的一些信息,比如该文件使用了UPX进行了加壳

3.1.2 对RaDa.exe进行脱壳

  • 发现该文件已被加壳,所以在win上使用“超级巡警之虚拟机自动脱壳器”工具进行脱壳

3.2 使用IDA Pro进行静态或动态分析

3.2.1 对crackme1.exe进行分析,寻找特定输入,使其能够输出成功信息

  • (1)将该文件传入linux,使用file命令查看该文件类型

image

  • 结果发现该文件是32位windows平台下的可执行文件,但是没有图形化,只能使用命令行,所以在win中通过命令行运行该程序

image

  • 结果根据参数的数量不同有两种不同的输出,参数数量为1时输出“Pardon? What did you say?”,其他输出“I think you are missing something.”

  • (2)然后使用IDApro打开该程序并进行分析,打开strings windows后,可以看到之前发现的两种输出提示

image

  • 查看整个程序的call flow即函数调用如下图,发现函数sub_401280中有strcmp字符串比较函数,以及输出函数,推测可能是通过比较输入是否正确输出对应的提示

image

  • 现在来分析该可疑函数sub_401280,在function Windows中找到该函数并打开,发现了上述字符串显示中的不同输出提示

image

  • 从该函数的开始部分可以看出来,是通过判断参数是否为2,且输入是否正确来进行不同的输出。如果不为2,则输出“I think you are missing something.”;如果是2但是输入错误则输出“Pardon? What did you say?”;如果是2且输入正确则输出“You know how to speak to programs, Mr. Reverse-Engineer”

image

  • (3)现在知道了正确输入,重新运行程序并正确输入后,输出正确提示!

image

3.2.2 对crackme2.exe进行分析,寻找特定输入,使其能够输出成功信息

  • (1)将该文件传入linux,使用file命令查看该文件类型

image

  • 结果发现该文件和crackme1.exe一样是32位windows平台下的可执行文件,没有图形化界面,所以同样在win中通过命令行运行该程序,

image

  • 结果跟crackme1.exe的输出类似,根据参数的数量不同有两种不同的输出,参数数量为1时输出“I have an identity problem.”,其他输出“I think you are missing something.”

  • (2)再次使用IDApro打开该程序并进行分析,打开strings windows后,仍然可以看到之前发现的两种输出提示

image

  • 查看整个程序的call flow即函数调用如下图,发现函数sub_401280中有strcmp字符串比较函数,一些输出函数,再次猜测是通过比较输入是否正确输出对应的提示

image

  • 分析该可疑函数sub_401280,发现正确的参数仍然是“I know the secret”,但是运行时的文件名也需要改变为crackmeplease.exe

image

  • (3)现在知道了正确输入,现在该文件目录下复制一份该文件,并命名为crackmeplease.exe

image

  • 再运行该文件,输入正确的文件名和参数,输出正确提示!

image

3.3 分析自制恶意代码样本rada,并回答问题

3.3.1 收集分析代码信息

  • (1)获取代码摘要信息

image

  • 打开process explorer,运行脱壳后的Rada_unpacked,双击该进程,查看Strings窗口,可以看到如下图的信息。

image

  • (2)尝试分析相关内容

    1. http://10.10.10.10/RaDa可能是恶意软件需要访问的某个Web服务器
    1. RaDa_commands.html、cgi-bin、download.cgi、upload.cgi可能是该Web服务器上的资源或脚本,用于数据传输或执行命令
    1. C:\RaDa\tmp、C:\RaDa\bin可能是恶意软件在创建目录,用于存放一些内容
    1. HKLM\Software\Microsoft\Windows\CurrentVersion\Run\这是Windows注册表中的一个路径,用于存储启动时自动运行的程序
    1. RaDa、REG SZ、C:\Rada\bin、RaDa.exe可能表示恶意软件将RaDa.exe添加到系统的启动项中,以便每次系统启动时自动运行
    1. HKLM\Software\VMware, Inc.\VMware Tools\InstallPath这个注册表路径与VMware Tools的安装路径有关,可能被恶意软件用于攻击VMware环境
    1. Starting DDoS Smurf remote attack...表示恶意软件正在远程启动Smurf的DDoS攻击

3.3.2 回答问题

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

答:摘要:caaa6985a43225a0b3add54f44a0d4c7;信息:32位windows平台下PE格式的图形化的可执行文件,且该文件内部结构包含3个段

  • (2)找出并解释这个二进制文件的目的;

答:根据上述获取的内容,目的可能是在电脑上安装恶意软件RaDa,设置其自启动模式,并发起smurf DDoS攻击

  • (3)识别并说明这个二进制文件所具有的不同特性;

答:该文件经过了UPX压缩,具有远程连接的功能,它是可以开机自启动的,能创建自己的工作目录并进行远程攻击的程序

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

答:该文件使用的反逆向工程的技术是使用UPX加压缩壳。UPX会通过压缩原始代码和劫持入口点隐藏程序逻辑,在运行时解压原始程序的代码,并跳转到原始程序的入口点执行该文件

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

答:我觉得这个代码属于后门。理由是他不会自我复制和传播,只是通过远程连接控制目标主机执行一些操作,符合后门的特点

  • (6)给出过去已有的具有相似功能的其他工具;

答:能够生成后门程序的工具有msfvenom和veil

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

答:可以。通过process explorer找到该程序并展示字符串即可找到版权的所有人即作者Raul Siles && David Perez。由于该文件进行了加壳,所以需要对脱壳文件分析才能找到。

image

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

方法一:基于特征码的静态检测:提取恶意软件样本的唯一静态特征,与安全数据库中的恶意特征库比对,一旦匹配则判定为恶意。

方法二:基于行为的动态检测:监控程序运行时的行为特征,匹配恶意行为规则即可判定为恶意软件。

方法三:基于网络流量的异常检测:恶意软件需与C2服务器通信接收指令、回传窃取数据,这样网络流量就会存在异常特征,通过分析数据包流量即可识别恶意软件

方法四:基于注册表的残留检测:恶意软件运行后会残留痕迹,即使该软件被删除,通过残留痕迹仍可以发现异常,进而推测是恶意软件的运行结果

方法五:基于沙箱的检测:让恶意软件在一个安全隔离的环境内运行,全程监控并记录其执行过程中的所有行为,结合预设的恶意行为判定规则推测是否为恶意软件

3.4 取证分析实践

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

  • IRC是互联网中继聊天协议,诞生于1988年,最初用于全球用户的公开聊天、群组讨论

  • 第一步发送基础身份声明消息,包括NICK用来设置客户端的唯一昵称,USER用来声明用户的详细身份;核心是通过发送JOIN消息申请加入指定IRC频道

  • 可以使用默认端口6667,该端口明文传输,无加密;或者加密端口6697,该端口使用SSL加密,称为IRCs;还有一些非默认端口6660-6669

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

  • 僵尸网络是由黑客控制的大量被感染设备组成的分布式网络,黑客可通过C2通道向所有僵尸机下发统一指令,实现规模化攻击

  • 可用于发起DDoS攻击;发送垃圾邮件和钓鱼邮件;窃取僵尸机自身敏感信息;提高挖矿效率;充当代理跳板等

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

  • 将文件botnet_pcap_file.dat拖入wireshark中打开即可该文件,设置过滤条件为ip.src == 172.16.134.191 and tcp.dstport == 6667,过滤后得到的数据包即是和蜜罐主机通信过的IRC服务器,有209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10

image

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

  • 首先需要根据图中步骤在linux中安装工具tcpflower

image

  • 在win中将botnet_pcap_file.dat传入虚拟机,使用命令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667",筛选了目标服务器的IP地址和端口。同时会生成一个报告文件report.xml和两个TCP连接流文件,使用标识tcp连接的套接字对命名

image

  • 查找源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" 删除消息前缀,仅保留用户列表

tr ' ' '\n' 将空格分隔转为换行分隔

tr -d "\15" 删除换行符

grep -v "^$" 删除空行

sort -u 删除重复的行

wc -l 统计最终行数

image

  • 结果显示有3461个主机访问了该僵尸网络

3.4.5 哪些IP地址被用于攻击蜜罐主机?

  • 在linux中输入命令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 > 20232405.txt;wc -l 20232405.txt

  • 命令解释

tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' 读取僵尸网络文件 botnet_pcap_file.dat,过滤发往僵尸机(172.16.134.191)的流量

awk -F " " '{print $3}' 提取每行的源ip字段

cut -d '.' -f 1-4 确保点分ip有完整的4部分格式

sort | uniq | more > 20232405.txt 排序并删除重复的行,并显示输出

wc -l 20232405.txt 统计该文件的行数

image

  • 结果显示有165个ip用于攻击蜜罐主机,打开生成的文件20232405.txt可以看到具体的ip们

image

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

  • botnet_pcap_file.dat在wireshark中打开,在菜单中统计选项中,找到协议分级,可以发现tcp包占99.7%,udp包占0.3%

image

  • 在linux中使用命令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的端口

image

  • 结果发现使用tcp的端口有135(RPC,Windows远程过程调用)、139/445(NetBIOS/SMB,Windows网络服务)、25(SMTP简单邮件传输协议)、4899(远程控制)、80(HTTP 服务);udp的端口有137(NetBIOS,Windows网络服务)

3.4.7 哪些攻击成功了?是如何成功的?

  • (1)tcp135:对该端口只是进行了tcp三次握手和四次挥手,没有攻击行为

image

  • (2)tcp139:对该端口建立tcp连接,并同意建立NetBIOS会话,但是尝试连接服务器的\PC0191\C共享目录C盘时被拒绝了,没有攻击成功

image

  • (3)tcp25:对该端口建立tcp连接,之后马上就发送FIN中断连接了,没有攻击行为

image

  • (4)tcp445:对该端口建立tcp连接后,观察包发现主机收到了PSEXESVC.EXE,而PSEXESVC.EXE允许用户远程执行命令或者进行攻击,同时在后面的包中发现该文件又被删除了,不管该程序是否有用,都对服务器造成了实质性的攻击,所以攻击成功

image

image

  • (5)tcp4899:开始建立连接失败后,后面出现了大量的涌向4899端口的PSH包即push包,该包可以强制接收方紧急处理数据交给应用层,不进行缓存,可以实现攻击行为

image

  • (6)tcp80:在数据包中发现了可疑的CCCC...信息并且没被拒绝,根据之前实验的记忆,发现和缓冲区溢出的载荷类似,推测是进行了缓冲区溢出攻击

image

  • (7)udp137:观察包没有发现可疑包,没有攻击行为

image

  • 综上所述,攻击端口中实现了成功的攻击分别有:445、4899、80

3. 问题及解决方案

  • 问题一:在将crackme1和2exe文件传入电脑并发送到桌面上后,使用cmd运行后发现找不到该文件,如下

image

  • 解决一:通过询问AI得知,运行文件需要在文件的本身目录下,发送到桌面的文件只是本身的一个替身,或者可以在运行的文件后加上.lnk

image

  • 问题二:在选择TCP连接流文件时,不知道选择哪个文件查找ip

  • 解决二:查找资料发现,受感染的主机会主动去连接服务器,所以要选择源ip为209.196.44.172的文件

4. 学习感悟、思考等

一开始用tcpflow、tcpdump这些命令的时候,老是因为语法不对报错。但后来慢慢摸清门路,能用它们把僵尸网络的流量拆开、找到黑客的控制ip,才发现这些工具的作用。

分析抓包的时候也挺有意思,原来那些看似普通的数据包里藏着这么多门道。比如看到那种小流量、发得特别勤的PSH包,就知道可以猜测是黑客在给僵尸机发命令;碰到139端口的SMB请求,就想起那些勒索病毒是怎么利用这漏洞搞破坏的。这让我明白,网络攻击是一环扣一环的,得把每一步都琢磨明白才能看懂。

关于恶意软件检测,我明白了不能只靠一种方法。就跟对付小偷似的,光装个门锁(特征码)不够,还得装监控(行为检测)、拉电闸(网络拦截),甚至养条“智能狗”(机器学习)盯着,这样才能防住各种花里胡哨的偷窃手法。

现在回过头看,从一开始连命令都输不对,到后来能自己分析僵尸网络,我觉得通过这门课我学到了真正对于工作有用的东西。每次搞明白一个攻击套路,就像解开了一道题,我希望以后可以尝试更多的攻击方法,掌握更多的技能,为以后的工作做好铺垫。

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

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

相关文章

2025 年 11 月聚氨酯厂家推荐排行榜,浇注型聚氨酯,聚氨酯预聚体,聚氨酯胶黏剂,聚氨酯组合料,聚氨酯密封,聚氨酯轮,聚氨酯胶辊,聚氨酯制品公司推荐

2025年11月聚氨酯厂家推荐排行榜:浇注型聚氨酯、预聚体及制品企业深度解析 行业背景与发展现状 聚氨酯材料作为一种高性能高分子材料,在工业生产中扮演着不可或缺的角色。随着制造业的持续升级和技术进步,浇注型聚氨…

duckdb比sqlite大多了

187K duckdb.h 5168行 1.8M duckdb.hpp 53662行 62M libduckdb.so 68M libduckdb_static.a 35M libduckdb-linux-amd64.zip1.4M /usr/lib/x86_64-linux-gnu/libsqlite3.so.0

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

20232303 2025-2026-1 《网络与系统攻防技术》实验四实验报告 1. 实验内容进行恶意代码文件类型标识识别、脱壳与字符串提取 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信…

2025 年 11 月氢氧化镁厂家推荐排行榜,矿石氢氧化镁,矿石法氢氧化镁,水镁石氢氧化镁,阻燃剂氢氧化镁,改性氢氧化镁公司推荐

2025 年 11 月氢氧化镁厂家推荐排行榜:矿石法、水镁石与改性氢氧化镁专业指南 氢氧化镁作为一种重要的无机化工原料,在阻燃材料、环保处理、医药制备等领域具有广泛应用。随着下游产业对高性能氢氧化镁需求的不断提升…

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

1.实验内容 1.1识别恶意代码的文件类型标识,进行脱壳与字符串提取。 1.2使用IDA Pro静态或动态分析所给exe文件,找到输出成功信息的方法。 1.3分析自制恶意代码样本并撰写报告。 1.4取证分析实践。 2.实验目的 掌握恶…

React:使用Tailwind CSS、Streamdown与Ant Design X

使用Tailwind CSS Tailwind CSS 简介是“用于快速用户界面开发的原子化 CSS 框架。” Tailwind CSS 是一个功能优先的实用优先(utility-first)CSS框架,它通过提供大量原子化的工具类(utility classes),让开发者直…

Day17清除默认样式

第一种京东就是运用通配符一次性全部清除,第二种则是将需要消除样式的标签一个一个输入子在消除,推荐第一个,简单高效 <!DOCTYPE html> <html lang="en"> <head><meta charset=&quo…

2025 年 11 月磨粉机厂家推荐排行榜,雷蒙磨粉机,环辊磨粉机,摆式磨粉机,矿石磨粉机,超细磨粉机,高压磨粉机公司推荐

2025年11月磨粉机厂家推荐排行榜:专业选购指南与权威推荐 在工业生产领域,磨粉设备作为物料加工的核心装备,其性能优劣直接影响生产效率和产品质量。随着技术的不断进步,磨粉机行业呈现出多元化、专业化的发展趋势…

详细介绍:探究微波消解仪如何创新现代实验室的样品前处理流程

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

爆肝!Oracle RAC 日常运维命令总结

爆肝!Oracle RAC 日常运维命令总结1.1 集群维护(CRS) CRS核心工具集位于$GRID_HOME/bin目录,Oracle推荐优先使用该目录工具($ORACLE_HOME中部分工具兼容但非首选),常用工具包括crsctl、crs_stat、diagcollectio…

Python 面向对象编程进阶

1. 面向对象高级语法 1.1 静态方法(@staticmethod)静态方法: 只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性。 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢…

详细介绍:线性代数 几何意义 | 基础、向量、行列式与线性方程组(上篇)

详细介绍:线性代数 几何意义 | 基础、向量、行列式与线性方程组(上篇)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

Emacs Org-Mode插入文本内容,自动对齐表格(Org-Babel)

Emacs Org-Mode插入文本内容,自动对齐表格(Org-Babel)本文内容为和AI大模型KIMI的对话记录,仅供参考。 如何将文本内容通过org-babel插入org-mode文档,如果文本是orgtbl支持的表格 (“|”分隔),自动对齐内容。…

在Zabbix中修改Web页面显示名称

Zabbix的WEB名称,在前端无法进行修改,可通过修改zabbix.conf.php文件参数实现个性化的名称需求。问题现象 随着 Zabbix 使用的越来越熟悉,右上角的名称越看越别扭。在WEB界面翻找许久,发现并没有修改名称的地方。查…

2025 年 11 月润滑油厂家推荐排行榜,工业润滑油,汽车润滑油,发动机润滑油,甲醇发动机润滑油,全合成润滑油公司精选

2025年11月润滑油厂家推荐排行榜:工业润滑油、汽车润滑油、发动机润滑油、甲醇发动机润滑油、全合成润滑油公司精选 行业背景与发展趋势 润滑油行业作为工业生产和交通运输领域的重要支撑产业,近年来呈现出多元化、专…

2025 年 11 月护栏生产厂家推荐排行榜,锌钢护栏,市政护栏,道路护栏,阳台护栏,草坪护栏公司推荐

2025年11月护栏生产厂家推荐排行榜:锌钢护栏、市政护栏、道路护栏、阳台护栏、草坪护栏专业解析 随着城市化进程的不断推进和基础设施建设的持续完善,护栏行业作为公共安全和建筑装饰领域的重要组成部分,正迎来新一…

python中Flask框架下session的使用

配置session的secret_key 和 有效期PERMANENT_SESSION_LIFETIME from flask import Flask, request,session, redirect from .views.account import ac# 拦截器 def auth():if request.path == /login or request.path…

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

一、实验内容 1、恶意代码文件类型标识、脱壳与字符串提取 2、使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。 3、分析一个自制恶意代码样本rada,并撰写报告,回答以下…

软件工程学习日志2025.11.10

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

172. 阶乘后的零

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