98
社区成员




(1)恶意代码文件类型标识、脱壳与字符串提取;
(2)使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息;
(3)分析一个自制恶意代码样本rada;
(4)取证分析实践:Windows 2000系统被攻破并加入僵尸网络。
使用file命令查看所给的RaDa.exe的文件类型:
file RaDa.exe
rada.exe文件是32位的pe文件,80386处理器,微软Windows操作系统,有三个节
用PEiDr查看RaDa
根据上图可以判断出文件使用了UPX压缩壳。
接下来进行脱壳,找到PEid中的脱壳插件,使用检测到的入口点进行脱壳
结束后可以找到一个脱壳后生成的新文件RaDa.exe.unpacked.exe
在kali中使用strings命令分析脱壳后的rada恶意代码样本(RaDa.exe.unpacked.exe)
strings RaDa.exe.unpacked.exe
可以查看到作者RS和DP
IDA Pro
也可以使用IDA Pro,IDA Pro打开恶意代码样本,点击“视图”→“打开子视图”→“字串”查看字符串:
1.在IDA Pro下分析该文件,选择“View”→“Open subviews”→“Strings”,查看字符串。
共四种strings
2.选择“View”→“Graphs”→“Function calls”,查看函数调用图。
可以看出_main函数调用_fprintf和_printf的逻辑关系。
3.核心函数sub_4012804
在main函数中,首要步骤是检查命令行参数的数量。如果参数数量不等于2,程序会输出“I think you are missing something.”并立即终止。如果参数数量恰好为2,那么接下来会判断第二个参数是否为“I know the secret”。如果是,程序会输出“You know how to speak to programs,Mr. Reverse-Engineer”;如果不是,则会输出“Pardon? What did you say?”。因此,为了获得正确的输出,需要将“I know the secret”作为第二个参数传递给程序。
同理分析crackme2
找到核心函数sub_401280
crackme2.exe 执行了三个判断步骤:
首先,它检查命令行参数的数量是否为2。如果数量正确,程序将继续进行第二个判断;如果数量不正确,它将输出“I think you are missing something.”。
其次,它判断当前运行的程序名称是否为crackplease.exe。如果名称匹配,程序将进行第三个判断;如果不匹配,它将输出“I have an identity problem.”。
最后,它检查命令行中的第二个参数是否为“I know the secret”。如果参数正确,程序将输出“We have a little secret: Chocolate”;如果参数不正确,它将输出“Pardon? What did you say?”。
提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
计算得到哈希
找出并解释这个二进制文件的目的
在运行时,该程序会建立远程连接,并对注册表进行修改。所有下载的文件将被保存在C:\RaDa\tmp目录下。此外,该程序会修改注册表,以确保它能够随着系统的启动而自动运行。该程序还具有访问特定网址http://10.10.10.10/Rada/Rada_command.html%E7%9A%84%E8%83%BD%E5%8A%9B%EF%BC%8C%E5%B9%B6%E8%83%BD%E5%A4%9F%E8%A7%A3%E6%9E%90%E4%BB%8E%E8%AF%A5%E7%BD%91%E5%9D%80%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%8C%87%E4%BB%A4%EF%BC%8C%E8%BF%9B%E8%80%8C%E6%89%A7%E8%A1%8C%E7%9B%B8%E5%BA%94%E7%9A%84%E6%93%8D%E4%BD%9C%E3%80%82
识别并说明这个二进制文件所具有的不同特性
反向连接、修改注册表、自我复制、自动启动。
识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
使用了0.89.6版本的UPX壳进行加壳处理,直接用strings命令查看会发现全是乱码,以此避免被分析
对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
改程序具有后门程序的特征,自动执行,不具备感染性,不可自我复制,可以获得控制权
给出过去已有的具有相似功能的其他工具
ncat,socat
可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,使用命令可以直接查看RaDa.exe的作者。
IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息?IRC一般使用哪些TCP端口?
IRC,全称Internet Relay Chat,即“互联网中继聊天”,是一种依托于互联网的即时通讯协议。用户可以通过客户端软件连接到服务器上,进而在不同的聊天室中实现实时交流。
从技术层面来看,IRC的客户机实现相对简单,任何能够连接到服务器的套接字程序都可以作为客户端,它使用TCP/IP网络协议,并遵循客户端-服务器(C-S)模型。
在IRC注册过程中,需要发送的消息包括口令、昵称和用户信息。而在实际通信时,则通过发送JOIN信息来加入特定的频道。
关于IRC服务器的传输,通常情况下,明文传输会在6667端口进行监听,而采用SSL加密的传输则会在6697端口进行。
僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是什么?
僵尸网络(Botnet)是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。僵尸网络之所以得名,是因为众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。
具体来说,僵尸网络由以下几个关键部分组成:
Bot程序(僵尸程序):这是实现恶意控制功能的程序代码,被植入到受害主机中。
僵尸计算机:被植入Bot程序的计算机,也称为Bot设备或僵尸主机。
控制服务器(Control Server):控制和通信的中心服务器,用于向僵尸主机发送指令和接收信息。
僵尸主控机(Botmaster):控制僵尸网络的攻击者,通过C&C服务器管理僵尸网络。
僵尸网络的形成过程通常包括以下几个步骤:
攻击者开发或获取僵尸程序。
通过各种途径(如漏洞攻击、邮件病毒等)传播僵尸程序,感染大量主机。
被感染的主机加入僵尸网络,并等待接收控制指令。
僵尸主控机通过C&C服务器向僵尸主机发送指令,执行恶意行为(如DDoS攻击、发送垃圾邮件等)。
僵尸网络通常用于什么?
僵尸网络通常被用于非法或恶意目的,包括但不限于以下几个方面:
分布式拒绝服务攻击(DDoS攻击):僵尸网络可以为DDoS攻击提供所需的“火力”带宽和计算机资源,使被攻击网络无法处理合法用户的请求。
发送垃圾邮件:攻击者可以利用僵尸网络中的大量僵尸主机发送垃圾邮件,隐藏自身IP信息,逃避追踪。
窃取数据:僵尸网络的控制者可以从僵尸主机中窃取用户的各种敏感信息,如个人账号密码、机密数据等。
勒索软件传播:一些僵尸网络被用于传播勒索软件,攻击者通过加密受害者的文件并要求支付赎金来解锁。
点击欺诈:僵尸网络中的僵尸主机可以用于点击欺诈,访问网站创建虚假流量,为Bot设备的所有者创造收益。
比特币挖掘:攻击者可以利用僵尸网络中的计算机资源进行比特币挖掘,获取加密货币。
总之,僵尸网络是一种极具威胁的网络安全隐患,不仅危害网络安全运行,还严重威胁用户的数据安全。因此,加强网络安全防护、提高用户的安全意识是防范僵尸网络攻击的重要措施。
蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
Wireshark打开数据源botnet_pcap_file.dat,设置过滤条件:
可以看到蜜罐主机与5台IRC服务器进行了通信,ip分别为:
209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172
在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
1.安装tcpflow
sudo apt install tcpflow
.导出所有访问209.196.44.172:6667的包的信息,并修改默认字符。
tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
export LC_COLLATE='C'
export LC_CTYPE='C'
.对文件进行筛选,统计与多少主机相连
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 > 22.txt;wc -l 22.txt
攻击者尝试攻击了那些安全漏洞?
1.输入命令筛选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
获取UDP相应端口指令
tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
TCP端口有:135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)
UDP端口为137端口
根据上一步骤中的相应端口,去wireshark种进行抓包过滤分析
筛选出有攻击可疑的端口:
tcp445端口
此端口存在可疑的PSEXESVC.EXE,这是Dv1dr32蠕虫病毒,说明正在进行蠕虫攻击,返回信息中有\PIPE\ntsvcs,有主机的响应,说明攻击成功了
TCP 4899端口
问题1:对于本实验中用到的flie和strings命令不熟悉
问题1解决方案:从CSDN上找相关资料进行学习
这个实验涵盖了恶意代码文件类型的识别、去壳处理与字符串提取,以及运用IDA Pro执行静态与动态分析等多个环节。掌握这些实验内容,不仅能够提升对恶意软件分析的能力,还能加深对计算机安全防护的认知。在恶意代码分析的过程中,我们会面临诸多挑战,例如识别加壳技术并进行去壳处理,这都需要扎实的技术知识和丰富的实践经验。通过此实验,我们可以学到如何利用工具来识别和剖析恶意代码,这对于日后在网络安全领域的工作大有裨益。另外,实验中涉及的取证分析实践,比如对被攻破的系统和僵尸网络的分析,都是网络安全中至关重要的实际应用。它们有助于我们理解攻击者的行为模式,并学会如何采取措施来抵御这些攻击。总的来说,这样的实验既增强了我们的技术能力,也让我们更加深刻地认识到网络安全的重要性。