Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/neo23x0/raccine
防御工具威胁情报入侵检测事件响应异常检测日志分析
GitHubneo23x0/raccine

Raccine

一个简单的勒索软件疫苗

查看仓库
98212652年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Inactively Maintained

Raccine

Raccine

一款简单的勒索软件防护工具

为什么

我们经常看到勒索软件使用 vssadmin 删除所有卷影副本。如果我们能直接拦截该请求并终止调用它的进程会怎样?让我们尝试创建一个简单的疫苗。

Ransomware Process Tree

工作原理

我们为 vssadmin.exe(和 wmic.exe)注册一个调试器,也就是我们编译好的 raccine.exe。Raccine 是一个二进制程序,首先收集所有父进程的 PID,然后尝试终止所有父进程。

优点:

  • 该方法相当通用
  • 我们无需替换系统文件(vssadmin.exe 或 wmic.exe),替换系统文件可能会导致完整性问题,并在每个补丁日破坏我们的 Raccine 接种
  • 通过灵活的 YARA 规则扫描命令行参数以检测恶意活动
  • 更改易于撤销
  • 支持 Windows 7 / Windows 2008 R2 或更高版本
  • 无需运行中的可执行文件或额外服务(无代理)

缺点 / 盲点:

  • 无法再合法使用 vssadmin.exe delete shadows(或任何其他已列入黑名单的组合)
  • 它甚至会终止尝试调用 vssadmin.exe delete shadows 的进程,而该进程可能是备份进程
  • 如果恶意进程不是调用 vssadmin.exe 的进程树中的一员(例如通过 schtasks 调用),则无法捕获

工作流程

  1. 对 vssadmin.exe(和 wmic.exe)的调用会被拦截,并作为调试器传递给 raccine.exe(vssadmin.exe delete shadows 变为 raccine.exe vssadmin.exe delete shadows)
  2. 然后我们处理命令行参数,并使用 YARA 规则查找恶意组合。
  3. 如果未发现恶意组合,我们会使用原始命令行参数创建一个新进程。
  4. 如果发现恶意组合,我们会收集所有父进程的 PID 并开始终止它们(这应该就是上方截图中显示的恶意软件进程)。Raccine 会显示一个命令行窗口,展示被终止的 PID 5 秒钟,将其记录到 Windows 事件日志中,然后自行退出。

恶意组合:

  • delete 和 shadows(vssadmin、diskshadow)
  • resize 和 shadowstorage(vssadmin)
  • delete 和 shadowstorage(vssadmin)
  • delete 和 shadowcopy(wmic)
  • delete 和 catalog 和 -quiet(wbadmin)
  • win32_shadowcopy 或编码命令列表中的元素(powershell)
  • recoveryenabled(bcedit)
  • ignoreallfailures(bcedit)

^ 过时的列表:请查看相应的 YARA 规则

Powershell 编码命令列表:JAB、SQBFAF、SQBuAH、SUVYI、cwBhA、aWV4I、aQBlAHgA 等等

示例

未安装 Raccine 时的 Emotet - 链接

Emotet without Raccine

安装 Raccine 后的 Emotet - 链接(忽略与 Raccine 安装相关的进程活动)

Emotet with Raccine

感染被扼杀在摇篮里。

警告 !!!

使用风险自负!

在已接种 Raccine 的机器上,除非您应用卸载补丁 raccine-reg-patch-uninstall.reg,否则将无法再运行使用已列入黑名单命令的命令行。这可能会破坏在工作中运行该特定命令的各种备份解决方案。它不仅会阻止该请求,还会终止该进程树中的所有进程,包括备份解决方案及其调用进程。

如果您拥有完善的安全监控来记录所有进程执行情况,可以检查日志,确认 vssadmin.exe delete shadows、vssadmin.exe resize shadowstorage ... 或其他被阻止的命令行是否经常或偶尔用于合法目的;如果是这样,您应避免使用 Raccine。

版本历史

  • 0.1.0 - 初始版本,拦截并阻止所有 vssadmin.exe 的执行
  • 0.2.0 - 仅阻止命令行中包含 delete 和 shadows 的 vssadmin.exe 执行,否则将所有参数传递给一个新进程,以原始参数调用 vssadmin
  • 0.2.1 - 从白名单中移除了 explorer.exe
  • 0.3.0 - 支持通过 wmic 方式调用 delete shadowcopy,白名单进程启动时无输出(避免 wmic 输出处理问题)
  • 0.4.0 - 支持将每次被阻止的尝试记录到 Windows 事件日志,寻找更多恶意参数组合
  • 0.4.1 - 静态链接二进制文件
  • 0.4.2 - John Lambert 提供的错误修复
  • 0.5.0 - 移除了事件日志记录(基本信息不必要;会导致更高的复杂性;也可以通过进程创建日志实现),支持 wbadmin 过滤
  • 0.5.1 - @JohnLaTwC 的改进
  • 0.5.2 - @JohnLaTwC 增加了对 delete shadowstorage 的检查,@_hillu 进行了代码审查,添加应用程序图标
  • 0.5.3 - 批处理安装程序
  • 0.6.0 - 增加了对 bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures 和 bcdedit.exe /set {default} recoveryenabled no 的检查
  • 0.7.0 - 增加了对 powershell.exe 和 win32_shadowcopy 或编码命令列表的检查
  • 0.7.1 - @JohnLaTwC 的改进
  • 0.7.2 - 在注册表补丁中使用绝对路径
  • 0.8.0 - 创建包含所有被拦截请求及所执行操作的日志文件

安装

系统要求

  • 用于 YARA 扫描的 VC++ 运行时(安装程序包含来自 https://aka.ms/vs/16/release/VC_redist.x64.exe 的安装包)
  • .NET Framework 4.5
  • 需要互联网访问以更新 YARA 规则
  • Windows 7 / Windows 2008 R2 或更高版本

运行 install-raccine.bat 将自动安装 Visual C++ 可再发行组件包和 .NET Framework。

自动安装

  1. 从 Release 部分下载 Raccine.zip
  2. 解压
  3. 以管理员身份运行 raccine-installer.bat

Windows Batch Installer

批处理安装程序包含一个“卸载”选项。

手动卸载

以管理员身份执行:

  1. 运行 raccine-reg-patch-uninstall.reg
  2. 删除 %ProgramFiles%\Raccine 和 %ProgramData%\Raccine 文件夹
  3. 运行 reg delete HKCU\Software\Raccine /F
  4. 运行 taskkill /F /IM RaccineSettings.exe
  5. 运行 reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /F
  6. 运行 schtasks /DELETE /TN "Raccine Rules Updater" /F

更新

程序升级

我们建议通过卸载并重新安装进行升级。卸载会移除所有包含配置的注册表项。

签名更新

自 1.2 版本起,Raccine 内置了签名更新器。该程序名为 RaccineRulesSync.exe,通过计划任务配置为每天运行一次。您可以通过托盘图标菜单中的选项手动运行签名更新。

YARA 匹配

自 1.0 版本起,Raccine 还使用 YARA 规则来判断进程命令行或父进程是否为恶意。Raccine 使用两套规则来实现两个不同的目的。

  1. ./yara - 应用于包含所有参数的命令行的规则,例如 WMIC.exe delete justatest
  2. ./yara/in-memory - 应用于被拦截进程的父进程内存的规则,例如 ransomware.exe 运行了我们拦截的 vssadmin.exe 进程

YARA 外部变量

自 1.1 版本起,我们将一组外部变量传递给 YARA 匹配过程,以支持更复杂、更巧妙的 YARA 规则,将进程及其父进程的属性纳入考量。

命令行上的匹配过程如下所示:

root@kitploit:~
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d  Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp

以下代码展示了一个在其条件中使用外部变量的 YARA 规则示例。

root@kitploit:~
rule env_vars_test {
    condition:
        Name contains "WMIC.exe"
        and CommandLine contains "delete justatest"
        and ParentPriority >= 8
        and (
            ParentCommandLine contains "cmd"
            or ParentCommandLine contains "powershell"
        )
}

通过 GPO 部署配置

GPO 文件夹包含 Raccine.ADMX 和 Raccine.ADML。部署时,将 Raccine.ADMX 文件放入 C:\Windows\PolicyDefinitions。配套的 Raccine.ADML 文件放入 C:\Windows\PolicyDefinitions\en-US。

使用方法:打开 GPEDIT.MSC > 计算机配置 > 管理模板 > 系统 > Raccine

配置更改后,您可能需要运行 gpupdate.exe 来刷新组策略。

日志文件

包含所有拦截操作及所执行操作的日志文件写入 C:\ProgramData\Raccine\Raccine_log.txt

Log File

Windows 事件日志

每次阻止事件都会在 Application 事件日志中生成一条记录。

Eventlog

Raccine 生成的 ID

  • EventId 1 - 安装活动
  • EventId 2 - 检测到恶意活动
  • EventId 3 - 检测到良性活动

模拟模式

自 0.10.0 版本起,Raccine 可以“模拟模式”安装。该模式会激活所有触发器并记录所有操作,但不会终止任何进程。在备份解决方案或其他合法软件运行的环境中使用此模式一段时间,可以检查 Raccine 是否会干扰其他软件。思路是:以模拟模式安装 Raccine,让其记录一周或一个月,然后检查日志,看它是否会阻止组织中使用的合法软件。

Kill Run

屏幕截图

运行 raccine.exe,观察父进程树被终止(v0.1 的截图)

Kill Run

GUI

自 1 版本起可用且必需。

GUI

GUI

GUI

变通

如果您正在处置的勒索软件使用了某个特定的进程名称,例如 taskdl.exe,您只需修改 .reg 补丁以拦截对该名称的调用,让 Raccine 终止调用进程树中的所有父进程。

寻求帮助

我想扩展 Raccine,但缺乏 C++ 编程技能,尤其是在 Windows 平台上。

帮助 - 我的系统出问题了

如果您的安装出现问题,例如突然出现错误消息、服务损坏或程序无法再启动,请运行 reg-patches 子文件夹中的 raccine-reg-patch-uninstall.reg 文件。这应能使一切恢复正常。

之后,您还应能够使用 install-raccine.bat 执行完整卸载。

其他信息

正确发音是“Rax-Een”。

致谢

  • Florian Roth @cyb3rops
  • John Lambert @JohnLaTwC
  • Eran Yom-Tov @eran_yom_tov
  • Ollie Whitehouse @ollieatnccgroup
  • Branislav Đalić @LordOfThePies4
  • Hilko Bengen @hillu
下载工具
C:\ProgramData\Raccine_log.txt
  • 0.9.0 - 由 @JohnLaTwC 实现记录到 Windows 事件日志
  • 0.10.0 - 仅模拟模式
  • 0.10.1 - 修复模拟模式
  • 0.10.2 - 包含 diskshadow.exe delete shadows 命令
  • 0.10.3-5 - 次要修复和补充
  • 1.0 BETA - GUI 元素和对命令行参数的 YARA 规则扫描
  • 1.1 BETA - 使用外部变量进行 YARA 规则匹配,故障排查功能
  • 1.2 BETA - 签名更新器
  • 1.3 BETA - 对调用父进程进行内存 YARA 扫描
  • 1.4 BETA - 完整 x86 支持,将静态字符串移至 YARA 规则以避免杀毒软件检测,记录已接受的执行,安装程序中包含 .NET Framework 安装
  • 1.4.2 BETA - 退出代码修复(透传被拦截程序返回的退出代码),拦截 taskkill.exe
  • 变量描述示例值
    FromRaccinetrue
    Name镜像文件名WMIC.exe
    ExecutablePath二进制文件的完整路径C:\Windows\System32\wbem\WMIC.exe
    CommandLine包含参数的完整命令行WMIC.exe delete justatest
    Priority进程优先级32
    ParentName父进程镜像文件名cmd.exe
    ParentExecutablePath父进程可执行文件的完整路径C:\Windows\System32\cmd.exe
    ParentCommandLine包含参数的完整父进程命令行C:\WINDOWS\system32\cmd.exe
    ParentPriority父进程优先级32