20212803 2021-2022 《网络攻防实践》第八次作业

20212803 2021-2022 《网络攻防实践》第八次作业

1.实践内容

本次内容分为两类,动手实践内容和分析实践内容
动手实践一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者
动手实践二
分析Crackme程序
分析实践一
分析一个自制恶意代码样本rada
分析实践二
分析数据,数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。
基础知识
恶意代码:计算机按照攻击者的意图执行以达到恶意目标的指令集。
恶意代码的类型:计算机病毒,蠕虫,恶意移动代码,后门,特洛伊本马,僵尸程序,内核套件,融合型恶意代码。

计算机病毒:指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机正常使用并且能够自我复制的一组计算机指令或程序代码。
计算机病毒具有传染性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。计算机病毒的生命周期:开发期→传染期→潜伏期→发作期→发现期→消化期→消亡期。

2.实践过程

2.1手动任务实践一

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。
1.解压rada文件,密码rada。并移动至c盘
2.使用cmd进入C盘rada文件夹

3.使用file命令查看文件类型

4.看到RaDa.exe是一个32位的Windows PE可执行文件,GUI表示这个程序有图形界面,intel 80386表示处理器架构
5.用执行指令strings RaDa.exe来查看该程序可打印字符串,发现是乱码,无法分析出有用信息

6.可以判断程序采用了加壳防止反汇编的技术,我们使用PEiD查看RaDa.exe的基本信息。我们可以看到文件的入口点、偏移,文件类型、EP段、汇编程序以及加壳类型。UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo为该程序使用的加壳工具

7.打开超级巡警虚拟机脱壳器对RaDa.exe进行脱壳。

8.使用PEiD工具来查看脱壳后的程序,可以看到编写该程序所使用的语言和开发工具为VB6.0

9.用strings查看脱壳后的程序

可以看到函数名字
10.打开ida pro free打开RaDa_unpacked.exe可以看到作者的信息DataRescue sa/nv,还有作者的邮箱ida@datarescue.com

2.2手动任务实践二

分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
1.下载crackme1.exe 和 crackme2.exe 并是从cmd进入下载目录,使用file命令,查看文件类型,发现程序没有图形界面

2.首先我们对crackme1.exe进行破解,首先判断程序输入格式,发现输入一个参数是输出Pardon? What did you say?,输入多个参数时输出I think you are missing something.所以我判断程序接收一个参数。

3.接下来使用IDA pro来尝试验证和进一步分析这个程序。这里我们看到了“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”推测后者与正确口令相关

4.在string列,我们看到了如上字符串和gcc和.c的字符,可以说是由c语音开发的

5.查看View-Graphs-Function calls,查看函数结构,可观察关键的部分在sub_401280

6.查看sub_401280汇编代码,cmp [ebo+arg_0],2为判断程序是否有两个参数,而在c语言中第一个参数对应的是参数大小,第二个参数对应的是命令行,阅读汇编代码当等于的时候跳到loc_4012d2。然后去loc_4012d2。

7.如输入"I know the secret",则继续前往loc_401310

8.测试验证猜想crackme1.exe "I know the secret",成功。

9.我们对crackme2.exe进行测试,同样测试其输入格式。猜测同样是一个参数。

10.使用IDA pro来打开文件,进入string界面,发现明文字符串“I know the secret”和“crackmeplease.exe”,等。

11.查看call flow,关键的部分在sub_401280

12.查看汇编代码,cmp [ebp+arg_0],2判断程序参数是否为两个,接着去loc_4012D5用strcmp函数对argc里面的第一个字符串,即程序名“crackme2.exe”和“crackmeplease.exe”进行判断。通过判断后前往loc_401313将用户输入的口令与”I know the secret”判断。经由loc_401351和loc_401358前往loc_401381,unk_403080,输出测试信息。



13.测试验证copy crackme2.exe crackmeplease.exe,接着输入crackmeplease.exe "I know the secret"。

2.3 分析任务一

分析一个自制恶意代码样本rada
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
使用MD5对RaDa.exe进行摘要信息分析

使用file命令分析RaDa.exe

MD5摘要值:caaa6985a43225a0b3add54f44a0d4c7
基本信息:PE32 executable(GUI) Intel 80386 ,for MS Windows
2、找出并解释这个二进制文件的目的;
运行RaDa_unpacked.exe,打开process explorer

该恶意程序使用http连接到目标为10.10.10.10的主机下的一个名为RaDa_commands.html的网页上,然后分别下载和上传文件,并在靶机创建目录“C:/RaDa/tmp”来保存其下载的文件
,并把文件RaDa.exe复制到了 C:\RaDa\bin 目录下,可以看出该恶意代码将其自我复制到主机系统盘,并激活了自启动,还试图从一个HTML页面获取并解析命令,猜测这是一个后门程序,还可以发现该恶意程序中可执行DDos拒绝服务攻击,还更改了注册表



打开wireshark捕获数据,运行RaDa_unpacked.exe,并搜索ip.addr==10.10.10.10,可以看到想靶机10.10.10.10发送了大量数据包。

3、识别并说明这个二进制文件所具有的不同特性;
程序被执行时会将自身安装到系统C盘,并创建文件夹用来存放从攻击主机下载到靶机的文件和从靶机获取的文件;同时通过修改注册表的方式使得程序能够开机自启动;并删除注册表中自身信息,有一定隐蔽性。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
使用0.89.6版本的UPX壳进行加壳处理;通查看网卡地址判断系统是否运行在虚拟机上,若是则隐藏作者信息
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
后门程序,首先此二进制程序不具有自主传播模块,所以它不属于病毒和蠕虫;此程序未进行伪装,所以也不是木马;若攻击者仅仅用此程序进行远程控制,那么就是后门程序。
6、给出过去已有的具有相似功能的其他工具;
Bobax – 2004、Windows Update、海阳顶端等后门。
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

作者信息Authors: Raul Siles & David Perez, 2004,使用IDA中的string视图查看

3.4 实践任务二

分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答下列问题:

1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天,是即时式的聊天,更接近真实的聊天情景,它的特点是速度快。
申请加入的时候要发送口令、昵称和用户信息:USER 、PASS 、NICK ;对于曾经注册过的靶机,直接通过JOIN指令加入对应的频道
IRC通常使用6660 - 6669端口进行监听,其中6667是明文端口,此外额外占用一个端口6697进行SSL加密传输;
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
主要用于:攻击者可以向自己控制的所有bots发送指令,让它们在特定的时间同时开始连续访问特定的网络目标,从而达到DDos的目的;利用Botnet发送大量的垃圾邮件,而且发送者可以很好地隐藏自身的IP信息;才外还有监听用户敏感信息、记录键盘输入信息、扩散新的恶意软件和伪造点击量,骗取奖金或操控网上投票和游戏等。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
下载botnet_pcap_file.dat文件,复制进虚拟机,使用wireshark打开文件。

IRC服务器明文传输通常在6667端口监听,所以设置的过滤条件ip.addr == 172.16.134.191&&tcp.port == 6667,分析可得
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为服务器的僵尸网络?
首先我们先获取209.196.44.172与172.016.134.191之间的所有的IRC数据包。使用命令:tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"

查看209.196.044.172.06667-172.016.134.191.01152文件,使用管道命令进行筛选,结果如下得到3461个主机。

5、那些IP地址被用于攻击蜜罐主机?
使用命令使攻击蜜罐主机的ip输出保存到tyh.txt中,操作如下图,

上图显示有165个
6、攻击者尝试攻击了那些安全漏洞?
先筛选tcp,udp端口命令如下
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

使用wireshark的analayse的协议分级功能,查看嗅探得到数据包的协议分级

TCP端口80,过滤:ip.dst172.16.134.191 && tcp.dstport80 && http

分析发现是红色代码蠕虫攻击
TCP端口445,过滤:ip.dst172.16.134.191 && tcp.dstport445

分析发现有远程控制执行文件,PSEXESVC.EXE,还有普通查点、口令猜测、MSRPC-SVCCTL服务枚举漏洞等攻击。
TCP端口139,过滤:ip.dst172.16.134.191 && tcp.dstport139

分析发现,此端口没有发生攻击
UDP端口1434,过滤:ip.dst172.16.134.191 && udp.dstport1434

分析发现为SQL Slammer的蠕虫病毒
7、那些攻击成功了?是如何成功的?
总结如上分析,能够看到针对TCP445端口的PSEXESVC攻击-(IP:61.111.101.78)是成功的,其他均失败

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

问题:动手实践和分析实验不知道如何下手
解决:通过阅读博客和老师提供的视频得以解决。

4.实践总结

本次操作实验和分析实验都是有些难度的,使用的工具和知识点都比较综合,有相当的难度。做完本次实验,我对于病毒,恶意代码的理解更进一步了。

posted @ 2022-05-07 23:41  eehh  阅读(170)  评论(0编辑  收藏  举报