بنقرة واحدة
danger-guard
拦截危险命令,防止账号被盗后执行破坏性操作
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
拦截危险命令,防止账号被盗后执行破坏性操作
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | danger-guard |
| description | 拦截危险命令,防止账号被盗后执行破坏性操作 |
| version | 1.0.0 |
拦截危险命令执行,要求 sudo 密码确认,发送飞书/邮件告警。
当用户要求执行以下类型操作时自动激活:
Linux/macOS:
rm -rf /rm -rf /*rm -rf / --no-preserve-rootrm -rf ~rm -rf ~/rm -rf /Usersrm -rf /homefind / -type f -exec rm {} +find . -type f -deletemv / /dev/nullmv /home/user/* /dev/nullWindows:
format C:format D:rd /s /q C:\rd /s /q C:\Windowsrmdir /s /q C:\del /s /q /f C:\del /s /q C:\*.*deltree /y C:\*.*attrib -s -h -r C:\Windows\system32\*.* /s /dLinux/macOS:
dd if=/dev/zero of=/dev/sdadd if=/dev/urandom of=/dev/sdadd if=/dev/zero of=/dev/sd*mkfs.ext4 /dev/sda1mkfs.xfs /dev/sdamkfs -t ext4 /dev/sdacommand > /dev/sdaecho "data" | dd of=/dev/sdayes > /dev/sdaWindows:
diskpart cleandiskpart clean allClear-Disk -Number X -RemoveDataGet-Disk X | Clear-Disk -RemoveDataLinux/macOS:
chmod -R 777 /chmod -R 000 /chown -R root:root /chown -R nobody /sudo /bin/bashsudo su -sudo -iWindows:
takeown /f C:\* /r /d yicacls C:\* /grant everyone:F /tLinux/macOS:
:(){:|:&};: (fork bomb)fork while fork (macOS)shutdown -h nowshutdown nowreboothaltinit 0poweroffkill -9 -1 (杀死所有进程)history | shcat /dev/random > /dev/sdaWindows:
shutdown /s /t 0shutdown /r /t 0taskkill /f /im *Get-Process | Stop-Process -Force%0|%0 (batch fork bomb)while($true) { start-process } (PowerShell fork bomb)Linux/macOS:
curl http://... | shcurl http://... | bashwget http://... | shwget http://... -O- | shcurl http://... | sudo shWindows:
powershell Invoke-WebRequest http://... | Invoke-Expressioniwr http://... | iexpowershell (New-Object Net.WebClient).DownloadString('http://...') | iexgit push --forcegit push -fgit push --force-with-leasegit push --mirrorgit reset --hardgit clean -fdgit clean -fdxgit checkout -- .git branch -Dgit stash dropgit stash cleargit reflog expiregit gc --prune=nowdocker system prune -a --volumes -fdocker system prune -afdocker system prune --volumesdocker volume prune -fdocker volume prune -adocker container prune -fdocker image prune -adocker image prune -afdocker rm $(docker ps -aq)docker rmi $(docker images -q)docker volume rm $(docker volume ls -q)docker-compose down -vdocker-compose down --volumesDROP TABLEDROP DATABASEDROP SCHEMATRUNCATE TABLEDELETE FROM table_name (无 WHERE 子句)UPDATE table_name SET ... (无 WHERE 子句)npm install -g <package> (全局安装)pip install <package> (非虚拟环境)docker run --privilegedsudo <any command> (需要确认)/etc/、/var/、/usr/、/bin/、/sbin/ 的修改立即停止,不执行任何命令。
从 memory/danger-guard-config.json 读取:
os: 操作系统类型sudo_hash: sudo 密码哈希alert_email: 告警邮箱(可选)email_method: 邮件方式(none/native/resend)macOS:
🛡️ Danger Guard 拦截
命令: <command>
风险等级: 一级危险
此操作可能导致数据永久丢失或系统损坏。
请输入开机密码确认:
确认 [密码]
Windows:
🛡️ Danger Guard 拦截
命令: <command>
风险等级: 一级危险
此操作可能导致数据永久丢失或系统损坏。
请输入管理员密码确认:
确认 [密码]
sudo_hash 对比飞书告警(立即):
🚨 Danger Guard 拦截告警
时间: 2026-07-07 01:40
命令: rm -rf /
来源: 飞书 (ou_xxx)
风险等级: 一级危险
状态: 已拦截,等待验证
如果这不是你的操作,账号可能已被盗用。
回复「账号被盗」启动紧急协议。
邮件告警(如配置): 使用配置的邮件方式发送告警。
用户回复「账号被盗」或「account-hacked」时:
memory/security-breach-YYYY-MM-DD.md首次激活时执行:
🛡️ Danger Guard 首次配置
检测到系统: macOS / Windows / Linux
请输入你的 sudo/管理员密码(用于验证危险操作):
密码 [你的密码]
是否需要配置邮件告警?(可选)
拦截危险命令时,除了飞书通知外,还会发邮件给你。
1. 不需要邮件
2. 原生邮件(macOS 用 mail,Windows 用 PowerShell)
3. Resend API(免费每月 3000 封)
回复 1/2/3
是否需要安装 Shell Wrapper?(可选)
Shell Wrapper 会在你直接在终端敲命令时也拦截危险操作。
不只是通过 AI 工具,而是所有 shell 命令都会被保护。
保护范围:rm、mv、find、dd、mkfs、chmod、chown、git、docker 等
⚠️ 注意:所有受保护的命令都会要求输入 sudo 密码,包括安全操作(如 rm file.txt)。
如果你经常用这些命令,可能会觉得繁琐。
1. 不需要 Shell Wrapper(只保护通过 AI 执行的命令)
2. 安装 Shell Wrapper(系统级全面保护)
回复 1/2
如果选择 2(安装 Shell Wrapper),自动执行:
configs/shell-wrapper/danger-guard 到 ~/.local/bin/danger-guardchmod +x~/.zshrc 或 ~/.bashrc 中添加 PATH 和别名~/.danger-guard.jsonsource ~/.zshrc 使配置生效保存配置
将密码 SHA256 哈希和配置保存到 memory/danger-guard-config.json
测试告警 发送测试邮件(如配置了邮件)确认正常工作。
以下路径和命令不触发拦截:
/tmp/、%TEMP% 目录.Trash/、回收站操作git clean、git reset(Git 有版本控制保护)npm install(项目级,非全局)所有拦截事件记录到 memory/danger-guard-logs.md:
## 2026-07-07
### 01:40 - 拦截
- 系统: macOS
- 命令: rm -rf /
- 来源: feishu (ou_xxx)
- 风险等级: 一级
- 验证: 通过
- 告警: 飞书 ✅
Danger Guard 不仅适用于 OpenClaw,还覆盖所有 AI 编码工具。
在项目根目录创建 .claude/settings.json:
{
"permissions": {
"deny": [
"Bash(rm -rf*)",
"Bash(format*)",
"Bash(dd if=*)",
"Bash(mkfs*)",
"Bash(git push --force*)",
"Bash(git reset --hard*)",
"Bash(docker system prune*)",
"Bash(curl * | sh)",
"Bash(wget * | bash)"
]
}
}
或在 CLAUDE.md 中添加:
## 安全规则
- 禁止执行任何危险命令(rm -rf、format、dd、mkfs 等)
- 禁止 git push --force、git reset --hard
- 禁止 docker prune 操作
- 执行 sudo 命令前必须确认用户意图
在项目根目录创建 AGENTS.md:
# Agent Instructions
## Safety Rules
- NEVER execute destructive commands: rm -rf, format, dd, mkfs
- NEVER force push or reset git history
- NEVER run docker prune operations
- ALWAYS confirm before modifying system files
- ALWAYS warn about data loss before DELETE/DROP/TRUNCATE
在项目根目录创建 .cursorrules 或 .cursor/rules:
# Safety Rules
You are a careful coding assistant. Follow these rules:
## Forbidden Operations
- Do NOT execute: rm -rf, format, dd, mkfs, chmod -R 777
- Do NOT force push to any branch
- Do NOT reset git history (--hard)
- Do NOT run docker prune commands
- Do NOT execute SQL without WHERE clause
## Required Confirmations
- Before any destructive operation, explain the risks
- Ask for explicit confirmation before executing
- Suggest safer alternatives when possible
创建一个 shell wrapper 拦截所有危险命令:
安装到 ~/.local/bin/danger-guard:
#!/bin/bash
# Danger Guard Shell Wrapper
CMD="$*"
# 危险命令模式匹配
DANGEROUS_PATTERNS=(
"rm -rf /"
"rm -rf /*"
"rm -rf ~"
"format C:"
"dd if=/dev/zero"
"dd if=/dev/urandom"
"mkfs."
"git push --force"
"git push -f"
"git reset --hard"
"docker system prune -a"
"DROP TABLE"
"DROP DATABASE"
"TRUNCATE"
)
for pattern in "${DANGEROUS_PATTERNS[@]}"; do
if [[ "$CMD" == *"$pattern"* ]]; then
echo "🛡️ Danger Guard 拦截!"
echo "检测到危险命令: $CMD"
echo ""
echo "输入 sudo 密码确认执行:"
read -s -p "密码: " password
echo
# 验证密码(对比哈希)
HASH=$(echo -n "$password" | shasum -a 256 | awk '{print $1}')
STORED_HASH=$(cat ~/.config/danger-guard/hash 2>/dev/null)
if [[ "$HASH" == "$STORED_HASH" ]]; then
echo "✅ 验证通过,执行命令..."
eval "$CMD"
else
echo "❌ 密码错误,命令已拦截"
exit 1
fi
exit 0
fi
done
# 非危险命令,直接执行
exec "$@"
配置方法:
# 1. 创建目录
mkdir -p ~/.local/bin
mkdir -p ~/.config/danger-guard
# 2. 保存脚本
# 将上面的脚本保存为 ~/.local/bin/danger-guard
# 3. 添加执行权限
chmod +x ~/.local/bin/danger-guard
# 4. 保存密码哈希
echo -n "你的sudo密码" | shasum -a 256 | awk '{print $1}' > ~/.config/danger-guard/hash
# 5. 添加到 PATH(在 .bashrc 或 .zshrc 中)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
使用方法:
# 通过 wrapper 执行命令
danger-guard rm -rf /path/to/danger
# 或设置别名
alias rm='danger-guard rm'
alias git='danger-guard git'
alias docker='danger-guard docker'
在项目 .git/hooks/pre-push 中添加:
#!/bin/bash
# 阻止 force push
if git rev-parse --verify HEAD@{1} >/dev/null 2>&1; then
# 检查是否有 force push
if [[ "$1" == *"--force"* ]] || [[ "$1" == *"-f"* ]]; then
echo "🛡️ Danger Guard: Force push 已拦截"
echo "如果确实需要,请使用: git push --force-with-lease"
exit 1
fi
fi
多层保护机制
推荐配置顺序
sudo 密码以 SHA256 哈希存储
邮件告警是可选功能
一级危险命令必须验证
Shell Wrapper 是最可靠的保护