渗透期末题
那道渗透期末题,渗透我到现在还记得。期末不是渗透因为它难,恰恰相反——它简单得让人发毛。期末 题目只有一句话:“请用你学过的渗透一切手段,拿到隔壁实验室服务器上那份名为‘flag.txt’的期末文件。时间:两小时。渗透环境:你们自己的期末 Kali 虚拟机。” 我当时坐在机房第三排靠窗的渗透位置,屏幕蓝光映在脸上。期末隔壁实验室的渗透服务器我知道,IP 段是期末 10.10.20.0/24,平时做实验经常路过那扇门,渗透门禁是期末老的 HID 卡系统,窗户从来不关。渗透但老师没说可以物理进入,也没说不可以。这就是渗透题有意思的地方——边界模糊,规则靠猜。 我先扫了一遍端口。22、80、443、3306,还有一个 8080。80 端口跑着一个 WordPress,版本 5.7.2,插件目录里有个叫 拿到用户名,下一步就是密码。我试了弱口令,admin/admin、devops/devops、root/123456,全挂。转头去看 8080 端口,是个 Jenkins,版本 2.289,未授权访问。脚本命令行里能执行 Groovy,直接读 MySQL 里有个表叫 然后我 但真正让我记住这道题的,是考完后老师说的话。他说隔壁实验室那台服务器,其实窗户真没关,门禁卡也能复制——他故意留的物理入口。有人翻窗进去插 U 盘,也算对。有人像我们一样从网络打进去,也算对。渗透的本质不是炫技,是找那条最省事的路径。你绕了十八道弯拿到 flag,别人翻个窗三十秒搞定,结果一样。但过程里你踩过的坑、试过的错、半夜想起来“我是不是漏了 8080 端口”的那种焦虑,才是这门课真正要考的东西。 我后来把那串哈希存进了笔记,旁边写了一行小字:别只盯着屏幕,有时候门根本没锁。simple-file-list 的东西,版本 4.2.3。这玩意儿我熟,去年爆过任意文件下载漏洞。直接构造 URL:/wp-admin/admin-ajax.php?action=download_file&file=../../../../etc/passwd。回车。屏幕上跳出一行行用户信息,其中有个叫 devops 的,家目录是 /home/devops。/home/devops/.ssh/id_rsa。私钥到手,但加密了,要 passphrase。我卡了大概二十分钟,喝了半罐可乐,突然想起来 WordPress 的 wp-config.php 里可能有数据库密码。果然,DB_PASSWORD 是 P@ssw0rd_2023!。拿这个去试 SSH 的 passphrase,不对。但拿去试 MySQL 的 root 账户,进去了。user_credentials,存着 Jenkins 的 API token。用 token 调 Jenkins 的 /script 接口,执行 println "cat /home/devops/.ssh/id_rsa".execute().text,私钥明文出来了。这回没加密。SSH 登录 devops 账户,sudo -l 一看,能免密跑 /usr/bin/find。GTFOBins 上查一下,find . -exec /bin/sh \; -quit,root shell 到手。cat /root/flag.txt,里面是一串 32 位哈希。提交,满分。