20222937 2022-2023-5 《网络攻防实践》第八周作业

20222937 2022-2023-5 《网络攻防实践》第八周作业

1.实践内容

1.1动手实践任务一:恶意代码样本脱壳

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:

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

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

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

1.3分析实践任务一:分析一个自制恶意代码样本rada

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

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;

2、找出并解释这个二进制文件的目的;

3、识别并说明这个二进制文件所具有的不同特性;

4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;

6、给出过去已有的具有相似功能的其他工具;

7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

1.4分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

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 动手实践任务一:恶意代码样本脱壳

解压下载的压缩文件,将RaDa放入虚拟机WinXP的桌面,同时打开终端,先:cd 桌面
进入桌面后输入:file RaDa.exe
在这里插入图片描述查看该文件类型,这是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。

然后使用PEiD工具查看文件加壳类型。加壳的目的是为了增加逆向难度。可以看到这个是一个版本为0.89.6的UPX壳(压缩壳)。
在这里插入图片描述
选择路径打开RaDa.exe文件
在这里插入图片描述
在CMD中输入 strings RaDa.exe
在这里插入图片描述
查看 RaDa.exe中可打印字符串,发现全是乱码,这说明被加壳了。
接下来使用超级巡警进行脱壳
在这里插入图片描述
选择相应的路径,发现支持脱壳。
在这里插入图片描述
点击“给我脱”
在这里插入图片描述
查看桌面,可以看到脱壳文件。
在这里插入图片描述
再在CMD中用 strings 查看脱壳后的RaDa_unpacked.exe,
输入:strings RaDa_unpacked.exe
发现了脱壳后的恶意程序的可打印字符串。
在这里插入图片描述
然后使用 IDA Pro Free 打开这个文件。
在这里插入图片描述
创建一个新的项目文件,点击“New”
在这里插入图片描述
选择“PE Executable”
在这里插入图片描述
选择路径,打开RaDa_unpacked.exe
在这里插入图片描述
查看详细信息,可以找到作者为DataRescue sa/nv,邮箱为ida@datarescue.com。
在这里插入图片描述

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

复制crackme1.exe和crackme2.exe到XP。然后检查一下两个文件的完整性,计算其 md5 值。

输入:MD5sum crackme1.exe
输入:MD5sum crackme2.exe
在这里插入图片描述
使用file命令查看其文件类型,可以看到这两个文件都是32位windows下PE文件。

输入:file crackme1.exe
输入:file crackme2.exe
在这里插入图片描述
对crackme1.exe进行分析,试探输入格式。在接受一个参数的时候输出信息与其他不同,猜测该程序接受一个参数。

输入:crackme1.exe 3
输入:crackme1.exe 3 5
输入:crackme1.exe 3 5 8
在这里插入图片描述
接下来利用IDA Pro打开这个程序分析
在这里插入图片描述
在这里插入图片描述
打开通过Strings窗口可以查看该程序中出现的字符串。
在这里插入图片描述
通过Strings窗口可以查看到该程序中出现的明文字符串,可以看到前面的两种输出信息,“I think you are missing something.” “Pardon? What did you say?”
还发现了“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer”这两个字符串。由此我们可以猜测,前者就是我们需要的口令,后者就是输入口令正确时程序的输出信息。
接下来看函数调用图(Function Call)可以发现:关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用print和fprint函数输出。
在这里插入图片描述
下面来看sub_401280流程图,看到 cmp [ebp+arg_0],2,其用来判断程序是否有两个参数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
往下继续看可以看到另外的几条命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
猜测正确的口令应该是"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这里。

在这里插入图片描述
开始分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面来看sub_401280,大致可以判断出关键口令为I know the secret,但是从上图可以看到,代码逻辑中的程序名称改变了,变成了:crackmelpease.exe.因此需要对程序名称进行修改。

CMD输入copy crackme2.exe crackmeplease.exe
将程序复制并命名为crackmeplease.exe
在这里插入图片描述
输入crackmeplease.exe “I know the secret”
得到的反馈信息为We have a little secret: Chocolate
在这里插入图片描述

2.3 分析实践任务一:分析一个自制恶意代码样本rada

查看摘要和文件类型:md5sum RaDa.exe指令得到其md5摘要。利用file RaDa.exe识别出这是32位GUI文件。
在这里插入图片描述
接下来打开监听工具process explorer对RaDa.exe进行检测
在这里插入图片描述
直接双击运行RaDa_unpacked.exe
然后再使用process explorer对RaDa_unpacked.exe进行检测
在这里插入图片描述
双击process explorer中的RaDa_unpacked.exe,并选择strings
在这里插入图片描述
查看细节
在这里插入图片描述
如图发现该程序用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
在这里插入图片描述
进入Strings对话框,在菜单栏中的Edit中点击Setup,设置类型为 Unicode。
在这里插入图片描述
仔细查看可以发现作者信息:
在这里插入图片描述
在strings中点击IP地址: http://10.10.10.10/RaDa
在这里插入图片描述
定位到相应位置后,用http连接到目标为10.10.10.10的主机下名为RaDa——commands.html,对应的函数为sub_404FB0,点击进入此函数,得到汇编代码如图,这个字符串被拷贝到dword_40C030变量中。

在这里插入图片描述
在这里插入图片描述
回答问题

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
答:文件的摘要是caaa6985a43225a0b3add54f44a0d4c7,这是一个PE可执行文件,同时也是一个UPX加壳文件。

2、找出并解释这个二进制文件的目的;
答:这个二进制文件是一个后门程序,攻击者可以利用其完全控制该系统,并且只要用户上网,就可以得到到攻击者的攻击指令。

3、识别并说明这个二进制文件所具有的不同特性;
答:该程序运行的时候建立远程连接并修改注册表,将下载的文件存储到C:\RaDa\tmp,并修改注册表跟随系统开机启动:访问http://10.10.10.10/Rada/Rada_command.html,还可以解析指令并执行指令。

4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
答:UPX加壳,同时手动修改进行防范脱壳,一些干扰的误导选项。

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
答:样本不具有传播和感染的性质,同时没有将自己伪装成有用的程序以欺骗用户运行,因此不属于病毒、蠕虫、木马,应当是一个后门程序或者僵尸程序。

6、给出过去已有的具有相似功能的其他工具;
答:木马Bobax。

7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
作者为Raul siles 和 David Perze。使用ida或strings能查看,或者在非vmware环境下执行–authors参数。

2.4 分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
1、因特网中继聊天(Internet Relay Chat),简称IRC。IRC的工作原理非常简单,客户端软件通过因特网以IRC协议连接到IRC服务器上即可。IRC特点是通过服务器中继与其他连接到这一服务器上的用户交流。
2、注册时需要发送的消息有三种,分别是口令,昵称和用户信息。格式如下:USER 、PASS 、NICK 。注册完成后,客户端就使用JOIN信息来加 入频道,格式如下:JOIN 。
3、 IRC服务器明文传输通常在6667端口监听,也会使用6660—6669端口。SSL加密传输在6697端口。
注意:攻击者滥用IRC构建僵尸网络时,可能使用任意的端口构建IRC僵尸网络控制信道,那么基于端口识别服务不再可靠,要进行基于应用协议特征进行识别(如USER/NICK)。

(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
僵尸网络,是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息也都可被黑客随意“取用”。

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
首先在Kali中通过Wireshark打开数据文件botnet_pcap_file.dat,并设置过滤条件为: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

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

先使用命令:apt-get install tcpflow安装tcpflow,安装成功
在这里插入图片描述
然后在存放botnet_pcap_file.dat 的目录下打开命令行输入命令:
tcpflow -r botnet_pcap_file.dat “host 209.196.44.172 and port 6667”
在这里插入图片描述
获取209.196.44.172与172.016.134.191之间的所有的 IRC 数据包,得三个文件:一个report文件和两个分流的文件,报告文件内有两个主机互相通信的时间,IP,mac地址,使用端口,包裹数。
在这里插入图片描述
查询主机个数主要看是 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查找连接主机ip

注:awk -F就是指定分隔符,可指定一个或多个,print后面做字符串的拼接;cut -d是指定字段的分隔符;uniq命令用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用。

输入命令: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.txt
在这里插入图片描述
点击打开ip.txt查看详细内容:
在这里插入图片描述
(6)攻击者尝试了哪些安全漏洞?哪些攻击成功了?是如何成功的?
要分析攻击者针对的安全漏洞,首先要定位到可能被攻击的TCP/UDP端口号,使用如下命令查询响应过的TCP端口号:
tcpdump -r /home/kali/Desktop/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
在这里插入图片描述
可以看到,筛出的TCP端口有:
135、139、25、445、 4899、 80

使用如下命令查询响应过的UDP端口号:
tcpdump -r /home/kali/Desktop/botnet_pcap_file.dat -nn ‘src host 172.16.134.191’ and udp | cut -d ‘ ‘ -f 3 | cut -d ‘.’ -f 5 | sort | uniq
在这里插入图片描述
可以看到,筛出的UDP端口只有:137

然后使用wireshark打开botnet_pcap_file.dat,通过判断条件逐个筛选端口:

筛选135端口:
输入命令:ip.addr == 172.16.134.191 and tcp.port == 135
在这里插入图片描述
筛选端口135的数据,可看出端口135的数据很少,且并没有实际数据交互,推测是在探测。

筛选139端口:
输入命令:ip.addr == 172.16.134.191 and tcp.port == 139
在这里插入图片描述
筛选端口139的数据,发现了TCP协议、SMB协议和NBSS协议,但并未有实际数据交互,应当是SMB查点。

筛选25端口:
输入命令:ip.addr == 172.16.134.191 and tcp.port == 25

在这里插入图片描述
筛选端口139的数据,发现了TCP协议但并没有实际数据交互,推测是在探测。

筛选445端口:
输入命令:ip.addr == 172.16.134.191 and tcp.port == 445
在这里插入图片描述
筛选端口445的数据,发现执行了\System32\PSEXESVC.EXE,发现61.111.101.78发送了PSEXESVC.EXE,这是一种Dv1dr32蠕虫,这种蠕虫正是通过IRC进行通信。并且每个IP地址连入的连接都有响应的回应,所以攻击者肯定是获得了权限,因此这个攻击成功的。

筛选4899端口:
输入命令:ip.addr == 172.16.134.191 and tcp.port == 4899

在这里插入图片描述
筛选端口4899的数据,发现基本都是TCP报文,有一次HTTP,进行过一次攻击尝试,但没有成功。

筛选80端口:
输入命令:ip.addr == 172.16.134.191 and tcp.port == 80
在这里插入图片描述
筛选端口80的数据,能看出所有关于80端口的相关攻击的信息,包括null.ida为标识的WEB-IIS ISAPI、dafault.ida为标识的code red,发现这是一个红色代码蠕虫攻击,过滤http请求,发现攻击者尝试了溢出、目录穿越等攻击,但均未成功。

综上所述,只有445端口的PSEXESVC攻击成功了。

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

  • 问题1:rada文件无法从本地拷贝到虚拟机,RaDa.exe文件拷贝引起虚拟机死机
  • 问题1解决方案:多次尝试发现本地RaDa.exe文件被解压出来后被主机安全中心强制破坏并删除,关闭本地安全中心,重新下载rada后重新解压,再复制到虚拟机,复制成功。
  • 问题2:在XP中想进入桌面路径,发现输入不了中文
  • 问题2解决方案:修改输入法为微软拼音后可以输入中文。

4.学习感想和体会

本次实验任务量较大,但整体难度不难,需要在实验过程中耐心细致,有条理地一步一步分析。通过这次实验,了解了一些恶意代码的攻击原理,在分析恶意代码的过程中对恶意代码的结构、原理等有了较清晰的理解,同时,在取证分析的过程中分析,恶意代码隐蔽性较强,需要认真仔细,如果想提高分析取证的能力,必须加强练习与总结归纳。

参考资料

  • 《网络攻防技术与实践》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值