20252916 2025-2026-2 《网络攻防实践》第8周作业

20252916 2025-2026-2 《网络攻防实践》第8周作业

1.知识点梳理与总结

1.1 实践内容

动手实践任务一

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

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

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

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

分析实践任务一:

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

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

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

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

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

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

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

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

分析实践任务二

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

1.2 知识点总结

1. 恶意代码静态分析基础

  • 通过 file 等命令可以快速识别文件的格式、架构及运行平台。
  • 恶意代码普遍采用加壳技术以对抗静态分析,利用xinXP自带的脱壳工具可以提取有效信息。
  • 利用 strings 等命令提取脱壳后的可打印明文字符串。
  • 恶意代码的定性分类依赖其核心机制:RaDa样本因不具备自主传播和感染能力,但拥有隐蔽通信通道、远程指令执行和群控特征,故被判定为远程控制后门/僵尸网络客户端(Bot)。

2. 软件逆向工程与防逆向技术

  • IDA Pro 是逆向工程的核心工具,通过查看函数调用图和汇编控制流图可以精准定位并还原程序底层逻辑。
  • 典型的逆向分析包括梳理输入校验逻辑(如 cmp [ebp+arg_0], 2 检查命令行参数个数)和核心口令校验机制(如调用 strcmp 比对内存中的硬编码明文字符串)。
  • 恶意或受保护程序常采用反分析技术增加逆向难度,例如程序自身文件名校验陷阱,以及将关键提示信息通过异或运算(如 XOR 0x42)进行加密存储和动态循环解密。

3. 网络流量取证与僵尸网络分析

  • 了解了常见网络协议是流量分析的基础:IRC是一种常用于早期僵尸网络的实时通信协议,通常使用TCP 6667端口,通过 NICKUSERJOIN 等命令建立连接与加入频道接收指令。
  • 僵尸网络是被攻击者远程控制的主机集群,常被用于执行DDoS攻击、窃取信息、发送垃圾邮件等破坏行为。
  • 借助 Wireshark、tcpdump 和 tcpflow 等抓包与流提取工具,防守方可以通过设置严格的过滤规则来提取攻击源。
  • 判断攻击是否成功需结合具体的流量特征分析:单纯的TCP三次握手或RST拒绝包通常为端口扫描或未遂攻击;而成功的攻击通常伴随着异常的载荷传输与权限获取。

2.实验过程

2.1 动手实践任务一

  1. 首先在学习通中下载rada.rar压缩包,然后用vmtools工具复制粘贴到Kali虚拟机中

    image-20260428093332297

  2. 由于Kali 默认不带 RAR 解压工具,需先安装 unrar,再用 unrar x 解压。安装解压后如下图。

    image-20260428093803726

  3. 进入rada的目录,使用file RaDa.exe命令查看文件的类型,返回的信息显示该文件是一个有GUI图形界面的32位的windows平台上的可移植可执行程序

    image-20260428094048636

  4. 使用命令strings RaDa.exe查看该文件的字符串,可以看见许多乱码,说明已经加壳

    image-20260428094239152

  5. 把实验文件拖拽至winXPattacker中

    image-20260428095650652

  6. 使用WinXP虚拟机自带的PEiD软件打开RaDa.exe文件

    image-20260428101852371

  7. 使用WinXP中自带的脱壳工具(超级巡警之虚拟机自动脱壳器)把RaDa.exe文件脱壳,在同目录下产生RaDa_unpacked.exe文件

    image-20260428102110449

  8. 打开命令行输入指令strings RaDa_unpacked.exe提取文件中的可打印字符串,可以发现大量的函数调用信息

    image-20260428103911550

  9. 使用命令RaDa.exe --authors可以看见文件的作者是Raul Siles & David Perez

    image-20260428104125035

2.2 动手实践任务二

  1. 在学习通上下载crackme1.exe和crackme2.exe两个文件,利用vmtools复制粘贴到WinXP虚拟机中

    image-20260429113030510

  2. 使用IDA Pro工具分析打开crackme1.exe文件,依次点击View–Graghs–Function calls,查看函数调用图

    image-20260429114104690

  3. strcmp、print、fprint几个比较重要的方法都在sub_401280函数下

    image-20260429125515476

  4. 查看sub_401280的汇编代码以及流程图,双击sub_401280,依次点击View–Graghs–Flow chart

    image-20260429125911824

  5. 根据流程图以及AI的解读帮助可以清楚的看出程序的执行判断过程如下:

    1. 命令行参数数量校验 (Input Validation) 程序入口处首先通过 cmp [ebp+arg_0], 2 指令判断命令行参数个数(等同于 C 语言中的 argc == 2)。

    • 校验失败: 若未附加参数或参数过多,程序跳转至左侧分支,调用 fprintf 输出提示信息 "I think you are missing something.\n" 并退出。
    • 校验成功: 若用户恰好输入了 1 个自定义参数,程序沿主逻辑进入下一步的口令验证环节。

    2. 核心密码比对校验 (Core Verification) 程序通过指针偏移(add eax, 4)提取用户输入的参数字符串(即 argv[1]),将其与内部数据段中硬编码的明文字符串 "I know the secret" 一同压入栈中,随后调用 C 标准库函数 strcmp 进行比对,并通过 test eax, eax 检查函数返回值。

    3. 最终执行结果分支 (Execution Branches) 根据 strcmp 函数的执行结果,控制流产生最终分化:

    • 破解失败分支: 若返回值不为 0(字符串不匹配),程序跳转输出 "Pardon? What did you say?\n"
    • 破解成功分支: 若返回值为 0(字符串完全匹配),程序跳转至右侧成功代码块,输出通关提示 "You know how to speak to programs, Mr. ..."
  6. 在命令行中进行验证,可以看出逻辑完全正确。

    image-20260429131655458

  7. 同理,打开crackme2.exe文件,查看函数调用图,发现还是在sub_401280函数下

    image-20260429212834095

  8. 对该程序的sub_401280函数进行分析

    image-20260429213016477

  9. 根据流程图以及AI的解读帮助可以清楚的看出程序的执行判断过程如下:

    1. 阶段一:命令行参数数量校验

    • 入口代码: cmp [ebp+arg_0], 2
    • 逻辑: 程序启动后的第一步,依然是检查命令行参数个数(argc)是否等于 2。
    • 分支结果: * 如果不是 2,走向左侧红线分支(loc_4012B0),打印 "I think you are missing something.\n" 并退出。
      • 如果是 2,走向右侧绿线分支,进入下一关。

    2. 阶段二:程序自身文件名校验(新增机制)

    • 核心代码: ```assembly mov eax, [ebp+arg_4] ; 获取 argv 数组 push offset aCrackmeplease ; 压入内置字符串:"crackmeplease.exe" push dword ptr [eax] ; 压入 argv[0](即当前程序运行时的文件名) call strcmp
    • 逻辑: 这是 crackme2.exe 的核心陷阱。程序调用 strcmp,将它自己的运行文件名(argv[0])与内置的明文字符串 "crackmeplease.exe" 进行比对。
    • 分支结果:
      • 如果不匹配(即你用原名 crackme2.exe 运行),走向红线分支(loc_4012EE),打印 "I have an identity problem.\n"(我有身份认知障碍)并退出。
      • 如果完全匹配,走向绿线分支,继续往下。

    3. 阶段三:核心密码口令校验

    • 核心代码: assembly add eax, 4 ; 指向 argv[1](用户输入的参数) push offset aIKnowTheSecret ; 压入内置字符串:"I know the secret" push dword ptr [eax] call strcmp
    • 逻辑: 这一步与 crackme1.exe 完全一致,将用户输入的参数与硬编码的密码 "I know the secret" 进行比对。
    • 分支结果:
      • 密码错误,打印 "Pardon? What did you say?\n"
      • 密码正确,进入最终的成功逻辑。

    4. 阶段四:成功提示的动态解密输出(反静态分析技术)

    • 核心代码: 底部的几个代码块(loc_401351loc_40135E)构成了一个循环结构。其逻辑与如下c语言类似:

      //  unk_403080 是硬编码在程序里的加密字节数组
      unsigned char *encrypted_string = (unsigned char *)0x403080;
      int i = 0; // 对应 [ebp+var_4]
      
      // 循环 34 次 (0 到 33)
      while (i <= 0x21) {
          // 读取当前字节,并与 0x42 进行异或解密
          char decrypted_char = encrypted_string[i] ^ 0x42;
      
          // 逐个打印解密后的字符
          putchar(decrypted_char);
      
          i++;
      }
      
      // 打印最后的换行并退出
      puts("\n");
      return 0;
      
    • 逻辑: crackme2 将成功提示信息进行了异或加密(XOR)存储。只有在前面所有的校验全部通过后,它才会进入这个循环,将加密数据逐字节与 0x42 进行异或还原,并逐个字符打印出来。这是恶意代码常用来隐藏真实意图的基础手段。

  10. 找到unk_403080处的数据image-20260429215153981

    image-20260429215321913

  11. 从地址0x00403080开始的34个字节与0x42逐位异或运算。

    地址 原始十六进制 XOR 0x42 对应字符
    403080 15h 0x15 ^ 0x42 = 0x57 W
    403081 27h 0x27 ^ 0x42 = 0x65 e
    403082 62h 0x62 ^ 0x42 = 0x20 (空格)
    403083 2Ah 0x2A ^ 0x42 = 0x68 h
    403084 23h 0x23 ^ 0x42 = 0x61 a
    403085 34h 0x34 ^ 0x42 = 0x76 v
    403086 27h 0x27 ^ 0x42 = 0x65 e
    403087 62h 0x62 ^ 0x42 = 0x20 (空格)
    403088 23h 0x23 ^ 0x42 = 0x61 a
    403089 62h 0x62 ^ 0x42 = 0x20 (空格)
    40308A 2Eh 0x2E ^ 0x42 = 0x6C l
    40308B 2Bh 0x2B ^ 0x42 = 0x69 i
    40308C 36h 0x36 ^ 0x42 = 0x74 t
    40308D 36h 0x36 ^ 0x42 = 0x74 t
    40308E 2Eh 0x2E ^ 0x42 = 0x6C l
    40308F 27h 0x27 ^ 0x42 = 0x65 e
    403090 62h 0x62 ^ 0x42 = 0x20 (空格)
    403091 31h 0x31 ^ 0x42 = 0x73 s
    403092 27h 0x27 ^ 0x42 = 0x65 e
    403093 21h 0x21 ^ 0x42 = 0x63 c
    403094 30h 0x30 ^ 0x42 = 0x72 r
    403095 27h 0x27 ^ 0x42 = 0x65 e
    403096 36h 0x36 ^ 0x42 = 0x74 t
    403097 78h 0x78 ^ 0x42 = 0x3A :
    403098 62h 0x62 ^ 0x42 = 0x20 (空格)
    403099 01h 0x01 ^ 0x42 = 0x43 C
    40309A 2Ah 0x2A ^ 0x42 = 0x68 h
    40309B 2Dh 0x2D ^ 0x42 = 0x6F o
    40309C 21h 0x21 ^ 0x42 = 0x63 c
    40309D 2Dh 0x2D ^ 0x42 = 0x6F o
    40309E 2Eh 0x2E ^ 0x42 = 0x6C l
    40309F 23h 0x23 ^ 0x42 = 0x61 a
    4030A0 36h 0x36 ^ 0x42 = 0x74 t
    4030A1 27h 0x27 ^ 0x42 = 0x65 e
  12. 因此如果成功输出的话结果应该是We have a little secret: Chocolate

  13. 验证逻辑,最后显示的与逻辑推理正确,验证成功!!!

    image-20260429221837072

2.3 分析实践任务一

  1. 打开命令行,执行md5sum RaDa.exe获取文件的MD5摘要值为caaa6985a43225a0b3add54f44a0d4c7

    image-20260429223135886

  2. 输入file RaDa.exe查看RaDa.exe文件信息

    image-20260429223349046

  3. 打开WinXP自带的Process Explorer软件

    image-20260429223443558

  4. 打开任务一中已脱壳的RaDa_unpacked.exe文件,用Process Explorer进行监听

    image-20260429223825337

  5. 点开Strings,查看详细信息

    image-20260429224310876

    由上图以及AI的解析帮助可以整理出RaDa 恶意软件在电脑上做了以下事情

    1. 偷偷检查系统的注册表,看有没有安装 VMware 虚拟机。如果发现自己在安全人员的分析环境里,它就会装死或退出,防止被研究。(证据:HKLM\Software\VMware, Inc.\VMware Tools\InstallPath)
    2. 把自己悄悄复制到隐藏目录 C:\RaDa\bin\RaDa.exe,然后把这个路径强行塞进电脑的“开机自动启动项”里。这样就算重启电脑,它也会跟着一起复活。(证据:C:\RaDa\binRaDa.exeHKLM\Software\Microsoft\Windows\CurrentVersion\Run`、`Wscript.Shell)
    3. 偷偷连上黑客的远控服务器 (10.10.10.10),为了不被防火墙拦截,它还会假装成正常的 IE 浏览器网页访问流量,去请求指令。(证据:http://10.10.10.10/RaDaRaDa_commands.htmlInternetExplorer.Application)
    4. 收到黑客指令后,化身“肉鸡”开始干活。它能干的坏事包括:(证据:Starting DDoS Smurf remote attack...、screenshotputgetupload.cgi)
      • 偷偷截取你的电脑屏幕 (screenshot)。
      • 窃取你的文件或者往你电脑里塞其他病毒 (put, get, upload.cgi, download.cgi)。
      • 把你的电脑当枪使,去对别人发起网络攻击 (Starting DDoS Smurf remote attack...)。
      • 同时还有RegWriteRegReadRegDelete,这说明该恶意软件通过Wscript.Shell完整控制了注册表操作,用于写入启动项和破坏系统防御,同时它还试图扫描并感染当前机器所在的整个局域网环境。
  6. 恶意代码分类与判定理由如下

    经综合静态分析与行为推演,判定该恶意代码样本属于远程控制后门,且具备典型的僵尸网络客户端(Bot)特征。具体判定依据如下:

    1. 排除传统感染与传播型恶意软件:

    • 非病毒(Virus): 计算机病毒的核心判定标准在于“寄生性”与“自我复制”能力。经分析,该样本不具备修改、感染宿主系统中其他正常可执行文件的模块,因此排除病毒分类。
    • 非蠕虫(Worm): 蠕虫病毒的本质特征是能够利用网络漏洞进行“无人工干预的主动横向传播”。该样本未发现网络扫描或漏洞溢出利用模块,不具备主动蔓延能力,因此排除蠕虫分类。

    2. 排除传统狭义木马程序:

    • 非传统木马(Trojan): 狭义的木马主要依靠社会工程学,将自身伪装成合法软件以诱骗用户主动点击运行。该样本并未进行深度伪装(如捆绑在正常安装包中),其核心目的直指系统控制权,而非单纯的欺骗。

    3. 符合后门(Backdoor)与僵尸程序(Bot)核心特征:

    • 建立隐蔽控制通道: 样本运行后会主动向硬编码的远端 C&C(命令与控制)服务器发起连接请求,建立隐蔽的 HTTP 通信隧道。
    • 远程指令执行能力: 样本内置了完善的指令解析模块,能够接收并执行攻击者下发的指令(如文件窃取、屏幕截图、DDoS 攻击等),完全剥夺了用户的系统控制权。
    • 持久化驻留: 具备修改系统注册表等持久化机制,确保自身能够长期潜伏。
    • 群控属性(Bot 特征): 该样本的控制逻辑支持“一对多”的网络架构,这意味着受感染的主机将沦为“肉鸡”,加入攻击者的僵尸网络(Botnet)并接受集中调度。

    总结: 综上所述,由于该样本的核心诉求是建立远程控制通道并接受中央调度执行恶意指令,且无自主感染和传播行为,故准确归类为远程控制后门/僵尸程序

  7. 最后通过实验任务一的RaDa --authors命令或者在Strings中也可以明确溯源到样本作者为Raul Siles与David Perez,且该程序是在2004年9月制作的。

    image-20260429231023846

  8. 类似的恶意工具总结分析如下

    恶意工具名称 核心技术特征与相似功能点
    Zeus (Zbot) 金融级僵尸网络: 采用基于 HTTP 协议的 C&C 通信模式接受黑客指令。但其高度专业化,核心功能是网页表单抓取(Form Grabbing)和键盘记录,主要用于大规模窃取用户的网银密码和财务数据。
    Gh0st RAT 全功能远程控制巨头: 国内外极其著名的远程访问木马。除了具备基础的文件传输和系统控制外,它拥有强大的多媒体监控能力(实时屏幕抓取、开启摄像头与麦克风),并能将其自身注册为系统底层服务以实现深度隐蔽驻留。
    Poison Ivy (毒藤) 高隐蔽性后门(APT常客): 相比 RaDa 独立的进程,Poison Ivy 擅长使用进程注入(Process Injection)技术,将恶意的后门代码直接注入到 Windows 合法进程(如 explorer.exeieexplore.exe)的内存中运行,极大地增加了杀毒软件的查杀难度。
    DarkComet (暗黑彗星) 集成化远控框架: 一款功能极其庞杂的 RAT。不仅包含了类似 RaDa 的远程 Shell 和文件操作功能,还内置了完整的 DDoS 攻击引擎、注册表编辑器、甚至具有恶搞受害者的功能(如弹出光驱、锁死鼠标),其 C&C 流量往往经过自定义加密。

    从 RaDa 这样早期的后门,到 Zeus、Poison Ivy 等高级威胁工具,这些它们的底层逻辑基本都是“建立通道 - 维持权限 - 执行指令”的经典三步走,但现代恶意软件在通信隐蔽性生存能力以及破坏目的上,均发生了质的飞跃。

2.4 分析实践任务二

  1. 在学习通下载botnet_pcap_file.dat文件,通过vmtools传入kali虚拟机,用wireshark打开该文件。

    image-20260430091137199

  2. ****问题一:IRC是什么?****

    IRC是一种基于TCP/IP协议的实时文本通信协议,支持用户在频道中进行群组聊天,也支持用户间一对一私密消息,是早期互联网最主流的即时通信协议之一。

    当IRC客户端申请加入一个IRC网络时将发送那个消息?

    PASS <密码>          // 可选,仅当服务器配置了密码保护时才需要
    NICK <昵称>          // 必选,向服务器声明客户端要使用的昵称(IRC 网络中用户的唯一标识)
    USER <用户名> <主机名> <服务器名> :<真实姓名>  // 必选,提供用户的身份信息
    JOIN <#频道名>           // 可选,加入指定IRC频道,接收攻击指令
    

    IRC一般使用那些TCP端口?

    端口号 协议 类型 用途与说明
    6667 TCP 明文 RFC 1459/2812 规定的官方标准端口,绝大多数 IRC 服务器的默认明文端口
    6697 TCP TLS 加密 现代 IRC 网络的标准加密端口,推荐所有用户使用,保障通信安全
    6660-6669 TCP 明文 最常用的明文端口范围,几乎所有服务器都会开放其中多个端口作为备选
    7000 TCP TLS 加密 传统加密端口,部分老牌 IRC 网络(如 EFnet、Undernet)仍在使用
    9999 TCP TLS 加密 早期 SSL 加密端口,现已基本被 6697 取代,仅少数老旧服务器保留
  3. 问题二:僵尸网络是什么?僵尸网络通常用于什么?

    僵尸网络是指攻击者通过恶意软件(如木马、蠕虫、病毒)秘密感染并远程控制的大量计算机、服务器、物联网设备(摄像头、路由器、智能家电等)组成的集群。

    主要用途 核心原理与操作
    分布式拒绝服务攻击 (DDoS) 控制大量僵尸主机同时向目标发送海量流量或请求,耗尽目标的带宽、CPU 或内存资源,使其无法正常服务
    垃圾邮件与钓鱼邮件分发 利用僵尸主机的 IP 地址批量发送邮件,隐藏攻击者真实身份,绕过 IP 黑名单
    敏感信息窃取 在被感染设备上安装键盘记录器、屏幕截图工具等恶意模块,静默收集各类数据
    加密货币挖矿 占用僵尸主机的 CPU/GPU 资源进行加密货币计算,攻击者无需承担硬件和电费成本
    点击欺诈与广告欺诈 模拟真实用户行为自动点击广告、访问网站或下载应用,骗取广告主广告费
    勒索软件分发 通过僵尸网络批量向企业和个人设备投放勒索软件,加密用户数据并索要赎金
    匿名代理服务 将僵尸主机作为代理服务器出售给其他网络犯罪分子,用于隐藏真实 IP 地址
  4. 问题三:蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?

    通过Wireshark过滤规则筛选蜜罐主机主动发起的IRC通信流量

    ip.src == 172.16.134.191 && tcp.dstport == 6667
    

    image-20260430093308268

    依次点击Statistics–IPv4 Statistics–All Addresses,输入筛选条件

    image-20260430093805238

    可以看出有如下5个IRC服务器

    209.126.161.29
    66.33.65.58
    63.241.174.144
    217.199.175.10
    209.196.44.172
    
  5. 问题四:在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

    1. 首先在Kali虚拟机中安装tcpflow工具:sudo apt install tcpflow -y

      image-20260430094138853

    2. 执行以下命令提取该IRC服务器与蜜罐主机的全量通信流量

      tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"
      

      生成两个流量文件:

      • 172.016.134.191.01152-209.196.044.172.06667
      • 209.196.044.172.06667-172.016.134.191.01152

      image-20260430094754076

    3. 输入管道命令统计一共有多少个主机进行了访问:

      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
      

      image-20260430095021059

      最终显示有3461台主机访问过以209.196.44.172为服务器的僵尸网络

  6. 问题五:那些IP地址被用于攻击蜜罐主机?

    执行以下命令提取流量中的源IP并去重统计并保存到文件

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

    image-20260430095721425

    查看生成的copyxu.txt文件,可以看出共有165个IP地址向蜜罐主机发起了网络访问与攻击行为。

    image-20260430100355610

  7. 问题六:攻击者尝试攻击了那些安全漏洞?

    输入指令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端口

    image-20260430125644774

    可以看出输出了135、139、25、445、4899、80共6个TCP端口。

    输入指令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端口

    image-20260430125911065

    可以看出输出了137这一个UDP端口。

  8. 问题七:那些攻击成功了?是如何成功的?

    1. 135端口

      输入以下命令ip.addr == 172.16.134.191 && tcp.port ==135进行筛选

      image-20260430130257599

      在筛选后的数据包中只有一些TCP三次握手过程的数据包,没有数据的交互。

    2. 139端口

      输入以下命令ip.addr == 172.16.134.191 && tcp.port ==139进行筛选

      image-20260430131004562

      在筛选后的数据包中有许多TCP、SMB和NBSS类型的数据包,但没有关于攻击或漏洞的信息。

    3. 25端口

      输入以下命令ip.addr == 172.16.134.191 && tcp.port ==25进行筛选

      image-20260430131115449

      可以观察到只有三次握手的数据,没有看到攻击成功的信息

    4. 445端口

      输入以下命令ip.addr == 172.16.134.191 && tcp.port ==445进行筛选

      image-20260430131443886

      在第 33280 个数据包中捕获到 PSEXESVC.EXE 文件传输行为。PSEXESVC.EXE 是 PsExec 工具的关键组成部分,由微软 Sysinternals 开发,它允许攻击者或管理员在不预先安装代理程序的情况下,对远程 Windows 机器执行任意命令。

      image-20260430132013906

      可以看见攻击者拿到了ADMIN权限。

    5. 4899端口

      输入以下命令ip.addr == 172.16.134.191 && tcp.port ==4899进行筛选

      image-20260430132438752

      存在多次SYN连接被RST拒绝的情况,说明未成功连接,故未成功攻击。

    6. 80端口

      输入以下命令ip.addr == 172.16.134.191 && tcp.port ==80进行筛选

      image-20260430132815080

      发现有许多数据包把无效填充内容发送至靶机

      image-20260430134649989

      image-20260430134826458

      还发现了与蠕虫worm相关的信息,可以推测攻击者使用了蠕虫病毒

    7. 137端口

      输入以下命令ip.addr == 172.16.134.191 && udp.port ==137进行筛选

      image-20260430135303312

      网络中出现异常大量的 NBNS协议流量。进一步溯源确认,该流量特征为内部主机主动向外部公网地址发起的 NetBIOS 状态查询请求,未发现攻击行为。

    8. 综上所述,在所有攻击尝试中,仅针对TCP 445端口的SMB服务攻击成功,攻击者通过PSEXESVC蠕虫实现了对蜜罐主机的远程控制。

      其他端口攻击失败的原因:

      • 135端口:攻击者使用全连接扫描工具(如 Nmap -sT)验证端口开放状态,完成三次握手后立即发送 RST 包关闭连接,全程未携带任何 RPC 接口调用请求或漏洞利用代码。
      • 139 端口:可能目标主机已禁用存在严重漏洞的 SMBv1 协议,或者启用了 SMBv2/v3 并强制开启 SMB 签名。
      • 25 端口:可能目标服务器禁用了匿名中继功能,所有邮件发送必须通过用户名密码认证,攻击者无法利用开放中继发送垃圾邮件或执行命令。
      • 4899 端口:可能攻击者仅验证 Radmin 服务是否运行,未发起密码暴力破解或漏洞利用尝试。
      • 80端口:攻击者发起的缓冲区溢出攻击、红色代码蠕虫攻击,仅发送了攻击载荷,目标主机无对应的漏洞利用响应

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

问题:在分析实践任务二的时候,对于许多数据包,确定攻击者尝试攻击哪些漏洞以及是否成功的判断方面出现了一些困难。

解决办法:在和同学讨论以及AI工具的帮助下,分析数据包,逐个端口尝试,根据端口的常见漏洞,逐个筛选分析,最终成功完成了实验。

4.学习感悟、思考等

此次实验内容很多,步骤繁杂,从底层的汇编逆向分析,到后面的僵尸网络流量溯源,让我对于恶意代码、木马病毒等常见的攻击形式有了更加深刻的理解,对网络攻防有了更具象、更深刻的体悟。同时对于问题排查以及解决过程中,极大的锻炼了我的实操和解决问题的能力。

posted @ 2026-05-11 21:05  copyxu  阅读(23)  评论(0)    收藏  举报