20232908 2023-2024-2 《网络攻防实践》实践八报告

20232908田志昂 2024-05-07 14:46:19

1.实践内容

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

2.实践过程

2.1 动手实践任务一

实验环境:本实验在虚拟机winxp上进行,本实验所使用到的PEiD、超级巡警、IDA Pro Free等均为系统自带工具。
1、由于winxp没有自带压缩软件,因此需要首先下载WINRAR软件,然后使用WINRAR解压缩rada.rar,得到两个文件,分别是:RaDa.exe和rada_dump_.exe:

img

img

img

2、打开cmd,键入命令file RaDa.exe查看文件基本信息,发现这是一个32位的windows可执行文件,并且其含有GUI界面:

img

3、继续键入命令strings RaDa.exe查看文件内容,因为加壳的缘故只能看到乱码:

img

4、使用PEiD查看文件上所加的壳的类型,发现是UPX类型的壳:

img

5、接下来需要对文件进行脱壳,使用超级巡警软件完成脱壳,完成后桌面上出现脱壳后的文件RaDa_unpacked.exe:

img

6、我们重复步骤3查看脱壳后的文件内容发现不再是乱码,但是仍未发现作者信息:

img

7、使用IDA Pro Free打开脱壳后的文件,在其中最终发现了作者的相关信息:

img

2.2 动手实践任务二

1、先将带破解的两个可执行程序复制到winxp中:

img

2、在cmd中使用file命令查看两个文件的基本信息,发现二者均为32位的可执行文件,并且无图形化界面:

img

3、首先对crackme1.exe进行破解,先探究一下其接受什么样的输入以及会有怎么样的输出,在尝试了几种不同的输入后发现,貌似该程序仅接收一个输入:

img

4、随后我们使用IDA Pro Free进行反汇编,查看其汇编语言代码:

img

5、同时可以在view中查看函数的结构:

img

6、但是我们暂且先不分析这个代码的具体逻辑,仅仅是随便翻阅就能轻易发现这段代码,于是猜测可以尝试输入“I know the secret”:

img

7、输入“I know the secret”,发现直接破解成功,那么无需进行进一步分析:

img

8、我们对crackme2.exe做类似的分析,发现其同样接受一个输入的可能性比较大,我们同样轻易发现了如下代码:

img

9、猜测“crackmeplease.exe”是其正确输入,然而事与愿违,看来不能像crackme1.exe一样处理:

img

10、但是通过查看代码中的所有字符串我们发现同样有“I know the secret”的存在,那么极有可能“I know the secret”仍然是正确的输入:

img

11、这个时候,即使是作为一名缺乏经验的反汇编人员也应当能想到,也许应该对crackmeplease.exe输入“I know the secret”,但是并没有crackmeplease.exe这个文件的存在。于是可以搞一个crackme2.exe的副本将其改名,然后尝试输入,这样做代价极小但是收获有可能颇丰,即便没有收获也没关系:

img

img

img

12、竟然直接破解得到了秘密:“巧克力”。看来这个文件在汇编语言代码里的提示真有够明显的。

2.3 分析实践任务一

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
在cmd中键入命令md5sum RaDa.exe来查看文件的摘要信息:

img

同样键入命令file RaDa.exe来查看文件基本信息,这是一个32位有GUI的二进制文件:

img

2、找出并解释这个二进制文件的目的;
使用process explorer来监视该进程:
发现该进程做了如下操作:
(1)从10.10.10.10/RaDa中获取指令,并在C盘下创建了RaDa文件夹,其有两个子文件夹tmp和bin。
(2)进行了DDOS攻击和读写删除操作,攻击了三个内网
(3)操作了数据库,查询了mac地址

img

img

img

3、识别并说明这个二进制文件所具有的不同特性;
(1)该二进制文件会在初次运行时保存文件到C盘,从而留下后门
(2)修改注册表开机自启
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
加壳:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
该程序目的仅是让目标主机瘫痪并没有传播,不符合病毒和蠕虫的特性,因此可能仅仅是一个后门程序。
6、给出过去已有的具有相似功能的其他工具;
(1)木马Bobax
(2)僵尸程序Zeus
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,作者是Raul Siles和David Perez。限定条件就是:作者留下了痕迹

2.4 分析实践任务二

1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC是Internet Relay Chat的缩写,是一种实时的网络聊天协议。它允许用户通过客户端软件连接到一个IRC网络,并与其他用户进行文本交流。当IRC客户端申请加入一个IRC网络时,它会发送一条消息称为"IRC命令",其中包含了用户的身份信息以及请求加入网络的相关信息。
常见的IRC命令包括:
NICK:设置用户昵称。
USER:设置用户身份,包括用户名、主机名和服务器信息。
JOIN:加入一个或多个聊天频道。
PASS:设置连接服务器的密码。
MODE:设置频道或用户的模式。
通常情况下,IRC服务器使用TCP端口6667作为默认端口,但也可以配置其他端口进行连接。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet)是由大量被黑客控制的计算机或设备组成的网络。这些计算机或设备可能是个人电脑、服务器、路由器、智能手机等,它们被黑客通过恶意软件远程控制,组成了一个庞大的网络,黑客可以通过控制这些设备来实施各种攻击活动。
僵尸网络通常用于以下几种目的:
(1)分布式拒绝服务攻击(DDoS攻击):黑客可以利用僵尸网络的大规模带宽和计算资源,发起大规模的DDoS攻击,使目标服务器或网络资源不可用。
(2)恶意广告投放:黑客可以利用僵尸网络将大量恶意广告或钓鱼网站推送给用户,从而获取利益或窃取个人信息。
(3)恶意软件传播:黑客可以利用僵尸网络来传播恶意软件,例如蠕虫、勒索软件等,对更多设备进行感染和控制。
(4)网络钓鱼和欺诈活动:黑客可以利用僵尸网络进行网络钓鱼攻击,欺骗用户输入敏感信息或执行恶意操作。
(5)密码破解和网络窃取:黑客可以利用僵尸网络对目标系统进行密码破解、网络扫描和信息窃取,获取机密信息或控制权。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
下载提供的数据文件,在kali中通过wireshark打开:

img

img

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

img

4、在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
首先安装tcpflow工具:

img

输入tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667',得三个文件,172.016.134.191.01152-209.196.044.172.06667、209.196.044.172.06667-172.016.134.191.01152和report.xml:

img

再利用管道命令sudo 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 “\15” | grep -v “^$” | sort -u | wc -l
来筛选查看,得到主机数量为3461:

img

5、那些IP地址被用于攻击蜜罐主机?
使用命令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 > ip.txt;wc -l ip.txt来过滤出我们想要的IP地址:

img

img

6、攻击者尝试攻击了哪些安全漏洞?
使用如下命令过滤出响应过的端口号:
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
筛选出的端口号为:135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)

img

随后使用wireshark逐个端口进行筛选并分析:
(1)135(rpc)
ip.addr == 172.16.134.191 and tcp.port == 135
数据量少,无实际数据交互,应该是在进行探测

img

(2)25(smtp)
ip.addr == 172.16.134.191 and tcp.port == 25
数据量较135端口略多,但仍是在进行探测

img

(3)139(netbios-ssn)
ip.addr == 172.16.134.191 and tcp.port == 139
无实际数据交互,为smb查点

img

(4)445(smb)
ip.addr == 172.16.134.191 and tcp.port == 445
数据流中出现多次SMB协议,有一个PSEXESVC.EXE文件,这是一种通过IRC进行通信的Dv1dr32蠕虫。找445的出口流量,发现每个ip地址连入的连接都有响应,并且发回的数据中包含\PIPE\ntsvcs远程调用,所以断定攻击者获得了权限,完成了攻击。

img

(5)4899(radmin)
ip.addr == 172.16.134.191 and tcp.port == 4899
4899端口是一个服务端监听端口,隶属于远程控制软件radmin,其不属于木马,而是攻击者在攻击成功后上传这个软件希望能方便其进行控制。

img

(6)80(http)
ip.addr == 172.16.134.191 and tcp.port == 80
端口80的数据量较大,怀疑进行了缓冲区溢出的攻击

img

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

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

img

  • 问题2:实验量有点大
  • 问题2解决方案:每天做一点

4.实验总结

在动手实践二中,我们侥幸破解了crackme2.exe,但是注意并不是任何文件都可以这样破解,分析其中的逻辑还是很有必要的,然而作为一名合格的网络安全人员,我们都知道黑盒原理,在代价不大的情况下,不妨先丢进去一点什么,然后看它的反应,接着做出相应的判断。我们即便是在复现别人论文里的代码的时候,也可以应用这个技巧。

参考资料

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

55

社区成员

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

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