20212934 2021-2022-2 《网络攻防实践》第八次

实验目标

动手实践任务一

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

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

2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;

3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

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

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

 

知识梳理

1)恶意代码定类和分类

恶意代码:恶意代码(Unwanted Code)是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件

恶意代码的类别:

计算机病毒:是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码

蠕虫:蠕虫病毒是一种常见的计算机病毒。它是利用网络进行复制和传播,传染途径是通过网络和电子邮件。它能传播它自身功能的拷贝或它的某些部分到其他的计算机系统中(通常是经过网络连接)。与一般病毒不同,蠕虫不需要将其自身附着到宿主程序,蠕虫病毒一般是通过1434端口漏洞传播

恶意移动代码:恶意移动代码是一段计算机程序,能够在计算机或网络之间传播,未经授权、故意修改计算机系统。一般来说,公认的恶意移动代码的变异型可以分为3类:病毒类、蠕虫类和木马程序

后门:后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击

特洛伊木马:如今黑客程序借用其名,有“一经潜入,后患无穷”之意,特洛伊木马没有复制能力,它的特点是伪装成一个实用工具,诱使用户将其安装在PC端,从而秘密获取信息

僵尸程序:僵尸程序通过聊天室,文件共享网络感染存在漏洞的计算机。这些被感染的计算机所保存的 信息都可被黑客随意取用

 

内核套件:用以获取并保持最高控制权的一类恶意代码

二进制结构分析


1、二进制文件的形成
1)编译:将源代码文件转换为可执行执行序列代码
2)链接:将目标文件中的各种函数和需要的库链接在一起
2、在类UNIX平台操作系统中使用binutils工具,查看编译链接后的二进制程序中留下的一些提示。
1strings
2nm,在可执行二进制文件中查找一些被称为符号的重要数据元素(函数名,调用地址,重要的变量名和位置及常量),可以查看二进制程序使用的编译器。如果病毒编写者使用strip命令,则找不到符号表
3Objdump,从目标文件中显示出文件头部摘要信息、目标文件运行框架、重定位入口、符号表入口、不同的代码段、编译器编译代码时使用的程序等。
反汇编,输出目标文件完整的反汇编代码。

IDA PRO

交互式反汇编器或简称为IDA。是最棒的一个静态反编译软件,为众多世界的成员和shellcode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或其他操作系统平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。

实验步骤

动手实践任务一

使用win控制台打开rada.exe文件,发现结果为乱码

 

 

 用一下攻击进行脱壳处理,在查看文件信息后,脱壳成功。

 

 

 IDA Pro Free选择脱壳后的文件,可以看到文件的作者等信息

动手实践任务二,分析crackme程序

打开IDA Pro,在IDA Pro打开crankme,通过string窗口可以看到程序中出现的明文字符串,可以看到几种输出信息。猜测其中内容是需要的口令,和程序在接受到口令后输出的内容。

 

 view中选择graphsfunction call,查看调用函数关系,发现401280是关键部分

 

 研究关键数据的汇编语言(在view中选择graphsFlow chart中查看程序流图)。

 

 进行分析,在进行验证时输入 i know the secret ,显示回复发生变化

接下来分析crackme2.exe

操作步骤如上,打开crankeme2的函数调用图分析,发现401280函数是关键,查看该函数的汇编语言。大概判断出“i know the secret”是关键口令。

 

 

 

 

 当验证程序名正确,密码正确时,输入指令  i know the secret   可以发现验证成功。

 

 

 

 

分析实践任务一:

分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:

输入命令md5sum Rada.exe,得到md5摘要如下

 

 

 打开所需要的软件如下,打开完成后运行RADA.exe,使用Process ExploreWireshark进行监控

 

 

 

 打开Process Explorer,并运行脱壳后的exe文件,查看rada文件的属性,可以看到恶意代码使用http连接到10.10.10.10的主机,进行了上传和下载操作

 

 wireshark监听的数据分析,可以看到受害主机向目标主机10.10.10.10发送了大量的数据包

 

 使用Process monitor分析,发现Rada还进行了很多注册表的操作

 

 推断该恶意代码的目的可能是在执行程序之后将自己写入系统文件中,之后更改注册表使得可以开机自启动。

 

 

 

分析实践任务二:

 

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

 

 

  IRC指的是是因特网中继聊天(Internet Relay Chat) 。 IRC 的工作原理非是在自己的 PC 上运行客户端软件,然后通过因特网以 IRC 协议连接到一台IRC服务器上。IRC 采用TCP 通讯方式,默认登录端口为TCP 6667,当TCP 6667 端口不通时,会尝试其它不同的TCP 端口,直到登陆失败。 TCP 6667 端口为主要通讯端口。
  僵尸网络是攻击者传播僵尸程序控制大量主机,通过一对多的命令与控制信道组成攻击网络,是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态基础上发展融合而产生的一种新型攻击方式。

wireshark中打开文件botnet_pcap_file ,筛选ip.src==172.16.134.191 && tcp.dstport ==6667

分析可得蜜罐主机 ip地址172.16.134.191 。发现与

63.241.174.144   ,  217.199.175.10   209.196.44.172  209.126.161.29进行了通信

 

下载tcpflow软件,输入tcpflow -r botnet_pacp_file.dat 'host 209.196.44.172 and port 6667'

 

 

 

 

 

 输入cd+文件所在使用目录,进入文件目录

 

 

 获取209.196.44.172与172.016.134.191之间的所有的 IRC 数据包,得三个文件

 

 输入指令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查看多少不同的主机访问了以209.196.44.172为服务器的僵尸网络

 

 

 输入指令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 > 20192403.txt;wc -l 20192403.txt将攻击蜜罐主机的ip筛选出输出至20192403.txt文件中。

 

输入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端口得到的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筛选响应的udp端口。结果显示udp 137端口,此端口在局域网中提供计算机的IP地址查询服务,处于自动开放状态,可用于NetBIOS查点。

 

 使用过滤规则tcp.port == 135 || tcp.port == 25过滤数据包;发现全是一堆TCP连接请求但是并没有数据传输,因此攻击者只是对这俩端口进行了conncet扫描;

 

使用过滤规则tcp.dstport == 139过滤数据包;139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务

 

过滤条件tcp.dstport==4899&&ip.dst==172.16.134.191

可以判断SVCCTL服务漏洞攻击成功,PSEXESVC蠕虫攻击成功。

 

 

 

 

 

期间碰到问题:

期间kali无法联网,网卡不能使用,参考https://www.freesion.com/article/78341266890/重置了网卡。

 

posted @ 2022-05-08 21:45  哲学焕着  阅读(37)  评论(0编辑  收藏  举报