一、实验内容
本周学习内容
计算机病毒(Virus):通过感染文件(可执行文件、数据文件、电子邮件等)或磁盘引导扇区进行传播,一般需要宿主程序被执行或人为交互才能运行
蠕虫(Worm):一般为不需要宿主的单独文件,通过网络传播,自动复制通常无需人为交互便可感染传播
恶意移动代码(Maliciousmobilecode):从远程主机下载到本地执行的轻量级恶意代码,不需要或仅需要极少的人为干预。代表性的开发工具有:JavaScript,VBScript,Java,以及ActiveX
后门(Backdoor ):绕过正常的安全控制机制,从而为攻击者提供访问途径
特洛伊木马(Trojan):伪装成有用软件,隐藏其恶意目标,欺骗用户安装执行
僵尸程序(Bot):使用一对多的命令与控制机制组成僵尸网络
内核套件(Rootkit):通过替换或修改系统关键可执行文件(用户态),或者通过控制操作系统内核(内核态),用以获取并保持最高控制权(rootaccess)
融合型恶意代码:融合上述多种恶意代码技术,构成更具破坏性的恶意代码形态
实验内容
1.恶意代码文件类型标识、脱壳与字符串提取
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
2.使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
3.分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
(2)找出并解释这个二进制文件的目的;
(3)识别并说明这个二进制文件所具有的不同特性;
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
(6)给出过去已有的具有相似功能的其他工具;
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
(8)给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
4.取证分析实践
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)那些攻击成功了?是如何成功的?
二、实验过程
1.恶意代码文件类型标识、脱壳与字符串提取
(1)使用file命令查看RaDa文件的格式和类型
文件格式:PE32(32位的PE文件)
(2)使用peid工具查看
可见文件经过加壳
(3)脱壳前查看,看不到有用信息
(4)使用超级巡警脱壳机等工具对文件脱壳
(5)再次查看文件
可以看到RaDa编写的作者Raul Siles和David Perez
2.使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息
(1)file指令查看crackme1.exe和crackme2.exe
(2)使用IDA pro查看crackme1.exe,可以看到有一句输入I know the secret
(3)验证一下
可以推理出I know the secret
就是这个程序的密码
(4)使用IDA pro查看crackme2.exe,可以看到有一句输入crackmeplease.exe``I know the secret
(5)验证一下
可以推理出会比较文件是否为“crackmeplease.exe”且密码为“I know the secret”
3.分析一个自制恶意代码样本rada
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
使用md5摘要算法查看rada
运行ProcessExplorer查看脱壳之后的rada.exe
(2)找出并解释这个二进制文件的目的
程序具有执行DDoS攻击的能力
(3)识别并说明这个二进制文件所具有的不同特性;
①程序利用HTTP协议连接到指定的网页(10.10.10.10/RaDa/RaDa_commands.html)
②程序在目标主机的C盘中创建一个名为C:/RaDa/tmp的文件夹,用于存放临时文件或恶意软件组件,同时将RaDa.exe文件复制到C:\RaDa\bin目录中
③程序添加一个注册表:HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,使恶意软件能够在Windows启动时自动执行。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
使用UPX压缩壳,防止被分析,加壳后直接用IDA分析RaDa.exe只能看到乱码
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
RaDa.exe没有传染性,能够独立执行,可以远程获取指令,非法授权进行访问
(6)给出过去已有的具有相似功能的其他工具;
MSF meterpreter
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,要在脱壳后的strings中查看
(8)给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。
①基于特征码的检测方法:
特征码是被确定为只有某种恶意软件才可能会有的一串二进制字符串,通常是文件里对应的代码或汇编指令的地址。通过采集恶意软件样本,提取其特征码,并在检测时将特征码与待检测样本进行比较,判断是否有样本片段与此特征码吻合,从而判定该软件是否为恶意软件。
②行为监测法:
恶意软件在感染计算机后会表现出一些特殊的行为,如修改系统文件、创建新文件、发送垃圾邮件等。通过分析计算机的行为和操作记录,检测出是否存在异常行为,从而判断是否有恶意软件的存在。
③网络流量监测法:
恶意软件通常会通过网络与外部服务器进行通信,传输有害信息或接收远程指令。通过监测计算机与外部服务器的网络流量,可以检测出是否存在恶意软件。
④静态分析法:
通过对恶意软件本身的二进制文件、可执行文件或者通过反编译文件提取到的静态特征进行分析,对比恶意软件与正常软件的静态特征的异同来发现恶意软件。
⑤动态分析法:
在虚拟环境中执行恶意软件样本,记录恶意软件的行为特征,如行为日志、系统调用名称、上下文参数、环境变量等。通过分析这些行为特征来判断该软件是否为恶意软件。
4.取证分析实践
Windows 2000系统被攻破并加入僵尸网络
问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:
(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC(Internet Relay Chat),即互联网中继聊天,是一种基于客户端-服务器模型的即时通讯协议,它允许用户通过互联网进行实时文本交流。
当IRC客户端申请加入一个IRC网络时,它会发送一个JOIN消息给服务器,以请求加入指定的频道。这个JOIN消息通常包含要加入的频道的名称。
IRC一般使用TCP作为传输协议,并通过特定的端口进行通信。通常情况下,IRC使用的默认TCP端口是6667。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet)是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
僵尸网络通常用于:
发送垃圾邮件:僵尸网络可以迅速发送大量垃圾邮件,造成网络拥堵和邮件服务器的负担。
窃取数据:通过控制僵尸计算机,攻击者可以窃取被感染计算机上的敏感信息,如银行账户密码、社会安全号码等。
投放勒索软件:僵尸网络可用于投放勒索软件,攻击者通过加密受害者的文件并要求支付赎金来解锁。
欺诈性点击广告:攻击者可以利用僵尸网络进行欺诈性点击广告,以获取非法收益。
发动分布式拒绝服务(DDoS)攻击:僵尸网络是DDoS攻击的主要工具之一,通过控制大量僵尸计算机同时向目标服务器发送大量请求,耗尽其系统资源,使其无法处理合法用户的请求。
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用wireshark打开botnet_pcap_file.dat文件。
设置过滤命令为ip.src == 172.16.134.191 && tcp.dstport == 6667
可以看到5个IP地址
66.33.65.58
63.241.174.144
217.199.175.10
209.196.44.172
209.126.161.29
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
下载tcpflow
输入tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
,可以看到三个文件
获取访问该服务器的主机数量
一共有3461个主机
(5)哪些IP地址被用于攻击蜜罐主机?
获取IPtcpdump -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 > ipaddr.txt;wc -l ipaddr.txt
查看IP
(6)攻击者尝试攻击了那些安全漏洞?
筛选TCP的端口
筛选TCP的端口
所以攻击者尝试攻击了TCP和UDP的安全漏洞
(7)那些攻击成功了?是如何成功的?
可见数据包内含有一个名为PSEXESVC.EXE的文件
PsExec 最强大的功能之一是在远程系统和远程支持工具(如 IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。
应该是攻击者对蜜罐主机进行了网络蠕虫的攻击
4899端口是一个远程控制软件Radmin服务端监听的端口,可以看到被利用
三、问题及解决方案
问题1:识别攻击方式时,不熟悉受攻击的程序
问题1解决方案:通过搜索易受攻击的程序成功发现
四、学习感悟、思考等
通过本次实验,我学习了如何识别恶意代码的文件类型、运行平台以及加壳工具。通过使用文件格式和类型识别工具(如PE Explorer、PEiD等),我能够准确地判断恶意代码的文件格式(如PE32)和运行平台(如Windows)。此外,我还掌握了使用脱壳软件(如超级巡警脱壳机)对恶意代码进行脱壳处理的方法,以及使用字符串提取工具对脱壳后的恶意代码进行分析,以发现恶意代码的编写作者或相关信息。
通过分析不同类型的恶意代码,我深刻理解了它们的功能和目的,如窃取数据、发送垃圾邮件、发动DDoS攻击等,也复习了恶意代码的许多知识。这次学习经历让我更加意识到网络安全的重要性,以及恶意代码对系统和用户数据安全的威胁。
参考资料
-无