20199114 2019-2020-2 《网络攻防实践》第九周作业
20199114 2019-2020-2 《网络攻防实践》第九周作业
一、实践内容
1. 恶意代码基础知识
1.1 恶意代码定义与分类
DEF:恶意代码指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。
分析一下这个定义,首先恶意代码是一组指令集,而并不一定是二进制执行文件。恶意代码的实现方式可以多种多样,如二进制执行文件、脚本语言代码、宏代码,或是寄生在其他代码或启动扇区的一段指令流。
执行目标:
- 技术炫耀、恶作剧;
- 远程控制被攻击主机,使之能为攻击者的傀儡主机,满足其实施跳板攻击或进一步传播恶意代码的需要;
- 窃取私人信息或机密信息;
- 窃取计算、存储、带宽资源;
- 拒绝服务、进行破坏活动(如破坏文件/硬盘/BIOS等)。
类型:
恶意代码类型 | 定义特征 | 典型实例 |
---|---|---|
计算机病毒(Virus) | 通过感染文件或磁盘引导扇区进行传播,一般需要宿主程序被执行或人为交互才能运行 | Brain,Concept,CIH |
蠕虫(Worm) | 一般为不需要宿主的单独文件,通过网络传播,自动复制,通常无需人为交互便可感染传播 | Morris,Code Red,Slammer |
恶意移动代码(Malicious mobile code) | 从远程主机下载到本地执行的轻量级恶意代码,不需要或仅需要极少的人为干预。代表性的开发工具有:JavaScript、VBScript、Java,以及ActiveX | Santy Worm |
后门(backdoor) | 绕过正常的安全控制机制,从而为攻击者提供访问途径 | Netcat,BO,冰河 |
特洛伊木马(Trojan) | 伪装成有用软件,隐藏其恶意目标,欺骗用户安装执行 | Setiri |
僵尸程序(Bot) | 使用一对多的命令与控制机制组成僵尸网络 | Sdbot,Agobot |
内核套件(Rootkit) | 通过替换或修改系统关键可执行文件(用户态),或者通过控制操作系统内核(内核态),用以获取并保持最高控制权 | LRK,FU,hdef |
融合型恶意代码 | 融合上述多种恶意代码技术,构成更具破坏性的恶意代码形态 | Nimda |
后门和特洛伊木马两个概念经常混淆,后门仅为攻击者给出非法访问途径,而特洛伊木马的特征则在于伪装性。
恶意代码的命名规则与分类体系
三元组命名:[恶意代码类型.]恶意代码家族名称[.变种号]
在恶意代码的分类体系方面,反病毒厂商普遍都没有形成规范的分类标准,此外也存在概念混淆、分类不准的情况,事实上各种形态的恶意代码在各个关键技术环节上都有其明确的定义特性,在恶意代码工作机理中最为核心的传播、控制、隐藏和攻击这些关键技术环节中,有着一些特异性的特性,我们可以通过为恶意代码样本添加技术环节维度上的分类标签,从而标识出该样本所具有的一种或多种特性。
基于多维度标签的恶意代码技术形态分类方法
1.2 恶意代码发展史
恶意代码的发展过程
恶意代码的发展趋势
- 恶意代码的复杂度和破坏力不断增强
- 恶意代码技术的创新越来越频繁
- 关注点从计算机病毒转移到蠕虫和内核级的攻击工具
1.3 计算机病毒
基本特性
- 感染性:又称为传染性、自我复制、自我繁殖、再生性,指的是计算机病毒具有把自身复制到其他程序中的特性。感染性是计算机病毒最本质的特性,也是判断一个恶意代码是否是计算机病毒的首要依据。
- 潜伏性:计算机病毒一旦感染目标程序后,并不会立即进行破坏行为,而是在系统中潜伏。同是计算机病毒的感染过程一般也是非常隐蔽的,不会带有外部表现,而且感染速度极快。
- 可触发性:计算机病毒在满足特定的触发条件后,激活其感染机制或破坏机制。触发的实质是一种或多种判断条件控制。
- 破坏性:计算机病毒在出发后会执行一定的破坏性行动来达到病毒编写者的目标。
- 衍生性:计算机病毒的编写者或其他了解此病毒的人可以根据个人意图,对某一个已知的病毒程序作出修改,从而衍生出另外一种或多种病毒变种。
感染及引导机制
计算机病毒潜在的感染目标分为可执行文件、引导扇区和支持宏指令的数据文件三大类。
-
可执行文件:计算机病毒的最普遍感染目标,因为以可执行文件作为宿主程序,当其被用户运行时,依附在上面的病毒就可以被激活取得控制权。最普遍的三种感染方式包括:
- 前缀感染机制:病毒将自身复制到宿主程序的开始,当宿主程序被执行时,操作系统会首先运行病毒代码。
- 后缀感染机制:病毒将自身复制到宿主程序的末端,然后通过修改宿主主程序开始时的指令,加入一条跳转指令,使得在宿主程序执行时首先跳转到病毒代码,执行完病毒代码后再继续执行宿主程序。
- 插入感染机制:病毒在感染宿主程序时,能把它拦腰截断,把病毒代码放在宿主程序的中间。
-
引导扇区:通过BIOS定位磁盘的主引导区,运行存储的主引导记录,接着从分区表中找到第一个活动分区,读取并执行这个活动分区的分区引导记录,而分区引导记录负责装载操作系统。
-
支持宏指令的数据文件:宏病毒感染数据文件的方式为将自身以宏指令的方式复制到数据文件中,因此当被感染的数据文件被应用软件打开时,将自动执行宏病毒体,完成病毒的引导。
传播机制
一旦病毒在计算机系统中被触发,他就会寻找可供感染的宿主程序位置,并复制自身并寄生在宿主上,病毒可能依附在移动存储或硬盘的引导扇区,或者可以嵌入代码的文档、可执行文件或脚本文件。需要借助人类的帮助从一台计算机传播到另一台计算机。
- 基于硬件:软盘、U盘、SD卡等物理介质。
- 基于网络:电子邮件、SMB共享文件等。
1.4 网络蠕虫
网络蠕虫是一种通过网络自主传播的恶意代码,出现较晚,但传播速度、传播范围和破坏程度都前无古人。从定义本质分析,网络蠕虫是一种可以自我复制的代码并且通过网络传播,通常无须人为干预就能传播。
基本特性
如果一个恶意代码不通过网络传播,那么它就不是蠕虫。
恶意代码类型 | 计算机病毒 | 网络蠕虫 |
---|---|---|
复制性 | 自我复制,感染性 | 自我复制,感染性 |
定义特征 | 感染宿主文件/扇区 | 通过网络自主传播 |
宿主 | 需要寄生宿主 | 不需要宿主,独立程序 |
传播路径 | 感染文件或扇区,通过文件交换或共享传播 | 直接通过网络传播,包括内网和互联网 |
传播是否需要用户交互 | 通常需要用户交互 | 一般来说,不需要用户交互,通过目标系统上的安全漏洞或错误配置进行传播。但对于一小部分蠕虫,入有间蠕虫,用户交互是必要的。 |
组成结构
- 弹头:为了侵占一个目标系统,它可以使用一些渗透攻击代码作为“弹头”‘,侵入目标系统,最常用的技术如下:
- 缓冲区溢出攻击
- 文件共享攻击
- 利用电子邮件传播
- 利用其它普遍的错误配置
- 传播引擎:传播引擎通常利用网络传输机制包括文件传输协议FTP、小文件传输协议TFTP、超文本传输协议HTTP、服务信息块协议SMB以及原始SOCKET套接字等,
- 目标选择算法和扫描引擎:一旦蠕虫在受害计算机中运行,目标选择算法开始寻找新的攻击目标,然后利用扫描引擎扫描每一个由目标选择算法确定的地址,确定其是否可以被攻击。
- 有效载荷:蠕虫的有效载荷就是附加的攻击代码,为攻击者在目标系统上执行一些特殊目的的操作。有些螨虫在进入目标之后除了进一步传播,可能不做任何事情,它们的有效载荷就是空的,他们的目的就是以侵占更多的系统为乐,所造成的危害也只是侵占网络带宽和系统运行时间。除了这些没有有效载荷的蝎虫之外,其他蠕虫常常携带的有效载荷包括如下:
- 植入后门
- 安装分布式拒绝服务攻击代理
- 组建僵尸网络
- 执行一个复杂的计算
1.5 后门与木马
后门和木马是恶意代码中经常被混淆的两类技术形态,在实际的样本实例中也往往融
合在一起使用。
后门
从定义特性上进行分析,后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道,后门工具能够为攻击者提供多种不同类型的访问通道,包括如下几种:
- 本地权限提升和本地帐号
- 单个命令的远程执行
- 远程命令行解释器访问(远程Shell)
- 远程控制GUI:VNC\BO\冰河\灰鸽子
- 无端口后门
木马
木马作为特洛伊木马的简称,是指一类看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。
攻击者设计出了无数的木马欺骗和伪装技术,如:
- 命名伪装
- 使用软件包装工具
- 攻击软件发布站点
- 代码下毒
1.6 僵尸程序与僵尸网络
僵尸网络:僵尸网络是攻击者传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
僵尸程序:僵尸程序是攻击者用于一对多控制目标主机的恶意代码 。
功能结构:主体功能包括命令与控制模块、传播模块;辅助功能包含信息窃取模块、主机控制模块、下载更新模块和防分析检测模块。
工作机制:
①攻击者通过各种传播方式使得目标主机感染僵尸程序。
②僵尸程序以特定格式随机产生的用户名和昵称尝试加入指定的 IRC 命令与控制服
务器。
③攻击者普遍使用动态域名服务将僵尸程序连接的域名映射到他所控制的多台 IRC
服务器上,从而避免由于单一服务器被摧毁后导致整个僵尸网络的瘫痪。
④僵尸程序加入到攻击者私有的IRC 命令与控制信道中。
⑤加入信道的大量僵尸程序监听控制指令。
⑥攻击者登录并加入到 IRC 命令与控制信道中,通过认证后,向僵尸网络发出信息
窃取、僵尸主机控制和攻击指令。
⑦僵尸程序接受指令,并调用对应模块执行指令,从而完成攻击者的攻击目标。
僵尸程序的命令与控制机制
- 基于IRC协议的命令与控制机制
- 基于HTTP协议的命令与控制机制
- 基于P2P协议的命令与控制机制
1.7 Rootkit
DEF:一类特洛伊木马后门工具,通过修改现有的操作系统软件,是攻击者获得访问权并隐藏在计算机中。
由于Rootkit通常是一个恶意程序工具包,因此被命名为“Root”+“kit”,即用来获得Root后门访问kit工具包。
根据操作系统的分层,Rootkit可以运行在两个不同的层次上,即用户模式和内核模式。用户模式Rootkit修改的是操作系统用户态中用户和管理员所使用的一些内建程序和库文件,而内核模式Rootkit则直接攻击操作系统最核心的内核,修改内核从而隐藏自身。
用户模式Rootkit:大部分UNIX用户模式Rootkit中集成的工具主要分为五种类型:
- 提供后门访问的二进制替换程序
- 隐藏攻击者的二进制替换程序
- 用于隐藏但不替换的二进制程序
- 一些零散工具如网络嗅探器
- 安装脚本
内核模式Rootkit:较用户模式Rootkit更为彻底并高效地毁坏受害计算机。利用对内核的操作,内核模式Rootkit可以修改内核,彻底的隐藏攻击者在计算机上的活动,大多数内核模式Rootkit采用如下手段:
- 文件和目录隐藏
- 进程隐藏
- 网络端口隐藏
- 混杂模式隐藏
- 改变执行方向
- 设备截取和控制
2. 恶意代码分析技术
2.1 恶意代码分析技术概述
代码分析,或称程序分析,是按需求使用一定的规则、方法和工具对计算机程序进行分析,以推导出其程序结构、数据流程和程序行为的处理过程。
恶意代码分析与针对良性代码和软件的程序分析技术并非有着巨大的差异,它们都可以通过采用的代码分析技术来作为基础,主要包括静态分析和动态分析方法。主要差别在于:
- 不提前知道恶意代码的目的
- 恶意代码具有恶意的工具目的,会对运行环境进行破坏,因此分析时需要受控、可恢复的环境
- 恶意代码分析需涉及二进制代码分析
- 恶意代码会引入大量各种各样的对抗分析技术
静态代码分析方法:通常包括使用反病毒引聚扫描识别已知的恶意代码家族和变种,逆向分析获取恶意代码的关键程序信息、模块构成、内部数据结构和关键控制流程,理解恶意代码的机理,并提取特征码用于检测。
动态代码分析方法:通过在受控环境中执行待分析的目标恶意代码,并利用系统、网络、甚至指令层次上的监控技术手段,来获取目标代码的行为机理和运行结果。
2.2 恶意静态分析技术
恶意代码静态分析的主要技术手段,具体包括:
- 反病毒软件扫描
- 文件格式识别
- 字符串提取分析
- 二进制结构分析
- 反汇编
- 反编译
- 代码结构与逻辑分析
- 加壳识别与代码脱壳等
2.3 恶意代码动态分析技术
恶意代码动态分析的主要技术手段,具体包括:
- 快照对比:获取恶意代码行为结果
- 系统动态行为监控:实时监控恶意代码动态行为轨迹
- 网络协议栈监控:分析恶意代码网络监听端口及发起网络会话
- 沙箱:在受控环境下进行完整的恶意代码动态行为监控与分析
- 动态调试:单步调试恶意代码程序,理解程序结构和逻辑
二、实验过程
1. 动手实践:恶意代码文件类型识别、脱壳和字符串提取
Q:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
-
使用文件格式和类型识别工具,给出
rada
恶意代码样本的文件格式、运行平台和加壳工具 -
使用超级巡警脱壳机等脱壳软件,对rada恶意代码进行脱壳处理。
-
使用字符串提取工具,对脱壳后的
rada
代码进行样本分析,从中发现rada
恶意代码的编写作者是谁
A:
本次实验使用WinXP虚拟机。
在命令行窗口,输入cd 桌面
进入桌面,输入file RaDa.exe
查看rada文件,其类型为32位系统下有图形界面的PE可执行文件。
打开PEiD查看rada德加壳脱壳信息,可以看到加壳的类型为UPX类型。
随后,在命令行窗口输入strings RaDa.exe查看rada中可打印的字符串,发现是一堆不能理解的乱码,所以需要脱壳。
使用超级巡警对rada进行自动脱壳,脱壳后的文件为RaDa_unpacked.exe。
在命令行窗口查看脱壳后的文件的可打印字符串,发现是大量的函数名。
打开监视工具process explorer,之后运行脱壳后的程序,双击查看程序属性,观察Strings栏,可以看到该程序由Raul siles和Dacid Perze写于2004年。
2. 动手实践:分析Crackme程序
Q:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
A:
在命令行窗口输入file crackme1.exe
,查看crackme1.exe的文件类型,可以看出是32位系统下无图形界面的PE可执行命令行文件。
运行crackme1.exe,出现I think you are missing something
,猜测输入缺少参数。
输入一个参数,输出Pardon?What did you say?
,
输入两个参数,输出I think you are missing something
。
之后使用IDA Pro反汇编工具打开crackme1.exe,类型为PE Executable。
观察 Strings window,看到两条未出现的字符串:I know the secret
和 You know how to speak to programs,Mr Reverse Engineer
,不知道什么意思。
随后进行分析,菜单栏View->graphs->function calls.发现通过fprintf和printf输出,则sub_401280是核心函数。
随后查看该函数的流程图,该函数先判断输入的参数个数:
- 若不为2,则输出
I think you are missing something
- 若为2,则再判断第二个参数是否为
I know the secret
,是则输出You know how to speak to programs,Mr Reverse Engineer
。
随后分析crackme2.exe文件,步骤基本相同,直接查看sub_401280的函数流程图,先判断参数个数,若为两个参数,则判断第一个是否为crackmeplease.exe,是则判断第二个参数是否为I know the secret。
验证正确,输出 We have a gift secret:Chocolate
<img src="https://img2020.cnblogs.com/blog/1930271/202004/1930271-20200430001635301-1134447899.png" alt="18" style="zoom:80%;"
3. 样本分析实践:分析一个自制恶意代码样本rada
并撰写分析报告
Q:
- 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
- 找出并解释这个二进制文件的目的
- 识别并说明这个二进制文件所具有的不同特性
- 识别并解释这个二进制文件中采用的防止被分析或被逆向工程的技术
- 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
- 给出过去已有的具有相似功能的其他工具
- 可能查出这个二进制文件的开发作者吗?如果可以,在什么样的环境下和什么样的限定条件下?
A:
命令行窗口,输入md5sum RaDa.exe,查看程序的MD5摘要,为caaa6985a43225a0b3add54f44a0d4c7
.
打开process explorer监视,可以看出该程序启动后通过HTTP协议访问10.10.10.10/RaDa/RaDa_commands.html
,然后下载上传文件,新建了两个文件夹为bin和tmp,并将RaDa文件复制到了bin目录下,看到HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RaDa
修改注册表信息,将RaDa.exe设置为开机启动,接着向下看还发现该程序执行DDos拒绝服务攻击。(注:还看到一个HKLM\Software\VMware,Inc.\VMware Tools\InstallPath
未解)
继续往下看,发现该程序对注册表进行了读写删除操作。
继续往下看,发现出现了exe,put,get,sleep,screenshot字符,推测为执行命令,上传下载文件,截图,休眠。
打开IDA Pro,查看Stirngs栏,将Type改为unicode,
双击HKLM\Software\VMware,Inc.\VMware Tools\InstallPath
这行找到对应的函数sub_404FB0.
在sub_404FB0
这个函数中,这个字符串被拷贝到变量dword_40C070,寻找这个变量对应的函数,为sub_40AAA0
.
然后查看sub_40AAA0
的函数流程图,如下所示:
该函数通过SELECT * FROM Win32_NetworkAdaptrConfi
获取网络适配器信息,然后查看dword_40C070是否存在,若存在则判断vmware tools是否在注册表中。
通过上述分析可以发现这只是作者为了防止通过参数得到作者信息的手段,事实上,--authors
参数对应的处理函数是sub_40B010
,打开流程图,发现这里的处理是如果是虚拟机就输出Unknow argument
,如果不是,就输出正确的作者信息。
回答问题:
- 这个二进制文件摘要信息:
- md5摘要值为
caaa6985a43225a0b3add54f44a0d4c7
- 32位系统带图形界面的PE可执行文件
- UPX加壳文件
- md5摘要值为
- 找出并解释这个二进制文件的目的:
- 这是一个后门程序,能够远程地控制系统,只要通过浏览器上网,就能获得攻击者的指令。
- 识别并说明这个二进制文件所具有的不同特性:
- RaDa.exe执行后,它会自动安装到C盘中,并修改注册表跟随系统开机启动:访问http://10.10.10.10/Rada/Rada_command.html,获取指令;执行获取的指令;等待一段时间后继续按照上述步骤继续执行。
- 启动后,RaDa一直在后台运行,不会弹出任何窗口。并支持exe、put、get、screenchot、sleep命令。
- 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术:
- UPX加壳技术
- 判断是否是虚拟机,若是则不输出真正作者信息。
- 误导别人这是DDos攻击。
- 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由:
- 该程序不具备感染性和传播性,所以不是病毒和蠕虫
- 没有伪装自己是有用的、善意的程序,故不是木马
- 所以可能是后门程序
- 给出过去已有的具有相似功能的其他工具:
- 与其相似的工具还有2004年发现的木马Bobax,还有特洛伊木马Setiri及其前辈GatSla
- 可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
- Raul siles和David Perze于2004年编写
- 不在虚拟机 VMware 中运行
4. 取证分析实践:windows2000系统被攻陷并加入僵尸网络
Q:
- IRC是什么,当一个IRC客户端申请加入一个IRC网络的时候将发送哪个消息?IRC一般使用那个TCP端口
- 僵尸网络是什么?僵尸网络通常用于干什么?
- 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
- 在这段期间,多少不同的主机访问了以
209.196.44.172
为服务器的僵尸网络? - 那些IP地址被用于攻击蜜罐主机?
- 攻击者尝试攻击了那些安全漏洞?
- 那些攻击成功了?是如何成功的?
A:
-
因特网中继聊天(Internet Relay Chat),一般称为互联网中继聊天,简称:IRC。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。注册时需要发送的消息有三种,分别是口令,昵称和用户信息。格式如下:
USER
、PASS
、NICK
。注册完成后,客户端就使用JOIN信息来加 入频道,格式如下:JOIN
。IRC服务器明文传输通常在6667
端口监听,也会使用6660—6669
端口。SSL加密传输在6697
端口。 -
僵尸网络是采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序),从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。僵尸网络是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息。
-
由于IRC服务器通常在6667端口监听,输入过滤条件
ip.src == 172.16.134.191 and tcp.dstport == 6667
过滤规则进行查找,发现蜜罐主机与5台IRC服务器进行了连接:209.126.161.29
、66.33.65.58
、63.241.174.144
、217.199.175.10
、209.196.44.172
。 -
在终端输入
tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
执行之后生成三个文件
172.016.134.191.01152-209.196.044.172.06667
、209.196.044.172.06667-172.016.134.191.01152
和report.xml
因为我们要找的是访问
209.196.44.172
的主机,故此处看第二个文件,输入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.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" # 去除\r
| grep -v "^$" # 去除空行
| sort -u # 排序并去除重复
| wc -l # 获得行数
-
我们假设所有进入蜜罐的流量都是用于攻击,输入命令
tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | grep -v 'reply' | cut -d '.' -f 10 | cut -d ':' -f 1 | sort | uniq | more >1.txt; wc -l 1.txt
查找输出端口并保存到1.txt中。tcpdump -nn: 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示;
grep -v:排除指定字符串;
cut -d '.' -f 10:截取以'.'为分隔符的第 10 列;
uniq命令用于检查及删除文本文件中重复出现的行列;
wc -l 用于统计文件的行数
可以看到共有148个端口被攻击。
输入
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
找出所有可能连接主机的IP地址,并保存到2.txt中。共有165个主机被用于入侵。
-
输入
snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
查询一下网络流分布情况,发现大部分都是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
筛选出蜜罐主机响应的TCP端口,可以看到响应的端口为135(rpc)、 139(netbios-ssn)、 25(smtp)、 445(smb)、 4899(radmin)、 80(http)。再输入
tcpdump -r botnet_pcap_file -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
筛选UDP端口为137。查看TCP 135和25号端口,发现之进行连接,但是并没有数据交互,所以攻击者只是对这两个端口进行了connect扫描。
然后查看TCP 80端口,wireshark中输入过滤条件
tcp.dstport==80 && ip.dst == 172.16.134.191
,发现24.197.194.106 连接最多,故他的行为就是不停的用脚本在攻击 IIS 服务器的漏洞,从而获取系统权限。然后就是210.22.204.101访问的80端口,攻击者通过缓冲区溢出攻击来获取命令行。
然后就是218.25.147.83,可以看到出现
c:\notworm
字样,所以这是一个蠕虫攻击。看对80端口的攻击有没有成功的,我们通过蜜罐主机80端口向外的流量进行分析,发现蜜罐主机做的回应均为一个 iis 服务器的默认页面,所以80端口的这些攻击均失败。
然后看TCP 139号端口,虽然有很多连接到这个端口的,但大部分都没有数据交互,所以应该是 SMB 查点。
然后看445端口,该端口连接非常多,经过观察发现出现
PSEXESVC.EXE
字符串,由61.111.101.78发起,经过查询发现这是一种Dv1dr32蠕虫,这种蠕虫通过IRC进行通信。往下看发现61.111.101.78与蜜罐建立会话,故攻击成功。
最后看TCP 4899端口,只被210.22.204.101访问过,经过百度可以了解到4899端口是一个远程控制软件 radmin 服务端监听端口,不属于木马,应该是攻击成功后上传这个软件方便控制。
还有UD P137端口,该端口在局域网中提供计算机的IP地址查询服务,自动开放,所以访问这个端口为 NetBIOS 查点。
分析结束。
-
通过上面的分析可知,成功的攻击发起者是210.22.204.101 和 61.111.101.78。
三、 学习中遇到的问题及解决
Q:第四个很难很多,不想做。
A:看大佬的,看完也不是很会,所以还处于半解决状态。
四、 学习感想和体会
这次的实验部分是真的很难,做的很勉强,看了别人的博客很多,但是做完了还没有那种豁然开朗的感觉,还是处于一知半解的水平。参照以往的作业来看,有分析的部分都很难,偏实践的部分感觉都比较简单,说明自身理论知识完全不牢固。