20222322 2024-2025-1 《网络与系统攻防技术》实验四实验报告

1.实验内容

1.1 实验要求
一、恶意代码样本分析
文件类型识别:使用工具(如PEID、file等)识别恶意代码样本的文件类型,了解其文件类型。
脱壳处理:若恶意代码被加壳,使用对应的脱壳工具(如VM Unpacker)进行脱壳处理,以获取原始的、未加壳的代码。
字符串提取:使用字符串提取工具(如strings命令、IDA Pro内置功能等)提取有用的字符串信息,如硬编码的IP地址、域名、文件路径等。

二、exe文件分析
静态分析:使用IDA Pro等工具进行静态分析,查看其代码结构、函数调用关系、关键代码段等,找到可能导致输出成功信息的代码路径或条件。
动态分析:使用调试工具(如IDA Pro调试器)进行动态调试。观察执行流程和输出,找到能够触发成功信息输出的特定输入。

三、恶意代码样本rada分析
代码分析:对自制的恶意代码样本rada进行深入分析,了解其实现的功能、使用的技术、潜在的危害等。
行为分析:使用动态分析工具(如Process Explorer、Wireshark等)观察rada的运行行为,包括系统资源的使用、网络通信情况等。
报告撰写:整理分析过程和结果,撰写报告回答问题。

四、取证分析实践
流量分析:使用Wireshark对Snort收集的蜜罐主机5天的网络数据源进行深入分析,查找异常的网络行为。
问题回答:根据流量分析结果,回答相关的问题。

1.2 学习内容概览
(1)恶意代码基础知识:掌握恶意代码(如病毒、蠕虫、僵尸网络等)的概念、分类、传播方式及危害。

(2)静态与动态分析技术:了解恶意代码及普通软件的静态分析和动态分析方法。

(3)工具使用:熟悉PEID、IDA Pro、Process Explorer、Wireshark等工具的功能和使用方法。

(4)网络流量分析:学习网络流量的基本概念、分析方法及常用工具,能够识别和分析网络攻击行为。

2.实验过程

一、恶意代码文件类型标识、脱壳与字符串提取
(1)分析rada样本的文件格式、运行平台和加壳工具

  • 使用 file 命令查看RaDa.exe的文件类型

    文件格式:exe(executable)、运行平台:win32(PE32、for MS Windows)、有图形界面(GUI)、三个节(3 sections)

  • 使用peid工具查看RaDa.exe发现使用了UPX加壳工具

(2)对rada样本进行脱壳处理

  • strings 进行提取,脱壳前RaDa.exe

  • 使用超级巡警脱壳机脱壳

(3)利用字符串提取工具对脱壳后的样本进行分析

  • strings命令查看脱壳后的RaDa.exe文件RaDa_unpacked.exe

    脱壳前文件提取有许多乱码,脱壳后显示正常的文本信息,并且发现该恶意代码作者为Raul Siles&&David Perez

二、利用IDA Pro静态或动态分析所给的exe文件,寻找特定输入信息
(1)分析crackme1.exe
①使用file命令查看crackme1.exe的文件类型

文件格式:exe(executable)、运行平台:win32(PE32、for MS Windows)、无GUI、有七个节(7 sections)

②运行程序,试探输入格式与输出形式

在输入一个参数时会输出“Pardon?What did you say”;其他情况下输出“I think you are missing something.”

③打开IDA pro工具,新建PE Executable,打开文件,点击View->Graphs->Function calls,打开函数调用图,发现只有sub_401280调用了strcmp、printf等函数。

④在Functions页面点击sub_401280,点击View->Graphs->Flow chart,打开函数流程图。


根据对函数流程图的详细分析,找到参数个数和正确的触发输入参数:“I know the secret.”

⑤运行程序,按分析输入相应的参数,输出了成功信息。

(2)分析crackme2.exe
①使用file命令查看文件。

文件格式:exe(executable)、运行平台:win32(PE32、for MS Windows)、无GUI、有七个节(7 sections)

②直接运行crackme2.exe,发现命令不管用,根据提示发现身份认证有问题。

③同样利用IDA pro工具进行分析,打开函数调用图,发现还是sub_401280调用大量处理函数。

④在Functions页面点击sub_401280,再打开函数流程图。

不难发现多了参数的判断流程,所以函数需要将文件的名称改为crackmeplease.exe,通过身份验证。

⑤修改文件名之后再次运行,程序输出了成功信息。

三、分析恶意代码样本rada,并撰写报告
(1)信息获取过程

  • 得到RaDa.exe的摘要和基本信息

  • 点击运行RaDa_unpacked.exe,再打开Process Explorer,找到运行的RaDa_unpacked.exe,并且打开Strings页面查看文件的目的:


    分析如下:

    1. 运行文件后会向http://10.10.10.10/RaDa发送请求,连接RaDa_commands.html进行上传或下载,放入文件C:\RaDa\tmp。

    2. 运行RaDa.exe时,会自动复制该程序到C:\RaDa\bin中。

    3.“DDoSSmurf remote attac”说明还有分布式拒绝服务攻击,发送大量虚假ICMP请求,响应这些请求,从而消耗计算机资源,使其无法正常访问。

    4.通过RegWrite、RegRead、RegDelete这些修改注册表的函数,对注册表进行更改,相应的注册表为“HKLM\Software\Vlware, Inc.Vware ToolsiInstallPath和HKLM\Software"Hicrosoft\Windows\CurrentVersioniRun”

    5.控制电脑进行命令操作:get(下载),put(上传),screenshot(屏幕截屏),sleep(休眠)

(2)回答问题

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

摘要:caaa6985a43225a0b3add54f44a0d4c7
基本信息:可执行文件exe,运行平台是win32,文件运行时有图形界面,包含三个节。

  1. 找出并解释这个二进制文件的目的;

在系统上安装恶意软件,在启动时自动运行。修改注册表,并且控制电脑进行get(下载),put(上传),screenshot(屏幕截屏),sleep(休眠)等操作。发起DDoS攻击,消耗计算机资源,使其无法正常工作。

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

① 该文件运行会对注册表进行读写和删除操作
②会在文件系统中进行创建目录、下载文件等操作。
③该文件能控制主机进行get、put、screenshot、sleep命令
④该文件运行时会进行复制
③会发动DDoS攻击

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

这个二进制文件采用了UPX壳技术,通过在可执行文件头部插入壳代码,在运行时解压并跳转执行原始程序代码,旨在压缩文件的同时混淆代码,防止被分析和逆向工程。在脱壳前,使用strings命令查看会显示乱码,脱壳后才能正常识别内容。

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

这个二进制文件是后门程序,原因在于它不会自主传播或复制,不具备病毒或蠕虫的特征;它不依赖于特定的宿主程序运行,不符合病毒的特征;它没有伪装成正常程序以欺骗用户获取权限,因此也不属于木马。

  1. 给出过去已有的具有相似功能的其他工具;

实验二中使用过“msfvenom”、“veil”生成后门。

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

IDA pro打开RaDa_unpacked.exe文件,strings页面
process explorerStrings窗口,也可以找到相关信息。
限定条件:需要文件未经过混淆处理(加密/压缩等),使用各种字符串提取工具,本次实验中对未脱壳的文件进行分析只能得到乱码。

  1. 给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。

1. 基于特征码的检测方法
基于特征码的检测方法是通过收集已知的恶意软件样本,提取其独特的特征码,并建立一个特征码数据库。在检测过程中,扫描目标文件或系统内存,与特征码数据库进行比对,如果找到匹配的特征码,则判定为恶意软件。
优点:高速高效,能够迅速识别已知的恶意软件。
缺点:无法检测未知的恶意软件或经过变种的恶意软件。
2. 行为监测方法
后门程序等恶意软件在感染计算机后会表现出一些特殊的行为,如修改系统文件、创建新文件、发送敏感信息等。行为监测方法通过分析计算机的行为和操作记录,检测出是否存在异常行为,从而判断是否有恶意软件的存在。
优点:能够发现未知或经过变种的恶意软件,具有较高的灵活性。
缺点:误报率较高,因为正常程序在某些情况下也可能表现出类似的行为。
3. 网络流量监测方法
后门程序通常会通过网络与外部服务器进行通信,传输敏感信息或接收远程指令。通过监测计算机与外部服务器的网络流量,可以检测出是否存在恶意软件。
优点:能够实时发现网络中的恶意通信行为,有助于及时阻断攻击。
缺点:需要专业的网络流量分析工具和技术,且可能受到网络加密等因素的影响。
4. 静态分析方法
静态分析方法是在不执行恶意软件的情况下,对其二进制文件、可执行文件或源代码进行分析,提取静态特征(如API标头、引用的DLL、PE区域等),并与已知恶意软件的静态特征进行比对。
优点:能够在不运行恶意软件的情况下进行检测,降低了系统风险。
缺点:对于经过混淆、加壳等技术处理的恶意软件,静态分析方法可能无法准确提取其特征。
5. 基于机器学习的检测方法
基于机器学习的检测方法通过收集大量的恶意软件和正常软件样本,提取特征并使用机器学习算法训练一个分类模型。在检测过程中,将目标文件的特征输入分类模型,模型会输出一个分类结果,判断其是否为恶意软件。
优点:能够自动学习和适应新的恶意软件变种,具有较高的检测准确率和泛化能力。
缺点:需要大量的训练数据和计算资源,且模型的性能受到特征选择和算法设计的影响。

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

  • IRC是Internet Relay Chat的缩写,即互联网中继聊天;
  • 当IRC客户端申请加入一个IRC网络时,会发送JOIN消息;
  • IRC一般使用6667(明文传输)、6697(SSL加密传输),当6667端口不通时,会尝试6660-6669端口。

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

  • 僵尸网络(Botnet)是指采用传播手段,将大量主机感染病毒,从而形成一对多控制的网络。这些被感染的主机将通过一个控制信道接收攻击者的指令,并组成一个僵尸网络;
  • 通常用于完成非法或恶意的任务:
    ①发送垃圾邮件:造成网络拥堵和邮件服务器的负担。
    ②窃取数据:窃取敏感信息,如银行账户密码、社会安全号码等,对用户的隐私和财产安全构成严重威胁。
    ④投放勒索软件:投放勒索软件,对计算机进行加密并索要赎金。
    ⑤欺诈性点击广告:模拟用户的点击行为,欺诈性地增加广告的点击量,获取不正当利益。
    ⑥DDoS攻击:通过控制大量的僵尸计算机同时向目标服务器发送请求,耗尽其系统资源,导致目标服务器无法处理合法用户的请求。

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
将文件botnet_pcap_file.dat拖入wireshark中,将过滤条件设置为ip.src == 172.16.134.191 and 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

(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
输入命令apt-get install tcpflow,安装软件tcpflower。
输入命令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667",筛选指定的IP地址和端口。



使用命令分析含有“209.196.44.172”的文件包,命令如下:
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
命令分析如下:

  • cat :用于显示文件内容。
  • grep -a "^:irc5.aol.com 353":grep 命令用于搜索文本,-a 处理二进制文件,^表示行的开始,此命令会搜索所有以 :irc5.aol.com 353 开头的行。
  • sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x ://g":sed 是流编辑器,用于对文本进行过滤和转换。 使用 s 命令(替换)来删除特定模式的文本。
    后面是一个正则表达式,模式 “^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x : ”匹配以 “:irc5.aol.com 353 rgdiuggac @ #x ”开头,后面跟着任意数量的非x字符,直到遇到x,然后是一个冒号的字符串。
  • tr ' ' '\n'
    tr 命令用于转换或删除字符。将所有的空格字符替换为换行符。
  • tr -d "\15"
    删除特定的字符\15, 是ASCII控制字符(通常是回车符CR),删除这些字符可以确保每行都正确结束。
  • grep -v "^$"
    使用 -v 选项来反转匹配,即选择所有不匹配模式的行。^$ 匹配空行,所以此命令会删除所有空行。
  • sort -u
    sort 命令用于排序行,-u 选项表示排序时去除重复的行。
  • wc -l
    wc 命令用于统计字数,-l 选项表示只统计行数。


这个命令将输出经过前面所有步骤处理后得到的非空行的数量,可以看到有3461个不同的主机访问了这一僵尸网络。

(5)哪些IP地址被用于攻击蜜罐主机?
使用命令将攻击蜜罐主机的ip筛选出来并输出至文件20222322.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 > 20222322.txt;wc -l 20222322.txt
命令分析如下:

  • tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191'
    tcpdump 是命令行网络分析工具,用于捕获和分析网络流量。
    -n 以数字形式显示IP地址。
    -nn 以数字形式显示端口号。
    -r 从文件中读取数据包。
    'dst host 172.16.134.191' 用于筛选目的IP地址为 172.16.134.191 的数据包。
  • awk -F " " '{print $3}'
    awk 是文本处理工具,用于模式扫描和处理语言。
    -F " " 设置字段分隔符为空格,将每行分割成由空格分隔的字段。
    {print $3} 打印每行的第三个字段。
  • cut -d '.' -f 1-4
    cut 是文本处理工具,用于按列提取文本。
    -d '.' 设置字段分隔符为点(.),这通常用于分割IP地址的四个部分。
    -f 1-4 指定提取整个IP地址。
  • sort
    sort 命令用于对文本行进行排序。
  • uniq
    uniq 命令用于从排序的文本行中过滤出重复的行,只保留唯一的行。
  • more
    more 是一个分页程序,用于逐页显示文本文件的内容。
  • 20222322.txt
    将命令的输出写入到名为 20222322.txt 的文件中。如果文件已经存在,它会被覆盖;如果不存在,它会被创建。
  • wc -l 20222322.txt
    wc 命令用于统计字数,-l 选项指定只统计行数。

该命令是在尝试统计已经写入 20222322.txt 的行数


可见共有165行,总计有165个IP地址用于攻击蜜罐主机。

(6)攻击者尝试攻击了那些安全漏洞?
输入命令筛选响应的tcp端口: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
输入命令筛选响应的udp端口: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

  • tcp的端口有:135(RPC远程过程调用);139(NetBIOS/SMB);25(SMTP简单邮件传输协议);445(SMB,用于文件、打印机等的共享);4899(Radmin,用于远程控制);80(HTTP)
  • udp的端口有:137(NetBIOS)

(7)那些攻击成功了?是如何成功的?
tcp分析:
(1)135

普通建立了连接,未发现异常。

(2) 139

普通建立了连接,未发现异常。

(3) 25

普通建立了连接,未发现异常。

(4)445

发现61.111.101.78往主机发送了PSEXESVC.EXE,允许用户远程执行命令或运行程序,可以应用于攻击,但可以看见被删除了,没有可疑行为。

(5)4899

可以看出该端口有很多的PSH包发送出去,有攻击行为。

(6)80

有大量包含一长串C的包,表现出缓冲区溢出攻击的行为,使之获取cmd的权限。此后也有大量数据交互包,表现出攻击成功。

udp分析:
(1)137

3.问题及解决方案

  • 问题1:对软件工具IDA pro使用方法不是很了解。
  • 问题1解决方案:上网查使用教程并结合同学使用方法进行实践。基础使用可以参考这个链接https://blog.csdn.net/weixin_51758733/article/details/130788126
  • 问题2:对TCP flower比较陌生,不知道如何用其处理数据包。
  • 问题2解决方案:参考同学和处理方法,分析学习使用的命令具体含义。
  • 问题3:缺少通过分析数据包来辨别网络攻击方式的经验,不是很会分析。
  • 问题2解决方案:网络上查找资料,结合与同学交流进行分析学习。

4.学习感悟、思考等

在本次实验中,最大的收获便是更加熟悉各种工具的使用技巧以及如何进行有效的网络取证分析和恶意代码逆向工程分析,提升了网络安全实践能力,深化了网络安全的认知。

通过实际操作巩固了恶意代码、僵尸网络、病毒、蠕虫等关键概念,并掌握了多种分析恶意代码和普通软件的方法。使用PEID、IDA Pro、Process Explorer等工具的过程中,我不仅学会了软件的基本操作技巧,还通过静态和动态分析,如函数调用图、函数流程图等,深入理解了程序的逻辑和行为。

在利用Wireshark和tcpflow等工具对蜜罐主机的网络数据源进行分析时,我深刻体会到了网络流量分析和监控的重要性。通过这一过程,我学会了如何运用过滤器来筛选关键信息,并判断是否存在攻击行为。本次实验更侧重于分析及检测攻击行为,这对分析能力提出了更高要求。

在分析恶意代码样本时,利用IDA Pro和Process Explorer等工具对恶意代码进行了逆向工程分析,这让我对汇编中的调用关系、strings中的信息含义等有了更深入的理解。同时,老师提供的Crackme.exe文件分析视频为整个实验提供了宝贵的参考,使我能够更加顺利地完成实验任务。

posted @ 2024-11-10 21:29  天马行空20222322  阅读(19)  评论(0编辑  收藏  举报