当前位置:首页 > 技术 > 正文内容

恶意代码逆向工程与僵尸网络流量分析实践

访客 技术 2026年8月19日 1
使用多种技术手段对恶意程序进行静态与动态分析是安全研究的基础。本文将围绕二进制文件识别、脱壳处理、反汇编逆向以及网络协议取证四个维度展开,深入剖析恶意代码的行为模式。

1. 恶意代码基础分析:以 RaDa 样本为例

对未知二进制文件进行分析的第一步是识别其架构与保护机制。通过 file 命令可以确定 RaDa.exe 为 Windows 平台下的 32 位 PE 文件。初步通过 strings 命令扫描发现字符分布杂乱,且包含 UPX 等加壳特征,表明该程序经过了混淆处理以对抗静态扫描。

脱壳与元数据提取

使用自动化脱壳工具(如超级巡警脱壳机)还原程序原始代码。脱壳后的文件 RaDa_unpacked.exe 暴露了大量函数调用和硬编码字符串。通过执行带有特定参数的程序:

RaDa.exe --authors

可以获取其开发者信息为 Raul Siles & David Perez。该样本被识别为远程控制后门(Backdoor),其核心行为包括:

  • 环境探测:通过检索注册表键值 HKLM\Software\VMware, Inc.\VMware Tools 探测是否运行在虚拟机环境。
  • 持久化驻留:将自身复制到 C:\RaDa\bin 并修改 Run 注册表项实现开机自启。
  • 隐蔽通信:向控制端 10.10.10.10 发起 HTTP 请求,模拟浏览器流量以规避防火墙监控。

2. 软件逆向工程:Crackme 程序破解

利用 IDA Pro 对 Crackme 程序进行静态分析,重点关注控制流图(CFG)与关键分支逻辑。

逻辑分析一:命令行参数校验

crackme1.exesub_401280 函数中,程序通过 cmp [ebp+arg_0], 2 检查参数个数。若参数正确(argc=2),则提取 argv[1] 与明文字符串 "I know the secret" 进行 strcmp 比对。若匹配则输出成功信息。

逻辑分析二:多重防御机制

crackme2.exe 引入了文件名校验逻辑。程序首先对比 argv[0] 是否为 "crackmeplease.exe",若文件名被修改则直接退出。在通过密码校验后,程序并未直接存储提示信息,而是采用异或加密算法动态解密:

# 提示信息解密逻辑模拟 (Python 实现)
def decrypt_msg(hex_data, key=0x42):
    return "".join([chr(b ^ key) for b in hex_data])

cipher_text = [
    0x15, 0x27, 0x62, 0x2A, 0x23, 0x34, 0x27, 0x62, 0x23, 0x62, 
    0x2E, 0x2B, 0x36, 0x36, 0x2E, 0x27, 0x62, 0x31, 0x27, 0x21, 
    0x30, 0x27, 0x36, 0x78, 0x62, 0x01, 0x2A, 0x2D, 0x21, 0x2D, 
    0x2E, 0x23, 0x36, 0x27
]
print(decrypt_msg(cipher_text)) # 输出: We have a little secret: Chocolate

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

通过对 Snort 收集的蜜罐数据(botnet_pcap_file.dat)进行多维分析,还原攻击路径。

IRC 协议交互特征

IRC(Internet Relay Chat)是早期僵尸网络常用的控制协议。客户端连接服务器(通常使用 TCP 6667 端口)后,会发送 NICK(声明昵称)和 USER(身份登记)指令,随后通过 JOIN 加入特定的 C&C 频道接收攻击者的广播指令。经分析,蜜罐主机 172.16.134.191 与包括 209.196.44.172 在内的 5 个 IRC 服务器存在通信。

攻击行为统计与漏洞识别

利用命令行工具组合对流量进行过滤统计:

# 提取攻击源 IP 并去重
tcpdump -n -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk '{print $3}' | sort -u

# 统计目标服务器承载的僵尸主机数量
tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"
grep -a "^:irc5.aol.com 353" 209.196.044.172.06667-172.016.134.191.01152 | wc -l

通过端口扫描分析,发现攻击者尝试探测了以下服务:

  1. TCP 135/139/445: 针对 Windows RPC 与 SMB 服务的探测。
  2. TCP 80: 试图利用 Web 漏洞分发红色代码(Code Red)蠕虫。
  3. TCP 4899: 探测 Radmin 远程控制软件。

攻击成功判定

在所有尝试中,针对 TCP 445 端口 的攻击最为有效。流量包 33280 显示了 PSEXESVC.EXE 的文件传输行为。PsExec 工具被恶意软件利用,通过 SMB 协议在远程主机上安装并执行系统服务,最终使攻击者获得了 ADMIN 权限。其他端口(如 135、4899)多为扫描行为或连接被重置(RST),未见实质性 Payload 执行。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。