20241902 2024-2025-2 《网络攻防实践》第八周作业

1.实践内容

通过本周的实验学习,初步学习了如何对恶意代码样本的分析,包括文件格式和类型的识别、使用工具对其壳进行识别和脱壳、使用字符串提取工具对脱壳后的代码进行分析等,从中找到作者等信息,并进一步分析其特性、目的、防逆向技术等。此外,还学习了如何利用IDA对软件进行动态或静态的分析,寻找特定的输入以获得正确的输出信息。本次实验还利用wireshark、tcpflow等对蜜罐网络被攻击的数据流量进行了分析,探明攻击者的ip、攻击方式和所利用的安全漏洞等信息。

2.实践过程

动手实践任务一

输人命令file RaDa.exe查看rada.exe的文件格式,可知其为32为的可执行文件,有GUI界面,架构为Intel 80386:

输入命令strings RaDa.exe查看字符串,为乱码,猜测加了壳:

输入命令RaDa.exe --authors获得作者等信息:

打开PEid对恶意代码查壳,其壳为UPX 0.89.6:

打开超级巡警虚拟机脱壳器对恶意代码脱壳,获得RaDa_unpacked.exe:

再次查看字符串,获得正确的信息:

将RaDa_unpacked.exe拖入PEid,可见其编写语言为VB 5.0/6.0:

打开IDA,对恶意代码进行分析,在Strings窗口中可见其作者信息,与上述一致,为"Raul Siles & David Perez":

动手实践任务二

尝试运行crackme1.exe,通过传入不同的参数猜测程序运行方式,并file crackme1.exe查看其文件格式:


打开IDA对crackme1.exe进行分析,在strings中可见上述的返回信息:

依次选择view->graphs->function calls,打开函数调用架构图,可见控制输出的关键函数为sub_401280:


在functions中打开sub_401280查看其代码:

依次选择view->graphs->flow chart查看代码块调用图,结合前述输入尝试,通过比较局部变量arg_0的值和2,可见此程序需要两个参数传入,当输入参数为"I know the secret",获得正确的输出,否则返回不同的错误信息:

验证上述猜想:

对于crackme2.exe的分析与上述流程类似,先进行尝试,再利用IDA进行分析,得到关键函数sub_401280,查看其代码块调用,获得正确的输入参数"I know the secret":







但与crackme1.exe不同的是,我们可以看到对第一个参数也有指定字符串"crackmeplease.exe",所以将crackme2.exe重命名为crackmeplease.exe,尝试输入,可见得到正确返回信息:

分析实践任务一

问题1:输入命令md5sum RaDa.exe获取其md5值caaa6985a43225a0b3add54f44a0d4c7:

打开Process Explorer后,打开脱壳后的RaDa_unpacked.exe程序:

双击此程序,观察其执行的字符串信息:


问题2:从上述字符信息可见,此程序访问了http://10.10.10.10/RaDa,并请求RaDa_commands.html页面,猜测此页面包含执行命令脚本,并进行了上传/下载文件的操作;创建了路径C:\RaDa\bin和C:\RaDa\tmp,并传入了RaDa.exe文件;进行了DDoS Smurf攻击;对注册表进行了写入、读取和删除操作;扫描了网段192.168.x.x、172.16.x.x、10.x.x.x等。
可见此二进制文件通过与服务器连接,下载后门程序放入系统盘开机自启动,对内网网段进行扫描,执行了DDoS攻击,修改注册表删除痕迹等。

问题3:此二进制文件可以对注册表进行修改,可以将自己复制到系统盘进行自启动,会对内网网段进行扫描,可以发动DDoS攻击。

问题4:在动手实践一中,查询到此程序加了UPX壳以反逆向。

问题5:该程序通过修改注册表、复制到系统盘等实现自启动,还可以对内网进行扫描,通过连接服务器下载后门程序,读取系统信息等,具备木马的特征,并且不具备大量复制和传播感染的特征,所以此样本属于木马(后门程序)类。

问题6:黑防灰鸽子、中国菜刀+webshell。

问题7:从上图可见,以及在动手实践一中,采用了不同方式(命令RaDa.exe --authors、IDA分析字符串、Process Explorer监听字符串)获取作者的信息为"Raul Siles & David Perez"。

分析实践任务二

问题1:IRC(Internet Relay Chat),即因特网中继聊天,是一种基于客户端-服务器模型的即时通讯协议,允许用户通过互联网进行实时文本交流。它由芬兰人Jarkko Oikarinen于1988年首创。IRC服务器可以连接其他服务器以扩展为一个IRC网络,用户通过连接到一个IRC服务器,可以访问该服务器以及它所连接的其他服务器上的频道。频道类似于聊天室,名称以#符号开始。
当IRC客户端申请加入一个IRC网络时,通常会发送以下消息:
PASS:如果需要,客户端可能会发送服务器密码以进行连接。
NICK:客户端请求在IRC网络上使用的昵称。
USER:客户端发送用户信息,包括用户名、主机名、服务器名和真实姓名等。
JOIN:客户端使用该命令加入一个特定的频道,从而与其他用户进行交流。
IRC一般使用的TCP端口包括:
6667:这是最常用的IRC端口号,用于非加密的通信。
6697:这是用于IRC安全连接(SSL/TLS加密)的端口号。

问题2:僵尸网络(Botnet)是指由黑客通过恶意软件感染大量主机后,形成的一个可一对多控制的网络。这些被感染的主机被称为“僵尸主机”,黑客通过控制协议远程操控这些主机,执行各种恶意任务。
僵尸网络通常被用于以下恶意活动:
分布式拒绝服务攻击(DDoS):利用大量僵尸主机向目标系统发送海量请求,使其瘫痪。
发送垃圾邮件:通过僵尸主机发送大量垃圾邮件,传播恶意软件或进行欺诈活动。
挖掘加密货币:利用僵尸主机的计算能力进行加密货币挖矿。
窃取敏感信息:通过键盘记录器等手段窃取用户密码、信用卡信息等。

在kali中使用wireshark打开botnet_pcap_file.dat,并通过ip.src == 172.16.134.191 && tcp.port == 6667ip.src == 172.16.134.191 && tcp.port == 6697筛选数据包:


问题3:可见蜜罐主机与209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10和209.196.44.172IRC服务器进行了通信。

输入命令apt-get install tcpflow安装tcpflow:

输入命令tcpflow -r Desktop/botnet_pcap_file.dat "host 209.196.44.172 and port 6667",得到三个文件:

问题4:输入命令at 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以计算有多少不同的主机访问了以209.196.44.172为服务器的僵尸网络,可见共有3461个:

问题5:输入命令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 >connect_host_ip.txt;wc -l connect_host_ip.txt分析哪些IP被用于攻击蜜罐主机,可见共有165台主机,详细地址输出到connect_host_ip.txt文件中:

输入命令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 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:、139、25、445、4899和80,udp开放端口127:

打开wireshark,分别tcp.port == 对上述端口进行筛选,135端口,只有tcp三次握手的数据包,无攻击行为:

25端口,只有tcp三次握手的数据包,无攻击行为:

139端口,有TCP、SMB和NBSS类型的数据包,未发现攻击行为:

4899端口,只有tcp三次握手的数据包,无攻击行为:

udp端口137,只有NBNS包,负责在基于NetBIOS名称访问的网络上提供主机名和地址映射服务,未发现攻击行为:

80端口:


分析发现大量数据包有无效填充内容发送至靶机,且靶机发送大量的tcp错误传输反馈包,如TCP dup ack(重复应答)、TCP Out-Of-Order(报文乱序)等,故攻击者发起了缓冲区溢出攻击,在后续数据包中,发现有蠕虫文件:

445端口:

在SMB协议数据包中发现PSEXESVC.EXE文件,经搜索得知此文件是一种通过IRC进行通信的Dv1dr32蠕虫。


可见攻击者成功拿到ADMIN和Administrator权限,此计算机被攻破。
问题6:针对80端口,攻击者尝试了缓冲区溢出攻击和蠕虫攻击;针对445端口,攻击者利用Dv1dr32蠕虫病毒进行攻击。

问题7:针对445端口利用Dv1dr32蠕虫病毒进行的攻击取得了成功,获得了系统的管理员权限。

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

  • 问题1:无法将学习通的文件导入虚拟机
  • 问题1解决方案:安装vmware tools或生成iso文件导入虚拟机
  • 问题2:无法安装tcpflow
  • 问题2解决方案:将kali的网络适配器换为桥接模式
  • 问题3:crackme1.exe分析后仍无法得到正确输出
  • 问题3解决方案:参数两边要加上引号

4.实践总结

通过本次实验,掌握了恶意代码样本的文件类型识别、脱壳和字符串提取技巧,了解恶意代码的编写作者及相关信息。还学习了如何使用IDA Pro分析Crackme程序,学习寻找特定输入以获取成功信息。通过分析恶意代码进一步加深对恶意代码样本的分析能力,包括文件摘要、目的、特性、防止逆向工程技术、分类及相似工具的识别。最后通过分析Snort收集的流量数据,了解IRC、僵尸网络、蜜罐主机等概念,从中分析攻击者的行为模式和攻击所利用的漏洞。通过上述实验不仅提升了技术能力,还培养了分析思维和问题解决的能力。

参考资料

posted @ 2025-03-27 02:45  桑奇彦超爱刘闪大笨蛋  阅读(51)  评论(0)    收藏  举报