资讯详情

网络取证实战:基于 Zeek 与 Docker 追踪 FTP 恶意流量

📅 2026/10/27 1:51:59 | 华诺云谱 👁 阅读
网络取证实战:基于 Zeek 与 Docker 追踪 FTP 恶意流量
测试环境操作系统Kali Linux 2025.2工具版本Zeek 8.0.4测试文件attack-trace.pcap运行环境本地 Docker 容器一、 安装与部署从源码编译到 Docker 的救赎安装 Zeek 通常有两种选择源码编译或 Docker 部署。起初我尝试了最原始的方法——源码编译sudoaptupdatesudoapt-getinstallcmakemakegcc g flex bison libpcap-dev libssl-dev python3-dev swig zlib1g-devwgethttps://download.zeek.org/zeek-8.0.4.tar.gztarzxf zeek-8.0.4.tar.gzcdzeek-8.0.4 ./configuremakemakeinstall虽然通过./configure和make成功生成了构建文件但源码编译的速度极其缓慢。对于追求效率的安全分析场景等待漫长的编译显然不划算。踩坑与解决为了快速投入实战分析我果断放弃了本地源码编译改用 Docker 拉取官方镜像dockerpull zeek/zeek:latest这一招立竿见影极大缩短了环境部署的时间。二、 自动化分析 PCAP 文件环境就绪后使用 Docker 挂载本地目录并自动化分析流量包sudodockerrun-it--rm\-v$(pwd):/data\-w/data\zeek/zeek\zeek-rattack-trace.pcap运行结束后当前目录下会生成一系列结构化的日志文件。Zeek 生成的日志概览conn.log所有网络连接记录dns.logDNS 查询记录ftp.logFTP 会话记录http.logHTTP 请求记录files.log文件传输记录packet_filter.log包过滤日志extract_files/提取出的文件目录三、 恶意文件提取与识别在生成的目录中需要重点关注extract_files文件夹。ls-laextract_files/# 输出extract-1240198114.648099-FTP_DATA-FWJKP01BEDXIkaz831提取出来的文件名称很长这是 Zeek 按照内部规则命名的。先通过file命令识别它的真实类型fileextract-1240198114.648099-FTP_DATA-FWJKP01BEDXIkaz831结果显示这是一个32位的 Windows PE 可执行文件。在流量中隐藏 PE 文件通常是恶意软件传播的常见特征。文件验证为了确认其恶意性质我将该文件上传至 VirusTotal 进行扫描。检测结果67/73 引擎报毒。文件类型Win32 EXE。威胁判定后门程序 / 远程访问工具RAT高风险等级。四、 流量溯源与取证分析确认了恶意文件后接下来的重点便是溯源它从哪里来是怎么传过来的1. 解析文件命名规则通过阅读 Zeek 源码/usr/local/zeek/share/zeek/base/files/extract/main.zeek可以了解到提取文件的命名规则function on_add(f: fa_file, args: Files::AnalyzerArgs) { if ( ! args?extract_filename ) argsextract_filename cat(extract-, flast_active, -, fsource, -, fid); ... }即格式为extract-时间戳-源类型-文件ID。其中最后的FWJKP01BEDXIkaz831是files.log中的文件唯一标识。2. 关联 files.log利用文件ID在files.log中进行检索grepFWJKP01BEDXIkaz831files.log可以获得该文件的传输信息时间戳1240198114.516921协议源FTP_DATA传输状态SFSuccessfully Completed成功传输发送/接收字节数165088 / 4488传输时长9.95秒3. 追踪 FTP 会话ftp.log进一步通过files.log中记录的IP98.114.205.102在ftp.log中挖掘完整的FTP交互过程grep98.114.205.102ftp.log由此还原出的攻击时间线如下数据连接准备时间1240198114.246531客户端发送PORT命令指定数据连接端口192.150.11.111:1080服务器响应200 PORT command successful。恶意文件下载时间1240198114.384010客户端发送RETR命令请求下载文件ssms.exe。服务器响应150 Opening BINARY mode data connection。文件传输完成时间范围1240198114.516921 至 1240198114.648099下载成功传输了约 158720 字节。至此完整还原了攻击者通过 FTP 下载伪装为ssms.exe的恶意后门程序的整个网络取证过程。五、 总结与反思回顾这次对 Zeek 的实操演练有以下几点心得工具选型源码编译适合定制化需求但日常分析强烈建议使用 Docker 部署 Zeek效率极高。日志关联分析网络取证的核心在于“关联”。通过files.log的文件ID结合conn.log和ftp.log可以精准还原文件的来龙去脉。安全意识FTP 协议采用明文传输攻击者不仅可以通过其传输恶意文件若抓取到包含密码的流量还会导致凭据泄露。在生产环境中应尽量使用 SFTP 或 FTPS 替代。威胁情报联动提取出的样本借助 VirusTotal 等威胁情报平台可以快速定性为应急响应争取时间。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑