[20212901 薛德凡2021-2022-2 《网络攻防实践》第八次作业 ]

[20212901 薛德凡2021-2022-2 《网络攻防实践》第八次作业 ]

一、实践内容

  • 动手实践任务一

    对提供的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、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

    分析实践任务二:

    Windows 2000系统被攻破并加入僵尸网络

    任务:分析的数据源是用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、恶意代码又称恶意软件。这些软件也可称为广告软件(adware)、间谍软件(spyware)、恶意共享软件(malicious shareware)。是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵犯用户合法权益的软件。与病毒蠕虫不同,这些软件很多不是小团体或者个人秘密地编写和散播,反而有很多知名企业和团体涉嫌此类软件。有时也称作流氓软件。恶意代码编写者一般利用三类手段来传播恶意代码:软件漏洞、用户本身或者两者的混合。有些恶意代码是自启动的蠕虫和嵌入脚本,本身就是软件,这类恶意代码对人的活动没有要求。一些像特洛伊木马电子邮件蠕虫等恶意代码,利用受害者的心理操纵他们执行不安全的代码;还有一些是哄骗用户关闭保护措施来安装恶意代码。

利用商品软件缺陷的恶意代码有Code Red 、KaK 和BubbleBoy。它们完全依赖商业软件产品的缺陷和弱点,比如溢出漏洞和可以在不适当的环境中执行任意代码。像没有打补丁的IIS软件就有输入缓冲区溢出方面的缺陷。利用Web 服务缺陷的攻击代码有Code Red、Nimda,Linux 和Solaris上的蠕虫也利用了远程计算机的缺陷。

恶意代码编写者的一种典型手法是把恶意代码邮件伪装成其他恶意代码受害者的感染报警邮件,恶意代码受害者往往是Outlook地址簿中的用户或者是缓冲区中WEB页的用户,这样做可以最大可能的吸引受害者的注意力。一些恶意代码的作者还表现了高度的心理操纵能力,LoveLetter 就是一个突出的例子。一般用户对来自陌生人的邮件附件越来越警惕,而恶意代码的作者也设计一些诱饵吸引受害者的兴趣。附件的使用正在和必将受到网关过滤程序的限制和阻断,恶意代码的编写者也会设法绕过网关过滤程序的检查。使用的手法可能包括采用模糊的文件类型,将公共的执行文件类型压缩成zip文件等等。

2、僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络 。攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象地让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。

3、计算机蠕虫是一种独立的恶意软件计算机程序,它复制自身以便传播到其他计算机。通常,它使用计算机网络来传播自己,依靠目标计算机上的安全故障来访问它。 与计算机病毒不同,它不需要附加到现有的程序。 蠕虫几乎总是对网络造成一些伤害,即使只是消耗带宽,而病毒几乎总是损坏或修改目标计算机上的文件。蠕虫由两部分组成:一个主程序和一个引导程序。 主程序一旦在机器上建立就会去收集与当前机器联网的其它机器的信息。它能通过读取公共配置文件并运行显示当前网上联机状态信息的系统实用程序而做到这一点。随后,它尝试利用前面所描述的那些缺陷去在这些远程机器上建立其引导程序。

4、木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。

三、实践过程

1、动手实践任务一:分析恶意代码样本

  • 任务:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者

    将RaDa.exe放入Winxp中

    image-20220507144607607

    打开WinXP Attacker,进入所提供的rada.exe目录,输入file rada.exe,查看rada的文件类型为32-bit操作系统下的PE文件,并且有GUI界面。

    image-20220507144712587

使用PEiD工具可以看到文件的入口点为0000FD20、文件偏移为00004120、EP段为JDR1,加壳类型为UPX壳。

image-20220507144842780

输入strings RaDa.exe查看RaDa.exe中可打印字符串,发现都是乱码。

image-20220507144941796

使用超级巡警脱壳机软件,对rada进行脱壳

image-20220507145037704

输入命令strings RaDa_unpacked.exe,查看脱壳后的rada.exe中可打印的字符串,发现有大量的函数调用名。

image-20220507145151330

在WinXPattacker使用IDA工具打开rada_unpacked.exe文件,在string界面中选择Unicode编码

image-20220507145611037

在该处可以发现Authors:Raul Siles & David Perez,2004

image-20220507145753622

2、动手实践任务二:分析Crackme程序

任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。

Crackme1

执行命令file crackme1.exe和file crackme2.exe查看两个的文件信息。通过输出可以判断这两个文件均为windows系统下运行的32-bit可执行程序,是命令行程序,没有图形界面。

image-20220507150654701

在cmd中输入crackme1.exe,尝试运行该程序。根据输出判断缺乏相关口令

image-20220507150813414

使用IDA pro Free工具打开crackme1.exe进行分析,选项均选择默认。

在Strings页面可以看到该程序中出现的明文字符串,发现了刚刚没测试得到的另外两个字符串“I know the secret”“You know how to speak to programs, Mr.Reverse-Engineer”,因此我们猜测I know the secret是我们需要的口令,You know how to speak to programs, Mr.Reverse-Engineer是口输入令正确时的程序反馈信息。

image-20220507150922507

在IDA上选择view—graphs—function calls。发现其中包含函数fprintf和printf ,通过分析判断sub_401280即为核心函数。

image-20220507151446579

打开sub_401280函数的流程图,发现该函数首先判断参数个数是否为2,若参数个数不为2时输出I think you are missing something,若参数个数为2则会将第二个输入与I know the secret作比较,正确则输出You know how to programs

image-20220507152220751

输入crackme1.exe “I know the secret”验证刚刚口令为“I know the secret”的猜想,得到了程序反馈信息“You know how to speak to programs, Mr.Reverse-Engineer”,猜想正确。

image-20220507151107099

Crackme2

分析crackme2与分析crackme1过程类似

image-20220507152503770

查看函数的框图

image-20220507152553903

最后输入copy crackme2.exe crackmeplease.execrackmeplease.exe “I know secret”得到结果We have a little secret:Chocolate

image-20220507152823138

3、分析实践任务一::分析一个自制恶意代码样本rada

(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;

输入命令md5sum Rada.exe,得到md5摘要为“caaa6985a43225a0b3add54f44a0d4c7”

(2)找出并解释这个二进制文件的目的;

该文件下载后门到目标主机,发动DOS攻击,与10.10.10.10主机进行了通信,并查询了Mac地址。

(3)识别并说明这个二进制文件所具有的不同特性;

该文件会添加注册列表、移动文件位置至C盘,并与10.10.10.10建立相关连接,接收相关指令并执行相关指令。

(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;

采用了UPX加壳技术,直接对文件进行解析会呈现乱码形式,然而会被一件脱壳。

(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;

对该文件分析时,未发现其包含自主传播的部分因此判断其不是病毒或蠕虫,并且该程序没有附加在邮件等,判断也不是木马。攻击者利用该程序远程接收执行命令,判断为后门程序或者僵尸程序。

(6)给出过去已有的具有相似功能的其他工具;

木马Bobax,特洛伊木马Setiri

(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

Raul siles和David Perze于2004年开发所得

分析过程

输入命令md5sum Rada.exe,得到md5摘要为“caaa6985a43225a0b3add54f44a0d4c7”

image-20220507161746156

该文件下载后门到目标主机,发动DOS攻击,与10.10.10.10主机进行了通信,并查询了Mac地址。

启动破壳后的恶意软件RADA_unpacked并用radaprocess explorer软件进行监测。在Properties可以看到它通过HTTP协议连接到10.10.10.10主机下RaDa的网页上

image-20220507162228845

查询了数据库相关信息、对应Mac地址等等

image-20220507162611871

在c盘C:\RaDa\tmp目录下创建用于保存下载文件的文件夹,恶意软件还修改了注册表(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)将rada设置为开机启动。

image-20220507162324005

该文件运行时会在主机执行put、screenshot、get等命令。put表示将目标主机的文件上传至攻击者指定的主机;screenshot表示对当前屏幕内容截图;get表示将指定主机的文件下载至目标主机。

image-20220507164103952

作者相关信息:是Raul siles和David Perze于2004年编写的。

image-20220507145753622

4、分析实践任务二::分析一个自制恶意代码样本rada

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?

IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天,相比于ICQ来说,它更具人性化,而且是即时式的聊天,更接近真实的聊天情景,它的特点是速度快。

IRC的工作原理非常简单,只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为"Channel"(频道)的地方就某一话题进行交谈或密谈。每个IRC的使用者都有一个Nickname(昵称)。
申请加入前要先注册,注册时需要发三种信息:用户信息USER、口令PASS 以及昵称NICK、注册完成后,客户端就可以使用JOIN 信息来加入频道。

IRC通常使用6660-6669端口,其中一般使用6667端口进行明文通信,如果是使用SSL进行加密通信则使用6697端口。

(2)僵尸网络是什么?僵尸网络通常用于什么?

僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。

往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息也都可被黑客随意“取用”。还有监听用户敏感信息、记录键盘输入信息、扩散新的恶意软件和伪造点击量等

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?

通过浏览流量的大体状况,并了解到IRC的通信端口为6660 - 6669。以ip.addr == 172.16.134.191&&tcp.port == 6667作为筛选条件,发现蜜罐主机与5台IRC服务器进行了连接,分别是:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172

image-20220507201108235

image-20220507201126271

4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

使用命令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"产生三个文件主要包括一份报告report.xml包括上述双方的ip地址,端口,mac地址,通信时间等等。以及两个分流后的数据文件209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667。

image-20220507202533731

利用管道命令cat 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(grep搜索获取昵称输出行;sed:去除前缀;tr:将空格转换为换行;tr -d删除\r;grep -v:去除空行;sort -u排序并去除重复;wc -l:输出行数)对第一个文件进行筛选,得到其中包含3461个主机

image-20220507202836828

(5)那些IP地址被用于攻击蜜罐主机?

利用命令cpdump -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 > 20212901xdf.txt;wc -l 20212901xdf.txt筛选可能被用于攻击蜜罐主机的ip输出保存到20212901xdf.txt.查到有165个被攻击的端口。

image-20220507203122790image-20220507203453850

image-20220507203521534

(6)攻击者尝试攻击了那些安全漏洞?

使用命令snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii,查看网络流分布情况

image-20220507203621618

大部分为TCP包

image-20220507203759655

使用命令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、139、25、445、4899、80。主要对应TCP:IRC、HTTP(80)、NETBIOS session(SMB)(139);UDP:NETBIOS(137)、RPC(1434)

image-20220507203824355

1.在Wireshark中以ip.dst==172.16.134.191 && tcp.dstport==80 && http作为过滤条件,发现其中标识的WEB-IIS ISAPI、dafault.ida,分析可得发现这是一个红色代码蠕虫攻击:

image-20220507204050915

2.在Wireshark中以ip.dst==172.16.134.191 && tcp.dstport==445作为过滤条件,发现其中包含可执行文件:PSEXESVC.EXE,当客户端运行此软件时,攻击方就可以远程控制执行文件的主机,然后获取权限:

image-20220507204404281

3.在Wireshark中以ip.dst==172.16.134.191 && udp.dstport==1434作为过滤条件,这是一串远程调用协议的相关数据包SQL ,询问得知为Slammer的蠕虫病毒。

image-20220507204852189

4.对于端口135和25,用wireshark以tcp.port == 135 || tcp.port == 25作为筛选条件,发现只有连接,无数据传输

image-20220507205404754

7)那些攻击成功了?是如何成功的?

由上述分析可得针对TCP445端口的PSEXESVC攻击成功了,当客户端运行此软件时,攻击方就可以远程控制执行文件的主机,然后获取权限。

四、学习中遇到的问题及解决

问题1:Kali中没有安装tcpflow,无法运行tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"命令

问题1解决方案:通过apt install tcpflow 安装后解决

问题2:分析阶段不知道如何下手

问题2解决方案:查阅相关资料,参考其他同学。

五、实践总结

本次实验较为复杂从多个角度进行了攻击的实验,很多部分都是第一次接触难度较大,其中包括反汇编,脱壳等等,还有很多知识需要学习。

posted @ 2022-05-07 21:04  纯蓝色111  阅读(97)  评论(0编辑  收藏  举报