1.实践内容
动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
分析实践任务二:
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动手实践任务一
我的winXP没网,可以在本机在学习通里下载rada并解压之后,将rada.exe拉到WinXP里。
cd 桌面
进入桌面后输入
file RaDa.exe
(2)接着使用PEiD工具查看文件加壳类型。
点击右上角
打开桌面上的rada.exe
CMD中输入
strings RaDa.exe
查看 RaDa.exe中可打印字符串,发现全是乱码,这说明被加壳了。
接下来进行脱壳
选择rada.exe文件之后,点击“给我脱”
成功,桌面上多了一个文件
再在CMD中用 strings 查看脱壳后的RaDa_unpacked.exe,现在是字符串
strings RaDa_unpacked.exe
用 IDA Pro Free 打开这个文件:
new一个:
打开后一直下一步就行,截图如下:
2.2 动手实践任务二:分析Crackme程序
复制crackme1.exe和crackme2.exe到XP
MD5sum crackme1.exe
MD5sum crackme2.exe
file crackme1.exe
file crackme2.exe
对crackme1.exe进行分析,试探输入格式。在接受一个参数的时候输出信息与其他不同,猜测该程序接受一个参数。
crackme1.exe 3
crackme1.exe 3 5
crackme1.exe 3 5 8
接下来利用IDA Pro打开这个程序分析打开通过Strings窗口可以查看该程序中出现的字符串。
IDA PRO步骤跟上面一样
接下来看函数调用图(Function Call)可以发现:关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用print和fprint函数输出。
下面来看sub_401280流程图
在function中查看:
可以看到一些其他的语句:
猜测正确的口令应该是"I know the secret",输入命令运行改口令,
crackme1.exe “I know the secret”
可以得到"You know how to speak to programs,Mr.Reverse-Engineer"。
程序crackme2.exe的分析过程与之类似,先打开Function call(函数调用图),发现关键的部分在sub_401280这里。
将程序复制并命名为crackmeplease.exe,终端输入:
copy crackme2.exe crackmeplease.exe
crackmeplease.exe “I know the secret”
得到的反馈信息为We have a little secret: Chocolate.成功。
2.3 分析实践任务一:分析一个自制恶意代码样本rada
(1)查看摘要和文件类型:md5sum RaDa.exe指令得到其md5摘要。利用file RaDa.exe识别出这是32位GUI文件。
(2)对RaDa.exe进行检测:
先运行rada_unpacked.exe
双击rada_unpacked.exe
如图发现该程序用http连接到目标为10.10.10.10的主机下名为RaDa——commands的网页上,创建文件夹C:\RaDa\tmp保存下载文件,进行DDOS拒绝服务攻击,将RaDa.exe复制到C:\RaDa\bin。该程序还依次读、写和删除注册表,打开注册表查看发现没有信息,则表示已删除。接下来执行exe(执行指定命令)、put(将宿主主机中的指定文件上传到服务器)、get(将服务器中的指定文件下载到宿主主机中)、screenshot(截取宿主主机的屏幕并保存到tmp文件夹)、sleep(停止活动一段时间)
接下来用IDA对rada_unpacked.exe进行分析:
进入strings,点击edit中的setup: unicode
可以查看作者信息:
在strings中点击IP地址: http://10.10.10.10/RaDa
问题:
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
该文件的md5摘要为caaa6985a43225a0b3add54f44a0d4c7
(2)找出并解释这个二进制文件的目的;
通过上边的分析,我们可以知道这个程序可以通过网络获取指令,并执行,不具备自主传播模块,由此可知,这个应该是后门程序或僵尸网络程序。
(3)识别并说明这个二进制文件所具有的不同特性;
初次安装的时候会进行初始化的相关操作,添加注册列表、移动文件位置至C盘,建立网络连接接收指令。
持续运行阶段:维持与服务器的网络连接,解析网络指令,执行网络指令,等待一段时间继续执行。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
采用了UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo的加壳方式,直接被一键脱壳。
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
首先此二进制程序不具有自主传播模块,所以它不属于病毒和蠕虫;此程序未进行伪装,所以也不是木马;若攻击者仅仅用此程序进行远程控制,那么就是后门程序;若再次基础上加入僵尸网络,则就是僵尸程序。
(6)给出过去已有的具有相似功能的其他工具;
木马Bobax,特洛伊木马Setiri、GatSla
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
如上文所述,可以通过–authors参数获取相关作者信息Authors: Raul Siles & David Perez,
2004。使用IDA中的string视图查看,或者在非vmware环境下执行–authors参数
2.4 分析实践任务二:Windows 2000系统被攻破并加入僵尸网络
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC是Internet Relay Chat的缩写,是一种实时的互联网聊天协议。它允许用户通过客户端软件连接到IRC服务器,然后加入到不同的聊天频道(channels)中与其他用户进行文本交流。
当IRC客户端申请加入一个IRC网络时,它将发送一个称为"USER"的消息和一个称为"NICK"的消息。"USER"消息包含了用户的用户名、主机名、服务器名和真实姓名,而"NICK"消息包含了用户在IRC网络中的昵称。
IRC一般使用TCP端口6667作为标准端口,但也可以使用其他端口进行通信,例如6660至6669之间的端口范围。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是由恶意软件(通常是特洛伊木马或病毒)感染了大量计算机并将它们控制起来的网络。这些受感染的计算机被称为“僵尸”,它们在未经用户许可的情况下被远程控制,通常由黑客或犯罪团伙控制。
僵尸网络通常用于发起分布式拒绝服务(DDoS)攻击、发送垃圾邮件、进行网络钓鱼活动、进行点击欺诈以及进行其他恶意活动。通过利用大量受感染的计算机,黑客可以轻松地发动大规模攻击,从而造成严重的网络瘫痪、数据泄露或其他安全问题。
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信
首先通过Wireshark打开数据文件botnet_pcap_file.dat,并设置过滤条件
五个 IRC 服务器:分别为 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为服务器的僵尸网络。
然后在存放botnet_pcap_file.dat 的目录下打开命令行输入命令
tcpflow -r botnet_pcap_file.dat ‘host 209.196.44.172 and port 6667’
查询主机个数主要看是 209. 开头的文件,从这个文件中找到有多少个主机访问了209.196.44.172,包裹数过于庞大,使用管道连接指令筛选。
本次使用命令:
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 > ip.txt;wc -l ip.txt
然后在botnet_pcap_file.dat文件所在的目录下打开ip.txt文件
(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、139、25、445、4899、80
用wireshark抓包:
135
25
139
3.学习中遇到的问题及解决
- 问题1:第二个实践crack1无法下载
- 问题1解决方案:不信任,强制保留
- 问题2:tcpflow -r botnet_pcap_file.dat ‘host 209.196.44.172 and port 6667’运行报错
- 问题2解决方案:改为双引号
4.实践总结
本次实验内容比较多,慢慢做,动手能力有了很大提升。
参考资料
- https://blog.csdn.net/weixin_42400964/article/details/130403852?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%BD%91%E7%BB%9C%E6%94%BB%E9%98%B2%E5%AE%9E%E8%B7%B5%E3%80%8B%E5%AE%9E%E8%B7%B5%E5%85%AB%E6%8A%A5%E5%91%8A&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-8-130403852.142v100pc_search_result_base4&spm=1018.2226.3001.4187
-https://blog.csdn.net/qq_21274765/article/details/130390531