20212908 2021-2022-2 《网络攻防实践》实践八报告

一、实践内容

1.动手实践任务一

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

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

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

3.分析实践任务一

分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
(2)找出并解释这个二进制文件的目的;
(3)识别并说明这个二进制文件所具有的不同特性;
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
(6)给出过去已有的具有相似功能的其他工具;
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

4.分析实践任务二

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.动手实践任务一

RaDa是32位PE文件,还是个GUI文件

打开PEiD查看运行平台和加壳工具

使用超级巡警脱壳机,对rada恶意代码样本进行脱壳处理,生成RaDa_unpaked.exe

打开RaDa.exe,发现是乱码

打开RaDa_unpaked.exe,有些可读内容,作者为:Raul Siles && David Perez

2.动手实践任务二

(1)crackme1.exe
使用IDA Pro打开crackme1.exe,View->Graphs->Function calls,打开函数调用图

strcmp是c语言中字符串匹配密码的函数,发现关键的程序段sub_401280,在IDA View-A查看程序段sub_401280

发现strcmp,猜测密码可能是“I konw the secret”

命令行传递参数以空格隔开,字符串用双引号引起来

输入crackme1 “I konw the secret”得到正确的提示,以空格隔开输入多个参数提示其他消息

(2)crackme2.exe
使用IDA Pro打开crackme1.exe,View->Graphs->Function calls,打开函数调用图

打开发现五个明文字符串

strcmp是c语言中字符串匹配密码的函数,发现关键的程序段sub_401280,在IDA View-A查看程序段sub_401280查看程序段,观察到[ebp+arg_4]应该是一个程序名

将程序名改为crackmeplease.exe,测试得出只有一个参数,输入crackeplease.exe “I konw the secret”,得到字符串明文中没有的信息

3.分析实践任务一

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

(2)找出并解释这个二进制文件的目的;
打开WinXPattacker的process explorer进行监听,执行rada.exe,发现其复制到C:\RaDa\tmp\并且新建了temp目录。

打开RaDa_unpaked.exe,查看Strings,分析发现rada.exe使用http连接到目标为10.10.10.10的主机下的一个名为RaDA_commands的网页上,然后分别下载和上传某些文件,并且在受害主机C盘目录下创建一个文件夹“C:\RaDa\tmp”来保存其下载的文件,之后进行了DDos攻击,修改注册表,执行了上传、下载、休眠、屏幕截图等命令

(3)识别并说明这个二进制文件所具有的不同特性;
自我复制到C盘下,修改注册表自启动项。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
使用了加壳工具。
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
不能自主传播,不是病毒、蠕虫;
没有进行伪装,不是木马;
攻击者可以远程发送指令,所以大概率是后门程序。
(6)给出过去已有的具有相似功能的其他工具;
木马Bobax(使用HTTP协议从指定的服务器下载命令文件)、木马Setiri。
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
将rada.exe脱壳后,就能发现二进制文件的开发作者

4.分析实践任务二

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC是英文Internet Relay Chat的缩写,1988年起源于芬兰,已广泛应用于全世界60多个国家,它是“talk”的替代工具但功能远远超过“talk”,IRC是多用户、多频道的讨论系统,许多用户可以在一个被称为“channel”的地方就某一话题交谈或私谈。它允许整个Internet的用户之间即时交谈,每个IRC 的使用者都有一个nickname,所有的沟通就在他们所在的channel内以不同的nickname交谈。
IRC在明文传输时一般使用6667端口,ssl加密时一般使用6697端口。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(英文名称叫Botnet),是互联网上在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展、融合而产生的一种新型攻击方法。往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息也都可被黑客随意“取用”。
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
用wireshark打开botnet_pcap_file.dat文件,输入筛选条件ip.src == 172.16.134.191 && tcp.dstport == 6667,筛选源地址为蜜罐主机,目的端口为6667的包。可得到四个地址:

  • 209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10


(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
在kali终端输入tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"对样本进行分流,得到两个分流后的数据文件209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667和一份报告report.xml

可以通过report文件查看通信双方的ip地址,端口,mac地址等网络信息

使用一个超长的命令,来计算209.196.044.172.06667-172.016.134.191.01152文件中有多少主机访问了209.196.044.172。grep取出昵称,sed去除前缀,tr将空格转换为新行,tr -d去除\r,grep -v "^$"去除空行,sort -u排序并去重,wc计算行数。计算出来结果有3461个
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

(5)那些IP地址被用于攻击蜜罐主机?
使用tcpdump分析一下。指令是:
tcpdump -n -nn -r /home/kali/Desktop/botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > tcpdump.txt;wc -l tcpdump.txt
打开输出的文件,可以看到有166个IP地址被用于攻击蜜罐主机。

(6)攻击者尝试攻击了那些安全漏洞?
使用Tcpdump工具筛选出蜜罐主机有哪些端口是响应的。
输入命令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.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
筛选响应的端口,发现只有137端口,说明攻击者成功访问了137号端口。137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),属于UDP端口。

(7)那些攻击成功了?是如何成功的?
使用wireshark,逐一对筛选出的端口进行排查
ip.addr == 172.16.134.191 && tcp.port == 端口号

  • 135端口:只进行了数据连接

  • 139端口:发现了TCP协议、SMB协议和NBSS协议

  • 25端口:只进行了连接

  • 445端口:发现了可疑程序PSEXESVC.EXE。
    查阅资料:
    PsExec 是由 Mark Russinovich 创建的 Sysinternals Suite中包含的工具。最初,它旨在作为系统管理员的便利工具,以便他们可以通过在远程主机上运行命令来执行维护任务。后来因为太过方便,被利用到内网渗透之中。psexec远程运行需要远程计算机启用文件和打印共享且默认的Admin$共享映射到C:windows目录。psexec建立连接之后目标机器上会被安装一个“PSEXESVC”服务。但是psexec安全退出之后这个服务会自动删除(在命令行下使用exit命令退出)。

  • 4899端口:只进行了连接

  • 80端口
    首先发现了/NULL.IDA?CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...,说明攻击者想通过缓冲区溢出攻击来获得命令行。

    后来又发现了很多使用cmd.exe命令行的信息,怀疑攻击者使用了脚本。

    随后发现了网站www.worm.com,说明攻击者使用了蠕虫。

总结得知,只有对445端口的漏洞发起的PsExec蠕虫攻击是成功的。在这次攻击中,攻击者使用PsExec.exe,获得了远程主机的访问权限

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

四、实践总结

本次实验,进行了恶意代码分析实践,使用了各种工具PEiD、超级巡警脱壳机、IDA Pro、process explorer,了解并掌握了更多分析工具的使用,让我对恶意代码的产生,运行,原理有了更加深入的理解,提高了自己的动手能力。

posted @ 2022-05-04 19:21  Freesia1201  阅读(105)  评论(0编辑  收藏  举报