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

news2024/11/24 1:40:03

一、实践内容

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://www.coloradmin.cn/o/1651810.html

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

相关文章

CrossOver软件安装成功但找不到为什么 用 CrossOver 安装的 Windows 软件在哪

如果我们想要在 Mac 上安装 Windows 软件,除了安装双系统和安装虚拟机,更多的人会选择安装 CrossOver 这款非常好用的系统兼容软件。在用 CrossOver 安装的 Windows 软件之后,这些软件我们可以在哪里可以找到呢? 如果使用CrossOve…

数字人解决方案——AniPortrait音频驱动的真实肖像动画合成

概述 在当今数字化时代,将静态图像和音频素材转化为动态、富有表现力的肖像动画,已经成为游戏、数字媒体、虚拟现实等多个领域的重要技术。然而,开发人员在创建既具有视觉吸引力又能保持时间一致性的高质量动画框架方面面临着巨大挑战。其中…

使用 cout 代替 qDebug() 打印日志

方式一 //会输出完整路径行号 #define cout qDebug()<<"["<<__FILE__<<":"<<__LINE__<<"]"方式二&#xff08;改进&#xff09; //只会输出文件名行号&#xff0c;便于查看 #include <QFileInfo>#define …

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 目录 Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 一、简单介绍 二、监督学习 三、分类问题 四、回归任务 五、泛化、过拟合和欠拟合…

【Python】京东商品详情数据采集返回商品详情主题主图SKU

文章目录 Python请求 京东API接口 接入文档 接入参数 返回示例 Python请求 # coding:utf-8 """ Compatible for python2.x and python3.x requirement: pip install requests """ from __future__ import print_function import requests…

5.10开幕!虚拟动力多项数字人互动技术参展元宇宙生态博览会!

2024年5月10-12日&#xff0c;由广东鸿威国际会展集团有限公司、广州市虚拟现实行业协会主办的2024数字显示与元宇宙生态博览会将正式开幕。 亮点抢先看 虚拟动力 广州虚拟动力作为3D虚拟人全生态应用的产品技术开发与服务商&#xff0c;将携带无穿戴动捕技术、数字人穿戴式动…

想要品质飞跃?找六西格玛培训公司就对了!

在当今复杂多变的市场环境中&#xff0c;企业的竞争早已不再是单一的价格或产品竞争&#xff0c;而是转向了对品质、效率和创新的全面追求。六西格玛&#xff0c;作为一种全球公认的质量管理方法论&#xff0c;正成为越来越多企业追求品质革命的重要工具。在这其中&#xff0c;…

合并两个有序数组题目讲解

一&#xff1a;题目 非递减顺序可以理解为&#xff1a;不完全递增顺序&#xff0c;它不是完全的递增&#xff0c;会存在前后相等的情况&#xff0c;比如 [1&#xff0c;2&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;6] &#xff0c;这就是非递减顺序。 二&#xff1…

DF-PEG-DF,Benzaldehyde-PEG-Benzaldehyde可用于修饰蛋白质、多肽等材料,

【试剂详情】 英文名称 DF-PEG-DF&#xff0c;Benzaldehyde-PEG-Benzaldehyde 中文名称 聚乙二醇二苯甲醛&#xff0c;苯甲醛-聚乙二醇-苯甲醛 外观性状 由分子量决定&#xff0c;固体或者液体。 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#xff0c;3…

【编译器识别】2024深圳杯C题24页参考论文+1-3小问完整解题代码

一、问题研究 【编译器识别】2024深圳杯C题24页参考论文1-3小问完整解题代码https://www.jdmm.cc/file/2710545/ 为了回答这些问题&#xff0c;我们需要进行一系列的编译实验、分析编译结果&#xff0c;并构建判别函数。以下是对这些问题的初步分析和可能的方法&#xff1a; …

【Git】Git学习-15:分支简介和基本操作

学习视频链接&#xff1a;【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 git bran…

嵌入式linux学习第三天汇编语言点灯

嵌入式linux学习第三天汇编语言点灯 今天学习如何在linux板子上点灯。 I.MX6U GPIO 详解 我们发现I.MX6U GPIO是分为两类的&#xff0c;&#xff1a;SNVS 域的和通用的。在讨论i.MX6U或类似的复杂微处理器时&#xff0c;了解其GPIO&#xff08;通用输入输出&#xff09;引脚…

分享一个php常驻内存多进程任务的扩展

前言 最近在摸鱼的时候发现一个PHP常驻内存多进程任务扩展包&#xff1a;EasyTask: PHP常驻内存多进程任务管理器&#xff0c;支持定时任务(PHP resident memory multi-process task manager, supports timing tasks) (gitee.com)&#xff0c;支持php使用多线程处理任务。之前…

神秘模型GPT2-Chatbot迅速走红:效果等同GPT-4

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃斜杠君&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &#…

docker安装elasticsearch:7.17.21

docker安装elasticsearch:7.17.21 下载对应版本的docker镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21启动容器 docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -t docker.elastic.…

序列化和反序列化是什么?Java中实现Serializable接口的代码实例

序列化和反序列化是编程处理对象数据的重要概念&#xff0c;特别是在数据存储、网络通信和分布式系统中。 序列化是指将程序中的对象&#xff08;如数据结构、类实例等&#xff09;的状态信息转换为可以存储或传输的格式的过程。这个过程会将对象的公共和私有字段&#xff08;…

Tomcat端口占用解决方案

Windows操作系统 出现这种情况&#xff1a; Error was Port already in use :40001&#xff1b;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1&#xff1a;按下winR键&#xff0c;输入cmd 步骤2&#xff1a;输入以下命令 netstat …

R语言【Tidyverse、Tidymodel】机器学习

机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”&#xff0c;是发现新规律&#xff0c;总结和分析实验结果的利器。机器学习涉及的理论和方法繁多&#xff0c;编程相当复杂&#xff0c;一直是阻碍机器学习大范围应用的主要困难之一&#xff0c;由此诞生了Python…

set-cookie字段,cookie文件介绍+原理,如何查看cookie文件,在基于http协议服务器的代码实现,cookie存在问题+解决(会话机制)

目录 Set-Cookie 引入 介绍 原理 描述 图解 保存"cookie文件"的方法 内存级 文件级 查看cookie文件 示例 实现 介绍 代码 核心代码 全部代码 示例 cookie存在的问题 介绍 存在的必要性 如何解决 问题梳理 引入 会话机制 -- 解决信息泄漏…

UART、TIMER

UART简介&#xff08;通用异步收发器&#xff0c;通常称串口&#xff09; UART&#xff0c;是一种串行、异步、全双工的通信协议&#xff0c;在嵌入式领域应用的非常广泛。 UART作为异步串行通信协议的一种&#xff0c;工作原理是将传输数据的每个二进制位一位接一位地传输。…