20222415 2024-2025-1《网络与系统攻防技术》实验四实验报告
1.实验内容
1.1恶意代码文件类型标识、脱壳与字符串提取
1.2使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
1.3分析一个自制恶意代码样本rada
1.4取证分析实践
2.实验过程
2.1恶意代码文件类型标识、脱壳与字符串提取
使用file RaDa.exe
命令查看测试文件RaDa.exe的文件类型
可以看到,RaDa.exe是一个PE格式的32位可执行文件,有GUI界面,基于Intel 80386处理器,在Windows操作系统上运行,有三个节。
然后在PEiD中打开RaDar.exe
可以发现,RaDa.exe使用了0.89.6版本的UPX压缩壳。
接下来在kali中输入strings RaDa.exe
命令对RaDa.exe进行分析
发现时一堆看不懂的乱码,接下来使用脱壳工具对RaDa.exe进行脱壳处理
对脱壳后的文件再用strings
命令进行分析
现在就能找到作者的名字了。
2.2使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息
先运行下crackme1.exe看一下
感觉是要输入什么口令,用IDA打开crackme1.exe看一下
在红框里可以看到刚刚它提示过我的语句,但是绿框里的提示语还没见到过,根据这个长得像流程图的形式我猜上面的绿框里应该是正确的口令,输入正确了可以输出成功信息,接下来试一下
欸,成功了。
接下来看一下crackme2.exe
和之前的有点像,但是多了一个流程,也多了条提示语句,它说有个身份问题,而前面多出来的流程里是个文件名,我才它可能还会判断文件名字对不对。
确实提示了身份问题,那就按照它给的名字再来一遍
好了。
2.3分析一个自制恶意代码样本rada,并撰写报告,回答以下问题
先使用md5sum
命令计算RaDa.exe的ma5值
运行ProcessExplorer,在这里可以看到运行的软件
然后运行脱壳之后的rada.exe,在ProcessExplorer中可以看到正在运行的rada.exe进程
点击右上角的strings
根据上述结果分析:
该程序会访问10.10.10.10/RaDa,并在RaDa_commands.html执行一些指令实现上传和下载。
接着,该程序在系统的C盘创建了一个名为C:/RaDa/tmp的文件夹,而下面C:\Rada\bin的文件为RaDa.exe,可以推测程序运行后会将文件临时放在C:/RaDa/tmp然后自动将自己复制到C:\Rada\bin目录中。
程序中下面还有两个注册表项HKLM\Software\Microsoft\Windows\CurrentVersion\Run\和HKLM\Software\VMware, Inc.\VMware Tools\InstallPath,来实现将自己加入系统的自启动项,每次启动自动运行。
最后,通过Starting DDoS Smurf remote attack...可以看出程序会根据远程攻击者的指令发动DDoS攻击。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
使用UPX加壳
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
后门,根据分析,样本没有传播感染的能力,不是病毒或蠕虫,而样本的目的是要获取本机的控制权限。
(6)给出过去已有的具有相似功能的其他工具;
msfvenom
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,要对样本进行脱壳。
(8)给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
基于特征码的方法
基于特征码的检测方法是最传统和基础的恶意软件检测技术。它依赖于一个已知恶意软件特征码的数据库(即病毒库),这些特征码通常是恶意软件代码中唯一的、可识别的字符串或字节序列。当检测系统扫描文件或内存时,它会将这些数据与病毒库中的特征码进行比对。如果找到匹配的特征码,系统就会将该文件或进程标记为恶意软件。
行为监测
恶意软件在感染计算机后通常会表现出一些特殊的行为,如修改系统文件、创建新文件、发送垃圾邮件等。行为监测通过分析计算机的行为和操作记录,来检测是否存在异常行为。行为监测系统会实时监控计算机的活动,并建立一个正常行为模型。当系统检测到与模型不符的异常行为时,就会触发警报。
网络流量监测
恶意软件通常会通过网络与外部服务器进行通信,传输有害信息或接收远程指令。通过监测计算机与外部服务器的网络流量,可以检测出是否存在恶意软件。网络流量监测系统会捕获和分析计算机与外部服务器的通信数据。它会对通信模式、数据传输量、通信频率等进行分析,以识别潜在的恶意通信。
静态分析
静态分析是在不执行恶意软件的情况下,通过对其二进制文件、可执行文件或反编译后的代码进行分析,来提取恶意软件的静态特征。静态分析系统会提取恶意软件的文本、全局、头部、导入导出表、节特征等静态特征,并与正常软件的静态特征进行对比分析。通过识别出与正常软件不同的特征,系统可以判断该文件是否为恶意软件。
动态分析
动态分析是在受控环境下执行恶意软件样本,并记录其行为特征,如行为日志、系统调用名称、上下文参数、环境变量等。动态分析系统会构建一个安全的虚拟环境(如沙盒),在其中执行恶意软件样本,并实时监控其行为。通过对比恶意软件的行为与正常软件的行为,系统可以判断该文件是否为恶意软件。
2.4取证分析实践
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
即因特网中继聊天,是一种基于客户端-服务器模型的即时通讯协议,它允许用户通过互联网进行实时文本交流。
当IRC客户端申请加入一个IRC网络时,它会发送一个包含请求加入特定频道或服务器的消息,通常包括客户端的身份信息、要加入的频道或服务器名称等信息。
IRC默认使用TCP端口6667进行通信,当TCP 6667端口不通时,IRC客户端会尝试其他不同的TCP端口,直到登录失败。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指采用一种或多种传播手段,将大量主机感染僵尸程序病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
僵尸网络能够接收攻击者发出的指令,并执行相应的恶意行为。这些行为包括但不限于发送垃圾邮件、窃取数据、投放勒索软件、进行欺诈性点击广告或发动分布式拒绝服务(DDoS)攻击等。
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用Wireshark打开数据文件botnet_pcap_file.dat,设置过滤条件为:ip.src == 172.16.134.191 && tcp.dstport == 6667 || tcp.dstport == 6697,过滤统计结果为:
除开蜜罐主机自己的IP172.16.134.191,还有五个IP,分别是63.241.174.144,66.33.65.58,209.126.161.29,209.196.44.172,217.199.175.10,,蜜罐主机和这五个IRC服务器进行了通信。
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
kali中输入命令apt install tcpflow
然后输入命令tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
对抓包进行分流,可以看到分出来三个文件
接下来输入下列命令cat 209.196.044.172.06667-172.016.134.191.01152 | grep --text "^: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地址被用于攻击蜜罐主机?
使用cat ipaddr.txt
查看
(6)攻击者尝试攻击了那些安全漏洞?
主要是TCP和UDP的安全漏洞。
(7)那些攻击成功了?是如何成功的?
TCP端口下的445的蠕虫攻击是成功了。
PSEXESVC.EXE这是一种Dv1dr32蠕虫,通过IRC进行通信,返回信息中含有\PIPE\ntsvcs,通过搜索可知,这是一个命名管道,它作为服务控制管理器(SCM)与特定的服务控制进程(SCP)之间进行远程过程调用的接口。所以攻击者肯定通过这个接口获得了权限,攻击成功。
3.问题及解决方案
- 问题1:IDA使用不了
- 问题1解决方案:原因:IDA的路径中包含中文
把路径中的中文全删了就可以用了。
4.学习感悟、思考等
本次实验对我来说复杂,因为步骤较多,而且需要下载,但是这次实验与上次实验相比在下载上花的时间大大减少(可能是由于上次实验把我D盘整红了后我紧急装了个固态后电脑下载东西的速度大大提升)。这次实验也让我对恶意代码的分析与取证有了更为深入的理解和实践经验。这次是实验让我实践了文件类型标识、脱壳与字符串提取,也体验了下IDA这个软件的使用,学到了静态分析程序,还通过对Snort收集的蜜罐主机5天的网络数据源进行分析,学习了IRC、僵尸网络的原理。