• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

20212920许绍2021-2022-2 《网络攻防实践》练习八报告


Recommended Posts

20212920 许邵 2021-2022-2 《网络攻防实践》实践八报告

1.实践内容

1.1 动手实践

1.1.1 恶意代码脱壳与提取

对提供的rada恶意代码样本进行文件类型识别、脱壳和字符串提取,获得rada恶意代码的作者。具体操作如下:

(1)利用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和shell工具;

(2)利用超级巡逻脱壳器等脱壳软件对rada恶意代码样本进行脱壳;

(3)利用字符串抽取工具,对带壳的rada恶意代码样本进行分析,找出rada恶意代码的作者是谁?

1.1.2 分析Crackme程序

在WinXP攻击者虚拟机中使用IDA Pro对crackme1.exe和crackme2.exe进行静态或动态分析,寻找特定的输入,使其输出成功信息。

1.2 分析实践

1.2.1 分析一个自制恶意代码样本rada

1.2.2 攻击过程分析

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

任务:分析的数据源是Snort工具收集的蜜罐主机的5天网络数据源,通过编辑去掉一些无关的流量,组合成一个单一的二进制网络日志文件。同时,IP地址和其他特定的敏感信息被混淆,以隐藏蜜罐主机的实际身份和位置。

2.实践过程

本练习中使用的工具:

PEID,strings,super patrol自动脱壳器,IDA Pro,wireshark,md5sum,监控软件Process Explorer,tcpdump

平台:原则上不限,但WinXP攻击虚拟机中提供上述工具。

2.1 恶意代码脱壳与提取

打开rada.exe的属性,发现是一个exe文件。

ksbfpvcecjd6098.png

用PEID看这个程序,发现脱壳工具是UPX 0 . 89 . 6-1.02/1.05-2.90-Markus Laszlo,运行平台是Win32。

2fvdqa02ofx6099.png

用字符串命令分析RaDa.exe,发现有些是乱码。

fg224cr4noa6100.png

使用super patrol进行shell,输出RaDa_unpacked.exe

b13mhezwhus6101.png

(这部分建议把带壳的exe文件放到主机上,虚拟机命令行提示显示行数不足)

然后用strings.exe分析RaDa_unpacked.exe,可以看到输出了一些类似函数名的字符串。

xqlw22pfi5a6102.png

再翻上来,可以找到作者信息。

jvhvkd2c4ia6103.png

2.2 Crackme程序分析

把crackme1.exe拖进艾达。

/> pgng0mjcsdm6104.png
分析函数调用图,不难看出,处理输入信息的可能是sub_401280函数段,因为有strcmp和printf等函数。
hzrzkezscz06105.png
对sub_401280函数段进行分析。
a1vhdsgibvd6106.png
可以得出函数的运作过程:
首先判断输入的参数个数是否为1。如果不是,输出“I think you are missing something”;否则,将输入的参数与“I knew the secret”作比较,正确则输出“You know how to speak to programs...”。
运行该程序,输入参数"I knew the secret",可见,我们的分析是正确的。
dqltgvlxo2e6107.png

再分析crackme2.exe。
负责输入的函数还是在sub_401280中。
cigrdgyzrb26108.png
分析该函数段的流程图,发现大致的流程与crackme1.exe差不多,但是多了一个crackmeplease.exe文件了。
nzs2wclxlyk6109.png
按照crackme1.exe的输入方式输入参数,返回的却是I have an identity problem。流程图里说明:你的这个文件名字不是“crackmeplease.exe”,所以会输出这个提示。
kxpv2qjzn3e6110.png
将这个文件改名为crackmeplease.exe,再输入之前的参数,输出了我们想要的“秘密”。
qimeihevxeo6111.png

2.3 分析代码样本rada

打开命令提示符,cd到RaDa.exe的文件夹下,运行命令md5sum RaDa.exe,输出md5值。运行命令file RaDa.exe,输出文件的基本信息。
1zi34fkdmj26112.png
打开监视软件Process Explorer,然后运行脱壳后的RaDa,也就是RaDa_unpacked.exe(脱壳后的RaDa,乱码更少,更有利于分析)。
在RaDa进程的属性中,我们可以看出许多有用的信息。
lypnk4rqmwc6113.png

1.RaDa.exe先通过HTTP,请求了10.10.10.10\RaDa\RaDa_commands.html
2.将RaDa.exe缓存到C:\RaDa\tmp文件夹下
3.修改注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,将RaDa.exe设为开机启动
4.将RaDa.exe文件存放到C:\RaDa\bin文件夹下
5.发动DDOS远程攻击

至此,我们可以回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
MD5摘要为caaa6985a43225a0b3add54f44a0d4c7
基本信息为:这是个32位的PE文件,在Windows GUI界面下运行。
2、找出并解释这个二进制文件的目的;

  • 利用HTTP协议,发动DDOS攻击
  • 恶意修改注册表信息,将该文件设为开机启动,使其每次开机都能发动攻击
  • 擅自对主机做上传下载操作

3、识别并说明这个二进制文件所具有的不同特性;
RaDa.exe存放在宿主的C盘的RaDa文件夹下,然后通过修改注册表,让它开机启动,使得每当宿主主机启动就能发起DDOS攻击。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
在前面的实践中可以看出,该文件采用UPX对文件进行加壳。
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
应该是一种后门程序。这个文件的主要工作是完成对特定IP地址的DDoS攻击,也有一些控制主机的功能,但不会在其他主机之间进行传播。
6、给出过去已有的具有相似功能的其他工具:
msfvenom
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以。脱壳之后,用strings分析就行。

2.4 攻击过程分析

用wireshark打开botnet_pcap_file.dat。
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息?IRC一般使用哪些TCP端口?
因特网中继聊天(Internet Relay Chat),一般称为互联网中继聊天,简称:IRC。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。经过十年的发展,世界上有超过60个国家 提供了IRC的服务。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。
要加入一个IRC网络,需要发送口令、昵称和用户信息;注册后,会使用JOIN信息加入网络。
IRC使用的端口有:6667(明文传输,如irc://irc.freenode.net)、6697(SSL加密传输,如ircs://irc.freenode.net:6697)等。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
通常用于发动DDoS攻击。
3、蜜罐主机(IP地址:172.16.134.191)与哪些IRC服务器进行了通信?
在wireshark中输入筛选条件ip.src == 172.16.134.191 && (tcp.dstport == 6667 or tcp.dstport == 6697),筛选源地址为172.16.134.191、目的端口为6667或6697的数据包。
4xipy2yuhub6114.png

分析可得以下目的主机的地址:
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为服务器的僵尸网络?
使用tcpflow进行分析,如果是在Kali Linux环境下,需要先安装tcpflow。
tcpflow -r /home/kali/Desktop/botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'
这个命令会将分析的结果输出到report.xml文件中。
打开这个文件,会看到有关TCP流的信息。
fwuaarnoxx16115.png
使用管道命令查看文件。
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
ntbccbocisv6116.png
可以看到,一共有3461台主机访问了僵尸网络。

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,文件会输出到tcpdump.txt文件下。
oawfudjrynk6117.png

打开输出的文件,可以看到有156个IP地址被用于攻击蜜罐主机。
mvkjrgbhn1h6118.png

6、攻击者尝试攻击了那些安全漏洞?
运行以下命令:
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
f4d2qswbjzv6119.png
可以看到,筛出的TCP端口有:
135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)
运行如下命令:
cpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
筛选响应的TCP端口
pbjt1a4youw6120.png
发现,只有137端口,说明攻击者成功访问了137号端口。137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),属于UDP端口。

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

  • 135端口
    cq5hdz14xp36121.png

只是进行了数据连接。

  • 139端口
    ffyzbmyeasw6122.png

发现了TCP协议、SMB协议和NBSS协议。

  • 25端口
    tzhfqhouaeg6123.png

只是进行了连接。

  • 445端口
    xyzzr4jchm06124.png
    发现了可疑程序PSEXESVC.EXE。
    查阅互联网,可以得到以下信息:
    PsExec 是由 Mark Russinovich 创建的 Sysinternals Suite中包含的工具。最初,它旨在作为系统管理员的便利工具,以便他们可以通过在远程主机上运行命令来执行维护任务。后来因为太过方便,被利用到内网渗透之中。psexec远程运行需要远程计算机启用文件和打印共享且默认的Admin$共享映射到C:windows目录。psexec建立连接之后目标机器上会被安装一个“PSEXESVC”服务。但是psexec安全退出之后这个服务会自动删除(在命令行下使用exit命令退出)。
    继续查阅分组,发现返回的信息中,含有\PIPE\ntsvcs,这是一个远程调用,攻击者应该拿到了访问权限,说明这次攻击是成功的。
    kh3cpkhpqx26125.png

  • 4899端口
    1uotnwmestq6126.png
    只是进行了连接。

  • 80端口
    首先发现了/NULL.IDA?CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...,说明攻击者想通过缓冲区溢出攻击来获得命令行。
    ukvbedhqz006127.png
    后来又发现了很多使用cmd.exe命令行的信息,怀疑攻击者使用了脚本。
    b22amjjk0xc6128.png
    dwl5d334mue6129.png
    随后发现了网站www.worm.com,说明攻击者使用了蠕虫。
    ydf5zzbn2xq6130.png
    但是没有成功
    ohcd5fr4jb36131.png
    追踪24号tcp流,发现了类似于Please try this site again later.的提示,说明攻击者访问失败,攻击没有成功。
    rrv4fhxf2416132.png

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

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

暂未发现问题。

4.实践总结

本次实验,让我了解了一些通过恶意代码进行攻击的原理,包括恶意代码的结构、对目标的操作、取证分析等,能够帮助我们对更多的恶意代码进行破解和分析,从而制定安全的防守策略,进一步保证互联网安全。
另外,取证分析是一个细活,不能太粗心了,也不要急躁。

参考资料

  • 因特网中继聊天_百度百科
  • IRC - osoft - 博客园
  • 僵尸网络_百度百科
  • 内网渗透——PSExec工具 - tomyyyyy - 博客园
Link to comment
Share on other sites