可疑样本静态分析检查清单
目标: 在不运行样本的前提下,快速识别可疑迹象,确认一个样本是否恶意。
- 此清单用于快速初步判断,不能100%确定样本是否恶意。
- “是”的答案越多,样本恶意性越高,需要优先处理或送去沙箱进行动态分析。
- 对于高度混淆或0-day样本,静态分析可能效果有限。
一、文件基础信息检查
- 文件名/扩展名异常?
- 是否为双扩展名 (如
file.txt.exe)? - 是否伪装成常见文档/图片 (如
invoice.pdf但实际是.exe)? - 文件名是否包含空格或诱导性词汇 (如
点击运行我.exe、放假通知.exe、吃瓜视频.exe)?
- 是否为双扩展名 (如
- 文件大小异常?
- 对于声称的类型是否过小/过大? (例如,一个几KB的 “视频播放器.exe”)
- 文件类型真实性?
- 使用工具 (如
DIE,file命令) 确认,是否与声称的扩展名一致?
- 使用工具 (如
- 数字签名状态?
- 无签名?
- 签名无效或已吊销?
- 签发者可疑或不常见?
- 文件哈希在线查询结果? (VirusTotal, 微步等)
- 是否被多家引擎报毒?
- 是否已有分析报告指认为恶意?
- 注意,尽量不要直接上传样本到在线沙箱,请上传哈希值或样本特征码,避免客户或者内部数据泄露。
二、字符串内容检查 (使用 strings 工具等)
注意:现如今绝大多数的恶意样本都会对行为特征和字符串进行加密、压缩等变形,很难直接通过字符串发现恶意行为,但是往往是非常好的切入点。
- 可疑网络活动迹象?
- 发现IP地址 (特别是国外、或已知恶意IP段)?
- 发现URL/域名 (特别是动态域名、短链接、可疑顶级域名
.xyz,.top等)? - 包含HTTP/HTTPS/FTP等协议关键词?
- 包含网络相关的API名称 (如
socket,connect,HttpOpenRequest)?
- 可疑文件系统操作迹象?
- 包含常见系统路径 (如
C:\Windows\System32,%TEMP%,%APPDATA%)? - 包含文件操作命令/API (如
CreateFile,WriteFile,DeleteFile,copy,del)?
- 包含常见系统路径 (如
- 可疑注册表操作迹象?
- 包含注册表路径 (特别是启动项
Run,RunOnce或服务相关键值)? - 包含注册表操作API (如
RegCreateKey,RegSetValue)?
- 包含注册表路径 (特别是启动项
- 可疑进程/命令执行迹象?
- 包含
cmd.exe,powershell.exe(尤其带-enc,-nop,-w hidden参数)? - 包含
CreateProcess,ShellExecute,WinExec? - 包含提权、添加用户、关闭防火墙等命令 (如
net user,netsh advfirewall)?
- 包含
- 代码混淆/加密迹象?
- 大量无意义的随机字符串?
- 包含 Base64/XOR 等编码特征?
- 包含加壳工具特征字符串 (如 UPX, Themida, VMProtect)?
- 其他可疑关键词?
- 如
exploit,payload,hack,keylogger,backdoor? - 常见恶意软件家族名称或其特有字符串?
- 如
三、重点:PE文件结构检查 (如 .EXE, .DLL – 使用PE分析工具)
其他脚本类型、文档、等类型的文件分析起来较为容易,PE文件结构较为复杂,需要一定的PE分析知识。
快速分析的话,可以使用DIE工具进行PE文件分析,检查以下内容:
https://github.com/horsicq/Detect-It-Easy
类似工具还有很多,选择自己顺手的即可。
- 导入函数 (Imports) 可疑? (程序想要做什么?)
- 网络操作函数: (是否涉及网络通信、下载、上传?)
- 例子:
Socket,Connect,Send,Recv,WSASocket,WSAStartup,InternetOpenA/W,InternetOpenUrlA/W,HttpOpenRequestA/W,HttpSendRequestA/W,URLDownloadToFileA/W,GetAddrInfoW,DnsQuery_A/W - 关注点:常用于C2通信、下载后续恶意载荷、数据回传。
- 例子:
- 文件/目录操作函数: (是否会创建、修改、删除文件?)
- 例子:
CreateFileA/W,WriteFile,ReadFile,DeleteFileA/W,MoveFileA/W,CopyFileA/W,SetFileAttributesA/W,GetTempPathA/W - 关注点:常用于释放恶意文件、修改系统文件、清除痕迹、窃取文档。
- 例子:
- 进程注入/操作函数: (是否会操作其他进程、注入代码?)
- 例子:
CreateRemoteThread,WriteProcessMemory,ReadProcessMemory,OpenProcess,VirtualAllocEx,VirtualProtectEx,QueueUserAPC,SetThreadContext,ResumeThread - 关注点:常用于代码注入以隐藏自身、在信任进程中执行恶意代码、反调试。
- 例子:
- 注册表操作函数: (是否会修改注册表以实现持久化或更改配置?)
- 例子:
RegOpenKeyExA/W,RegCreateKeyExA/W,RegSetValueExA/W,RegDeleteValueA/W,RegQueryValueExA/W - 关注点:常用于设置自启动项、修改系统配置、存储恶意软件配置。
- 例子:
- 键盘钩子/监控/窗口操作函数: (是否会记录键盘输入、监控用户行为?)
- 例子:
SetWindowsHookExA/W(特别是WH_KEYBOARD,WH_MOUSE),GetAsyncKeyState,GetKeyState,GetForegroundWindow,FindWindowA/W - 关注点:常用于键盘记录、窃取敏感信息、针对特定应用的行为。
- 例子:
- 反调试/虚拟机检测函数: (是否试图检测分析环境?)
- 例子:
IsDebuggerPresent,CheckRemoteDebuggerPresent,GetTickCount,QueryPerformanceCounter,OutputDebugStringA/W,FindWindowA/W(查找调试器窗口名) - 关注点:恶意软件常使用这些函数来对抗分析,如果检测到调试器或虚拟机则可能改变行为或直接退出。
- 例子:
- 加密/解密/哈希函数: (是否涉及数据加密或解密?)
- 例子:
CryptEncrypt,CryptDecrypt,CryptAcquireContextA/W,CryptGenKey,CryptHashData,BCryptEncrypt,NCryptEncrypt - 关注点:勒索软件会加密文件;C2通信或自身模块可能使用加密来混淆。
- 例子:
- 权限提升/令牌操作函数: (是否试图获取更高权限?)
- 例子:
OpenProcessToken,AdjustTokenPrivileges,LookupPrivilegeValueA/W - 关注点:用于提升自身权限以执行敏感操作。
- 例子:
- 服务管理函数: (是否会创建或修改系统服务?)
- 例子:
OpenSCManagerA/W,CreateServiceA/W,StartServiceA/W,ControlService,DeleteService - 关注点:常用于持久化,使恶意软件在系统启动时自动运行。
- 例子:
- 动态库加载/过程地址获取函数: (是否在运行时加载功能?)
- 例子:
LoadLibraryA/W,GetProcAddress,LdrLoadDll - 关注点:虽然正常,但如果加载可疑DLL或大量使用
GetProcAddress(尤其配合解密后的函数名字符串),可能是为了隐藏导入表或实现模块化。
- 例子:
- 资源操作函数: (是否会从自身资源中提取数据?)
- 例子:
FindResourceA/W,LoadResource,LockResource,SizeofResource - 关注点:恶意软件可能将Payload、配置文件或其他恶意模块存储在资源中,并在运行时提取。
- 例子:
- COM组件操作函数: (是否通过COM对象执行功能?)
- 例子:
CoInitializeEx,CoCreateInstance,OleInitialize - 关注点:一些恶意软件利用COM对象执行命令 (如WMI) 或进行浏览器劫持等。
- 例子:
- 导入函数数量异常:
- 极少: (如仅有几个kernel32.dll的函数) 强烈暗示样本被加壳(Packed)或是一个Shellcode加载器,真实功能被隐藏,需要脱壳或动态分析。
- 极多且不相关: 有时是为了迷惑分析者,或者是一些特定框架自动生成的,但也可能不寻常。
- 网络操作函数: (是否涉及网络通信、下载、上传?)
- PE节区 (Sections) 异常?
- 节区名可疑 (如
.UPX0,.rmnet, 或随机名)? - 存在可写且可执行 (WX) 的节区?
- 节区熵值过高 (接近8.0,表明可能压缩/加密)?
- 节区名可疑 (如
- 资源 (Resources) 可疑?
- 包含其他PE文件、脚本或二进制数据?
- 图标/版本信息与宣称功能不符或缺失?
- 编译时间戳异常?(关注编译、活动时间可以做APT组织归因辅助)
- 时间为未来或非常古老?
- 与已知攻击活动时间吻合?
四、其他文件类型特定检查
- 脚本文件 (PS1, VBS, JS, PY 等)?
- 是否有明显代码混淆 (如长串无意义字符、Base64编码块)?
- 是否包含
Invoke-Expression(IEX),eval,document.write(针对JS) 等高危函数? - 是否有下载执行远程文件的代码?
- Office 文档 (DOCX, XLSX, PPTX 等,特别是带 M 后缀的宏启用文档)?
- 是否提示“启用内容”或“启用宏”?
- (使用
olevba等工具) 发现可疑宏代码? - 宏代码是否包含自动执行 (
AutoOpen,Document_Open)? - 宏代码是否调用外部程序 (如 PowerShell) 或下载文件?
- PDF 文件?
- (使用
pdf-parser.py等工具) 是否包含 JavaScript? - JavaScript 是否有可疑行为 (如启动动作
/Launch,/URI指向可疑链接)? - 是否利用已知PDF阅读器漏洞的迹象?
- (使用
结论判断:
- 多个检查项为“是”? (危险程度随“是”的数量增加)
- 是否与当前流行的攻击手法特征吻合?
- 直觉和经验判断是否可疑?
© 版权声明
渗透云记的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
渗透云记拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。详情见本站的“免责声明”如果有侵权之处请第一时间联系我们删除。敬请谅解!E-mail:admin@encenc.com
THE END














请登录后查看评论内容