20222425 2024-2025-1 《网络与系统安全技术》实验四报告

news/2024/11/6 5:00:29/文章来源:https://www.cnblogs.com/2425nj/p/18524384

20222425 2024-2025-1 《网络与系统安全技术》实验四报告
目录
1.实践内容
2.实践过程
2.1 恶意代码样本的文件类型识别,脱壳与字符串提取
2.1.1 使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具
2.1.2 使用脱壳软件,对rada恶意代码样本进行脱壳处理
2.1.3 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析
2.2 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息
2.2.1 分析crackme1.exe
2.2.2 分析crackme2.exe
2.3 分析自制恶意代码样本rada,并回答问题
2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
2.3.2 找出并解释这个二进制文件的目的
2.3.3 识别并说明这个二进制文件所具有的不同特性
2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
2.3.5 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
2.3.6 给出过去已有的具有相似功能的其他工具
2.3.7 可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
2.4 取证分析实践:Windows 2000系统被攻破并加入僵尸网络
2.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息?IRC一般使用那些TCP端口?
2.4.2 僵尸网络是什么?僵尸网络通常用于什么?
2.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
2.4.5 哪些IP地址被用于攻击蜜罐主机?
2.4.6 & 2.4.7 攻击者尝试攻击了那些安全漏洞?那些攻击成功了?是如何成功的?
3.学习中遇到的问题及解决
4.实践总结
1.实践内容
(1)恶意代码样本的文件类型识别,脱壳与字符串提取
(2)IDA Pro静态或动态分析,寻找特定输入
(3)分析一个自制恶意代码样本并回答问题
(4)攻破Windows 2000系统并使其加入僵尸网络
2.1 恶意代码样本的文件类型识别,脱壳与字符串提取
2.1.1 使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具
file命令查看文件格式
file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它通过查看文件的头部信息来获取文件类型,不像Windows通过扩展名来确定文件类型。

可以看出rada.exe文件是32位的pe文件,能在基于interl 80386的cpu的windows系统上运行
PE Explorer查看文件格式、运行平台

PEID查看加壳工具
当加壳的程序运行时,会首先运行一小段脱壳代码,来解压缩加壳的文件。
识别结果为“UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo”,可知该程序加的是UPX的壳,版本是0.89.6。

2.1.2 使用脱壳软件,对rada恶意代码样本进行脱壳处理
直接使用PEiD自带的插件用于脱壳:


2.1.3 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析
1.strings命令

可以看到作者Raul Siles和David Perez,以及创建时间2004.9。
2. IDA Pro
也可以使用IDA Pro,IDA Pro打开恶意代码样本,点击“视图”→“打开子视图”→“字串”查看字符串:

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

可知crackme1.exe为windows系统下运行的32位可执行程序,没有图形界面,仅使用控制台操作。
IDA Pro进一步分析





读代码可知,程序首先会判断参数个数,若参数个数不为2(包含函数名),输出“I think you are missing something.”,否则进入下一层选择结构。下一层判断第二个参数是不是“I know the secret”,若是则输出“You konw how to speak to programs,Mr.Reverse-Engineer”,否则输出“Pardon? What did you say?”。

2.2.2 分析crackme2.exe
file查看文件信息

IDA Pro进一步分析

读代码可知,程序首先会判断参数个数,若参数个数不为2(包含函数名),输出“I think you are missing something.”,否则进入下一层选择结构。下一层判断第一个参数是不是“crackmeplease.exe”,不是则输出“I have an identity problem.”,否则进入下一层选择结构。下一层判断第二个参数是不是“I know the secret”,若是则输出成功信息,否则输出“Pardon? What did you say?”。

2.3 分析自制恶意代码样本rada,并回答问题
2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
我们使用Certutil来计算RaDa.exe的摘要,在RaDa.exe所在文件路径下打开cmd并输入如下命令。

certutil -hashfile RaDa.exe
certutil -hashfile RaDa.exe MD5
certutil -hashfile RaDa.exe SHA256

2.3.2 找出并解释这个二进制文件的目的
在processexplorer打开unpacked.exe,据此进行静态分析:



可知该二进制文件有以下行为:

通过反弹式连接目标为10.10.10.10的主机下的一个名为RaDa_commands的网页上;
将从10.10.10.10上下载的.cgi文件放入c:\RaDa\tmp中,将Rada.exe文件放入c:\RaDa\tmp中;
添加了2个注册表项。其中HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run是控制计算机启动项的注册表信息,在这里rada修改注册表实现了开机自启动,修改内容为REG_SZ字符串类型
疑似发起DDOS Smurf攻击。
截图、休眠。screenshot、sleep。
给出了数据库查询语句,查询的内容和猜测与MAC地址有关。
这里的2/3连在一起,就是将自身复制至感染主机系统盘,并激活自启动;1/4/5连在一起,可以联想到接收指令发动DDOS Smurf攻击。
2.3.3 识别并说明这个二进制文件所具有的不同特性
当文件被执行时,其将自身保存到本地,并修改注册表使得系统启动时执行该文件。
文件被执行后,将通过浏览器上网,请求页面并获得来自攻击者的指令。
支持put上传、get下载、screenshot截屏、sleep挂起等指令。
2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
使用了0.89.6版本的UPX壳进行加壳处理。
2.3.5 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
后门。
理由:
不像蠕虫或者病毒进行传播。
不像木马伪装成正常程序。
可以获得控制权限。
2.3.6 给出过去已有的具有相似功能的其他工具
msfvenom开启监听模块后,用其生成的后门可以获得控制权,进行截图、摄像头获取等操作。
ncat、socat反弹连接后可以给主机添加任务,如开机自启动。
2.3.7 可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
在Windows下命令行运行,加上“--authors”作为参数即可显示作者名字。

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

2.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息?IRC一般使用那些TCP端口?
IRC即Internet Relay Chat,互联网中继聊天,是一种分布式的客户端/服务器系统。允许用户在不同的主机之间通过互联网进行实时交流。客户端用户可以加入特定的频道(channel)与该频道中的所有用户聊天,也可以采用私聊的方式。特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。
当IRC客户端申请加入一个IRC网络时,发送的消息包含以下信息:
用户名(Nickname):客户端请求在IRC网络上使用的昵称。
用户模式(User mode):客户端请求的用户模式,这可能包括隐私设置、允许收到私人消息等。
服务器密码(Server password):如果需要,客户端可能会发送服务器密码以进行连接。
IRC一般使用端口:
6667:IRC客户端与服务器之间的标准端口,用于非加密的通信。
6697:IRC客户端与服务器之间的加密端口,用于加密通信,通常使用SSL/TLS协议。
2.4.2 僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(BotNet)是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。被感染的主机将通过控制信道接收攻击者的指令,组成一个僵尸网络。

通常情况下,僵尸网络用于以下目的:

分布式拒绝服务攻击(DDoS):僵尸网络可以由黑客用来发动大规模的DDoS攻击,在特定的时间向特定的目标服务器或网络发送大量的请求,导致目标系统超载,服务中断或崩溃。

垃圾邮件发送:黑客可以利用僵尸网络发送大量的垃圾邮件,用于传播广告、恶意软件或钓鱼攻击,从而欺骗接收者、诱使他们点击链接或下载附件。

分发恶意软件:僵尸网络可以用于分发和传播恶意软件,如病毒、木马、勒索软件等,进一步感染更多的计算机并扩大网络规模。

2.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用Wireshark打开数据源botnet_pcap_file.dat,设置过滤条件如下:

ip.src == 172.16.134.191 && tcp.dstport == 6667 && tcp.flags == 0x2

蜜罐主机与5台IRC服务器进行了通信:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172
2.4.4 在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
这里我们尝试使用估计方法统计主机数,即观察期间不同昵称出现个数(每个IRC的使用者都有一个昵称Nickname)。

tcpflow分流
首先获取在209.196.44.172与172.016.134.191之间的所有的IRC数据包。在kali终端中输入如下命令:
┌──(root㉿kali)-[/home/kali]
└─# apt-get install tcpflow
┌──(root㉿kali)-[/home/kali]
└─# tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667' # 进行抓包,-r读取该数据包
┌──(root㉿kali)-[/home/kali]
└─# export LC_COLLATE='C'
┌──(root㉿kali)-[/home/kali]
└─# export LC_CTYPE='C' # 避免出现字符编码问题,导致计数不准确

可以得到三个文件:209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667、report.xml。
观察不同昵称出现个数
主机进入IRC频道后,频道会将当前频道中所有的主机的信息都发送过来,可以从其中的数据包中计算当前频道共有多少主机。
所以要对209.196.044.172.06667-172.016.134.191.01152文件进行筛选,输入如下命令:

可以得到共有3461个主机访问过服务器。
2.4.5 哪些IP地址被用于攻击蜜罐主机?
tcpdump是一个网络数据采集分析工具,可捕获网络流量并将其显示在终端上。它通常用于网络故障排除、分析和安全目的。

tcpdump [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ expression ]
类型关键字:host,net,port;
传输方向关键字:src,dst,dst or src,dst and src;
协议关键字:ip,arp,udp,tcp,fddi;
-n 不把ip转化成域名,直接显示 ip,避免执行 DNS lookups 的过程,速度会快很多;
-nn 不把协议和端口号转化成名字,速度也会快很多。
由于蜜罐具有特殊性,将所有进入蜜罐的流量都视为可疑流量、都是攻击。用下列命令将所有连接蜜罐主机的IP地址输出到20222425ip.txt。


所有可能连接到主机的IP地址有165个。
2.4.6 & 2.4.7 攻击者尝试攻击了那些安全漏洞?那些攻击成功了?是如何成功的?
使用wireshark了解网络流分布情况
使用Wireshark打开数据源botnet_pcap_file.dat,选择“统计”→“协议分级”,了解网络流大致情况。
可发现其中只包含IP包,186个为UDP协议,54350个为TCP协议。
UDP中包含NetBIOS Name Service等,TCP中包含NetBIOS Session、HTTP、Data、IRC等。

筛选TCP端口
输入下列命令筛选TCP响应端口:

筛选UDP端口

TCP响应端口为135、139、25、445、4899、80,UDP响应端口为137。
TCP25端口
两个端口只是进行了连接而没有数据的交互,所以推测攻击者对这两个端口进行了connect扫描。

TCP139端口
大部分连接没有传递具体会话内容,空会话连接。

TCP445端口

在No.33280 61.111.101.78发起的请求的报文中发现了“PSEXESVC.EXE”
TCP4899端口

4899端口是远程控制软件Radmin服务端监听的端口,经常被黑客用来控制被控机。
TCP80端口

UDP137端口

137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务)
3.学习中遇到的问题及解决
问题1:安装IDAPRO后运行IDA时显示崩溃状态,IDA用不了。
原因及解决方法:IDA安装途径里不能有中文
4.实践总结
通过本次实验,我学会了如何对恶意代码进行脱壳,字符串等操作,也学会了如何使用脱壳软件和分析恶意代码。同时还通过实践从被攻击者的视角理解了攻破目标主机的基本方法:探测目标主机、获取网络拓扑、扫描开放端口、攻击可能存在漏洞的端口、尝试攻击相邻主机。通过分析数据包,我了解到了僵尸网络的各种状态,也试着通过wireshark从包的角度分析僵尸网络。

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

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

相关文章

探索未知,挑战极限—2025 北京国际户外露营装备展览会-野外探险展

探索未知,挑战极限—2025 北京国际户外露营装备展览会-野外探险展在人类的历史长河中,对未知世界的探索从未停止。如今,野外探险成为了现代人追求自由、挑战自我、亲近大自然的一种独特方式。而 2025 北京国际户外露营装备展览会-野外探险展,将为广大探险爱好者和专业人士提…

企业核心数据资产传输管控建设指南,推荐了解!

随着网络的发展,各行业在经历技术革新,企业要长远发展需要建立自己的核心竞争力,增加企业的研发投入,提升企业的技术创新能力、产品竞争力、产业升级等。 不同行业数据的生产、存储、使用、传输、销毁过程各有差异,数据要发挥价值,就必然伴随数据的流转和利用。数据流转场…

WiFi基础(七):WiFi漫游与WiFi组网

liwen01 2024.10.27 前言 无线 WiFi 的优点是方便、灵活,可以接入各种设备。缺点就是信号容易被干扰、信号覆盖范围有限。下面几个问题应该很多人都有遇到过:为何很多洗手间的 WiFi 信号都不太好?市面上的穿墙路由器真的就比其它路由器效果好么?为何有时候 WiFi 信号强度很…

数据工程师,转型人工智能岗位的理想时空通道

序言:数据工程师是从传统软件工程师向人工智能方向转型的最佳切入点之一。数据工程师的职责通常是为人工智能项目收集和准备高质量的训练数据集,包括从互联网上获取公开数据、或自行采集、清洗、整理数据集。尽管看似简单,但数据工程师的工作至关重要,因为数据质量直接影响…

H.265 HEVC 视频编码 All In One

H.265 & HEVC 视频编码 All In One 高效视频编码 (HEVC),也称为 H.265,是一项视频压缩标准,允许 GoPro 摄像机以几乎一半的文件大小拍摄更大的视频内容(如 5.3k60fps 和 1080p240),同时具有同等画质。H.265 & HEVC 视频编码 All In One高效视频编码 (HEVC),也称…

南沙C++信奥赛陈老师解一本通题 1230:寻找平面上的极大点

​【题目描述】在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x≥a,y≥b; 用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内。 给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点。 编程找出所有…

CSP-S 2024 游寄

掉大分记 upd:更新正文我不曾忘记 很好听的草神歌,打算推完经过就推这个 。 我的破木箱 装满枯萎的花 放不下 光与壤 和新鲜的愿望 如果能飞翔 去高高的地方 撒一张 梦的网 收集爱的回响 你也在听吗 落单的孩子啊 别害怕 别害怕 黑夜不会太长 悬崖上的花 让我为你摘下 数…

说说Java的类加载机制?究竟什么是双亲委派模型?

首先引入一个概念,什么是Java类加载器? 一句话总结:类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。 官方总结:Java类加载器(英语:Java Classloader)是Java运行时环境(Java Runtime Environment)的一部分,负责动态加载Java类到Java虚拟机的内存空间中。…

Sophos Firewall (SFOS) v21 GA - 下一代防火墙

Sophos Firewall (SFOS) v21 GA - 下一代防火墙Sophos Firewall (SFOS) v21 GA - 下一代防火墙 设备 • 云 • 虚拟 请访问原文链接:https://sysin.org/blog/sfos-21/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgSophos Firewall 2024 年 10 月 17 日,Sopho…

.NET开发者福音:JetBrains官方宣布 Rider 非商用免费开放!

前言 JetBrains官方前段时间宣布重磅消息,其两款知名IDE应用WebStorm和Rider现已面向社区开放,允许用户免费用于非商业用途。此举旨在支持学习、开源项目开发、内容创作及业余开发等活动。Rider介绍 JetBrains Rider 是一款一体化 IDE,适合使用整个 .NET 技术堆栈以及参与游…

鸿蒙开发案例:指南针

【1】引言(完整代码在最后面) 在本文中,我们将介绍如何使用鸿蒙系统(HarmonyOS)开发一个简单的指南针应用。通过这个案例,你可以学习如何使用传感器服务、状态管理以及UI构建等基本技能。 【2】环境准备 电脑系统:windows 10 开发工具:DevEco Studio NEXT Beta1 Build …

读数据工程之道:设计和构建健壮的数据系统27转换

转换1. 转换 1.1. 转换与查询不同1.1.1. 查询是根据过滤和连接逻辑从各种来源检索数据1.1.2. 转换将结果持久化,供其他转换或查询使用1.1.2.1. 结果可以被短暂地或永久地保存1.1.3. 除了持久性,转换区别于查询的另一个特点是复杂性1.1.3.1. 你可能会建立复杂的数据管道,结合…