公开文集
0x01 SRC 资产管理系统
0x02 Web 漏洞案例库
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
0x99 信息安全学习体系
01-网络安全基础
Day-001-TCP-IP协议栈安全分析
Day-002-DNS协议安全与DNS劫持攻防
Day-003-IPv6 安全基础与过渡
Day-004-HTTP-HTTPS协议深度解析
Day-005-网络嗅探与流量分析技术
Day-006-防火墙原理与配置实践
Day-007-网络地址转换 NAT 安全分析
Day-008-路由协议安全 RIP-OSPF-BGP
Day-009-VLAN 安全与 VLAN-Hopping
Day-010-无线网络基础与安全 802.11
Day-011-网络访问控制 802.1X-NAC
Day-012-网络分段与微隔离设计
Day-013-负载均衡器安全配置
Day-014-CDN安全与防护
Day-015-NTP安全
Day-016-DHCP安全与攻击防护
Day-017-ICMP协议安全分析
Day-018-网络协议模糊测试基础
Day-019-网络流量基线建立
Day-020-网络取证基础
Day-021-网络入侵检测系统 NIDS
Day-022-网络入侵防御系统 NIPS
Day-023-网络流量加密与解密
Day-024-网络协议逆向工程基础
Day-025-网络性能与安全权衡
Day-026-SDN 安全
Day-027-网络虚拟化安全
Day-028-网络欺骗技术
Day-029-网络威胁情报应用
Day-030-网络容量规划与安全
Day-031-网络安全架构设计实战
02-Web 安全
Day-032-OWASP-Top-10-2021详解
Day-033-SQL 注入原理与手工检测
Day-034-SQL注入进阶报错注入与盲注
Day-035-XSS跨站脚本攻击基础
Day-036-XSS 进阶绕过与利用
Day-037-XSS进阶绕过与利用
Day-038-CSRF 跨站请求伪造
Day-039-文件上传漏洞
Day-040-反序列化漏洞基础
Day-041-PHP反序列化深入
Day-042-Java反序列化深入
Day-043-SSTI 服务端模板注入
Day-044-文件包含漏洞 LFI-RFI
Day-045-命令注入漏洞
Day-046-XXE-XML 外部实体注入
Day-047-反序列化漏洞进阶
Day-048-API 安全基础
Day-049-API认证与授权安全
Day-050-API漏洞挖掘实战
Day-051-文件上传漏洞进阶
Day-052-反序列化漏洞实战
Day-053-Web 安全综合实战
Day-054-移动安全基础
Day-055-Android 应用安全测试
Day-056-iOS 应用安全测试
Day-057-移动应用综合实战
Day-058-云安全基础
Day-059-AWS 安全实战
Day-060-Azure 安全实战
Day-061-GCP 安全实战
Day-062-云安全综合实战
Day-063-容器安全基础
Day-064-Docker 安全实战
Day-065-Kubernetes 安全实战
Day-066-容器安全综合实战
Day-067-API 安全进阶
Day-068-服务端请求伪造 SSRF 深入
Day-069-文件上传漏洞进阶
Day-070-反序列化漏洞实战进阶
Day-071-业务逻辑漏洞深入
Day-072-前端安全深入
Day-073-Web 安全综合实战
Day-074-云安全进阶
Day-075-移动安全进阶
Day-076-API 安全进阶
Day-077-前端安全进阶
Day-078-业务逻辑漏洞进阶
Day-079-反序列化漏洞实战进阶
Day-080-文件上传漏洞实战进阶
Day-081-SSTI 服务端模板注入进阶
Day-082-XXE-XML 外部实体注入进阶
Day-083-SSRF 服务端请求伪造进阶
Day-084-命令注入漏洞进阶
Day-085-文件包含漏洞进阶
Day-086-反序列化漏洞实战进阶
Day-087-文件上传漏洞实战进阶
Day-088-SSTI 服务端模板注入实战进阶
Day-089-XXE-XML 外部实体注入实战进阶
Day-090-SSRF 服务端请求伪造实战进阶
Day-091-命令注入漏洞实战进阶
Day-092-Web 安全综合实战
Day-093-GraphQL 安全
Day-094-JWT 与 OAuth2 安全
03-系统安全
Day-095-系统监控与检测
Day-096-主机防火墙配置
Day-097-系统审计与合规
Day-098-Linux 系统安全进阶
Day-099-Windows 系统安全进阶
Day-100-容器安全进阶
Day-101-容器编排安全进阶
Day-102-Linux 内核安全
Day-103-Windows 内核安全
Day-104-系统安全总结与实战
Day-105-Linux 系统安全基础
Day-106-Windows 系统安全基础
Day-107-容器安全基础
Day-108-系统加固技术
Day-109-日志分析技术
Day-110-威胁狩猎技术
04-应用安全
Day-111-安全编码规范
Day-112-输入验证技术
Day-113-输出编码技术
Day-114-错误处理安全
Day-115-会话管理安全
Day-116-认证安全
Day-117-授权安全
Day-118-数据保护安全
Day-119-日志安全
Day-120-API 安全
Day-121-微服务安全
Day-122-新兴技术安全概论
Day-123-DevSecOps 流水线安全
Day-124-云原生安全架构
Day-125-API 安全最佳实践
Day-126-安全编码规范
Day-127-SDL 安全开发生命周期
Day-128-威胁建模实战
Day-129-安全需求分析
Day-130-安全架构设计
Day-131-安全编码实践Java
Day-132-安全编码实践Python
Day-133-代码审计方法论
Day-134-静态代码分析SAST
Day-135-动态应用测试DAST
Day-136-交互式测试IAST
Day-137-软件成分分析SCA
Day-138-依赖漏洞管理
Day-139-安全测试自动化
Day-140-漏洞管理与响应
Day-141-应用安全总结与展望
Day-142-OWASP-Top10-2024 详解
Day-143-CWE-Top25 分析
Day-144-漏洞挖掘方法论
Day-145-模糊测试技术
Day-146-逆向工程基础
Day-147-漏洞利用开发基础
Day-148-漏洞复现与验证
Day-149-漏洞披露流程
Day-150-CVE 申请与管理
Day-151-漏洞赏金计划
Day-152-等保2.0详解
Day-153-GDPR 合规实践
Day-154-数据安全法解读
Day-155-个人信息保护法与合规指南
Day-156-个人信息保护法解读
Day-157-ISO-27001 信息安全管理体系
Day-158-SOC-2 合规与审计
Day-159-PCI-DSS 支付卡行业数据安全标准
Day-160-网络安全审查办法解读
Day-161-数据出境安全评估办法
Day-162-应用安全评估实战
Day-163-红蓝对抗演练
Day-164-安全应急响应
Day-165-安全运营中心建设
Day-166-应用安全总结与展望
05-密码学
Day-167-密码学基础
Day-168-对称加密算法详解
Day-169-非对称加密算法详解
Day-170-哈希函数与数字签名
Day-171-密钥管理与PKI
Day-172-TLS-SSL 协议详解
Day-173-国密算法详解
Day-174-认证与密钥协议
Day-175-随机数生成与熵源
Day-176-椭圆曲线密码学详解
Day-177-后量子密码学详解
Day-178-高级密码学主题
Day-179-密码学行业应用精选
Day-180-常用加密算法原理与实现
Day-181-密码学总结与展望
Day-182-密码学系列总结与展望
06-渗透测试
Day-183-渗透测试方法论
Day-184-信息收集技术详解
Day-185-漏洞扫描技术详解
Day-186-漏洞利用技术详解
Day-187-渗透测试中的漏洞利用框架
Day-188-漏洞利用框架与 Metasploit 深入
Day-189-渗透测试中的 WAF 绕过技术
Day-190-渗透测试中的模糊测试技术
Day-191-渗透测试中的代码审计与静态分析
Day-192-渗透测试中的密码哈希破解技术
Day-193-渗透测试报告编写指南
Day-194-Web 应用渗透测试
Day-195-渗透测试中的 API 安全测试
Day-196-渗透测试中的 GraphQL 安全测试
Day-197-渗透测试中的前后端分离应用测试
Day-198-渗透测试中的小程序安全测试
Day-199-渗透测试中的浏览器安全测试
Day-200-OAuth-SSO安全测试
Day-201-渗透测试中的业务逻辑漏洞测试
Day-202-渗透测试中的厚客户端安全测试
Day-203-渗透测试综合实战演练
Day-204-内网渗透技术详解
Day-205-渗透测试中的内网信息收集进阶
Day-206-渗透测试中的域森林渗透技术
Day-207-渗透测试中的权限维持技术
Day-208-渗透测试中的横向移动技术
Day-209-渗透测试中的痕迹清理与反取证技术
Day-210-渗透测试中的数据窃取与 Exfiltration 技术
Day-211-渗透测试中的内部威胁与数据泄露测试
Day-212-渗透测试中的物理安全渗透
Day-213-社会工程学攻击技术
Day-214-移动应用渗透测试
Day-215-云安全渗透测试
Day-216-渗透测试中的容器与 Kubernetes 安全渗透
Day-217-渗透测试中的 Serverless 安全测试
Day-218-渗透测试中的微服务安全测试
Day-219-物联网安全渗透测试
Day-220-工业控制系统安全渗透测试
Day-221-无线网络安全渗透测试
Day-222-数据库安全渗透测试
Day-223-渗透测试中的供应链安全测试
Day-224-红队演练技术详解
Day-225-渗透测试中的红队基础设施搭建
Day-226-渗透测试中的威胁情报与狩猎
Day-227-渗透测试中的综合指纹识别技术
Day-228-自动化渗透测试技术
Day-229-渗透测试中的运维安全测试
Day-230-渗透测试中的区块链与智能合约安全测试
Day-231-渗透测试中的漏洞管理与修复验证
Day-232-渗透测试法律与合规
Day-233-后渗透攻击技术详解
Day-234-渗透测试中的人工智能应用
Day-235-漏洞利用开发深入
Day-236-云原生渗透测试深入
07-应急响应
Day-237-应急响应概述与核心概念
Day-238-应急响应流程框架
Day-239-CSIRT 团队组建与职责分工
Day-240-应急响应工具包准备
Day-241-应急响应法律与合规要求
Day-242-安全事件检测方法与指标
Day-243-云原生应急响应
Day-244-日志收集与分析技术
Day-245-网络流量分析与异常识别
Day-246-自动化响应与 SOAR
Day-247-端点监控与 EDR 技术
Day-248-威胁狩猎方法论
Day-249-威胁情报在检测中的应用
Day-250-数字取证基础与证据链管理
Day-251-内存取证技术
Day-252-磁盘取证与文件恢复
Day-253-网络取证与数据包分析
Day-254-云环境与容器取证
Day-255-恶意代码静态分析技术
Day-256-恶意代码动态分析技术
Day-257-恶意代码行为分析方法
Day-258-逆向工程基础与工具
Day-259-沙箱技术与自动化分析
Day-260-事件隔离与遏制策略
Day-261-威胁根除与系统修复
Day-262-系统恢复与数据重建
Day-263-业务连续性计划
Day-264-事件复盘与经验总结
Day-265-APT 攻击事件复盘分析
Day-266-勒索软件事件响应实战
Day-267-数据泄露事件处置流程
Day-268-内部威胁调查与取证
Day-269-综合应急响应演练
08-安全运维
Day-270-安全运营中心 SOC 概述
Day-271-安全监控指标体系
Day-272-安全告警管理
Day-273-安全可视化与仪表盘
Day-274-监控工具选型
Day-275-日志采集技术
Day-276-日志标准化与解析
Day-277-日志存储与归档
Day-278-日志分析技术
Day-279-日志合规要求
Day-280-SIEM 架构与设计
Day-281-关联规则引擎
Day-282-高级关联分析
Day-283-UEBA 用户实体行为分析
Day-284-威胁狩猎
Day-285-SOAR 基础概念
Day-286-剧本设计
Day-287-自动化响应技术
Day-288-安全工具集成
Day-289-SOAR 度量与优化
Day-290-安全基线管理
Day-291-漏洞管理流程
Day-292-补丁管理策略
Day-293-变更安全管理
Day-294-合规审计技术
Day-295-7x24 安全运营
Day-296-安全事件管理流程
Day-297-安全运营度量体系
Day-298-持续改进机制
Day-299-安全运维综合演练
Day-300-云原生安全运营
Day-301-AI 与机器学习安全运营
Day-302-安全自动化脚本实战
09-移动安全
Day-303-移动安全威胁概述
Day-304-移动设备安全架构
Day-305-移动操作系统安全模型
Day-306-移动应用权限管理
Day-307-移动端数据加密
Day-308-330-Android 安全合集
Day-309-Android 安全架构
Day-310-Android 组件安全
Day-311-Android 权限与隐私
Day-312-Android 逆向工程
Day-313-Android 应用加固
Day-314-iOS 安全架构
Day-315-iOS 应用沙盒机制
Day-316-越狱与反越狱
Day-317-iOS 逆向工程
Day-318-iOS 企业分发安全
Day-319-移动安全开发生命周期
Day-320-移动应用安全测试
Day-321-移动应用加固技术
Day-322-移动威胁防护
Day-323-移动安全合规
10-云安全
Day-324-云计算安全模型
Day-325-责任共担模型
Day-326-云安全威胁模型
Day-327-云安全合规框架
Day-328-云安全架构设计
Day-329-AWS IAM 安全
Day-330-AWS 网络安全
Day-331-AWS 存储安全
Day-332-AWS 安全监控
Day-333-AWS 安全最佳实践
Day-334-Azure AD 安全
Day-335-Azure 网络安全
Day-336-Azure 存储安全
Day-337-Azure 安全中心
Day-338-Azure 安全最佳实践
Day-339-容器安全基础
Day-340-Kubernetes 安全
Day-341-Serverless 安全
Day-342-云原生 DevSecOps
Day-343-云安全态势管理 CSPM
11-物联网工控
Day-344-物联网安全概述
Day-345-IoT 通信协议安全
Day-346-IoT 设备安全
Day-347-IoT 平台安全
Day-348-IoT 应用安全
Day-349-工业控制系统概述
Day-350-工控协议安全
Day-351-PLC 安全
Day-352-SCADA 系统安全
Day-353-工控安全防护
12-综合与总结
Day-354-安全职业发展路径
Day-355-安全技术趋势展望
Day-356-安全建设方法论
Day-357-经典攻防案例复盘
Day-358-安全学习资源指南
Day-359-信息安全行业求职指南
-
+
首页
Day-256-恶意代码动态分析技术
# Day 277: 恶意代码动态分析技术 > 应急响应系列第 17 天 | 预计阅读时间:35 分钟 | 难度:★★★★★ --- ## 清单 目录 1. [动态分析概述](#动态分析概述) 2. [沙箱环境搭建](#沙箱环境搭建) 3. [行为监控技术](#行为监控技术) 4. [网络行为分析](#网络行为分析) 5. [内存行为分析](#内存行为分析) 6. [反分析对抗](#反分析对抗) 7. [自动化沙箱](#自动化沙箱) 8. [总结与思考](#总结与思考) 9. [参考资料](#参考资料) --- ## 动态分析概述 ### 什么是动态分析 **动态分析(Dynamic Analysis)** 是在隔离环境中执行恶意代码,观察其实际行为的方法。 ### 动态分析价值 | 价值 | 说明 | |------|------| | **观察实际行为** | 看到代码真正做了什么 | | **绕过混淆** | 代码执行时会解密/脱壳 | | **发现 IOC** | 提取 C2、文件路径等 | | **理解攻击链** | 完整攻击流程 | | **验证假设** | 验证静态分析结论 | ### 动态分析风险 | 风险 | 说明 | 缓解措施 | |------|------|----------| | **逃逸风险** | 恶意软件突破隔离 | 多层隔离、网络断开 | | **持久化** | 感染分析环境 | 快照恢复 | | **传播** | 感染其他系统 | 物理隔离 | | **检测分析** | 发现被分析 | 反反分析技术 | ### 动态分析流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ 动态分析流程 │ │ │ │ 准备环境 ──→ 执行样本 ──→ 监控行为 ──→ 提取 IOC ──→ 清理 │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ 快照/隔离 安全执行 文件/注册表 网络/文件 恢复 │ │ 工具准备 监控启动 进程/网络 凭证/配置 快照 │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 沙箱环境搭建 ### 虚拟化平台 #### VMware Workstation **优点**: - 功能完善 - 快照管理方便 - 网络配置灵活 **配置要点**: ``` 1. 安装干净 Windows 系统 2. 安装 VMware Tools 3. 创建干净快照"Clean State" 4. 配置网络(Host-only 或 断开) 5. 安装分析工具 6. 创建"Ready"快照 ``` #### VirtualBox **优点**: - 免费开源 - 跨平台 - 基本功能齐全 **配置**: ```bash # 命令行创建 VM VBoxManage createvm --name "Sandbox" --register VBoxManage modifyvm "Sandbox" --memory 2048 VBoxManage modifyvm "Sandbox" --nic1 hostonly # 创建快照 VBoxManage snapshot "Sandbox" take "Clean" ``` #### QEMU/KVM **优点**: - 原生 Linux - 性能好 - 开源 **适用**:Linux 恶意软件分析 ### 网络配置 #### 网络模式选择 | 模式 | 说明 | 安全级别 | |------|------|----------| | **断开** | 完全无网络 | 最高 | | **Host-only** | 仅主机通信 | 高 | | **NAT** | 通过主机上网 | 中(可配置规则) | | **桥接** | 直接连物理网络 | 低(不推荐) | #### 模拟网络环境 ``` 工具: - INetSim:模拟互联网服务 - FakeNet-NG:模拟网络响应 - DNSChef:DNS 欺骗 用途: - 让恶意软件以为有网络 - 捕获 C2 域名 - 防止真实连接 ``` **INetSim 配置**: ```bash # 安装 apt install inetsim # 配置 vim /etc/inetsim/inetsim.conf # 启动 systemctl start inetsim # 恶意软件连接任何域名都会连接到 INetSim ``` ### 监控工具准备 #### 系统监控 | 工具 | 监控内容 | |------|----------| | **Process Monitor** | 文件、注册表、进程 | | **Process Explorer** | 进程、句柄、DLL | | **Autoruns** | 自启动项 | | **TCPView** | 网络连接 | #### 网络监控 | 工具 | 用途 | |------|------| | **Wireshark** | 抓包分析 | | **Fiddler** | HTTP/HTTPS 代理 | | **Burp Suite** | Web 流量分析 | ### 快照管理 ``` 快照策略: 1. Clean State - 干净系统 2. Tools Ready - 工具安装完成 3. Pre-analysis - 分析前 4. Post-analysis - 分析后(保留) 恢复流程: 分析完成 → 还原到 Pre-analysis → 分析下一个样本 ``` --- ## 行为监控技术 ### 进程行为监控 #### Process Monitor 使用 **过滤设置**: ``` 1. 打开 ProcMon 2. Filter → Filter... 3. 添加过滤: - Process Name is malware.exe → Include - Process Name is not malware.exe → Exclude 4. 点击 Apply ``` **关键事件**: | 事件类型 | 关注内容 | |----------|----------| | **CreateFile** | 文件创建/写入 | | **RegSetValue** | 注册表修改 | | **CreateProcess** | 子进程创建 | | **Connect** | 网络连接 | #### 进程树分析 ``` 观察要点: 1. 父进程 - 如何启动的 2. 子进程 - 启动了什么 3. 进程链 - 完整执行链 典型恶意进程链: winword.exe → cmd.exe → powershell.exe → payload.exe ``` ### 文件行为监控 #### 文件操作检测 ``` 关注操作: - 文件创建(尤其是系统目录) - 文件修改(配置文件) - 文件删除(日志、证据) - 文件复制(传播) 可疑路径: - C:\Windows\System32\ - C:\Users\Public\ - C:\ProgramData\ - %APPDATA%\ - %TEMP%\ ``` #### 文件投放检测 ```powershell # 常见投放位置 $paths = @( "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\", "$env:LOCALAPPDATA\Temp\", "C:\ProgramData\", "$env:TEMP\" ) # ProcMon 过滤这些路径 ``` ### 注册表行为监控 #### 持久化注册表 ``` 关键位置: HKLM\Software\Microsoft\Windows\CurrentVersion\Run HKCU\Software\Microsoft\Windows\CurrentVersion\Run HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce HKLM\System\CurrentControlSet\Services\ 监控: - 新键创建 - 值修改 - 权限变更 ``` #### 配置存储 ``` 恶意软件常存储配置在: HKCU\Software\<RandomName>\ HKLM\Software\<RandomName>\ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ 监控这些位置可能发现 C2 配置 ``` --- ## 网络行为分析 ### 连接监控 #### TCPView 使用 **显示信息**: - 进程名 - 本地地址/端口 - 远程地址/端口 - 连接状态 **可疑连接特征**: | 特征 | 说明 | |------|------| | 非常规端口 | 非 80/443 的加密流量 | | 未知 IP | 不在白名单的 IP | | 定期连接 | 心跳信标 | | 多连接 | 连接多个外部 IP | ### HTTP/HTTPS 分析 #### Fiddler 配置 ``` 1. 安装 Fiddler 2. Tools → Options → HTTPS 3. 勾选 Decrypt HTTPS traffic 4. 安装根证书 5. 开始监控 过滤规则: - 只显示恶意进程流量 - 高亮可疑域名 ``` #### 可疑 HTTP 特征 ``` 请求特征: - 异常 User-Agent - 固定/随机 URL 路径 - 异常 Cookie - Base64 编码数据 响应特征: - 返回可执行内容 - 加密/编码数据 - 异常 Content-Type ``` ### DNS 行为分析 #### DNS 监控 ```bash # 使用 Wireshark 过滤 DNS dns # 查看查询的域名 tshark -Y "dns" -T fields -e dns.qry.name # 检测 DGA 域名 # - 高熵值 # - 无意义字母组合 # - 大量 NXDOMAIN ``` #### DNS 隧道检测 ``` 特征: - 超长子域名 - 高频查询 - TXT 记录异常 - Base64/Hex 编码 示例: aGVsbG8gd29ybGQ.tunnel.evil.com ``` --- ## 内存行为分析 ### 进程内存分析 #### 内存转储 ```powershell # 使用 Process Hacker # 右键进程 → Create → Create Dump # 使用 ProcDump procdump -ma pid output.dmp ``` #### 内存扫描 ```bash # 使用 YARA 扫描内存转储 yara -r rules.yar process_dump.dmp # 查找字符串 strings process_dump.dmp | grep -E "http|password|cmd" ``` ### 代码注入检测 #### 注入类型 | 类型 | 说明 | 检测 | |------|------|------| | **DLL 注入** | 强制加载 DLL | 检查进程加载的 DLL | | **代码注入** | 写入代码并执行 | 检查内存权限 | | **进程镂空** | 替换合法进程代码 | 对比磁盘/内存镜像 | | **APC 注入** | 异步过程调用 | 检查 APC 队列 | #### Process Explorer 检测 ``` 1. 打开 Process Explorer 2. View → Show Lower Pane 3. 选择进程 → 查看 DLLs 4. 检查可疑 DLL: - 未知来源 - 无签名 - 临时路径 ``` ### 凭证窃取检测 #### LSASS 访问监控 ``` Mimikatz 等工具会访问 LSASS 进程 检测方法: 1. ProcMon 过滤 lsass.exe 2. 查看哪些进程访问 LSASS 3. 任何非系统进程访问都是可疑的 ``` #### 凭证转储告警 ```powershell # Windows 事件日志 # 事件 ID 4688: 进程创建 # 过滤 mimikatz、sekurlsa 等关键词 Get-WinEvent -FilterHashtable @{LogName='Security';Id=4688} | Where-Object {$_.Message -like "*mimikatz*" -or $_.Message -like "*sekurlsa*"} ``` --- ## 反分析对抗 ### 常见反分析技术 | 技术 | 说明 | 对抗方法 | |------|------|----------| | **反虚拟机** | 检测 VM 特征 | 隐藏 VM 特征 | | **反沙箱** | 检测沙箱环境 | 模拟真实用户 | | **反调试** | 检测调试器 | 隐藏调试器 | | **延迟执行** | 等待后执行 | 等待足够时间 | | **用户交互** | 等待鼠标点击 | 模拟用户活动 | ### 虚拟机检测与隐藏 #### VM 检测方法 ``` 恶意软件检测 VM 的方法: - 检查 MAC 地址(VMware: 00:0C:29, VirtualBox: 08:00:27) - 检查进程(vmtoolsd.exe, VBoxService.exe) - 检查注册表(VMware Tools 信息) - 检查硬件(VM 特定硬件 ID) - 检查指令执行时间(RDTSC) ``` #### 隐藏 VM 特征 ```powershell # 移除 VM 工具 # 不要安装 VMware Tools/VirtualBox Guest Additions # 修改 MAC 地址 # 使用非 VM 的 MAC 地址前缀 # 删除注册表痕迹 reg delete "HKLM\SOFTWARE\VMware, Inc." /f ``` ### 沙箱检测与对抗 #### 沙箱特征 ``` 沙箱检测点: - 运行时间短(沙箱通常只运行几分钟) - 用户活动少(无鼠标键盘活动) - 内存小(沙箱内存配置低) - 单核 CPU - 特定沙箱进程 ``` #### 模拟真实环境 ``` 1. 运行足够长时间(10 分钟以上) 2. 模拟用户活动(自动点击、打字) 3. 配置足够资源(4GB 内存,多核) 4. 安装常用软件(Office、浏览器) 5. 创建用户文件(文档、图片) ``` ### 调试器检测 #### 检测方法 ```assembly ; 常见反调试技术 IsDebuggerPresent ; Windows API CheckRemoteDebuggerPresent NtQueryInformationProcess Int3 陷阱 时间检查 (RDTSC) ``` #### 隐藏调试器 ``` 工具: - ScyllHide - TitanHide - Phant0m 方法: - 钩子 API 返回假值 - 隐藏调试器进程 - 移除 Int3 断点 ``` --- ## 自动化沙箱 ### Cuckoo Sandbox #### 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Cuckoo Sandbox 架构 │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ Web UI │ │ API │ │ 管理 │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ └──────────────┼──────────────┘ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 核心服务 │ │ │ │ • 任务调度 • 结果处理 • 报告生成 │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ │ ┌──────────────┼──────────────┐ │ │ ▼ ▼ ▼ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 虚拟机 1 │ │ 虚拟机 2 │ │ 虚拟机 3 │ │ │ │ Windows │ │ Linux │ │ macOS │ │ │ └─────────┘ └─────────┘ └─────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` #### 安装配置 ```bash # 安装 git clone https://github.com/cuckoosandbox/cuckoo cd cuckoo pip install -r requirements.txt # 配置 cp -r conf conf.bak # 编辑 conf/cuckoo.conf, conf/virtualbox.conf 等 # 启动 ./cuckoo.py ``` #### 提交样本 ```bash # 命令行提交 ./cuckoo submit malware.exe # API 提交 curl -F file=@malware.exe http://localhost:8090/tasks/create # Web 界面提交 http://localhost:8090 ``` #### 报告分析 ```json // JSON 报告摘要 { "info": { "started": "2024-04-12 10:00:00", "ended": "2024-04-12 10:05:00" }, "network": { "hosts": ["185.123.45.67"], "domains": ["evil.com"] }, "signatures": [ {"name": "creates_exe", "severity": 2}, {"name": "connects_to_ip", "severity": 3} ], "dropped": [ {"name": "payload.exe", "type": "PE32"} ] } ``` ### 其他沙箱 | 沙箱 | 类型 | 特点 | |------|------|------| | **Any.Run** | 在线 | 交互式分析 | | **Joe Sandbox** | 在线/本地 | 深度分析 | | **Hybrid Analysis** | 在线 | 免费、快速 | | **VirusTotal** | 在线 | 多引擎扫描 | --- ## 总结与思考 ### 核心要点回顾 1. **动态分析观察实际行为** - 静态分析无法替代 2. **沙箱隔离至关重要** - 防止感染扩散 3. **全方位监控** - 文件、注册表、进程、网络 4. **反分析需要对抗** - 了解并绕过检测 5. **自动化提高效率** - 沙箱批量分析 ### 实战建议 1. **建立专用分析环境** - 物理隔离最佳 2. **准备完整工具链** - 监控、分析、报告 3. **定期更新快照** - 保持环境干净 4. **积累 IOC 库** - 持续更新威胁情报 5. **结合静态分析** - 动静结合最全面 --- ## 参考资料 ### 工具资源 - **Cuckoo Sandbox** - https://cuckoosandbox.org/ - **REMnux** - https://remnux.org/ - **FLARE VM** - https://github.com/mandiant/flare-vm ### 学习资源 - **Practical Malware Analysis** - 经典书籍 - **Malware Analysis Tools** - https://malwareanalysis.tools/ --- *365 天信息安全技术系列 | Day 277 | 恶意代码动态分析技术*
myh0st
2026年4月13日 23:20
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码