Nirjas666/elf-malware-analysis

GitHub: Nirjas666/elf-malware-analysis

一套完整的 Linux ELF 恶意软件静态与动态分析方法论、模板和净化制品集合,帮助安全分析师在隔离环境中安全、规范地分析挖矿程序和僵尸网络样本并提取 IOC。

Stars: 0 | Forks: 0

# Linux 恶意软件分析 — 静态与动态报告 本仓库包含在隔离的虚拟机实验室中对 Linux ELF 恶意软件样本执行静态和动态分析的分析笔记、模板和制品(非可执行文件)。重点在于 Linux 挖矿程序(例如,类似 XMRig 的程序)、C2/后门行为(类似 kaiten)以及相关的系统影响。 重要提示:本仓库不包含活跃的恶意软件二进制文件。请勿在此处添加或分发恶意二进制文件。仅包含安全的制品,如经过净化的日志、反汇编片段、pcap 提取项和哈希值。 ## 摘要 在第 1 周,我在隔离的虚拟机中对 Linux ELF 样本进行了静态和动态分析。主要发现: - 几个挖矿程序样本(与 XMRig 相关的行为)导致 CPU 利用率飙升至约 99%。 - 观察到持久/重连的网络行为(DNS 重试和无限重连循环)。 - 观察到多个可疑进程(类似 kaiten)和网络活动(UDP DNS 查询,重复的 ICMP)。 ## 安全与法律 - 始终使用具有快照功能的隔离、离线或独立的虚拟网络。 - 切勿在生产或已连接的网络上运行恶意软件。 - 遵循您所在机构的规定和当地法律来拥有和分析恶意软件。 - 请勿将恶意二进制文件上传到公共服务。 ## 实验室设置(推荐) - 宿主机:Kali 或其他分析主机 - 用于分析的客户机 VM:Ubuntu Server 或 Debian 沙箱 - VM 网络:使用 Host-only 或内部网络,或隔离的 NAT(无外部访问权限,受控监视除外) - 快照:每次运行前拍摄快照 - 权限:尽可能在 VM 内以非 root 用户身份运行分析;如果需要,从虚拟机监控程序捕获宿主机级别的监视 - 工具: - 静态:file, strings, sha256sum/md5sum/sha1sum, readelf, objdump, binwalk, upx, rizin/radare2, Ghidra - 动态:tcpdump, Wireshark, ss/netstat, ps/top/htop, strace, ltrace, lsof, auditd, systemtap/sysdig/BPF tools - 其他:tmux, nohup, nc, tshark, suricata/zeek (可选) 示例 VM 网络基线命令 - 检查接口:ip a - 开始捕获(需要 CAP_NET_RAW 或 root 权限):sudo tcpdump -i eth0 -w capture.pcap - 如果您看到:“You don't have permission to perform this capture” — 请使用 sudo 运行 tcpdump 或授予 CAP_NET_RAW 权限。 ## 方法论 ### 静态分析(推荐清单) 1. 识别文件类型 - file sample.bin 2. 计算哈希值 - sha256sum sample.bin - md5sum sample.bin 3. 提取可打印字符串 - strings -a sample.bin | less 4. 识别加壳器/脱壳步骤 - binwalk sample.bin - 如果是 UPX 加壳,尝试 upx -d 5. 二进制结构和符号 - readelf -h -S -s sample.bin - objdump -d sample.bin | less 6. 使用反汇编器 (rizin/radare2/Ghidra) 进行函数级分析 交付物:哈希列表,感兴趣的字符串(例如:矿池 URL,参数,嵌入的配置),无条件指标。 ### 动态分析(推荐工作流) 1. 基线系统指标 - top / htop - free -m - ss -tupn 或 sudo ss -tupn 2. 运行前捕获 - 启动 tcpdump:sudo tcpdump -i eth0 -w before-and-during.pcap - 启动系统审计:sudo auditctl -w /etc/ -p war -k etc-watch 3. 在隔离环境中运行样本 - 如果需要,使用 tmux 或 nohup:nohup ./sample.bin &> run.log & - 观察进程树:pstree -p 或 ps auxf 4. 实时跟踪 - strace -f -o strace.log ./sample.bin - ltrace -f -o ltrace.log ./sample.bin - lsof -p 5. 网络监视 - sudo ss -tupn - sudo tcpdump -r capture.pcap -n -vv(或在 Wireshark 中分析) - 寻找重复的 DNS 查询、C2 连接 (TCP/UDP) 以及异常的 ICMP 6. 运行后清理和快照还原 要捕获的关键制品:strace 日志,ltrace 日志,pcap,运行前/后的进程列表,CPU/内存图,配置字符串。 ## 发现(来自实验室的示例) 样本来源:MalwareSamples/Linux-Malware-Samples — 通过名称/ID 识别的样本:`00ae07c9fe63b080181b8a6d59c6b3b6f9913938858829e5a42ab90fb72edf7a`(此处仅存储元数据,不存储二进制文件)。 观察到的行为: - 执行时,CPU 占用率在几分钟内从约 5-6% 的基线上升至约 99%。 - 存在多个名为 `kaiten`(或类似名称)的进程(可能的僵尸网络客户端)。 - 网络日志显示重复的 DNS 查询和“无限重连”循环;pcap 包含重复的 DNS 和 ICMP 流量。 - strace/ltrace 日志显示多次 fork() 调用和重复的网络系统调用,表明存在重试/重连循环。 - 挖矿进程试图将其自身隐藏在 `/tmp` 或隐藏文件夹中,并使用 `nohup` 和 `tmux` 来实现持久化。 导致高 CPU 占用的可能原因: - 挖矿工作负载(类似 XMRig) - 多个工作进程 - 忙等待循环 / 低效的重连逻辑 ## 入侵指标 (IOCs) - 文件名:样本名称 — 不包括原始二进制文件 - 哈希值(在本地计算):sha256: - 网络制品:域名,IP,端口(已清理的列表) - 进程名:`kaiten`,`xmrig` 等。 - 持久化位置:`/tmp`,隐藏的点文件夹,crontab,systemd units 有关示例格式,请参见 IOCs.md。 ## 复现笔记(安全) - 请勿在未受控的连接到互联网的网络上执行这些步骤。 - 用于复现监视的示例命令(在隔离的 VM 中): - sudo tcpdump -i eth0 -w /tmp/sample_run.pcap - sudo strace -f -o /tmp/strace.log ./sample.bin - watch -n 1 "ps aux | grep sample || true" - 分析 pcap: - tshark -r /tmp/sample_run.pcap -Y "dns" -V - tshark -r /tmp/sample_run.pcap -Y "icmp || dns" -T fields -e frame.time -e ip.src -e ip.dst -e udp.dstport -e icmp.type ## 制品与存储 仅存储非可执行的制品: - pcaps(经过净化或提取的 PCAP,不包含恶意负载块) - strace / ltrace 日志 - 反汇编片段 - 分析笔记和截图 ## 仓库结构 - README.md - ANALYSES/ - sample-00ae07c9/ (包含日志、pcap 和净化后制品的分析文件夹) - templates/ - ANALYSIS_TEMPLATE.md - IOCs.md - TOOLS.md - SAFE_ENV.md - LICENSE
标签:C2通信, CCTV/网络接口发现, DNS 反向解析, DNS 解析, DNS重试, ELF恶意软件, Ghidra, Google搜索, ICMP泛洪, IOC指标, IP 地址批量处理, Kaiten, Linux恶意软件分析, ltrace, objdump, PB级数据处理, pcap分析, Radare2, readelf, strace, TLS指纹, UPX脱壳, Wireshark, XMRig, YARA, 二进制分析, 云安全运维, 云资产可视化, 云资产清单, 僵尸网络, 入侵指标, 句柄查看, 后门, 威胁情报, 安全合规, 安全实验室, 安全运维, 库, 应急响应, 开发者工具, 异常行为检测, 恶意样本分析, 恶意软件动态分析, 恶意软件静态分析, 挖矿木马, 无线安全, 缓解建议, 网络代理, 网络信息收集, 网络安全审计, 网络流量分析, 虚拟机安全沙箱, 逆向工程