20212905 2021-2022-2 《网络攻防实践》第八次作业

20212905 2021-2022-2 《网络攻防实践》第八次作业

1.实验内容

  1. 动手实践任务一:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者
  2. 动手实践任务二:分析Crackme程序,寻找特定的输入,使其能够输出成功信息
  3. 分析实践任务一:分析一个自制恶意代码样本rada,并撰写报告
  4. 分析实践任务二

恶意代码
定义:恶意代码 (Malware, 或 Malicious Code) 指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。
攻击目标包括但不限于:
单纯的技术炫耀,或恶作剧;

远程控制被攻击主机,使之能为攻击者的傀儡主机,满足其实施跳板攻击或进一步传播恶意代码的需要;

窃取私人信息(如用户账号/密码,信用卡信息等)或机密信息(如商业机密、政治军事机密等);

窃取计算、存储、带宽资源;

拒绝服务、进行破坏活动(如破坏文件/硬盘/BIOS等)。

发展趋势:
恶意代码的复杂度和破坏力不断增强:从早期简单感染 DOS 操作系统的 Brain 病毒到复杂的内核级后门工具和破坏力强大的蠕虫,恶意代码在快速传播、隐蔽性、破坏力和对抗性上都在不断的发展;

恶意代码技术的创新越来越频繁:特别是在最近的几年中,大量的新概念被不断地提出,同时验证这些新概念和新技术的恶意代码也频繁地公布与众;

关注重点从计算机病毒转移到蠕虫和内核级的攻击工具:在 20 世纪 80~90 年代,恶意代码的关注重心在于感染可执行程序的计算机病毒,但从最近几年的发展趋势来看,更多的关注焦点已经转移到对整个互联网造成严重危害的僵尸网络、网页木马,以及内核级的高级攻击技术。

计算机病毒
1994 年《中华人民共和国计算机安全保护条例》给出了我国对计算机病诗的具有法规效力的定义:“计算机病毒是指编制或者在计算机程序中插入的,破坏计算机功能或数据、影响计算机使用,并能自我复制的一组计算机指令或者程序代码”。

基本特性:感染性、潜伏性、可触发性、破坏性、衍生性。
感染及引导机制:可执行文件、引导扇区、支持宏指令的数据文件。
网络蠕虫
网络蠕虫 (Worm) 是一种通过网络自主传播的恶意代码,它的出现相对于传统计算机病毒和木马、后门来说比较晚,但无论从传播速度、传播范围还是破坏程度上来讲,都是以往的恶意代码所无法比拟的。

基本特性:

有效载荷:
植入后门:使得攻击者可以远程完全控制目标系统,最有效的后门可以使用 Rootkit 技术隐藏在目标系统中,以保证攻击者长期的控制;

安装分布式拒绝服务攻击代理:等待攻击者命令,对一些互联网在线主机或服务实施分布式拒绝服务攻击;

组建僵尸网络:植入僵尸程序,所有被蠕虫侵占的主机将连接到一个僵尸网络中,从而被攻击者更有效地控制,并灵活地依据攻击者命令进行各种攻击行为;

执行一个复杂的计算:有时蠕虫编写者的目标仅仅是通过传播蠕虫掌握更多的计算资源,构造出一个分布式虑拟超级计算机,来执行一些特殊复杂计算,如破解强力密码,解决数学计算难题等。

后门和木马
后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道;而木马作为特洛伊木马的简称,是指一类看起来具布某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。

后门工具能够为攻击者提供多种不同类型的访问通道:

本地权限提升和本地账号:使得攻击者能够将其权限等级提升为系统管理员,或者新增一个本地账户,有了这些用户权限,攻击者可以任意访问系统及其文件;

单个命令的远程执行:攻击者可以通过此类后门单独执行一个命令,并获得命令运行结果;

远程命令行解释器访问:即远程 Shell, 这类后门允许攻击者通过网络快速直接地输入能够在目标系统上运行的 Shell 命令,并获得运行结果。此类后门工具最著名的有“瑞士军刀”之称的 Netcat;

远程控制 GUI:能够以图形化界面的方式来访问目标系统,并提供较远程 Shell 功能更多,更简单易用的访问接口,如可以让攻击者看到远程目标系统的操作桌面,控制鼠标移动和键盘输入,访问文件系统,甚至控制远程摄像头等。此类后门工具包括 VNC、BO 和我国的冰河、灰鸽子等;

无端口后门:可以无须打开 TCP 或 UDP 监听端口的无端口后门,具体包括 ICMP 后门,基于 Sniffer 非混杂模式的后门,基于 Sniffer 混杂模式的后门等。

恶意代码分析
恶意代码分析的技术方法主要包括静态分析和动态分析两大类。

静态代码分析方法在不实际执行软件代码情况下对恶意代码进行自动化或辅助分析,通常包括使用反病毒引擎扫描识别已知的恶意代码家族和变种,逆向分析获取恶意代码的关键程序信息、模块构成、内部数据结构和关键控制流程,理解恶意代码的机理,并提取特征码用于检测。
动态代码分析方法则通过在受控环境中执行待分析的目标恶意代码,并利用系统、网络、甚至指令层次上的监控技术手段,来获取目标代码的行为机理和运行结果。
反病毒软件扫描:进行恶意代码分析最直接的方法是使用现成的反病毒软件来扫描待分析的样本,以确定反病毒软件是否能够识别该样本,以及所识别的类型、家族、变种等信息。利用反病毒软件进行扫描的方法充分利用了反病毒业界对恶意代码样本的积累性专业知识、经验和分析实践,能够为你自己的分析提供一些有用的信息帮助。

字符串提取分析:字符串提取分析是代码静态分析中非常简单但是很有用的一环,利用一些专用的字符串提取工具,我们可以彻底地搜查目标程序,并提取出程序中 3 个或更多的连续可打印字符所组成的全部字符串,这些字符串中通常包含了很多可用于理解程序行为的信息内容,通过进一步的分析和查找,将对进一步的恶意代码分析提供更多的参考信息。

二进制结构分析:大部分以二进制文件形式存在的恶意代码,如可执行程序、动态链接库、内核驱动模块、静态程序库等,其生成过程是高级语言源代码的通常的编译和链接过程,由编译器将源代码文件转换为可执行指令序列代码,并进一步由链接器将目标文件中的各种函数和需要的库链接在一起。从而形成能够直接运行或者调用的二进制文件。

反汇编 (Disassemble) 与反编译 (Decompile):反汇编与反编译是对二进制程序编译链接的逆过程,反汇编是把二进制程序的目标代码从二进制机器指令码转换为汇编代码的处理过程,而反编译则更进一步,期望将汇编代码再进一步还原成高级编程语言形式的源代码。

2.实验过程

2.1 动手实践任务一

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

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

使用file命令,查看RaDa.exe,该文件为带有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。

使用PEiD,查看该文件信息,发现其使用了UPX加壳

然后使用UPX脱壳机脱壳

使用IDA对脱壳后的文件进行分析,查看字符串,在最后发现编写作者为Raul siles&David Perze,编写时间为2004年9月

2.2 动手实践任务二

分析Crackme程序

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

首先在命令行运行crackme1.exe

使用IDA打开crackme1.exe,然后f5反编译该文件,得到反编译后的代码

分析程序逻辑,只要输入I know the secret,即可满足程序要求。

然后对crackme2.exe进行分析,使用IDA打开,按F5反汇编

分析程序逻辑,发现需要满足argv[0] = "crackmeplease.exe",且argv[1] = "I know the secret"。而argv[0]是执行时文件的名字,所以需要将crackme2.exe改名为crackmeplease.exe,然后跟上参数"I know the secret"

2.3 分析实践任务一

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

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

该文件的md5摘要为caaa6985a43225a0b3add54f44a0d4c7

使用IDA打开,查看strings,

发现一个url,应该是该程序被执行后访问了该url

然后判断了三个网段分别为192.168.、172.16.、10.,这是三个私有网段,也就是说确保服务器在私有网段中,然后到服务器去取命令文件。

该程序还对注册表进行了操作

程序的具体参数以及其功能

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

Q:找出并解释这个二进制文件的目的。
A:攻击者可以完全控制该系统,是一个后门程序。

Q:识别并说明这个二进制文件所具有的不同特性。
A:会请求 Web 服务器;解析获得的指令并执行。复制自身到C盘,并写入开机自启动中

Q:识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术。
A:UPX 压缩技术。

Q:对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
A:不具有传播和感染的性质,所以不是病毒和蠕虫;也没有将自己伪装成有用的程序以欺骗用户运行,不是木马。是一个后门程序。

Q:给出过去已有的具有相似功能的其他工具。
A:木马Bobax,特洛伊木马Setiri、GatSla

Q:可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
A:作者为Raul siles 和 David Perze。使用ida或strings能查看,或者在非vmware环境下执行--authors参数

2.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、那些攻击成功了?是如何成功的?

IRC为因特网中继聊天(Internet Relay Chat)。IRC 的工作原理非常简单,只需要在自己的 PC 上运行客户端软件,然后通过因特网以 IRC 协议连接到一台 IRC 服务器上即可。IRC 特点是通过服务器中继与其他连接到这一服务器上的用户交流。注册时需要发送的消息有三种,分别是口令,昵称和用户信息。IRC 服务器明文传输通常在 6667 端口监听,也会使用 6660—6669 端口。SSL 加密传输在 6697 端口。

僵尸网络是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络;它是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息也都可被黑客随意“取用”。

使用 Wireshark 打开被分析的日志文件,设置以下过滤条件:ip.src == 172.16.134.191 && 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"tcpflow分流筛选指定host与端口6667,产生了三个文件,209.196.044.172.06667-172.016.134.191.01152172.016.134.191.01152-209.196.044.172.06667report.xml。根据题目要求重点查看第一个文件。

使用管道命令进行筛选,得到3462个。grep搜索获取昵称输出行;sed:去除前缀;tr:将空格转换为换行;tr -d删除\rgrep -v:去除空行;sort -u排序并去除重复;wc -l:输出行数。

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

使用tcpdump查找可能连接主机ip的地址,uniq命令用于检查及删除文本文件中重复出现的行列,输出到1.txt中,查看ip.txt,可以看到很多地址

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 > ip.txt;wc -l ip.txt

查看ip.txt,其中的ip地址可能被用于攻击蜜罐主机

然后使用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端口,即SYN/ACK标志为1

再用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端口

打开wireshark对各个端口进行分析

过滤http请求,发现攻击者尝试了溢出、目录穿越等攻击,但均未成功

过滤445端口,发现执行了\System32\PSEXESVC.EXE

其他端口也未发现攻击成功

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

对实践中相关的 Linux 命令不了解,查资料后有所了解

4.实践总结

通过本次实验,动手实践了恶意代码文件类型识别、脱壳与字符串提取,动手实践了分析 Crackme 程序,分析了恶意样本,学习掌握了取证分析。

posted @ 2022-05-02 21:56  daolgts  阅读(33)  评论(0编辑  收藏  举报