20232940 陈璧 2023-2024-2 《网络攻防实践》实践八报告

20232940陈璧 2024-06-13 19:31:31

1.实践内容

1)对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。
2)在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
3)分析一个自制恶意代码样本rada,并撰写报告,回答问题。
4)分析利用Snort工具收集的蜜罐主机5天的网络数据源,回答问题。

2.实践过程

2.1动手实践任务一

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

img


文件为PE32类型的可执行文件

img


输入strings RaDa.exe查看RaDa.exe中可打印字符串,发现都是乱码,推测是加壳导致

img


使用PEiD工具可以看到文件加壳类型为UPX壳

img


使用超级巡警脱壳机软件,对rada进行脱壳

img


输入命令strings RaDa_unpacked.exe,发现有大量的函数调用名

img


使用IDA工具打开脱壳后的文件

img


点击Strings,经过查找可以发现作者的名字Raul Siles & David Perez和文件编写的日期 September 2004

img

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

任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe寻找特定的输入,使其能够输出成功信息。

Crackme1
首先执行crackme1.exe,对参数个数进行猜测,依次输入0/1/2/3个参数,观察程序输出

img

可以猜测程序大概率需要1个参数
使用IDA Pro Free打开crackme1.exe,点击Strings查看字符串,可以看到该程序中出现的明文字符串。

发现刚刚没测试得到的另外两个字符串“I know the secret”和“You know how to speak to programs, Mr.Reverse-Engineer”,猜测I know the secret是正确的口令,You know how to speak to programs, Mr.Reverse-Engineer是口输入令正确时的程序反馈信息

img

img

在主页面上点击View-Graphs-Function calls,查看函数结构。发现其中包含函数fprintf和printf ,通过分析判断sub_401280即为核心函数。

img


打开sub_401280函数的流程图,sub_401280首先判断参数个数,若不是一个则输出"I think you are missing something."若为一个参数且参数不为"I know the secret" 则输出"Pardon?What did you say?" 若为一个参数且参数为"I know the secret" 则输出"You know how to speak to programs,Mr.Reverse—Engineer"

img


再次运行程序并输入正确口令,验证成功

img

2.3分析实践任务一

任务:分析一个自制恶意代码样本rada,并撰写报告,回答问题
输入命令md5sum Rada.exe,得到md5摘要

img


启动破壳后的恶意软件RADA_unpacked并用radaprocess explorer软件进行监测。
在Properties可以看到它使用http连接到10.10.10.10主机的一个叫做RaDa_commands.html的网页上,进行一些上传和下载操作,并在受害者C盘中创建文件夹“C:/RaDa/tmp”。将文件rada.exe复制到C:\RaDa\bin\路径下,并修改注册表设置为开机自启动

img


这个程序会进行DDos攻击,并实现对注册表的读写删除等操作
该文件运行时会在主机执行get、put、screenshot、sleep等命令。get表示将指定主机的文件下载至目标主机;put表示将目标主机的文件上传至攻击者指定的主机;screenshot表示对当前屏幕内容截图;sleep表示睡眠

img

img


回答以下问题
1.提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
md5摘要为“caaa6985a43225a0b3add54f44a0d4c7”
2.找出并解释这个二进制文件的目的;
该二进制文件是一个后门程序,会通过http协议请求访问页面,并得到受控主机的操作权,同时也可以进行DDos注入buff攻击。
3.识别并说明这个二进制文件所具有的不同特性;
该文件会自动安装进C盘中,并修改注册表跟随系统开机自启动。同时会进行修改注册表的操作,还可以解析指令并执行指令
4.识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
采用了UPX加壳技术,直接对文件进行解析会呈现乱码形式。

5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
该二进制文件不具备传染性,也不具备自我复制的能力,所以并不是蠕虫病毒。并未将自己伪装成一个良性程序,所以不是木马软件,推测为一个后门程序。
6.给出过去已有的具有相似功能的其他工具;
木马Bobax,特洛伊木马Setiri
7.可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
该二进制文件于2004年被Raul siles和David Perze所开发。必须在明文条件,即已经脱壳处理的条件下才可以找到。

2.4 分析实践任务

Windows 2000系统被攻破并加入僵尸网络
任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答下列问题:
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
因特网中继聊天(Internet Relay Chat),简称 IRC。IRC 的工作原理非常简单,只需要在自己的 PC 上运行客户端软件,然后通过因特网以IRC 协议连接到一台 IRC 服务器上即可。IRC 特点是通过服务器中继与其他连接到这一服务器上的用户交流。相当于微信,只占用很小的带宽资源。
注册时需发送的消息有三种,分别是口令,昵称和用户信息,注册完成后,客户端就需要使用JOIN信息来加入频道Channel。
IRC 服务器明文传输通常在 6667 端口监听,也会使用 6660—6669 端口。SSL 加密传输在 6697 端口。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
可以一对多地执行相同的恶意行为,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,使得攻击者能够以极低的代价高效地控制大量的资源为其服务。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
用wireshark打开botnet_pcap_file.dat文件,输入筛选条件ip.src == 172.16.134.191 && tcp.dstport == 6667,筛选源地址为蜜罐主机,目的端口为6667的包。可得到五个地址:
209.126.161.29
66.33.65.58
63.241.174.144
217.199.175.10
206.196.44.172

img


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

在kali上使用tcpflow -r botnet_pcap_file.pcap "host 209.196.44.172 and port 6667"对样本进行分流

img

得到两个分流后的数据文件209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667和一份报告report.xml。

img

接着执行如下两条命令,避免出现字符编码问题,导致计数不准确

img

使用一个长命令,来计算209.196.044.172.06667-172.016.134.191.01152文件中有多少主机访问了209.196.044.172。grep取出昵称,sed去除前缀,tr将空格转换为新行,tr -d去除\r,grep -v "^$"去除空行,sort -u排序并去重,wc计算行数。

img


5、那些IP地址被用于攻击蜜罐主机?

使用如下指令找出所有连接主机的IP地址(cut -d是指定字段的分隔符,uniq命令用于删除文本文件中重复出现的行),将结果输出到2.txt文件中,wc -l 2.txt显示行数
tcpdump -r botnet_pcap_file.pcap -nn 'src host 172.16.134.191' and tcp[tcpflags]== 0x12 | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
6、攻击者尝试攻击了那些安全漏洞?
使用Tcpdump工具筛选出蜜罐主机有哪些端口是响应的。输入命令
可以看到TCP端口有135、139、25、445、4899、80。
查看到UDP端口只有137。udp137号端口在局域网中提供计算机的IP地址查询服务,处于自动开放状态,所以访问这个端口肯定是NetBIOS查点了。

img


使用wireshark查看TCP的25、135端口,可以看到这两个端口只是进行了连接,并没有数据的交互,猜测攻击者对这两个端口进行了connect扫描。

img

查看80端口 ,可以看到24.197.194.106发送了一个很大的的数据包,大概是在做缓冲区溢出攻击

img


同时,24.197.194.106发起了很多次连接,这是用脚本不停地攻击IIS服务器的漏洞,从而获取系统权限

img


在源地址为 218.25.147.83 的数据包中,发现了蠕虫病毒攻击

img


使用tcp.srcport == 80 && ip.src== 172.16.134.191 && http筛选从蜜罐80端口往外发送的数据包

img


追踪TCP流,可以看见蜜罐主机均以IIS服务器的默认页面作为回应,说明80端口的攻击均失败了
查看139端口,发现了NBSS包和SMB包(客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机等资源。)

img


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

来自61.111.101.78的PSEXESVC.EXE,即Dv1dr32蠕虫攻击成功了。是通过向对TCP445端口发送含有PSEXESVC.EXE的数据包,且将PSEXESVC.EXE地址改到系统目录下攻击成功的。攻击成功后通过利用SVCCTL漏洞获取目标主机服务。

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

问题1:Kali中没有安装tcpflow,无法运行tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"命令。

问题1解决方案:.pcap而不是.dat

4.实践总结

逆向太难了,汇编很难看懂

...全文
151 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

54

社区成员

发帖
与我相关
我的任务
社区描述
网络攻防实践课程
网络安全 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧