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

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

1.实验内容

1.1 什么是恶意代码?

恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。这些代码通常具有自我复制的能力,能够通过感染其他程序或文件来传播自身,并在特定条件下执行恶意操作。

1.2 有哪些恶意代码?

  • 计算机病毒:计算机病毒是一种能够自我复制并感染其他程序或文件的恶意代码。它们通常附着在其他合法程序上传播,当被感染的程序运行时,病毒也被激活。

  • 蠕虫:蠕虫是一种能够自我复制并独立传播的恶意代码,不需要附着在其他程序上。它们通常利用系统漏洞或弱密码传播,并可以自动在多个系统或网络中移动。

  • 特洛伊木马:特洛伊木马是一种假装成合法软件或文件的恶意代码,用户被诱骗安装看似无害的程序,但实际上包含恶意有效负载。木马可能具有多种恶意功能,如窃取敏感数据、创建后门或允许攻击者远程控制受感染的系统。

  • 间谍软件:间谍软件以隐蔽的方式收集用户个人信息,如浏览历史、输入密码等,威胁用户隐私。

  • 广告软件:广告软件展示广告或弹出广告窗口,影响用户体验,有时会捆绑其他恶意软件。

  • 后门程序:后门程序是隐藏在系统中的秘密入口,允许攻击者绕过正常认证机制访问系统。

  • 僵尸网络:僵尸网络由大量被控制的主机组成,攻击者通过一对多的命令与控制通道进行通信。

1.3 恶意代码的危害

  1. 数据泄露和盗窃
    • 个人信息泄露:恶意代码可能通过窃取用户的个人信息,导致个人隐私被侵犯。
    • 敏感数据泄露:企业或组织内部的敏感数据,可能因恶意代码而泄露,造成重大损失。
    • 金融欺诈:恶意代码还可能用于金融欺诈活动,给用户带来经济损失。
  2. 系统瘫痪和破坏
    • 勒索软件:某些恶意代码(如勒索软件)会加密用户文件并要求赎金以解密文件,导致系统无法正常运行。
    • 病毒破坏:病毒等恶意代码可能会毁坏硬件设备或操作系统,导致系统崩溃,无法正常使用。
    • 僵尸网络:攻击者利用恶意代码控制大量主机组成僵尸网络,进行攻击,导致网络拥堵甚至崩溃。
  3. 对用户隐私和安全的威胁
    • 监视用户活动:恶意代码可能会监视用户的在线活动,侵犯用户的隐私。
    • 窃取敏感信息:除了个人信息外,恶意代码还可能窃取用户的登录凭据、密码等敏感信息,用于非法目的。
    • 远程控制受感染设备:攻击者可以通过恶意代码远程控制受感染的设备,执行恶意操作。
  4. 经济损失
    • 直接经济损失:恶意代码导致的系统瘫痪、数据丢失等问题,需要花费时间和金钱进行恢复和修复。
    • 间接经济损失:企业因恶意代码攻击而遭受的商业秘密泄露、生产系统瘫痪等,可能导致业务中断、客户流失等间接经济损失。
  5. 国家安全威胁
    • 信息战工具:恶意代码已成为信息战的重要手段之一,可能被用于窃取国家机密、破坏关键基础设施等,对国家安全构成严重威胁。
  6. 社会影响
    • 信任危机:恶意代码的频繁爆发和广泛传播,可能导致公众对信息技术的信任度下降,影响社会的稳定和发展。

1.4 恶意代码检测技术

  • 特征值检测技术:通过对已知的恶意代码样本进行哈希处理或字符串匹配,来检测文件中是否包含恶意代码的特征。这种方法的优点是准确率高,但缺点是对于未知的恶意代码无法检测。

  • 校验和检测技术:通过计算文件的校验和来判断文件是否被篡改或感染恶意代码。常见的校验和算法有MD5和SHA1等。这种方法的优点是简单易行,但缺点是对于未知的恶意代码同样无法检测。

  • 启发式扫描技术:一种基于人工智能的恶意代码检测方法。其原理是通过分析可疑文件的代码结构和行为模式,来判断文件是否具有恶意性质。启发式扫描能够检测出未知的恶意代码,但其误报率较高。

  • 虚拟机检测技术:一种基于虚拟执行环境的恶意代码检测方法。其原理是将可疑文件放入虚拟机中执行,并监控其行为。如果发现可疑行为,则认为该文件为恶意代码。虚拟机检测技术的优点是能够检测出加密或变形的恶意代码,但其实现成本较高。

  • 主动防御技术:一种基于动态行为分析的恶意代码检测方法。其原理是通过监控程序的动态行为,如系统调用、网络通信等,来判断程序是否为恶意代码。主动防御技术的优点是能够实时防御未知的恶意代码,但其可能会影响程序的正常运行。

  • 基于机器学习的检测技术:利用机器学习算法对恶意代码进行静态和动态分析。通过选取关键特征(如字节码、IAT表、API调用关系等),并利用深度学习方法(如CNN、LSTM)进行恶意代码的检测。这种方法在提高检测效率和准确性方面具有潜力,但也面临模型可解释性和误报率的挑战。

2.实验内容

一、恶意代码文件类型标识、脱壳与字符串提取

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

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

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

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

二、使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息

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

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

(2)找出并解释这个二进制文件的目的;

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

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

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

(6)给出过去已有的具有相似功能的其他工具;

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

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

四、取证分析实践

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

3.实验过程

3.1 恶意代码文件类型标识、脱壳与字符串提取

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

(1)使用工具file查看恶意代码程序RaDa.exe,如下。

可以看到,返回信息为

RaDA.exe:PE32 executable(GUI)Intel 80386,for Ms Windows, 3 sections

  • PE32 executable: 表明这是一个32位的Windows可执行文件。PE是Portable Executable的缩写,是一种在Microsoft Windows操作系统中使用的可执行文件格式。

  • (GUI): 表示这个可执行文件是一个图形用户界面程序。这意味着当运行这个程序时,它会显示一个图形界面而不是文本界面。后续实验步骤中尝试运训该程序,会弹出弹窗,为图形化界面。

  • Intel 80386: 这指的是该程序是为Intel 80386处理器或更高版本的处理器设计的。

  • for Ms Windows: 这表明该程序是为Microsoft Windows操作系统设计的。

  • 3 sections: 这可能指的是该可执行文件包含三个部分或节(sections)。在PE文件中,常见的节包括代码节(.text)、数据节(.data)和资源节(.rsrc),以及其他可能的节如导入表(.idata)、导出表(.edata)等。

(2)运行该程序,使用工具Process Explorer对该程序的进程进行查看,如下。

可以看到该程序的一些基本信息,得益于PExplorer的强大,可以直接查看该程序的内容(RaDa.exe已经使用upx的方式加壳),并且,该工具也集成了脱壳工具,因此可以直接查看脱壳后的文件,如下。

由此可以提前完成3.1.3部分实验,找到该程序的作者。

(3)使用工具PEiD查看该程序,如下。

可以看到,该文件采用upx的加壳方式,因此,如果直接读取该文件,将会看到乱码。

(4)使用IDA pro工具(进阶),对该程序进行分析,如下。

该工具集成了多项技术,可以直接查看该程序的详细内容。

经过上述步骤,我们已经可以知晓,该程序使用upx加壳,无法直接分析且内容。

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

由上述过程我们如果希望获取其中的有效信息,需要对其进行脱壳,如下。

脱壳后,文件名称为RaDa_unpacked.exe。

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

使用strings工具,对解密后的文件内容进行分析,如下。

可以看到,其中出现了疑似人名的字符串,但任然无法确认该部分就是做作者,因为就算是脱壳后,依然能看到大量的乱码,但相较于未脱壳时已有改善。(该问题具体可以看4.问题及解决方案部分)

此处,尝试使用其他工具对该文件进行分析,分别使用PExplorer和IDA pro对脱壳后的文件进行分析(PExplorer也可以直接查看未脱壳的文件,内容不会改变),如下。

可以清晰的看到作者字段Authors。

但这里存在一个问题,也就是使用不同方式查看该文件,内容不同,strings和PExplorer都存在乱码情况,且二者的内容也不同,使用IDA pro查看的内容最正常,可以清晰地看到各部分功能。(具体分析看4.问题及解决方案部分)

3.2 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息

3.2.1 crakme1.exe

尝试运行该程序,查看该程序功能,如下。

可以看到,输入一段内容后,无法回显正确内容。

使用IDA pro查看该程序内容,看以看到其反汇编后的代码,包括函数调用图等内容,如下。

查看字符串,看以看到先前,试验时的回显,并且还有其他回显以及我们希望的正确回显,共四种“I think you are missing something.”和I know the secret”、“Pardon? What did you say? ”、“You know how to speak to programs”,如下。

IDA pro可以对代码进行反编译,查看对应伪代码,如下。

伪代码是最接近我们编程所使用的代码,也是最容易使用以及分析的代码。

可以看到,改为代码内容接近所学高级语言,分析后可以知道。

如果输入的参数个数为2(./crackm1.exe也算作一个参数),且第二个参数是“I know the secret”,则输出“You konw how to speak to programs,Mr.Reverse-Engineer”。为正确回显。

如果第二个参数不是“I know the secret”,输出“Pardon? What did you say?”。

如果参数个数不为2(及使用2个及以上或0个参数作为输入),输出“I think you are missing something.”。

具体如下图。

3.2.2 crakme2.exe

crakme2.exe的分析过程同上,查看其伪代码,如下。(查看伪代码的原因为,伪代码接近高级编程语言,我们可以直接通过伪代码分析出该程序的具体功能。但是,如果能看懂汇编语言则可以直接通过函数调用图等内容进行分析。我看不懂汇编语言)

该程序功能也是十分简单,如下。

如果第一个参数是“crackmeplease.exe”,第二个参数是“I know the secret”,则输出成功信息,否则输出“Pardon? What did you say?”。

如果第一个参数不是“crackmeplease.exe”,输出“I have an identity problem.”。

如果参数个数不为2./crackm2.exe也算作一个参数,输出“I think you are missing something.”.

如下。

这里存在一个细节问题,因为代码要求第一个参数是“crackmeplease.exe”才能输出正确,但是使用PowerShell的时候,想要运行代码需要在代码前加入“./”,这样的话会使第一个参数变为“./crackmeplease.exe”,不符合正确的情况,应该改为cmd命令行。

3.3 分析一个自制恶意代码样本rada,回答问题

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

使用文件HASH计算在线查询工具查询hash值。

也可以使用命令行的方式进行查询,例如我希望计算md5的hash值,可以使用md5sum RaDa.exe即可计算出对应hsah值,可以看到和网站上计算出的值是相同的。

3.3.2 找出并解释这个二进制文件的目的

使用工具IDA pro查看脱壳后的文件RaDa_unbacked.exe,如下。(使用IDA pro的原因是由于编码不同不同查看方式可能内容存在一定不同,经比较在我的电脑上使用IDA pro查看的文件可读性最高。)

可以看到一些有用的信息,如下。

  • 通过HTTP协议请求10.10.10.10\RaDa\RaDa_commands.html
  • download.cgiupload.cgi进行某些操作,用以实现文件的下载和上传。
  • 在C盘中创建一个C:\RaDa\tmpC:\RaDa\bin文件夹,且C:\RaDa\bin有一个程序RaDa.exe
  • 添加了一个注册表项:
    HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,这个注册表项是控制计算机启动的信息,这样实现了开机自启动RaDa.exe。
  • 在RaDa文件夹中,创建了bin文件夹,将RaDa.exe复制在bin文件夹中。
  • 添加了一个注册表项:
    HKLM\Software\VMware, Inc.\VMware Tools\InstallPath
    该位置的注册表项可控制远程桌面上的客户端驱动器重定向行为。猜想这个操作是为了实现远程控制桌面。
  • Starting DDoS Smurf remote attack...该位置的字符串显示发起DDOS Smurf远程攻击。
  • exegetputscreenshotsleepQuit 等字符串表明可能涉及执行程序、数据传输、屏幕截图、暂停执行和退出程序等操作。

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

  1. 文件执行后,攻击者可以通过指令向被攻击机上传一些数据或是直接下载一些数据。

  2. 同时将自生复制安装在系统文件中,在一定程度上逃避查杀。

  3. 通过修改注册表,实现开机自启动的功能。

  4. 此时攻击机已经控制了被攻击机,活动权限,例如可以进行截屏等操作。

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

使用UPX加壳的方式对文件进行保护,如果直接查看文件,是无法得知其具体内容的,从而可以减小被查杀的概率。

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

该段代码不具备传染性,可以独立执行,不以破坏性为目的,通过远程接受指令,使攻击者非法获取权限,由此可以判断为后门。

3.3.6 给出过去已有的具有相似功能的其他工具

  1. Msfvenom:这是Metasploit框架中的一个独立有效载荷生成器,用于生成各种平台的后门文件。它支持多种输出格式和编码器,以及自定义的有效荷载模板。
  2. Veli:Veil是一个基于Python编写的免杀框架,用于生成MSF的Payload。它通过将任意脚本或一段Shellcode转换成Windows可执行文件,从而逃避常见防病毒产品的检测。

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

  • 在任务一中使用的各种分析工具可以直接查看文件内容,直接可以看到作者的标签。

  • 还可以通过使用脱壳工具,脱壳后,再直接使用string查看文件内容,也能看到作者的标签。

  • 在命令行下直接输入RaDa.exe --authors对作者标签进行检索,可以直接返回查找到的字符串,即为作者。但该方法存在一个问题,作为被攻击者,我事先不知道具体内容是怎样的,如果该程序作者不使用authors作为标签用于显示作者,而是改用其他字符表示作者,或者就没有作者信息,此时,这种方法是无法知道是没有写作者还是没成功找到作者。

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

  1. 基于特征码的检测
    • 基于特征码的检测技术是反病毒软件常用的一种方法。它通过提取病毒样本中的一段或多段字符串(即特征码)作为标志,然后将这些特征码存储在病毒库中。当用户提交的文件或程序被检测时,反病毒软件会将其特征码与病毒库中的特征码进行比对,如果匹配成功,则判断该文件或程序为恶意软件。这种方法的优点在于检测速度快、准确率高,但缺点是需要不断更新病毒库以应对新出现的恶意软件。
  2. 校验和检测
    • 校验和检测技术通过计算文件或程序的校验和(如MD5、SHA等哈希值)来判断其是否被篡改或感染恶意软件。在正常情况下,每个文件或程序的校验和是唯一且固定的。当文件或程序被修改时,其校验和也会发生变化。因此,通过比较当前文件或程序的校验和与原始校验和,可以判断其是否被篡改或感染。这种方法的优点在于能够快速判断文件或程序的完整性,但缺点是无法检测未知恶意软件。
  3. 启发式扫描技术
    • 启发式扫描技术是一种基于规则和模式匹配的检测方法。它通过对目标程序的特性和行为进行分析,判断其是否具有恶意软件的特征。例如,某些恶意软件可能会尝试修改系统注册表、删除重要文件或监控用户活动等。启发式扫描技术会根据这些特征制定相应的规则集合,并对目标程序进行扫描。如果目标程序的行为符合规则集合中的某一条或多条规则,则判断其为恶意软件。这种方法的优点在于能够检测未知恶意软件,但缺点是误报率较高。
  4. 虚拟机检测技术
    • 虚拟机检测技术通过创建一个虚拟环境来模拟真实系统环境,并在其中运行可疑文件或程序。通过观察可疑文件或程序在虚拟环境中的行为和表现,可以判断其是否为恶意软件。虚拟机检测技术可以分为静态分析和动态分析两种。静态分析是在不执行可疑文件或程序的情况下对其进行扫描和分析;而动态分析则是在执行可疑文件或程序的过程中对其进行监控和记录。这种方法的优点在于能够全面了解可疑文件或程序的行为和特性,但缺点是实现难度较大且资源消耗较多。
  5. 主动防御技术
    • 主动防御技术是一种基于行为监控和拦截的检测方法。它通过监控系统调用、网络连接、文件操作等关键行为来判断是否存在恶意活动。当检测到可疑行为时,主动防御技术会立即采取措施阻止其继续执行并发出警报。例如,某些恶意软件可能会尝试通过网络连接发送敏感信息或修改系统设置等。主动防御技术会对这些行为进行实时监控和拦截,从而保护系统免受恶意软件的侵害。这种方法的优点在于能够实时响应并阻止恶意活动的发生,但缺点是需要较高的技术水平和复杂的配置过程。

3.4 取证分析实践

3.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息?IRC一般使用那些TCP端口?

  • IRC(Internet Relay Chat)是一种基于文本的实时互联网通信协议,用于在线交流和讨论。它由芬兰人Jarkko Oikarinen于1988年首创,现已广泛应用于全世界60多个国家。IRC是一种网络聊天协议,IRC允许用户通过客户端软件连接到IRC服务器,并在一个被称为“频道”的地方就某一话题进行交谈或密谈。

  • 当IRC客户端申请加入一个IRC网络时,会发送特定的命令消息

    • NICK :设置用户的昵称(即用户名)。这是用户在IRC网络中的唯一标识符。
    • USER ::提供用户的详细信息,包括用户名、主机名、服务器名和真实姓名。这些信息用于识别用户的身份和来源。
    • JOIN #:请求加入指定的频道。频道是IRC网络中讨论特定话题的地方。
    • PASS (可选):如果IRC网络需要密码验证,则使用此命令发送密码以进行身份验证。
    • MODE +i(可选):请求将用户设置为隐身模式,这样其他用户不会立即看到他们上线。
    • PRIVMSG :(可选):向指定目标发送私人消息或频道消息。
    • QUIT :(可选):退出IRC网络并发送退出消息。
  • IRC一般使用TCP端口6667(明文传输)和6697(SSL加密传输)。其中,端口6667是最常用的IRC端口号,大多数IRC服务器都默认使用此端口号作为标准连接端口;而端口6697则用于安全的IRC连接(SSL/TLS加密),以保护聊天内容的安全性。此外,还有一些非标准的端口可能被特定的IRC网络使用,具体取决于网络的配置和需求。

3.4.2 僵尸网络是什么?僵尸网络通常用于什么?

  • 僵尸网络(BotNet)是一种由大量被恶意软件感染的计算机组成的网络。这些计算机通常被称为“僵尸”或“肉机”,它们在用户不知情的情况下,受到攻击者的控制,执行各种恶意活动。
  • 僵尸网络的常见用途
    1. DDoS攻击:这是僵尸网络最常见的用途之一。通过同时向目标服务器发送大量请求,导致其无法处理正常用户的请求,从而造成服务中断或崩溃。
    2. 数据窃取:僵尸网络可以用于窃取受感染计算机上的敏感信息,如个人身份信息、财务数据、企业机密等。
    3. 发送垃圾邮件:攻击者可以利用僵尸网络发送大量垃圾邮件,用于传播恶意软件、推销假冒产品或进行诈骗活动。
    4. 加密货币挖掘:一些僵尸网络被用于非法挖掘加密货币,利用受感染设备的计算资源赚取非法收益。
    5. 远程控制:攻击者可以通过僵尸网络远程控制受感染的设备,执行恶意指令,如传播更多恶意软件、进行网络扫描或窃取更多信息。
    6. 欺诈和诈骗活动:僵尸网络还可以用于发送虚假优惠信息、执行金融欺诈、进行诈骗电话等违法活动。

3.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?

使用ip.src == 172.16.134.191 && tcp.dstport == 6667 and tcp.flags == 0x2作为过滤条件,如下。

经过分析,可以得出,蜜罐主机与如下的服务器进行通信:

  • 209.126.161.29
  • 66.33.65.58
  • 63.241.174.144
  • 217.199.175.10
  • 209.196.44.172

3.4.4 在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

  1. 下载工具tcpflow。

  2. 使用tcpflow读取文件并设置过滤条件。

    tcpflow -r botnet_pcap_file_20222412.dat 'host 209.196.44.172 and port 6667'

  3. 使用指令统计该过程中多少不同的主机访问了以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 "\r" | grep -v "^$" | sort -u | wc -l

    • cat 209.196.044.172.06667-172.016.134.191.01152:读取文件 209.196.044.172.06667-172.016.134.191.01152 的内容。

    • grep -a "^:irc5.aol.com 353":使用 grep 过滤出以 :irc5.aol.com 353 开头的行。-a 选项表示将二进制文件作为文本文件处理。

    • sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x 😕/g":使用 sed 进行替换操作,删除匹配到的字符串 :irc5.aol.com 353 rgdiuggac @ #x[^x]*x : 部分。

    • tr ' ' '\n':使用 tr 命令将空格转换为换行符,这样每个单词或符号都会在新的一行中显示。

    • tr -d "\r":使用 tr 命令删除所有的回车符(\r)。

    • grep -v "^$":使用 grep 过滤掉空行,即只保留非空行。

    • sort -u:使用 sort 对结果进行排序,并使用 -u 选项去除重复的行。

    • wc -l:使用 wc 统计行数,即最终输出的唯一非空行的数量。

    总计3461台主机访问了以209.196.44.172为服务器的僵尸网络。

3.4.5 哪些IP地址被用于攻击蜜罐主机?

从名为botnet_pcap_file_20222412.dat的pcap文件中提取出目标主机地址为172.16.134.191的数据包的源主机地址,并统计不同源主机的数量,并将结果保存到名为20222412_r.txt的文件中。

tcpdump -n -nn -r botnet_pcap_file_20222412.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more> 20222412_r.txt;wc -l 20222412_r.txt

3.4.6 攻击者尝试攻击了那些安全漏洞?

分别筛选TCP和UDP响应端口,查看哪些端口是开放的。

tcpdump -r botnet_pcap_file_20222412.dat -nn 'src host 172.16.134.191' and tcp[tcpflags]== 0x12 | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
tcpdump -r botnet_pcap_file_20222412.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq

  • TCP:

    • 135
      RPC(Remote Procedure Call,远程过程调用)服务端口。
      通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码。
    • 139
      NetBIOS Session Service。扫描目标计算机的139端口,如果发现有漏洞,可以试图获取用户名和密码。
    • 25
      SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务,用于发送电子邮件
    • 445
      信息流通数据的端口,通常用于Windows系统中的SMB(Server Message Block)协议,实现文件共享和打印共享等功能。
      该端口是黑客攻击的重要目标之一,一些流行性病毒如冲击波、震荡波等都会通过此端口对计算机进行攻击
    • 4899
      远程控制软件(如Remote Administrator)的监听端口。具有远程控制功能,通常杀毒软件无法查出。可以扫描该端口是否开启。
    • 80
      HTTP服务,用于在WWW上发布和接收信息
  • UDP:

    • 137
      NetBIOS Name Service。使用者向某台计算机的137端口发送一个请求,就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、IIS是否正在运行等信息。

3.4.7 那些攻击成功了?是如何成功的?

  • TCP 135

    普通连接并没有进行攻击.

  • TCP 139

    可知,攻击模式相同,大量ip被用于进行攻击。模式均为,先建立TCP连接,再NBSS会话请求请求访问SBM,然后会话请求被目标接受,接着发送SMB请求共享Path: \Pc0191\C,但最后目标主机终止了TCP会话。攻击失败。

  • TCP 25

    只有建立和释放TCP的过程。

  • TCP 445

    SAMR结构网格自适应等协议。有61.111.101.78向蜜罐主机发送PSEXESVC.EXE,
    PsExec通常会被攻击者用作远程主机执行命令,客户端执行psexec.exe后若服务器认证成功,会将psexesvc.exe上传到服务端的ADMIN$目录并作为服务运行,在执行完命令后删除对应的服务和psexesvc.exe。
    psexec建立连接之后目标机器上会被安装一个“PSEXESVC”服务。但是psexec安全退出之后这个服务会自动删除(在命令行下使用exit命令退出)。

  • TCP 4489

    4899端口是一个远程控制软件服务端监听的端口,具有远程控制功能,通常杀毒软件是无法查出它来的。可能被黑客用此来进行远程控制。在TCP连接目标4899端口成功后发生了大量数据交互。攻击成功。

  • TCP 80

    发现了传递大量的AAAA的无用的内容,有可能是为了实现缓冲区溢出攻击或者蠕虫攻击

  • UDP 137

    该端口的通信正常。

4.问题及解决方案

  • 问题:使用不同工具查看脱壳后的RaDa,内容不同,有些工具直接脱壳后依旧存在乱码,有些工具查看脱壳后文件也存在部分乱码。
  • 问题解决方案:这个原因是由于编码体制复杂存在许多的编码标准,对于不同软件、不同电脑来说,采用的编码标准是不同的,所以会出现不同方式,不同软件,甚至是不同电脑上看到的内容是不同的。

5.学习感悟、思考等

在本次实验中,我深入探索了恶意代码分析领域,通过实际操作和理论学习相结合的方式,对Rada恶意代码样本进行了详细的分析和研究。以下是我对此次实验的心得体会与学习感悟。

首先,在文件类型标识、脱壳与字符串提取环节,我学会了如何运用专业工具来识别恶意代码的文件格式、运行平台和加壳信息。通过脱壳处理,我进一步理解了恶意代码的结构和工作原理。同时,利用字符串提取工具,我成功地发现了Rada恶意代码的编写作者线索,这让我深刻体会到了技术手段在网络安全领域的重要性。

其次,在使用IDA Pro进行静态或动态分析crackme1.exe与crakeme2.exe的过程中,我掌握了寻找特定输入以使程序输出成功信息的技巧。这些经验不仅提升了我的编程能力,还锻炼了我的逻辑思维和问题解决能力。

在分析自制恶意代码样本Rada的部分,我全面地了解了该样本的基本信息、目的、特性以及所采用的防止被分析或逆向工程的技术。通过分类和对比已有的相似工具,我更加清晰地认识到了恶意代码的多样性和复杂性。此外,我还尝试调查了该二进制文件的开发作者,虽然面临一定的困难,但这一过程极大地锻炼了我的分析和推理能力。

最后,在取证分析实践环节,我通过对Snort收集的蜜罐主机5天的网络数据源进行分析,揭示了IRC网络、僵尸网络以及蜜罐主机之间的通信关系。这一过程中,我深刻体会到了网络安全取证的重要性和复杂性,也进一步提升了自己的数据分析和判断能力。

posted @ 2024-11-08 14:17  wwwwyg  阅读(10)  评论(0编辑  收藏  举报