20211902 毕鑫杰 2021-2022-2 《网络攻防实践》第十周作业
一、知识梳理
1.1 恶意代码基础知识
这部分包括恶意代码定义与分类、恶意代码发展史、计算机病毒、网络蠕虫、后门与木马、僵尸程序与僵尸网络、Rootkit。
恶意代码(Malware,或Malicious Code)指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。恶意代码根据执行方式、传播方式和对攻击目标的影响分为计算机病毒(Computer Virus)、蠕虫(Worm)、恶意移动代码(Malicious Mobile Code)、后门(Backdoor)、特洛伊木马(Trojan Horse)、僵尸网络(Botnet)、僵尸程序(Bot)、内核套件(Rootkit)等。反病毒业界通常采用“三元组命名”规则来命名恶意代码。
在1983年计算机病毒定义正式出现之后,恶意代码在近30年发展过程中重要和著名的案例有Brian病毒、Concept病毒等。恶意代码的发展趋势:恶意代码的复杂度和破坏力不断增强、恶意代码技术的创新越来越频繁、关注重点从计算机病毒转到蠕虫和内核级的攻击工具等。
1.1.1 计算机病毒
计算机病毒在1983年由Fred Cohen首次提出。1994年我国的《中华人名共和国计算机安全保护条例》给出了我国对计算机病毒的具有法规效力的定义。计算机病毒的基本特性:感染性、潜伏性、可触发性、破坏性、衍生性等。计算机病毒潜在的感染目标可分为可执行文件、引导扇区和支持宏指令的数据文件三大类。计算机病毒的传播渠道包括移动存储、电子邮件及下载、共享目录等。
1.1.2 网络蠕虫
网络蠕虫是一种通过网络自主传播的恶意代码,可以进行自我复制。蠕虫的内部组成结构有弹头、传播引擎、目标选择算法、扫描引擎和有效载荷。
-
蠕虫获取目标系统访问权常用的技术有缓冲区溢出攻击、文件共享攻击、利用电子邮件传播、利用其它普遍的错误配置等;
-
传播引擎通常利用的网络传输机制包括文件传输协议FTP、小文件传输协议TFTP、超文本传输协议HTTP、服务信息块协议SMB以及原始SOCKET套接字等;
-
蠕虫可选择的目标有电子邮件地址、主机列表、被信任的系统、网络邻居主机、域名服务、通过特定规则任意选择IP目标地址等;
-
蠕虫的有效载荷有附加的攻击代码、植入后门、安装分布式拒绝服务攻击代理、组件僵尸网络、执行一个复杂的计算等。
1.1.3 后门与木马
后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道;木马(特洛伊木马)是指一类看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。
后门工具能够为攻击者提供多种不同类型的访问通道,包括本地权限提升和本地账号、单个命令的远程执行、远程命令行解释器访问、远程控制GUI、无端口后门等。对于UNIX平台,后门工具则也可以利用inittab系统初始化脚本、inetd网络服务配置、与用户登录或程序激活相关的用户启动脚本、Crond后台程序计划任务来配置自启动等。
特洛伊木马程序的目的有欺骗用户或系统管理员安装特洛伊木马程序、隐藏在计算机的正常程序中等。
1.1.4 僵尸网络与僵尸程序
僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展融合而产生的一种新型攻击方式。僵尸网络是指攻击者处于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。僵尸网络具有恶意性和网络传播性。最早出现的IRC僵尸网络由僵尸网络控制器(botnet controller)和僵尸程序两部分组成。
僵尸程序分为主体功能模块和辅助功能模块,主体功能模块包括命令与控制模块和传播模块,辅助功能模块包括信息窃取模块、主机控制模块、下载更新模块和防分析检测模块。当前主流的僵尸网络命令与控制机制有基于IRC协议的命令控制机制、基于HTTP协议的命令与控制机制和基于P2P协议的命令与控制机制三大类。
1.1.5 Rootkit
Rootkit属于特洛伊木马的范畴。根据操作系统的分层,Rootkit可以运行在用户模式和内核模式两个不同的层次上。除了这两种传统模式Rootkit之外,还有虚拟机模式Rootkit。针对类UNIX平台的用户模式Rootkit是Rootkit的最初模式,实现用户模式Rootkit主要有使用现有接口在现有Windows函数之间注入恶意代码、关闭Windows文件保护机制后覆盖硬盘上的文件、利用DLL注入和API挂钩操纵正在内存中运行的进程三种技术。
大多数内核模式Rootkit采用如下技术:文件和目录隐藏、进程隐藏、网络端口隐藏、混杂模式隐藏、改变执行方向、设备截取和控制等。Linux操作系统中利用LKM机制来实现内核模式Rootkit有Adore、Adore-ng、KIS(Kernel Intrusion System)等,目前实现的Windows内核模式Rootkit有NT Rootkit、Fu Rootkit等。
1.2 恶意代码分析方法
这部分包括恶意代码分析技术概述、恶意代码分析环境、恶意代码静态分析技术、恶意代码动态分析技术。
1.2.1 代码分析技术概述
代码分析或称程序分析,是按需求使用一定规则、方法和工具对计算机程序进行分析,以推导出其程序结构、数据流程和程序行为的处理过程。恶意代码分析的关键点在于构造受控的分析环境。恶意代码分析的技术方法主要包括静态分析和动态分析两大类。
1.2.2 恶意代码分析环境
恶意代码分析环境有恶意代码发烧友的分析环境、基于虚拟化构建恶意代码分析环境、用于研究的恶意代码自动分析环境。
1.2.3 恶意代码静态分析技术
恶意代码静态分析主要技术手段有反病毒软件扫描、文件格式识别、字符串取分析、二进制结构分析、反汇编、反编译、代码结构与逻辑分析、加壳识别与代码脱壳等。
1.2.4 恶意代码动态分析技术
恶意代码动态分析主要技术手段有快照对比、系统动态行为监控、网络协议栈监控、沙箱、动态调试等。其中,系统动态行为监控软件包括文件行为监控软件、进程行为监控软件、注册表监控软件、本地网络栈行为监控软件等。目前常用的动态调试器软件包括Windows平台下的开源Ollydbg软件、微软推出的免费软件windbg商业软件IDA Pro和SoftICE等,以及类UNIX平台下的gdb、systrace、ElfShell等。
二、实践内容
动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
分析实践任务二:
任务:分析的数据源是用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、那些攻击成功了?是如何成功的?
三、实践过程
动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
1. 解压下载的压缩文件,将RaDa放入虚拟机Windows attck的cmd启动目录下(C:\Documents and Settings\Administrator)中,同时打开终端,输入file RaDa.exe
,查看该文件类型,这是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。其中 PE32
表示这是一个32位的运行在windows操作系统上的程序, GUI
表示这个程序是一个有图形界面的程序, intel 80386
表示处理器架构。
2. 使用 PEiD
工具查看 RaDa.exe
的基本信息 (PEiD是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳)
这里可以看到文件的入口点、偏移、文件类型、EP段、汇编程序以及加壳类型(UPX壳,版本为 0.89.6 )
3. 输入strings RaDa.exe命令
,查看 RaDa.exe 中可打印字符串,发现全是乱码,这说明软件被加壳,需要脱壳。
![](https://img2022.cnblogs.com/blog/2773184/202205/2773184-20220502200045335-870365463.png)
4. 使用超级巡警工具对文件进行脱壳,该工具有这个壳的样本库,可以自动脱壳,省去了手工脱壳的麻烦,打开程序,并选择目录路径下的rada.exe
脱壳成功,恶意程序同目录下生成了一个脱壳以后的程序。
5.再次使用 strings RaDa_unpacked.exe
命令查看脱壳后的RaDa.exe,可以看到产生大量函数调用名以及其他有用字符串,但并未查找到作者信息。
6. 打开监视工具 process explorer
,这是进行进程监控的一个程序,当打开这个工具,同时运行恶意程序,在进程监控里点击该恶意程序,右键选择 Properties
查看详细信息,发现恶意程序的作者信息,是Raul siles和David Perze于2004年编写的:
动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
1. 首先检查一下两个文件的完整性,通过md5sum命令计算其 md5 值
2. 使用 file
命令来分析该恶意程序的大概信息,切换到恶意程序所在目录,分别执行 file crackme1.exe
和 file crackme2.exe
来查看两个文件信息:
看到这两个文件都
是32位 windows 下 PE 文件,没有图形界面,是命令行程序。
3. 对 crackme1.exe 进行分析。在cmd中尝试运行该程序,试探其输入格式。
4. 接下来利用 IDA Pro 打开crackme1.exe程序分析,,选择文件类型为PE,打开 Strings 窗口可以查看该程序中出现的字符串。通过 Strings 窗口可以查看到该程序中出现的明文字符串,可以看到前面的两种输出信息,“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”两个字符串。猜测前者就是我们需要的口令,后者就是输入口令正确时程序的反馈信息。
5.验证上述猜测正确,得到“您知道如何与项目对话,逆向工程师先生”成功。
6.接下来通过view
——graphs——
function calls操作查
看函数调用图(Function Call)可以发现:关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用print和fprint函数输出
可以得出结论:
程序是用 C 语言编写,可以发现字符串比较函数 strcmp
和输出函数 fprintf
和 printf
,
7.估计程序是使用 strcmp
函数来比较口令的。那么关键部分就在 sub_401280
函数中,打开 sub_401280
函数的流程图
cmp [ebo+arg_0],2
为判断程序是否有两个参数。如在命令行输入 crackme1.exe 1
,那么参数对应的值为 argc=2,argv={”crackme1.exe”,”1”}
。如果有两个参数,那么进行下一步判断,程序用 I know the secret
对应的字符串和用户输入的口令相比较,通过比较的结果反馈口令是否正确。
8.对crackme2.exe进行分析
同样用IDA pro
工具来打开 crackme2.exe
进行分析,可以看到明文字符串如下:
9.再看函数调用图,发现核心函数还是 sub_401280
。
10.查看 sub_401280流程图
函数通过 cmp [ebp+arg_0],2
判断程序参数是否为两个;通过参数个数的判断后,接着用strcmp函数对argc里面的第一个字符串,即程序名,和 crackmeplease.exe
进行判断。
11.通过程序名判断后,对用户输入的口令与“ I know the secret
”判断。
12. 通过口令判断后,通过一定规则输出通过测试的信息。具体是 unk_403080
中的字符串分别与0x42h进行异或运算。
13.测试,修改完运行程序名后输入crackmeplease.exe "I know the secret"
,发现回复为"我有一个小小的秘密:巧克力",
成功。
分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
实践分析过程:
1. 查看摘要和文件类型:md5sum RaDa.exe
指令得到其md5摘要。利用file RaDa.exe
识别出这是32位GUI文件
2.使用 IDA 对RaDa_unpacked.exe
进行分析(在第一个实践中已被脱壳程序),进入 Strings 对话框,在菜单栏中的Edit中点击Setup,设置类型为 Unicode。
3.查看Strings信息参数:可以看到作者和日期信息
4. 同上面的实践一样,获取文件类型,检测壳,以及脱壳。打开之前用过的监视工具 process explorer
和 wireshark
开启监听,并运行恶意程序RaDa.exe,分析其程序运行详细信息:
通过HTTP协议请求 10.10.10.10\RaDa\RaDa_commands.html
,连接到目标为10.10.10.10的主机下的一个名为RaDa_commands的网页,之后又下载和上传文件到 C:/RaDa/tmp
。
将文件 RaDa.exe
复制到了 C:\RaDa\bin
目录下,可以看出该恶意代码将其自我复制到主机系统盘,并激活了自启动,还试图从一个HTML页面获取并解析命令,故猜测这应该是一个后门程序。往下看可以发现该恶意程序似乎对主机实行了DDos拒绝服务攻击
5.再往下看可以发现该恶意程序对主机的注册表进行了读写和删除操作。
6. 再往下看可以看到一些指令,exe
在宿主主机中执行指定的命令, get
下载, put
上传, screenshot
截屏, sleep
休眠。使用wireshark进行分析:
7.使用wireshark进行分析,可以看到受害主机向目标主机 10.10.10.10
发送了大量的数据包。
8. 再打开 IDA Pro
进行简单分析,首先查看字符串 string
,进入 Strings 对话框,在菜单栏中的Edit中点击Setup,设置类型为 Unicode。
9. string里把unicode选中查看字符串。这时可以查看到很多的字符串:
10. 点击这些字符串就可以找到调用的函数。如 --authors
查阅资料发现这个参数的作用是:如果确认不是在VMware的虚拟机中运行,则显示样本的作者;否则显示参数不存在。进入调用函数:
看一下VMware tools,双击选中的字符串进行定位:
发现其调用函数 sub_404FB0
,这个函数中,这个字符串被拷贝到变量 dword_40C070
中,搜索到这个变量对应的函数是 sub_40AAA0
。
11. 查看函数 sub_40AAA0
流程图,这个函数首先进行网卡配置信息的查询,然后确认 dword_40C070
对应的字符是否存在,若存在则判断vmware tools是不是在注册表里面。可以发现这只是作者为了防止通过参数得到作者信息的手段。
-
提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息。
- MD5摘要信息:
caaa6985a43225a0b3add54f44a0d4c7
- 是一个 Windows PE 可执行文件
- 使用了UPX加壳工具进行了加壳处理,加壳方式
UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
- MD5摘要信息:
-
找出并解释这个二进制文件的目的。
- 通过上面的分析可知,连接互联网时,该恶意程序就会通过http请求连接到指定主机,进行接受攻击者指令操作,并且攻击者可以完全控制该系统,所以这应该是一个后门程序。
-
识别并说明这个二进制文件所具有的不同特性。
- 该程序启动之后将自己复制到c盘之中,并且每过一段时间就会尝试与10.10.10.10建立tcp连接。
-
识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术。
- 使用了UPX加壳工具进行了加壳处理
-
对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
- 猜测是后门程序,因为该恶意代码不具有自主传播模块,故不属于病毒和蠕虫,也并未进行伪装,故不是木马,并且该程序执行需攻击者远程发送指令。
-
给出过去已有的具有相似功能的其他工具。
- Bobax——2004也是使用HTTP协议从指定的服务器下载命令文件,然后解析并执行其中的指令。
-
可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
- 可以,恶意程序的作者信息,是Raul siles和David Perze于2004年编写的。
分析实践任务二:
任务:分析的数据源是用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、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
- IRC是Internet Relay Chat的英文缩写,中文一般称为互联网中继聊天。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。
- IRC是一种公开的协议,采用TCP和SSL协议。一个IRC服务器可以连接其他的IRC服务器以扩展为一个IRC网络。
- IRC用户通过客户端软件和服务器相连。大多数的IRC服务器不需要客户注册登录,但在连接前必须设定好昵称(nickname)。IRC是一个分布式的客户端/服务器结构。通过连接到一个IRC服务器,我们可以访问这个服务器以及它所连接的其他服务器上的频道。IRC频道存在于一个IRC服务器上。一个频道类似于一个聊天室,频道名称必须以#符号开始,例如#irchelp。IRC机器人是一些运行在后台或者服务器上的程序,通过登陆某一个频道,分析接受到的内容并做出相应的动作。
- 当IRC客户端申请加入一个IRC网络时,发送nickname。一般使用6667(6660~6669)端口。
2、僵尸网络是什么?僵尸网络通常用于什么?
- IRC语境下的僵尸网络是指IRC机器人连接成的IRC网络;采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络 。
- 通常用于DDos攻击、分布式扫描、暴力密码破解等。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
- 由于IRC协议使用TCP连接,要找出与蜜罐主机通讯的IRC主机,可以利用建立TCP连接的三次握手过程进行分析。只需要找出蜜罐主机向哪些机器的IRC端口发送过SYN包,即可找出蜜罐主机试图通讯的IRC服务器。
- IRC协议最常用的端口为6667,在WireShark中对日志文件进行分析,可以看到除了6667外其他端口上没有数据包,因此这里所有的IRC数据都使用的是6667端口。于是可以利用如下表达式过滤出蜜罐主机向6667端口发送的SYN包:
ip.src == 172.16.134.191 and tcp.dstport == 6667 and tcp.flags.syn == 1
共过滤得到21个tcp包,利用此表达式进行IP Address统计,得到如下结果:
4、在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
首先在wireshark中尝试利用 ip.src ==209.196.44.172 || ip.dst ==209.196.44.172
进行筛选,结果只有蜜罐主机:
这里选择装一下sudo apt-get install tcpflow
然后输入命令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"获取209.196.44.172与172.016.134.191之间的所有的 IRC 数据包,得三个文件,172.016.134.191.01152-209.196.044.172.06667
、209.196.044.172.06667-172.016.134.191.01152
和report.xml,report.xml
因为要找的是访问 209.196.44.172
的主机,所以着重看第一个文件。使用代码 209.196.044.172.06667-172.016.134.191.01152
这个文件进行筛选:
cat 209.196.044.172.06667-172.016.134.191.01152 | grep "^: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
这个指令是管道连接的,第一条是 cat
命令,连接209.输出文件。第二条 grep
搜索获取昵称输出行。第三条 sed
去除前缀,最后的 g
是全局的意思。第三条 tr
将空格转换为换行。第四条 tr -d
删除 \r
。第五条 grep -v
就是NOT指令,去除空行。第六条 sort -u
排序并去除重复。最后一条 wc -l
输出行数。
5、那些IP地址被用于攻击蜜罐主机?
使用以下命令查找端口并输出到1.txt 中(tcpdump -nn: 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示;grep -v:排除指定字符串;cut -d '.' -f 10:截取以'.'为分隔符的第 10 列;uniq命令用于检查及删除文本文件中重复出现的行列; wc -l 用于统计文件的行数),总共148个端口
接着使用如下指令找出所有的可能连接的主机的IP地址。这个指令的作用就是将连接IP地址输出到2.txt中: 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 > 2.txt;wc -l 2.txt (其中
awk -F
就是指定分隔符,可指定一个或多个, print
后面做字符串的拼接。)
可以看到一共有165个主机被用于蜜罐入侵:
6、攻击者尝试攻击了那些安全漏洞?
输入snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
查看一下网络流分布情况。大部分都是TCP包,所以我们首先应该筛选出响应的TCP端口
使用指令筛选出蜜罐主机相应的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
用wireshark打开文件botnet.pcap,分析个端口,wireshark中使用条件tcp.dstport==80 && ip.dst == 172.16.134.191
进行筛选,这些是目标地址为172.16.134.191
、目标端口为80
的数据包。个人未发现攻击现象。
得到的TCP端口有 135(rpc)、 139(netbios-ssn)、 25(smtp)、 445(smb)、 4899(radmin)、 80(http)
;udp端口有 137(netbios-ns)
。
逐个分析所用的端口,首先是 udp 137
号端口,这个是在局域网中提供计算机的IP地址查询服务,处于自动开放状态,所以访问这个端口肯定就是 NetBIOS 查点了。
接下来看 tcp 135
号端口和 25
号端口,我们看到只是进行了连接,但是是没有数据传输,所以这攻击者可能是对这两个端口进行了 connect 扫描。
查看 TCP 80
端口,首先利用 Wireshark 进行筛选 tcp.dstport==80 && ip.dst == 172.16.134.191
,首先连接最多的就是 24.197.194.106
这个IP,他的行为就是不停的用脚本在攻击 IIS 服务器的漏洞,从而获取系统权限。
接下来是 210.22.204.101
访问的80端口,攻击者是想通过缓冲区溢出攻击来获得一个命令行
下一个访问 80
端口的是 218.25.147.83
,这里会看到 c:\notworm
,说明这是一个蠕虫攻击。上网搜索发现是红色代码(red code)病毒
然后关注 TCP 139
号端口。这个也比较简单,虽然有很多主机连接到这个端口的,但是基本都是一样的,大部分都是连接,然后很多空会话,同样也没有成功,所以应该是SMB查点。
然后分析 TCP 445
端口。这个端口连接非常多,可以看到许多 samr
, srvsvc
字符串,查询字符串后很容易发现一个 PSEXESVC.EXE
字符串,是由 61.111.101.78
发起的,通过对这种字符串的搜索,发现这是一种Dv1dr32蠕虫,这种蠕虫正是通过IRC进行通信。
找出口流量,发现每个IP地址连入的连接都有响应的回应,并且返回信息中含有 \PIPE\ntsvcs
,通过搜索可知,这是一个远程调用,所以攻击者肯定是获得了权限,因此这个攻击成功的。
最后一个 TCP 4899
端口。只有 IP 地址 210.22.204.101
访问过。可以查到 4899 端口是一个远程控制软件 radmin 服务端监听端口,这个软件不是木马,应该是上面攻击成功后上传这个软件方便控制。
7、那些攻击成功了?是如何成功的?
其余的 ip 地址均为正常访问蜜罐.
通过蜜罐主机80端口向外的流量进行分析,发现蜜罐主机做的回应均为一个 iis 服务器的默认页面,所以80端口的这些攻击均失败。
四、学习中遇到的问题及解决
在打开脱壳Rada.exe程序时,遇到错误如下
解决办法:重装WinXP攻击机。
五、学习感想和体会
本次实验内容多,难度大,在参考众多同学和前辈学长的经验下仍是耗用了大量时间,希望自己接下来能够有毅力坚持下来,学有所成,毕竟自己专业是网络空间安全。