Skills/ClawHub/srv-guard

srv-guard@1.0.3

CAUTION· static only

Publisher claims: "服务器安全防护一体化能力:扫描漏洞、修复漏洞、感知攻击、防御攻击,并生成安全报告。 当需要对 Linux 服务器进行安全加固、漏洞巡检、入侵检测或应急防御时加载此 Skill。 触发词:服务器安全、漏洞扫描、漏洞修复、攻击感知、入侵检测、安全加固、封禁 IP。 English triggers: server security hardening, vulnerability scan, patch/audit Linux config, intrusion detection, brute-force log analysis, block malicious IP, security report." Observed in sandbox: static analysis only — behavior not yet observed.

Registry ClawHubPublisher cmccadmin12 · publishing for 19 daysInstalls 208Last detonated 6d ago

Coverage

Static only; nothing was run yet.

The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.

Is [email protected] safe to install?

KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-08 and scored it 46/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Privileged sudo command; Access to sensitive file paths; Access to sensitive file paths. Summary: static analysis only — behavior not yet observed.

Behavior trace

Queued for honeypot run · static analysis only
t+CategoryObserved action

This version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.

Static findings

HIGH
Privileged sudo commandSKILL.md:118 · Privileged sudo command — agent may execute with elevated privileges- `--no-tls` 会打印显式警告:令牌与 sudo 密码将以明文经过回环。Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsscripts/vuln_scan.py:95 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filessh = run_cmd(target, "stat -c '%a %n' /etc/shadow", timeout=5)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsscripts/vuln_scan.py:111 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesf"/etc/passwd: {user} 第二字段为空", user=user))Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Privileged sudo commandscripts/vuln_scan.py:127 · Privileged sudo command — agent may execute with elevated privilegesout.append(finding("CFG-08", "sudo NOPASSWD 配置(受限命令)", "LOW", "config",Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Privileged sudo commandscripts/vuln_fix.py:188 · Privileged sudo command — agent may execute with elevated privilegesmsg = ("修复需要 root/sudo 权限,当前用户非 root:已拒绝执行,未对目标做任何变更。"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Privileged sudo commandSKILL.md:136 · Privileged sudo command — agent may execute with elevated privileges- 更安全的替代方案:直接用 root 启动 `sudo python scripts/web_ui.py`,全程不传输密码。Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsscripts/attack_monitor.py:141 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filessev = "HIGH" if any(p in str(info["patterns"]) for p in ["sqlmap", "nikto", "/etc/passwd", "%3Cscript"]) else "MEDIUM"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Privileged sudo commandscripts/vuln_scan.py:125 · Privileged sudo command — agent may execute with elevated privilegesout.append(finding("CFG-08", "sudo NOPASSWD 高危命令", "HIGH", "config", ln.strip()))Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsscripts/vuln_scan.py:117 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesr = run_cmd(target, "grep -r 'NOPASSWD' /etc/sudoers /etc/sudoers.d/ 2>/dev/null", timeout=5)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Privileged sudo commandSKILL.md:133 · Privileged sudo command — agent may execute with elevated privileges- 密码只在本次请求内使用:经 loopback 传输,作为 stdin 传给 `sudo -S -p '' --`,**不进 argv、不进环境变量、不写日志/审计/会话、不落盘**,用后从页面输入框清除。Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsscripts/attack_monitor.py:23 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesWEB_SCAN_PATTERNS = [r'\.env\b', r'\.git/', r'wp-admin', r'phpmyadmin', r'%3Cscript', r'/etc/passwd',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Privileged sudo commandscripts/vuln_fix.py:189 · Privileged sudo command — agent may execute with elevated privileges"请用 root 或已授权的 sudo 账号重试。")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsscripts/vuln_scan.py:99 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesout.append(finding("CFG-09", "/etc/shadow 权限异常", "HIGH", "config",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Privileged sudo commandSKILL.md:132 · Privileged sudo command — agent may execute with elevated privileges- 勾选「以管理员权限修复」后必须填写 sudo 密码;**仅 `local` 目标可用**,远程主机请改用 root 登录或已配置 `NOPASSWD` 的 sudo 账号。Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsscripts/vuln_scan.py:106 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesr = run_cmd(target, "awk -F: '$2==\"\" {print $1}' /etc/passwd", timeout=5)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Privileged sudo commandscripts/web_ui.py:43 · Privileged sudo command — agent may execute with elevated privileges"""sudo 密码错误或无 sudo 权限。"""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectedscripts/_common.py:72 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/_common.py:63 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File permission modification commandtests/README.md:30 · File permission modification command — agent changes file ownership/permissions| `/root/.ssh/id_rsa` | 仅在**不存在**时生成,并临时 `chmod 644` 触发 CFG-06 | 删除本脚本创建的密钥 |Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
File type combined with upload actionscripts/attack_defend.py:5 · File type combined with upload action — agent may exfiltrate local data filespython attack_defend.py --input monitor-result.json --target <...> --dry-run [--apply] [--action block|harden|alert] [--output defend-result.json]Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Privileged sudo commandscripts/web_ui.py:67 · Privileged sudo command — agent may execute with elevated privilegessudo = shutil.which("sudo")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionSKILL.md:76 · File type combined with upload action — agent may exfiltrate local data files执行: python scripts/security_report.py --scan scan-result.json [--fix fix-result.json] [--monitor monitor-result.json] [--defend defend-result.json] --output report.htmlFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Privileged sudo commandtests/README.md:8 · Privileged sudo command — agent may execute with elevated privileges- root 权限(`sudo bash tests/linux_e2e.sh`)Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectedscripts/web_ui.py:72 · Python subprocess execution detectedp = subprocess.run(argv, input=str(password) + "\n", capture_output=True, text=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Privileged sudo commandscripts/web_ui.py:64 · Privileged sudo command — agent may execute with elevated privileges"""用 sudo 执行脚本:密码只经 stdin 交给 sudo,不进 argv、不进日志、不落盘。"""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectedscripts/web_ui.py:153 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(path), *args], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Privileged sudo commandtests/README.md:19 · Privileged sudo command — agent may execute with elevated privilegesssh user@vm 'sudo bash /tmp/server-security-guard/tests/linux_e2e.sh'Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionscripts/vuln_fix.py:5 · File type combined with upload action — agent may exfiltrate local data filespython vuln_fix.py --input scan-result.json --dry-run [--apply] [--items CFG-01,CFG-03] [--output fix-result.json]Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Privileged sudo commandscripts/web_ui.py:66 · Privileged sudo command — agent may execute with elevated privilegesraise SudoAuthError("sudo 失败次数过多,已临时锁定,请 5 分钟后再试")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Privileged sudo commandtests/README.md:53 · Privileged sudo command — agent may execute with elevated privilegessudo bash tests/linux_extra.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandtests/README.md:31 · Process kill command — agent can terminate processes| 端口 `18443` | 启动 HTTPS 网页端做自检 | 退出时 kill |Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File permission modification commandscripts/vuln_fix.py:131 · File permission modification command — agent changes file ownership/permissionscommands=[cmd], rollback=[f"chmod {orig} {shlex.quote(keyfile)}"] if orig != "?" else [],Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
Privileged sudo commandtests/linux_e2e.sh:5 · Privileged sudo command — agent may execute with elevated privileges# sudo bash tests/linux_e2e.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectedscripts/web_ui.py:385 · Python subprocess execution detectedp = subprocess.run(cmd, capture_output=True, text=True, timeout=60)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File permission modification commandscripts/vuln_fix.py:127 · File permission modification command — agent changes file ownership/permissionscmd = f"chmod 600 {shlex.quote(keyfile)}"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
Privileged sudo commandtests/README.md:62 · Privileged sudo command — agent may execute with elevated privilegessudo python3 scripts/attack_defend.py --target local --input monitor.json --action harden --applyFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionscripts/security_report.py:5 · File type combined with upload action — agent may exfiltrate local data filespython security_report.py --scan scan-result.json [--fix fix-result.json] [--monitor monitor-result.json] [--defend defend-result.json] --output report.html [--target name]Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Privileged sudo commandtests/linux_extra.sh:3 · Privileged sudo command — agent may execute with elevated privileges# 1) 网页端「管理员权限」真实 apply:非 root 启动 UI,用 sudo 提权改 /etc/ssh/sshd_configFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File permission modification commandtests/linux_e2e.sh:88 · File permission modification command — agent changes file ownership/permissionsmkdir -p /root/.ssh && chmod 700 /root/.sshFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
Process kill commandtests/linux_e2e.sh:33 · Process kill command — agent can terminate processes[ -n "$WEBUI_PID" ] && kill "$WEBUI_PID" 2>/dev/nullFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Privileged sudo commandtests/linux_extra.sh:67 · Privileged sudo command — agent may execute with elevated privileges# 关键:勾选管理员权限 + 密码(该机 NOPASSWD,sudo -S 会忽略密码但仍走 sudo 路径)Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File permission modification commandtests/linux_e2e.sh:94 · File permission modification command — agent changes file ownership/permissionschmod 644 "$KEY"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
Privileged sudo commandtests/linux_e2e.sh:53 · Privileged sudo command — agent may execute with elevated privilegesecho "必须以 root 运行(sudo bash tests/linux_e2e.sh)" >&2Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Privileged sudo commandtests/linux_extra.sh:5 · Privileged sudo command — agent may execute with elevated privileges# 需 root:sudo bash tests/linux_extra.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Privileged sudo commandtests/linux_extra.sh:29 · Privileged sudo command — agent may execute with elevated privilegesh "1) 网页端 + sudo 真实 apply"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05

Cost to the agent

Instructions loaded
≈1,871 tok
1 file · 17 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.

What would make this Verified

34 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim cmccadmin12: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  3. Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  4. New publisher≈ +3 on the totalTime clears this on its own after 14 and 30 days. Claiming the handle (+50) is the fastest way past it.
  5. Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
  6. File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.
Publish a new version to ClawHub, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim cmccadmin12Propose a patch to the maintainer