20212313 2023-2024-2 《网络与系统攻防技术》实验四实验报告

1.实践内容

1.1学习内容

本周学习了恶意代码的相关知识
①恶意代码的类型有:计算机病毒 、 蠕虫、特洛伊木马、逻辑炸弹、系统后门、 Rootkit
②各种形态恶意代码在关键环节上具有其明确的定义特性:传播、控制、隐藏、攻击
③恶意代码的发展历史
④计算机病毒的定义:计算机病毒是一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。
⑤计算机病毒感染机制:感染可执行文件、感染引导扇区(系统启动过程)、感染数据文件-宏指令(文件打开自动执行
在这里插入图片描述
⑥僵尸网络(BotNet):攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。定义特性:一对多的命令与控制通道的使用。

1.2 实验内容

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

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

1.2.2使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
1.2.3分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:

(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
(2)找出并解释这个二进制文件的目的;
(3)识别并说明这个二进制文件所具有的不同特性;
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
(6)给出过去已有的具有相似功能的其他工具;
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

1.4取证分析实践

Windows 2000系统被攻破并加入僵尸网络
问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
(2)僵尸网络是什么?僵尸网络通常用于什么?
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
(5)哪些IP地址被用于攻击蜜罐主机?
(6)攻击者尝试攻击了那些安全漏洞?
(7)那些攻击成功了?是如何成功的?

2.实践过程

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

(1)使用file命令查看RaDa.exe的文件类型
在这里插入图片描述
说明该文件是32位的pe文件,并且运行在Intel 80386的cpu上,而且支持的操作系统是windows。

什么是PE文件:
PE文件是一种Windows操作系统下可执行文件的格式,全称为Portable Executable。PE文件是一种用于存储程序代码、数据和资源的文件格式,它是Windows操作系统中常见的可执行文件格式之一。
PE文件包含了程序的代码段、数据段、资源和其他元数据,如导入表、导出表、重定位表等。它还包含了程序运行所需的头部信息,用于告诉操作系统如何加载和执行这个程序。
PE文件格式具有一定的结构,通常包括DOS头部、PE头部、节表等部分。DOS头部用于兼容DOS系统,在Windows系统中并不直接使用。PE头部包含了PE文件的基本信息,如文件类型、节表偏移等。节表则描述了文件中各个节的信息,如代码段、数据段等。

(2)在Windows系统使用PE explorer
在这里插入图片描述
(3)使用PEID解析文件
其中可以看到RaDa.exe文件的入口点、文件偏移、EP段
在这里插入图片描述
(4)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理
脱壳之后生成的RaDa_unpacked.exe文件在后续仍有使用
在这里插入图片描述
(5)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁

在这里插入图片描述
在其中查看,就会发现该文件的创始人应该就是这两位外国友人了
在这里插入图片描述
同时可以通过IDApro查看字符串,在view中打开Opne subviews,打开Strings子图,从字符串中寻找到作者的信息。
在这里插入图片描述

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

(1)cmd测试crackme1.exe文件
其作用是简单判断该文件的功能,试探输入格式
在这里插入图片描述
(2)我们利用IDA,选择“View”→“Open subviews”→“strings”,查看字符串。
发现有当时cmd执行该文件的内容:“I think you are missing something.”和I know the secret”、“Pardon? What did you say? ”、“You know how to speak to programs”
在这里插入图片描述
(3)使用IDApro查看crackme,首先查看在这里插入图片描述
(4)我们选择“View”→“Graphs”→“Function calls”,查看函数调用图。
在这里插入图片描述
(5)“View”→“Open subviews”→“Generate pseudocode”得到main函数的伪代码:
在这里插入图片描述
经过分析可以得出结论:
如果第二个参数是“I know the secret”,则输出“You konw how to speak to programs,Mr.Reverse-Engineer”。
如果第二个参数不是“I know the secret”,输出“Pardon? What did you say?”。
如果参数个数不为2,输出“I think you are missing something.”。

因此可以与最开始的试探输入格式进行比较:
在这里插入图片描述
到此crackme1.exe文件分析结束

分析crackme2.exe,大致内容同上

(1)cmd测试crackme2.exe文件
其作用是简单判断该文件的功能,试探输入格式
在这里插入图片描述

(2)我们利用IDA,选择“View”→“Open subviews”→“strings”,查看字符串。
发现有当时cmd执行该文件的内容:
I think you are missing something.n
I have an identity problem.n
I know the secret
Pardon? what did you say?in
在这里插入图片描述

(3)使用IDApro查看crackme,首先查看在这里插入图片描述

(4)我们选择“View”→“Graphs”→“Function calls”,查看函数调用图。
在这里插入图片描述

(5)“View”→“Open subviews”→“Generate pseudocode”得到main函数的伪代码:
在这里插入图片描述

经过分析可以得出结论:
程序首先判断参数个数,若参数个数为2(包含函数名),其中中途需要修改crackme2.exe为crackmeplease.exe
①第一个参数是“crackmeplease.exe”,第二个参数是“I know the secret”,若是则输出成功信息,否则输出“Pardon? What did you say?”。
②第一个参宿不是“crackmeplease.exe”,输出“I have an identity problem.”。
若参数个数不为2(包含函数名),输出“I think you are missing something.”

因此可以与最开始的试探输入格式进行比较:
在这里插入图片描述

到此crackme2.exe文件分析结束

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

(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息:
利用md5sum和file命令获取基本信息
在这里插入图片描述
(2)找出并解释这个二进制文件的目的;
打开Process Explorer,然后搜索脱壳后的RaDa,双击对应的进程,点击字符串,可以看到
在这里插入图片描述
在这里插入图片描述
可得到以下信息:
1.通过HTTP协议请求10.10.10.10\RaDa\RaDa_commands.html。
2.对download.cgi和upload.cgi进行某些操作
3.在C盘中创建一个RaDa文件夹,里面创建了tmp文件夹。
4.添加了一个注册表项:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,这个注册表项是控制计算机启动的信息,这样实现了开机自启动rada。
5.在RaDa文件夹中,创建了bin文件夹,将RaDa.exe复制在bin文件夹中。
6.添加了一个注册表项:
HKLM\Software\VMware, Inc.\VMware Tools\InstallPath
该位置的注册表项可控制远程桌面上的客户端驱动器重定向行为。猜想这个操作是为了实现远程控制桌面。
7.该位置的字符串显示发起DDOS Smurf远程攻击。
8.注册表进行读、写、删操作

(3)识别并说明这个二进制文件所具有的不同特性;
1.可以修改系统,并且添加了注册表,实现了开机自启动
2.可以远程控制。运行远程连接被攻击者连接
3.可以控制桌面,并且可以进行读写删操作,使得计算机完全陷入攻击者的掌控当中,属于具有强大攻击性的恶意代码

(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
主要是运用了加壳技术,如果我们打开的是RaDa.exe文件就无法查看其中的String了,相对于进行了一些简单的保护,但是很容易被脱壳
在这里插入图片描述

(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由:
属于后门程序
该恶意代码不会进行传播,不是蠕虫或者病毒。而且没有伪装成正常程序,不是木马,是直接存在的。该恶意代码可以实现远程控制,并且设置了开机自启动。
(6)给出过去已有的具有相似功能的其他工具;
实验二的msfvenom就可以生成后门文件,然后传递到被攻击者的主机上实现反弹连接,据我了解,实验三的veil也是可以的
(7)可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以的,并且很容易,在上面实验的多个工具中,我们都可以查到该文件的作者是两位外国友人。只要我们有工具并且在安全的环境下保存了这个文件就可以查出文件的作者。

1.4取证分析实践

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

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

①IRC(Internet Relay Chat)是一种即时通讯协议,允许用户通过互联网进行实时文本通信。它采用了分布式客户端/服务器模型,允许用户加入不同的聊天室(频道),进行私密对话或群聊。IRC最初由芬兰学生Jarkko Oikarinen于1988年创建,作为一个用于在互联网上实时交流的系统。
在IRC中,用户通过IRC客户端连接到IRC服务器,然后可以加入不同的聊天频道或者与其他用户进行私密对话。每个IRC服务器可以连接到其他IRC服务器,形成一个IRC网络,使得用户可以跨服务器进行通信。
②当IRC客户端连接到一个IRC网络时,通常会发送一条消息以建立连接和进行身份验证。这条消息一般为:
在这里插入图片描述
其中,各项的含义如下:
username:客户端用户的用户名,用于标识用户。
hostname:客户端的主机名,即客户端所在的计算机的主机名。
servername:客户端所连接的服务器名,即用户要加入的IRC服务器的名称。
realname:客户端用户的真实姓名,用于显示给其他用户。
这条消息的发送旨在建立与服务器的连接,并向服务器提供用户的身份信息,以便服务器对用户进行识别和授权。
③至于TCP端口,IRC一般使用TCP协议进行通信。标准的IRC端口是6667。在某些情况下,IRC网络可能会使用其他端口,但通常情况下,客户端连接到服务器时会使用6667端口。如果服务器使用不同的端口,客户端需要在连接时指定该端口。
总之,IRC是一种通过互联网进行实时文本通信的协议,用户可以通过客户端加入不同的聊天频道或与其他用户进行交流。在连接时,客户端会发送特定的消息以建立连接和进行身份验证,而通信则通常使用TCP端口6667。

(2)僵尸网络是什么?僵尸网络通常用于什么?

①僵尸网络(Botnet)是由一组受控的被感染的计算机(称为僵尸)组成的网络。这些计算机可能已经被恶意软件感染,例如恶意软件通过利用漏洞或社会工程技术,使得计算机受到控制,成为攻击者的工具。
②僵尸网络通常用于执行各种恶意活动,包括但不限于:

分布式拒绝服务攻击(DDoS):攻击者可以利用僵尸网络的大量计算机向目标系统发送大量的请求,使目标系统超负荷运行,导致服务不可用。
垃圾邮件传播:攻击者可以利用僵尸网络发送大量的垃圾邮件,进行广告推广、传播恶意软件或进行钓鱼攻击。
钓鱼和网络钓鱼:攻击者可以利用僵尸网络发送虚假的电子邮件或网站,试图欺骗用户泄露个人信息、登录凭证或进行其他欺诈行为。
数据盗窃:攻击者可以利用僵尸网络从受感染的计算机中窃取敏感信息,如个人身份信息、银行账户信息等。

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
①蜜罐(Honeypot)是一种安全机制,旨在诱使攻击者入侵、攻击或探测计算机系统、网络或应用程序,从而收集有关攻击者行为和策略的信息,以及提高对抗网络攻击的能力。蜜罐通常是一个看似有漏洞或价值的系统、网络或应用程序,但实际上是由安全专家部署和监控的虚拟或实体资源。攻击者可能会对蜜罐进行攻击,试图入侵、获取权限或进行其他恶意活动,而安全团队则可以监视并分析这些攻击行为。
②用wireshark打开botnet_pcap_file.dat文件,设置过滤条件“ip.src == 172.16.134.191 && tcp.dstport == 6667 and tcp.flags == 0x2”,得到如下结果:
在这里插入图片描述
经过分析,可以得出,蜜罐主机与如下的服务器进行通信:

  • 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为服务器的僵尸网络?
①下载tcpflow
在这里插入图片描述
② 使用tcpflow工具读取名为botnet_pcap_file.dat的pcap文件。
其中过滤规则指定了要匹配的数据包的主机地址和端口号。具体来说,这个规则表示只匹配目标主机地址为209.196.44.172且目标端口号为6667的数据包。

 tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'

在这里插入图片描述
查看report.xml文件:
在这里插入图片描述

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 "\r" | grep -v "^$" | sort -u | wc -l

1.cat 209.196.044.172.06667-172.016.134.191.01152: 这个部分使用cat命令打开名为209.196.044.172.06667-172.016.134.191.01152的文件,该文件似乎是 IRC 通信的一部分。
2.grep -a “^:irc5.aol.com 353”: 这个命令使用grep工具,带有-a选项,以文本模式搜索匹配指定模式的行。"^:irc5.aol.com 353"是一个正则表达式,表示以:irc5.aol.com 353开头的行。在 IRC 中,这可能表示一个频道中的用户列表。
3.sed “s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x 😕/g”: 这个命令使用sed工具进行替换操作。它将行开头的:irc5.aol.com 353 rgdiuggac @ #x[^x]*x :部分替换为空字符串。这可能是为了清理行中的特定格式或标识符。
4.tr ’ ’ ‘\n’: 这个命令使用tr工具将空格字符替换为换行符。这样做可能是为了将原始数据按照空格分隔的单词分割成单独的行。
5.tr -d “\r”: 这个命令使用tr工具删除回车符(\r),可能是为了确保在 Unix 风格的文本文件中去除 Windows 风格的换行符。
6.grep -v "^KaTeX parse error: Expected group after '^' at position 33: …有-v选项,用于过滤掉空行。"^̲"是一个正则表达式,表示匹配空行。
7.sort -u: 这个命令使用sort工具对行进行排序,并通过-u选项去除重复行,这可能是为了得到唯一的单词列表。
8.wc -l: 最后,这个命令使用wc工具统计行数(单词的数量),输出结果表示单词的总数

统计访问以209.196.44.172为服务器的僵尸网络的主机数:发现有3461台在这里插入图片描述(5)哪些IP地址被用于攻击蜜罐主机?
从名为botnet_pcap_file.dat的pcap文件中提取出目标主机地址为172.16.134.191的数据包的源主机地址,并统计不同源主机的数量,并将结果保存到名为20212313wjb.txt的文件中。

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 > 20212313wjb.txt;wc -l 20212313wjb.txt

在这里插入图片描述
打开文件发现有165台主机被用于蜜罐攻击
在这里插入图片描述
在这里插入图片描述

(6)攻击者尝试攻击了那些安全漏洞?
使用wireshark的“统计-协议分级”:发现有tcp包和udp包,其中tcp是主要的
在这里插入图片描述
分别筛选TCP和UDP响应端口,读取dat文件,查看哪些端口是开放的:

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
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

在这里插入图片描述
说明135/139/25/445/4899/80端口的开放的,后续就要针对这些端口分析
在这里插入图片描述
说明只要137端口的开放的
(7)那些攻击成功了?是如何成功的?

①tcp135端口,发现是普通连接并没有进行攻击
在这里插入图片描述
②139端口,也没有什么攻击
在这里插入图片描述
③25端口,也没有攻击
在这里插入图片描述
④445端口此时不再是简单的连接,出现了SMB网络文件系统协议
SAMR结构网格自适应等协议。有61.111.101.78向蜜罐主机发送PSEXESVC.EXE,
PsExec通常会被攻击者用作远程主机执行命令,客户端执行psexec.exe后若服务器认证成功,会将psexesvc.exe上传到服务端的ADMIN$目录并作为服务运行,在执行完命令后删除对应的服务和psexesvc.exe。
psexec建立连接之后目标机器上会被安装一个“PSEXESVC”服务。但是psexec安全退出之后这个服务会自动删除(在命令行下使用exit命令退出)。

在这里插入图片描述
在这里插入图片描述
⑤4899端口是一个远程控制软件服务端监听的端口,具有远程控制功能,通常杀毒软件是无法查出它来的。可能被黑客用此来进行远程控制。
在这里插入图片描述
⑥80端口,发现了传递大量的NNNNNN的内容,有可能是为了实现缓冲区溢出攻击或者蠕虫攻击
在这里插入图片描述
⑦udp的137端口,发现了大量NBNS协议包

NBNS(NetBIOS Name Service)协议是用于在局域网中解析 NetBIOS 名称与 IP 地址之间映射关系的服务。它主要用于 Windows 网络中,通过将计算机名(NetBIOS 名称)解析为IP地址,使计算机能够相互通信和识别。NBNS协议通常工作在UDP的端口137上

在这里插入图片描述

3.学习中遇到的问题及解决

  • 问题1:不会下载crackme1.exe,显示不信任该文件

  • 问题1解决方案:我发现要右键点击保留,然后才可以继续下载
    在这里插入图片描述

  • 问题2:无法下载tcpflow

  • 问题2解决方案:当我决定更新update时,出现了没有数字签名的error
    在这里插入图片描述
    我认为是没有下载数字签名的缘故,于是我根据教程安装签名,具体教程在参考链接中
    在这里插入图片描述
    当我让我可以的时候,我再次输入apt-get install update 时,仍然是一样的error,但我发现我此时使用的是中科院的下载源,于是我换回官方下载源时就可以了,最后下载成功。

  • 问题3:I老师给的IDA版本落后,画质很差

  • 问题3解决方案:在CSDN上找了教程,下载了新版的IDA

4.实践总结

本次实验相对简单顺利,没有之前那样花费大量的时间来安装环境。但是用到的工具特别特别多,主要是用来分析恶意代码的各种信息,但使用了这么多工具我发现都不如我在恶意代码课上学到的好用,我认为ollydbg和winhex可以充分分析文件的各种信息,包括文件头、文件结构、文件中的data节、text节等等。

参考资料

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值