20232801 2023-2024-2 《网络攻防实践》实践八报告
1.实践内容
1.动手实践任务:
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者.
2.动手实践任务二:分析Crackme程序
在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
3.分析实践任务一:(回答问题在下文中)
分析一个自制恶意代码样本rada,并撰写报告
4.分析实践任务二:(回答问题在下文中)
分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。
2.实践过程
1. 动手实践一
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
打开WinXPattacker,将学习通上的Rada.exe下载传入虚拟机,进入文件所在位置使用
file rada.exe
查看文件信息。
看到它是一个32位Windows的可执行文件,由该表改文件的GUL图形界面
打开PEiD工具,可以看到文件的入口点为0000FD20、文件偏移为00004120、EP段为JDR1,加壳类型为UPX壳
在终端输入strings RaDa.exe
中看到打印字符串,均是乱码。
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
使用超级巡警脱壳机工具对rada.exe进行脱壳处理,看到“脱壳成功”的字样后,会发现在当前目录下生成了rada_unpacked.exe文件:
再在终端中输入strings RaDa_unpacked.exe
,发现有大量函数调用名
使用IDA工具打开rada_unpacked.exe,在在string界面中选择Unicode编码
3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
进行查找:找到Authors:Raul Siles & David Perez,2004,此处信息即编写作者
2. 动手实践任务二
在学习通中下载file crackme1.exe和file crackme2.exe
执行file crackme1.exe
file crackme2.exe
查看文件信息,但是这样这两个没有图形界面
使用IDA pro Free工具打开crackme1.exe进行分析,发现两个字符串“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是口输入令正确时的程序反馈信息
进入到IDA View界面里,在IDA上选择view—graphs—function calls。发现其中包含函数fprintf和printf ,与上述两句话直接相关,猜测sub_401280即为我们要找的核心函数
view—graphs中打开sub_401280函数的流程图。判断:判断输入的参数个数是否为2,若参数个数不为2时输出I think you are missing something,若参数个数为2则会将第二个输入与I know the secret作比较,正确则输出You know how to programs
在终端测试验证猜想:crackme1.exe “I know the secret
得到反馈信息。猜想正确
Crackme2
与上述一样进行分析
在终端输入
copy crackme2.exe crackmeplease.exe
crackmeplease.exe “I know secret”
得到结果We have a little secret:Chocolate
3. 分析实践任务一
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
输入命令md5sum Rada.exe,得到md5摘要为“caaa6985a43225a0b3add54f44a0d4c7”
(2)找出并解释这个二进制文件的目的;
该文件下载后门到目标主机,发动DOS攻击,与10.10.10.10主机进行了通信,并查询了Mac地址
(3)识别并说明这个二进制文件所具有的不同特性;
能添加注册列表、移动文件位置至C盘,并与10.10.10.10建立相关连接,接收相关指令并执行相关指令。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
采用了UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo的加壳方式,直接被一键脱壳。
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
应该是后门或者僵尸程序,因为它不能自主传播不是病毒或者蠕虫,没有附加在邮件上,也不是木马。利用程序远程接受执行命令。
(6)给出过去已有的具有相似功能的其他工具;
Raul siles、木马Bobax、特洛伊木马Setiri、GatSla
分析:
输入:md5sum Rada.exe
,得到md5摘要为“caaa6985a43225a0b3add54f44a0d4c7”
文件下载后门到目标主机,发动DOS攻击,与10.10.10.10主机进行了通信,并查询了Mac地址。
查询了数据库相关信息、对应Mac地址等等
在c盘C:\RaDa\tmp目录下创建用于保存下载文件的文件夹,恶意软件还修改了注册表
作者相关信息:
4. 分析实践任务二
- 分析日志文件并回答以下给出的问题:
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息? IRC-般 使用哪些TCP端口?
IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天
申请加入的时候要发送口令、昵称和用户信息:USER 、PASS 、NICK ;对于曾经注册过的靶机,直接通过JOIN指令加入对应的频道,指令如下JOIN
IRC通常使用6660 - 6669端口进行监听。6667是明文端口,此外额外占用一个端口6697进行SSL加密传输
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
用于发动分布式拒绝服务攻击(DDoS)、发送垃圾邮件、窃取隐私信息、刷点击量等
(3)蜜罐主机(IP地址:172.16.134.191)与哪些IRC服务器进行了通信?
209.126.161.29
66.33.65.58
63.241.174.144
217.199.175.10
206.196.44.172
使用kali来完成此实验:wireshark打开botnet_pcap_file.dat
设置过滤条件为:ip.addr == 172.16.134.191&&tcp.port == 6667
,可以得到IRC服务器地址。
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
共3461台主机访问了僵尸网络
分析:
首先我们先获取209.196.44.172与172.016.134.191之间的所有的IRC数据包,使用命令:tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"
产生了左边三个文件:
打开report.xml文件。包括上述双方的ip地址,端口,mac地址,通信时间。
使用命令:`在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
(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 > 2022922naf_result.txt;wc -l 2022922naf_result.txt
(6)攻击者尝试攻击了哪些安全漏洞?
TCP:135、139、25、445、4899、80 UDP:137
使用tcpdump筛选TCP和UDP端口
筛选tcp: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
筛选UDPtcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
得到端口后,使用wireshark的analayse的协议分级功能,可以查看嗅探得到数据包的协议分级,如下图所示,下一步排查的重点协议为
TCP:IRC、HTTP(80)、NETBIOS session(SMB)(139);UDP:NETBIOS(137)、RPC(1434)
使用wireshark依次过滤筛选以上重点端口进行分析
(1)TCP端口80,过滤条件:ip.dst==172.16.134.191 && tcp.dstport==80 && http
这是一个红色代码蠕虫攻击,因为有dafault.ida为标识的code red
(2)TCP端口445,过滤条件 ip.dst==172.16.134.191 && tcp.dstport==445
(3)TCP端口139,过滤条件ip.dst==172.16.134.191 && tcp.dstport==139
:
若干个个不同的IP访问了这个端口,但攻击都未成功
(4)UDP端口1434,过滤条件ip.dst==172.16.134.191 && udp.dstport==1434:
SQL Slammer的蠕虫病毒
(7)哪些攻击成功了?是如何成功的?
针对TCP445端口的PSEXESVC攻击-(IP:61.111.101.78)是成功的
3.学习中遇到的问题及解决
问题1:在外部下载RADA.exe文件后,放入不了winxp
- 问题1解决方案:发现我的防火墙将其自动查杀了,在老师的帮助下,恢复文件
4.实践总结
学习了如何一步步分析攻击内容,判断其是什么样的攻击类型。进一步提升自己的防护意识。
参考资料
参考上届同学的方法进行分析- …