20232810 2023-2024-2 《网络攻防实践》实验八

一、实践内容

1.1 恶意代码

1.1.1 简介

定义:恶意代码(Malware,或Malicious Code)指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。
指令集合:二进制执行文件、脚本语言代码、宏代码、寄生在文件或者启动扇区的指令流。
目的:远程控制被攻击主机、满足施跳板攻击或进一步传播恶意代码、窃取私人信息或机密信息、窃取计算存储带宽资源、拒绝服务等。
类型:不感染的依附性恶意代码(特洛伊木马、逻辑炸弹)、不感染的独立性恶意代码(点滴器、繁殖器)、可感染的依附性恶意代码(病毒)、可感染的独立性恶意代码(蠕虫)

1.1.2 计算机病毒

定义:计算机病毒是一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。
特性:感染性(本质特性)、潜伏性、可触发性、破坏性、衍生性。
感染及引导机制:
(1)感染可执行文件(最为普遍的方式):前缀感染机制(病毒将自身复制到宿主程序的始端)、后缀感染机制(病毒将自身复制到宿主程序的末端)、插入感染机制(病毒在感染宿主程序时,病毒代码放在宿主程序的中间)。
(2)感染引导扇区:通过BIOS定位磁盘的主引导区,运行存储的主引导记录,接着从分区表中找到第一个活动分区,读取并执行这个活动分区的分区引导记录,而分区引导记录负责装载操作系统。
(3)感染数据文件(支持宏的数据文件):将自身以宏指令的方式复制到数据文件中,当被感染的数据文件被应用程序打开时,将自动执行宏病毒体,完成病毒的引导。

1.1.3 网络蠕虫

定义:一种通过网络自主传播、自我复制的独立恶意代码。(从这里就可以看出病毒和蠕虫的区别)
传播机制:主动攻击网络服务漏洞、通过网络共享目录、通过邮件传播。
组成结构:
(1)弹头:利用目标系统安全漏洞入侵目标系统。包括缓冲区溢出攻击、破坏目标系统服务中的内存结构、文件共享攻击、利用电子邮件传播、利用其它普通的错误配置。这里其实就是我们之前说的渗透攻击模块。
(2)传播引擎:通过在目标系统上执行传播引擎指令,完成蠕虫样本的传播。方式有FTP/TFTP/HTTP/SMB/直接传送/单包等。
(3)目标选择算法和扫描引擎:一旦蠕虫在受害计算机中运行,目标选择算法开始寻找新的攻击目标,利用扫描引擎扫描每一个由目标选择算法确定的地址,确定其是否可以被攻击。包括电子邮件地址、主机列表、被信任的系统、网络邻居主机等。这里就是扫描策略。
(4)有效载荷:附加的攻击代码,执行一些特殊目地的操作。包括植入后门、安装分布式拒绝服务攻击代理、组建僵尸网络、执行一个复杂计算等。

1.2.4 静态分析

定义:通过在受控环境中执行目标代码,以获取目标代码的行为及运行结果。
方法列表:
(1)动态分析中的监视与控制:行为监视即一系列监控软件来控制和观察恶意代码的运行情况。网络控制即与业务网络和互联网保持物理隔离。
(2)快照比对:分为四步:对“干净”资源列表做快照、运行恶意代码、对恶意代码运行后的“脏”资源列表做快照、对比“干净”和“脏”快照,获取恶意代码行为结果。
(3)动态行为监控:包括Notification机制(Win32/Linux系统本身提供的行为通知机制)和API Hooking技术(对系统调用或API调用进行劫持,监控行为)。
(4)网络监控:主要监控四个方面,包括恶意代码开放的本地端口、恶意代码发起的网络连接、控制恶意代码网络流和恶意代码流行攻击方式-ARP欺骗。
(5)沙盒:沙盒技术用于安全运行程序的安全环境,经常被用于执行和分析非可信的代码。
(6)动态跟踪调试:在程序的执行过程中进行二进制调试(Debugging)。

二、实践过程

2.1 动手实践任务一

(1)解压下载的压缩文件,将RaDa放入虚拟机WinXP的桌面,同时打开终端,先 cd 桌面 进入桌面后输入 file RaDa.exe,查看该文件类型,这是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。
在这里插入图片描述
(2)使用PEiD工具查看文件加壳类型。加壳的目的是为了增加逆向难度。可以看到这个是一个版本为0.89.6的UPX壳(压缩壳)。
在这里插入图片描述
(3)输入strings RaDa.exe,查看 RaDa.exe中可打印字符串,发现全是乱码,这说明被加壳了
在这里插入图片描述
(4)使用超级巡警进行脱壳,选择相应的路径,支持脱壳。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)查看桌面,可以看到这个文件。
在这里插入图片描述
(6)再用 strings 查看脱壳后的RaDa_unpacked.exe,发现了脱壳后的恶意程序的可打印字符串。

在这里插入图片描述
(7)这时候用 IDA Pro Free 打开这个文件。
在这里插入图片描述

在这里插入图片描述
(8)查看详细信息,可以找到作者为DataRescue sa/nv,邮箱为ida@datarescue.com
在这里插入图片描述

2.2 动手实践任务二:分析Crackme程序

(1)首先检查两个文件的完整性,计算其 md5 值。
在这里插入图片描述
(2)使用file命令查看其文件类型,可以看到这两个文件都是32位windows下PE文件。
在这里插入图片描述
(3)对crackme1.exe进行分析
在这里插入图片描述
(4)接下来利用IDA Pro打开这个程序分析,打开通过Strings窗口可以查看该程序中出现的字符串。通过Strings窗口可以查看到该程序中出现的明文字符串,可以看到前面的两种输出信息,“I think you are missing something.” “Pardon? What did you say?”,还发现了“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer”这两个字符串。由此我们可以猜测,前者就是口令,后者是输入口令正确时程序的输出信息。
在这里插入图片描述
接下来看函数调用图(Function Call)可以发现:关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用printfprint函数输出。
在这里插入图片描述
下面看sub_401280流程图,看到 cmp [ebp+arg_0],2,其用来判断程序是否有两个参数。
在这里插入图片描述
继续分析,可以看到其他几条口令。
在这里插入图片描述
猜测正确的口令应该是"I know the secret",输入命令运行改口令,可以得到这样一条回复"You know how to speak to programs,Mr.Reverse-Engineer"。成功。
在这里插入图片描述
(5)程序crackme2.exe的分析过程与之类似,先打开Function call(函数调用图),发现关键的部分在sub_401280这里。
在这里插入图片描述
在这里插入图片描述
输入 copy crackme2.exe crackmeplease.exe 将程序复制并命名为crackmeplease.exe,输入crackmeplease.exe “I know the secret”,得到的反馈信息为We have a little secret: Chocolate.成功。
在这里插入图片描述

2.3 分析实践任务一:分析一个自制恶意代码样本rada

(1)查看摘要和文件类型:md5sum RaDa.exe指令得到其md5摘要。利用file RaDa.exe识别出这是32位GUI文件
在这里插入图片描述
(2)接下来打开监听工具process explorer对RaDa.exe进行检测,如图发现该程序用http连接到目标为10.10.10.10的主机下名为RaDa——commands的网页上,创建文件夹C:\RaDa\tmp保存下载文件,进行DDOS拒绝服务攻击,将RaDa.exe复制到C:\RaDa\bin。该程序还依次读、写和删除注册表,打开注册表查看发现没有信息,则表示已删除。接下来执行exe(执行指定命令)、put(将宿主主机中的指定文件上传到服务器)、get(将服务器中的指定文件下载到宿主主机中)、screenshot(截取宿主主机的屏幕并保存到tmp文件夹)、sleep(停止活动一段时间)。
在这里插入图片描述
(3)进入Strings对话框,在菜单栏中的Edit中点击Setup,设置类型为 Unicode
在这里插入图片描述
(4)在Strings里查看参数,可以看到作者信息。
在这里插入图片描述
(5)在strings中点击IP地址: http://10.10.10.10/RaDa,定位到相应位置后,由上述分析,用http连接到目标为10.10.10.10的主机下名为RaDa——commands.html,对应的函数为sub_404FB0,点击进入此函数,得到汇编代码如图,这个字符串被拷贝到dword_40C030变量中。
在这里插入图片描述
在这里插入图片描述
(6)回答问题

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
答:文件的摘要是caaa6985a43225a0b3add54f44a0d4c7,这是一个PE可执行文件。
2、找出并解释这个二进制文件的目的;
答:这个二进制文件是一个后门程序,攻击者可以利用其完全控制该系统,并且只要用户上网,就可以得到到攻击者的攻击指令。
3、识别并说明这个二进制文件所具有的不同特性;
答:该程序运行的时候建立远程连接并修改注册表
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
答:UPX加壳技术
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
答:应该属于病毒程序
6、给出过去已有的具有相似功能的其他工具;
答:木马Bobax。
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
作者为Raul siles 和 David Perze。使用strings命令能查看

2.4 分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC(Internet Relay Chat)是一种在线聊天协议,它允许用户通过网络参与实时的文字交流。用户可以在IRC服务器上创建和加入频道(类似于聊天室),并与世界各地的人进行交流。
当一个IRC客户端申请加入一个IRC网络时,它通常会发送几个关键的命令消息来建立连接和注册。首先,客户端会发送NICK命令来设置用户的昵称,然后使用USER命令来提供用户的身份认证信息,包括用户名、主机名、服务器名和真实姓名(或其它信息)。这些是建立初始连接和进行用户注册所需的基本命令。
IRC通常使用TCP端口6667作为默认的通信端口。除此之外,还可能使用6660到6669、7000等端口。有些服务器还支持SSL加密连接,通常使用6697端口。这些端口使得IRC客户端能够与服务器建立稳定的连接。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet)是由大量互联网连接的设备组成的网络,这些设备被黑客或恶意软件控制,以执行一系列自动化的任务。这些设备通常被称为“僵尸”或“机器人”,因为它们在不知情的设备主人的控制之外被远程控制。
僵尸网络通常用于以下几种目的:

  1. 分布式拒绝服务攻击(DDoS):利用大量的设备同时向特定的服务器或网络发送大量请求,导致目标系统超负荷,无法处理正常的流量,从而中断服务。
  2. 发送垃圾邮件:利用控制的设备发送大量垃圾邮件或进行垃圾邮件活动,因为使用多个源发送可以增加其分布范围并更难被拦截。
  3. 密码破解:使用僵尸网络中的计算能力来破解密码或执行其他需要大量计算资源的安全攻击。
  4. 信息窃取:利用被感染的设备来收集敏感信息,如信用卡号码、个人身份信息和企业数据。
  5. 点击欺诈:自动化点击网络广告或搜索引擎结果,以生成虚假的点击量,从而欺诈广告收入。
  6. 加密货币挖矿:使用僵尸网络中的设备资源来挖掘比特币等加密货币。
    僵尸网络由于其能够动员的庞大资源和跨越国界的特性,成为了网络犯罪和网络战的一个重要工具。对于个人和组织来说,确保其设备的安全,防止成为僵尸网络的一部分,是非常重要的。
    (3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
    首先通过Wireshark打开数据文件botnet_pcap_file.dat,并设置过滤条件ip.src == 172.16.134.191 && tcp.dstport == 6667,可以找到所有与蜜罐主机进行通信的五个 IRC 服务器:分别为 209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172在这里插入图片描述
    (4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
    计算出的结果有3461个
    在这里插入图片描述
    (5)哪些IP地址被用于攻击蜜罐主机?
    在这里插入图片描述
    (6)攻击者尝试了哪些安全漏洞?哪些攻击成功了?是如何成功的?
    有135、139、25、445、4899、80。用wireshark打开文件botnet.pcap,逐个筛选TCP端口。
    135:探测;25:扫描;139:SMB查点;80:缓冲区溢出;1340:红色代码蠕虫等。

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

开始无法将RaDa拖拽到虚拟机里面,后来采用同学的建议,将其存到U盘中,然后用虚拟机连接上U盘,才成功复制到虚拟机里。

四、学习感想和体会

随着实验内容的加深,除却对工具的学习外,更多的感受到底层编程语言及其逻辑、协议设计及其逻辑的要求进一步加深,要学的东西有很多,还是得埋头打基础。

五、参考资料

https://www.cnblogs.com/h767424060/p/16244282.html
https://www.cnblogs.com/ql5199/p/16216445.html
https://www.cnblogs.com/psalm46/p/16228109.html

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

想要买到心仪的旋转式孔板流量计吗?

选择旋转式孔板流量计可不能云里雾里的乱选择呀,煤矿对产品质量要求很严格的。所以我们要先了解产品的再决定才是对的选择。 旋转式孔板流量计技术参数【1--5--9】 规格:DN15~DN1000 孔径比(βd/D):β0.2—0&#xff…

深圳车间厂房降温用什么设备好?

环保水空调(也被称为水冷空调或蒸发式降温换气机组)的特点主要体现在以下几个方面: 节能环保:环保水空调使用水作为冷媒介,相比传统空调的制冷方式,它能在制冷过程中节约更多的能源,减少碳排放…

常用的外贸软件有哪些

常用的外贸软件涵盖了多个方面,包括客户开发、订单管理、库存控制、客户关系管理(CRM)、财务管理以及跨境电商平台等。以下是一些代表性的外贸软件和平台: 客户开发与营销软件: 大镜山谷歌搜索大师易谷歌地图数据采集大师米贸搜 外贸管理软件 (ERP): 神卓…

美国硅谷裸机云大宽带服务器在哪些行业中应用最广泛?

美国硅谷裸机云大宽带服务器在视频流媒体、实时数据分析和金融交易等行业中应用最广泛。关于美国硅谷裸机云大带宽服务器的各行业应用,rak部落小编为您做出详细的阐述。 美国硅谷裸机云大宽带服务器因其结合了高性能物理服务器和大带宽网络连接的特点,成…

H7-TOOL的双硬件串口同时运行Modbus主机和从机方法,方便大家Modbus测试验证(2024-05-06)

H7-TOOL的双硬件串口同时运行Modbus主机和从机方法,方便大家Modbus测试验证(2024-05-06) 使用这种方法,仅使用一个TOOL就可以方便同时运行Modbus主机和从机。 【Modbus专题视频】 可以用来熟悉Modbus协议 BSP视频教程第23期…

torch教程

一 基本用法 1 torch.autograd.Function PyTorch 74.自定义操作torch.autograd.Function - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/344802526 虽然pytorch可以自动求导,但是有时候一些操作是不可导的,这时候你需要自定义求导方式。也就是所谓的 "Extending t…

【0DAY】瑞友天翼应用虚拟化系统index.php接口处存在SQL注入漏洞导致程RCE

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

进行交直流充电桩检测的步骤和规范

交直流充电桩检测是为了保证充电桩的安全、稳定和高效运行,对充电桩的各项性能进行检测的过程。以下是进行交直流充电桩检测的步骤和规范: 1. 准备工作:在进行充电桩检测之前,需要准备好相关的检测设备和工具,如电压表…

揭秘速卖通自养号测评:如何提升账号权重与转化率?

速卖通自养号测评深度解析 在速卖通平台上,自养号测评是一个精细且复杂的过程,它涵盖了资源准备、环境搭建、账号运营、测评实施等多个环节。下面,我将详细解析这一过程,并分享我的原创见解。 一、资源与环境的基础搭建 首先&…

uni-app 多列picker切换列显示对应内容

html部分&#xff1a; <view class"uni-list"><view class"uni-list-cell"><view class"uni-list-cell-left">选择用户</view><view class"uni-list-cell-db"><picker mode"multiSelector"…

【设计模式】之观察者模式

系列文章目录 【设计模式】之装饰器模式【设计模式】之工厂模式&#xff08;三种&#xff09;【设计模式】之工厂模式&#xff08;三种&#xff09; 前言 今天给大家介绍另一种设计模式--观察者模式&#xff0c;有了解webscoket实现原理的小伙伴应该对这个设计模式不陌生。不清…

618有什么值得入手的电器?618家电狂欢不容错过的电器分享!

618电器节&#xff0c;作为年中最大的购物狂欢之一&#xff0c;汇聚了众多知名品牌和优质产品&#xff0c;为您提供了丰富的选择和超值的优惠。无论是您家中急需更换的老旧电器&#xff0c;还是您心仪已久的高端智能家电&#xff0c;都能在这个节日里找到心仪的选择。在这里&am…

手把手教数据结构与算法:有序线性表设计(表合并)

个人主页&#xff1a; 想转码的电筒人 专栏&#xff1a; 手把手教数据结构与算法 文章目录 有序线性表 概念 结构 问题描述 输入 输出 样例 解题步骤 结点类 链表类 insert函数 printAll函数 merge函数 test函数 完整代码 有序线性表 概念 单链表是一种物…

面试题:返回倒数第k个节点(简单)

面试题&#xff1a;返回倒数第k个节点&#xff08;简单&#xff09; 面试题 02.02. 返回倒数第 k 个节点 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/kth-node-from-end-of-list-lcci/description/ 这一题是很简单的当做试手题 题目 题目分析 1&…

hive日常使用时忘记部分补充(不定时)

1、date_formate、unix_timestamp、from_unixtime用法&#xff1a; 2、lag&#xff08;&#xff09;、lead()用法&#xff1a; lag&#xff08;)窗口函数返回分区中当前行之前行&#xff08;可以指定第几行&#xff09;的值。 如果没有行&#xff0c;则返回null。 lead()窗口…

windows端口复用

1. 概述 使用 HTTP.sys 中的 Net.tcp Port Sharing 服务&#xff0c;配合 WinRM 实现端口复用。 优点&#xff1a; HTTP.sys 为 windows 原生机制&#xff0c; WinRM 为 windows 自带功能&#xff0c;动作较小&#xff0c;不易触发主 动防御。 需要管理员权限。 2. 原理 (…

定时任务相关:克戎表达式

克戎表达式的历史和概念 克戎表达式&#xff08;Cron Expression&#xff09;是一种用于表示定时任务的字符串格式&#xff0c;在计算机领域被广泛应用。它的历史可以追溯到UNIX系统&#xff0c;最早由Brian Kernighan与其他UNIX开发者在1970年代末和1980年代初开发。 克戎表…

matlab绘制时间序列图,横坐标轴如何标注为月-日

Excel表格中有类似于如下 年月日对应的数据 导入 matlab中&#xff0c;为数值矩阵&#xff1b;了解该表格中的时间跨度为从2021年1月2日至2021年12月31日&#xff0c;中间没有缺失&#xff0c;绘图代码&#xff1a; % clear; timespan1[20210102 20211231]; datenn1datenum(da…

[虚拟机+单机]梦幻契约H5修复版_附GM工具

本教程仅限学习使用&#xff0c;禁止商用&#xff0c;一切后果与本人无关&#xff0c;此声明具有法律效应&#xff01;&#xff01;&#xff01;&#xff01; 教程是本人亲自搭建成功的&#xff0c;绝对是完整可运行的&#xff0c;踩过的坑都给你们填上了 视频演示 [虚拟机单…

关于电商API接口【满足高并发大批量请求】||电商API接口入门指南

简介&#xff1a; API&#xff08;应用程序编程接口&#xff09;是一种让不同软件之间进行通信的方式。在电子商务中&#xff0c;电商API接口可以用于获取商品信息、下单、支付等等。本篇文章将介绍电商API接口的入门知识&#xff0c;并提供示例代码以帮助你快速上手。 一、了解…