ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

CuteVirusCollection样本库分析:从恶作剧到勒索软件的恶意软件研究实战

CuteVirusCollection样本库分析:从恶作剧到勒索软件的恶意软件研究实战 简介CuteVirusCollection是一套面向信息安全学习者、CTF选手与恶意代码分析人员的病毒示例集合以“可爱”命名包装了多款短小却危险的计算机病毒、蠕虫与批处理炸弹适用于Windows XP/7/10环境下的行为研究。资源按危害等级分为狼、老虎、恶魔三个层次狼级演示无休止的烦人消息、随机移动鼠标并点击、窗口四处乱跳直到系统关闭老虎级则通过超大字符串淹没RAM、无限打开命令提示符或浏览器窗口、创建fork炸弹及海量子进程来压垮CPU恶魔级使用递归批处理让系统永久卡死。压缩包约47KB文件数量不多但内含JavaScript、C、Java、Shell、批处理等多种语言脚本覆盖进程管理、内存消耗、UI干扰、递归逻辑等典型攻击面。对希望快速理解恶意软件行为机理、用于安全教学演示或病毒分析入门的读者而言是一份便于在虚拟机中开展实验的分类参考。该资源已有1954人学习适合有一定编程基础的人对照源码逐行研究。 你有没有遇到过这种情况在安全社区或GitHub上闲逛看到一个仓库名叫“CuteVirusCollection”点进去全是些自称“可爱”“无害”“有趣”的Windows可执行文件标题后缀还标着Windows XP/7/10。第一反应大概率是“这谁闲着没事做病毒合集”但真正摸过这些样本的人会明白这个集合的价值远不止“可爱”两个字。这类项目表面上是在收集“恶作剧级别”的恶意软件——弹个恐怖对话框、随机移动鼠标、修改桌面壁纸看起来人畜无害。可一旦你深入分析就会发现里面混着真正具有破坏力的东西自我复制的蠕虫模块、下载器、键盘记录器甚至伪装成小游戏的勒索软件变体。标题里“可爱但致命”这个矛盾修辞恰恰是这类样本库最核心的特征用无害的外表掩盖危险的行为这正是现实世界恶意软件最常见的伪装策略。这篇文章我会从项目定位、样本分类、实验环境搭建、分析流程、常见坑位五个方面把我实际折腾这类样本库的经验完整梳理一遍。适合三类人看准备入门恶意软件分析的安全新人、需要本地样本库做杀软测试的工程师、以及纯粹对“电脑病毒到底怎么工作”感到好奇的技术爱好者。先说好所有内容都只讨论在严格的隔离环境里的研究思路不鼓励也不支持任何形式的真实破坏行为。1. 项目概述与内容定位1.1 这到底是什么一个带幽默感的恶意软件样本库“CuteVirusCollection”不是一个官方项目名而是安全圈里一类样本存储仓库的通用叫法。这类仓库通常以“可爱”“萌”“无害”为包装把大量小型恶意程序集中存放在一起命名风格极其误导——可能是“kitty.exe”“bubbles.scr”也可能是“party.ape.helper”这种看起来像正常软件辅助组件的文件名。这种命名策略本身就是研究素材。恶意软件分析师和红队成员经常提醒真实的恶意攻击不会起名叫“evil_virus.exe”而是会伪装成系统组件、破解工具、游戏外挂、激活脚本。CuteVirusCollection这类仓库等于把“伪装”这一课浓缩在了几十上百个小样本里让你在低风险环境里反复练习识别手法。从我实际浏览和测试的经验看这类集合的内容通常分这么几类批处理脚本.bat / .cmd几十行就能实现复制自身、修改注册表、弹窗循环小型编译程序C/C、C#、AutoIt常见行为是恶作剧弹窗、鼠标乱飞、弹出/关闭光驱老式宏病毒或脚本病毒脱胎于Office宏和VBScript时代少量真正的蠕虫和下载器样本数量少但危险系数高。很多人会问“看起来无害的样本有什么研究价值”答案是无害和有害之间从来不是非黑即白。一个只改壁纸的程序如果里面藏了读取浏览器Cookie的代码它就不再是无害的。分析样本时你最需要练的本事就是从“看起来无害”的外表下找到隐藏的恶意逻辑。这个仓库恰恰提供了大量这种“反差样本”供你实践。1.2 为什么要在Windows XP、7、10上折腾标题里明确标注“windows-xp-7-10”这一点非常关键。恶意软件和操作系统版本之间的关系比很多人想象中更复杂。Windows XP时代系统默认所有进程都有极高权限老式病毒可以轻松修改系统目录、劫持进程、改写引导区。到了Windows 7微软引入UAC用户账户控制恶意软件想写注册表的HKLM本地机器键位就得触发提权弹窗。Windows 10进一步收紧了默认安全策略加上自带Defender和强制驱动签名老的恶意软件经常直接跑不起来。这意味着同一个样本在三个系统上的行为可能是完全不同的系统版本UAC默认安全机制老样本运行效果Windows XP SP3无几乎没有畅通无阻行为完整展现Windows 7有默认通知Defender基础防护部分行为受阻需手动放行Windows 10有较强Defender ASLR/DEP/Credential Guard多数老样本无法有效运行所以这类仓库覆盖三个系统等于给你提供了一条“恶意软件演化史”的观察链路。你在XP上看到样本的完整破坏过程在Win10上看到安全机制如何与它对抗这种对比学习比单纯读文档来得直观得多。我的建议是老样本优先在XP虚拟机里跑新样本在Win7里验证Win10主要用于测试防御绕过手法。备用三套虚拟机镜像分别安装这三个系统快照打好随测随回滚。2. 样本类型解析与风险分级2.1 恶作剧型样本看着可爱实则恼人的小把戏恶作剧型样本是整个集合里数量最多、也最“友好”的一类。常见行为包括循环弹出对话框内容通常是一段吓人的话或“你中毒了”的假警报把桌面壁纸替换成恐怖图片或者倒置屏幕随机移动鼠标指针让用户无法正常操作定时弹出光驱托盘现在光驱少见老电脑上很经典播放一段突兀的声音文件制造惊吓效果。这类程序的实现逻辑通常很简单调用Windows API即可。比如改壁纸用SystemParametersInfoW函数移动鼠标用SetCursorPos弹窗用MessageBoxW播放声音用PlaySound。一个初学者花一个晚上就能写出类似程序。但你需要注意的是恶作剧程序并不总是停留在“恶作剧”层面。我见过一个命名为“funny_cat.exe”的样本表面行为是播放一个猫叫的音频实际在后台悄悄往启动文件夹写入了另一个可执行文件。表面无害和实际危害之间的落差正是这类样本最值得分析的点。处理这类样本时仍然要全程放在虚拟机里。原因有两点第一你永远无法保证样本里没有隐藏第二层功能第二研究和运行恶意代码的行为本身在未经授权的机器上就是越界的。隔离是底线不是可选项。2.2 真正危险的样本蠕虫、下载器与勒索软件的伪装集合里真正危险的是这几类蠕虫、下载器、Dropper偶尔还能看到勒索软件的研究样本。蠕虫类样本的特征是具备自我传播能力不需要依附宿主文件通过网络共享、U盘自动运行、漏洞利用等方式横向扩散。近期新闻里提到的“ChainDrop”蠕虫就是典型案例它能在短时间内感染大量内网主机主要利用弱口令和未修补的系统漏洞。这类样本如果在你日常使用的电脑上运行一夜之间就可能把整个局域网拖下水。下载器Downloader则是一种“攻击前哨”程序。它本身不做什么破坏主要任务是从远程服务器拉取恶意负载并执行。样本库里的下载器通常会硬编码一个URL分析时需要重点查看这个URL指向哪里、拉取的文件是什么类型、是否带有数字签名绕过逻辑。勒索软件样本则更凶险一旦运行就会对文件进行加密并索要赎金分析时必须保证网络完全隔离绝不能让它有和外网通信的机会。标题里“可爱但致命”的精髓就在这里你可能花了一个小时分析一个看似无害的小程序最后发现它其实是某个攻击链的第一步。这种“轻敌”的教训做过样本分析的人几乎都经历过。2.3 给样本做风险分级分析前的必修课面对一堆来路不明的可执行文件直接乱跑是新手最容易犯的错误。我整理了一份风险分级表建议所有人拿到样本后先归类再决定怎么处理风险级别典型特征处理建议0级纯弹窗、改壁纸无持久化行为可在隔离VM直接运行观察行为1级修改桌面设置、移动鼠标、播放声音可在隔离VM运行运行前打快照2级自我复制、修改注册表启动项、向启动文件夹写入文件建议先静态分析再运行监控注册表和文件系统3级存在下载行为、尝试网络通信必须断网或使用假DNS配合抓包工具4级删除文件、修改文件关联、加密文件勒索行为严禁在真实系统或共享目录接触仅在隔离快照中分析5级疑似APT手法、躲避虚拟机检测、多阶段释放非专业人员建议不要运行交给专业团队或直接上传沙箱这个表格不是死的但能帮你建立基本的风险意识。我的习惯是拿到任何新样本先跑一遍静态分析确认没有明显的网络回连和破坏性代码之后才考虑动态运行。如果时间紧张优先用自动化沙箱比如Cuckoo或在线沙箱快速过一遍再决定要不要手工深入。3. 实验环境搭建给“病毒”做个安全牢笼3.1 虚拟机选型与关键安全配置研究恶意软件的第一步不是下载样本而是做一套绝对安全的隔离环境。我推荐用VMware Workstation或VirtualBox这两款虚拟机软件功能成熟快照和网络隔离机制可靠。创建虚拟机时下面几个配置项务必认真检查操作系统镜像选择干净的原版系统不要用各种Ghost精简版和破解版否则分析时你会分不清某些行为是样本造成的还是系统自带的内存分配2GB~4GB即可恶意软件分析不需要高配置禁用虚拟机的USB控制器、声卡、打印机等不必要外设减少潜在逃逸面网络模式先设为“仅主机模式Host-Only”后续根据分析需要再决定是否切换关闭剪贴板共享和拖拽文件功能防止样本通过共享路径逃逸到宿主机安装完系统后在干净状态下拍一个快照命名为“base-clean”后续所有分析都从这份快照开始。这里额外提一句Vmware Tools的安装问题。早期恶意软件分析圈流行“不装VMware Tools以规避反虚拟机检测”但现代分析工具几乎都依赖虚拟化增强功能不装Tools会导致文件拖拽、剪贴板、共享目录全不能用。我的建议是日常分析照常安装如果怀疑样本有反虚拟机逻辑再在第二个隔离VM里用“不装Tools”的配置做对照实验。3.2 快照管理与样本投递流程快照是整个隔离实验里最重要的机制。它的原理是把虚拟机的当前状态完整保存下来实验结束后一键回到保存时的状态一切修改直接作废。具体操作流程是先启动干净的虚拟机确认系统正常然后关闭虚拟机在虚拟机管理器中点击“拍摄快照”命名如“clean-xp-initial”。每次分析新样本前先恢复到这份基础快照再启动系统、关闭Windows Defender或防火墙面向分析的虚拟机不需要杀软实时防护否则样本可能被杀软拦截就看不到行为了然后把样本复制进去。复制样本的方式要谨慎共享文件夹功能建议在整个分析流程中保持关闭。最稳妥的做法是用一个一次性ISO镜像比如用UltraISO把样本打包进iso文件挂载到虚拟机的光驱里然后从光驱复制到桌面。这个过程避免VMware Tools的文件拖拽通道也切断了剪贴板共享风险。启动样本之前再拍一个“pre-run”快照。这样你就有两个回滚点了一个是纯净系统快照一个是刚放入样本但还没运行的快照。万一分析过程中虚拟机被破坏得无法启动先恢复到pre-run再恢复到初始快照层层保障。3.3 网络隔离与样本外泄防护网络隔离是整个实验中最容易被忽视、出事后果最严重的一环。很多人觉得“虚拟机里的病毒跑不到物理机上”这个想法在纯本地恶作剧程序上成立但对蠕虫类和下载器类样本完全不成立。虚拟机的网络模式有三种常见选择桥接模式Bridged虚拟机直接和局域网其他设备同网段如果样本是蠕虫它可以直接扫描并感染局域网内其他真实设备这是绝对禁止的NAT模式虚拟机通过宿主机共享IP访问外网样本的网络行为会被记录为宿主机的流量但在隔离性上有一定风险因为虚拟机可以通过NAT访问外部网络仅主机模式Host-Only虚拟机只能和宿主机以及同一虚拟网络内的其他虚拟机通信无法访问外部互联网这是恶意软件动态分析中相对安全的首选。分析下载器或需要联网的样本时可以使用“仅主机模式本机DNS解析劫持”的方式把样本尝试连接的域名解析到一个本地伪造IP上再抓取它的DNS查询和HTTP请求内容既能观察行为又不会真正联系到攻击者的服务器。工具上我常用Wireshark抓包配合ApateDNS或Fakedns做DNS欺骗。你设置好之后就能看到样本在试图连接哪个域名、发送了什么数据这些信息对判断样本功能非常关键。至于那些需要验证威胁情报真实性的样本也不要直接放行到公网。更合理的方案是把样本的C2域名和IP丢到威胁情报平台查询历史记录通过社区数据理解攻击基础设施而不是让样本真实通信。4. 样本分析实操流程从静态到动态4.1 静态分析先看“体检报告”不急着运行拿到一个样本第一件事永远不是双击运行而是先做静态分析。静态分析就是在不执行代码的前提下通过文件和代码特征判断样本的用途。首先计算样本的哈希值MD5、SHA-256把哈希值发到在线威胁情报平台查询。如果平台上有记录你能直接获取样本的家族分类、行为标签和关联攻击事件信息这属于最快速的“查户口”方式。接下来查看PE文件头推荐使用Detect It Easy简称DIE或者CFF Explorer。重点关注这几个字段编译器时间戳如果早于2010年大概率是老样本入口点地址和节区表节区名异常比如名为“.data”但包含可执行属性就要警惕是否加壳或混淆DIE会直接识别UPX、Themida、VMProtect等常见壳导入函数表这是最直观的行为预测。看到CreateFile、WriteFile、RegSetValue这组导入函数基本可以推断样本会写文件并修改注册表看到WinHttpOpen或URLDownloadToFileW说明样本存在网络通信能力看到Socket和WSAStartup大体是网络木马形态。字符串提取也很有用使用Strings工具扫描可打印字符串重点关注URL、邮箱、互斥体名、注册表键路径、恶意软件特征字符串比如勒索软件的比特币地址。有时候样本中会包含作者留的调试信息或文件路径这些也是溯源或快速定位功能的线索。我的一个经验是不要过度依赖自动化工具输出。综合多个工具的交集做判断静态分析给出“嫌疑方向”动态分析验证“实际行为”两者互相参考才能减少误判。4.2 动态分析在监控下运行并观察行为动态分析是真正让样本在受控环境里运行观察它对系统产生了哪些影响。这一步必须在打好快照、断开网络的虚拟机里完成。运行样本之前先启动监控工具。Process MonitorProcMon是我用得最多的工具它能实时记录进程对文件系统、注册表、网络、进程线程的全部操作。ProcMon功能很强过滤器的设置很关键——新建一个过滤器只显示样本进程名相关的活动然后清除日志点击“运行”观察样本进程和它创建的子进程都做了什么。同时推荐Process Explorer观察进程树。样本可能启动时会释放一个子进程或者注入代码到其他正常进程里。Process Explorer能显示出进程父子关系、加载的DLL列表、网络连接状态发现进程注入和异常子进程非常直接。文件系统和注册表的前后对比也是必备环节。可以用Regshot工具在运行样本前拍一张系统快照样本运行结束后再拍一张工具就会自动对比两份快照列出文件、注册表的差异。这一步能快速找出样本新创建的自启动项、释放的文件路径、修改的策略项。如果样本有联网行为就在网络层抓包分析数据内容。工具用Wireshark或Fiddler。不直接依赖真实公网访问而是搭建一个本地HTTP服务配合伪造DNS解析让样本连接到本地服务器观察通信数据的格式和内容。这个方法风险低信息量大。整个动态分析时间通常控制在10到30分钟。时间太短定时触发型的恶意行为可能还没发作时间太长样本可能已经完成加密或破坏动作恢复起来更耗时。分析结束后直接恢复快照新一次实验重新从干净状态开始。4.3 一个典型的“可爱”样本行为复盘为了让你对完整分析流程有更具体的感知我复盘一个曾经分析过的恶作剧样本。文件名是“funny_cat.exe”图标是一只猫单文件大小约200KB宣传语是无害的猫咪叫声播放器。静态分析阶段DIE显示这是一个AutoIt脚本编译的程序编译器信息是AutoIt v3。AutoIt本身是Windows自动化工具常用于开发UI自动化脚本但攻击者也常利用它写恶意软件因为它可以方便地调用WinAPI。查看字符串发现两处值得关注的内容一段Base64编码的文本和一个指向“%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\”的路径写入逻辑。Base64字符串解码后是一个URL指向一个可疑的下载地址。动态分析阶段在隔离快照里运行该样本后ProcMon记录显示样本先访问当前用户临时目录释放一个名为“helper.dll”的文件然后调用rundll32.exe加载这个DLL最后在启动文件夹创建一个指向“helper.dll”的快捷方式。整个过程中没有任何猫咪叫声播放出来网络抓包里发现样本向硬编码的URL发起了一次HTTP请求请求路径是“/cmd/check”。这个所谓的“可爱猫咪播放器”实际是一个具备持久化功能和远程指令检查能力的下载器雏形。如果攻击者运营的服务器返回一条指令它就可以为后续攻击打开通路。这类样本的存在正好印证了为什么我反复强调“任何样本都要隔离运行布下监控再执行”的原则——表面的无害永远不可信。5. 常见问题与避坑指南5.1 杀毒软件报毒到底能不能当判断依据很多人觉得“杀软报了毒就说明样本是病毒没报就说明样本安全”。这个想法在样本分析里非常危险。报毒只说明杀软引擎在特征库或启发式规则下认为文件有嫌疑并不代表对样本行为完整客观的定性。反过来一个可疑文件中没有触发任何杀软引擎也是常态——未知新样本、加壳混淆后的样本、无文件型恶意软件都容易让传统杀软失效。比较合理的用法是把多个引擎的检测结果当作初筛线索而不是结论。VirusTotal等平台上的多引擎检测结果能帮你快速判断这个文件是否是“已知恶意样本”但对检测率极低或样本很新的文件需要优先依赖你自己的静态分析和动态分析结论而不是依赖杀软的判断结果。5.2 虚拟机里的病毒真的完全没有逃逸风险吗虚拟机逃逸技术确实存在真实攻击中也出现过通过虚拟机逃逸漏洞突破隔离的案例但这些漏洞通常价值极高攻击者反而很少会为“收集有趣的病毒样本”这种场景浪费如此高价值的漏洞。概率低不等于可以无视我在实践中一直执行三个原则一是及时更新虚拟机软件版本补上已知的虚拟化逃逸漏洞二是不把宿主机上的敏感文件放在虚拟机共享目录里从源头隔绝“逃逸出来也拿不到有价值数据”的路径三是绝不在分析样本的虚拟机里登录任何个人账号、输入真实密码。只要这三点做到样本逃逸带来的实际损失就可以忽略不计。还有一个容易被忽略的点不要只关注虚拟机逃逸还要防止样本偷偷探测宿主网络。部分样本会通过ARP扫描等方式收集当前网络内的主机信息。Host-Only模式下Windows XP虚拟机默认IP可能是192.168.x.x网段如果宿主机的实际网段也是192.168.x.x就会存在网络重叠风险需要为虚拟机单独划分子网。5.3 老样本在Windows 10上不运行别急着下结论测试老样本时经常遇到“在XP里活蹦乱跳在Win10里双击没反应”的情况。这不一定是样本失效更可能是系统安全机制拦截了关键行为也可能是样本代码调用的API在新系统里已经不存在或行为变化。遇到这种情况先不要认定样本没危害。正确的做法是借助Windows事件查看器确认进程是否正常启动检查是否被Defender或SmartScreen拦截再把UAC关掉、Defender实时防护关闭后重新尝试。如果样本仍然无法运行用DIE检查是否依赖老式系统函数必要时直接在XP环境里分析它的完整行为。另外提醒一点老样本和现代防御机制的交互本身就是研究价值。我经常通过“同一样本在不同系统上的行为差异”来向新人演示安全机制演进的过程这比单纯看PPT有效得多。5.4 样本外泄与合规底线最后说一个很少有人提但非常重要的点从一个接收到的样本库到你的虚拟机整个过程里样本文件可能已经经过了很多人的手。你从网上下载的样本包本身可能捆绑了不为人知的额外载荷。我建议拿到压缩包后先解压到宿主机的一个专用目录用杀毒软件全盘扫描一遍确认压缩包本身不包含针对分析人员的钓鱼载荷再决定是否放入隔离实验环境。同时恶意软件样本属于敏感数据不要随意在公网传播、分享给没有安全意识的同事朋友也不要在公共网盘上传。合规底线不仅是保护自己也是防止样本被滥用造成现实危害。写在最后把这个主题放在最后讲是想强调一个我个人的看法。CuteVirusCollection这类“可爱”的样本集合是很好的安全意识教育工具。它用轻松的外表降低了新人接触恶意软件的心理门槛但它同时也是绝佳的警示素材——如果连一个自称“无害”的小程序都能在你的眼皮底下悄然植入后门真实世界里的攻击又会有多隐蔽我的建议是如果你对这个方向感兴趣可以从整理自己的样本库开始建立一套虚拟机环境积累自己的分析记录和工具脚本但务必始终尊重虚拟化隔离这条安全底线。安全研究的最终目的不是会运行几个病毒而是通过分析恶意行为更深刻地理解系统如何被攻破又该如何被保护。CuteVirusCollection是一个入口但它不应该只是入口。当你从一堆“猫猫狗狗”的执行文件里学会看清攻击的真实脉络这个项目的价值才算真正发挥出来了。本文还有配套的精品资源点击获取
返回列表