游客发表

渗透作业

发帖时间:2026-10-17 05:02:15

凌晨两点十七分,渗透作业老陈把最后一行代码敲进终端,渗透作业屏幕上跳出一串绿色的渗透作业“OK”。他没急着关电脑,渗透作业反而从抽屉里摸出一包皱巴巴的渗透作业烟,点了一根,渗透作业盯着屏幕发呆。渗透作业三分钟前,渗透作业他刚拿到目标内网第三台核心服务器的渗透作业root权限。这已经是渗透作业本周渗透的第四个目标了,但这一次,渗透作业他后背有点发凉。渗透作业

事情得从三天前说起。渗透作业客户是渗透作业一家做智能物流的中型企业,安全负责人姓周,渗透作业电话里语气挺急:“我们怀疑有人已经在里面了,但查了半个月没查出来。”老陈没多问,要了外网出口IP和一份粗略的资产清单,就开始干活。

第一天没什么进展。扫了一圈,开放端口就那么几个——80、443、22,还有一个8080跑着个老掉牙的Tomcat。老陈试了试常见弱口令,admin/admin、root/123456,全被拒。他没继续硬碰,转而去看那个Tomcat的报错页面。版本号露出来了:7.0.81。这个版本有个已知的PUT漏洞,但需要特定配置。老陈发了条请求,返回403。看起来补过了。

但他注意到一个细节:服务器返回的Server头里,除了Tomcat,还夹着一个“X-Powered-By: PHP/5.6.40”。一个Java容器里跑PHP?这配置本身就透着古怪。他顺着这个线索去翻网站的静态资源目录,在一堆js文件里找到个不起眼的注释:// backup: /upload/tmp/2023.zip。路径直接暴露在源码里,开发估计是图省事。

下载,解压。里面是整套网站源码,包括数据库配置文件。数据库在内网,从外网连不上。但源码里有个上传接口,过滤逻辑写得跟闹着玩似的——只检查Content-Type,不检查后缀。老陈传了个.php文件,返回路径直接可访问。第一个shell到手,权限是www-data。

接下来就是标准的内网渗透动作。翻home目录,找到个运维留下的.bash_history,里面有一条命令:ssh -i /home/deploy/.ssh/id_rsa deploy@10.0.3.12。私钥没加密,直接拿来用。跳到10.0.3.12,这是一台跳板机,上面挂着数据库的只读账号。老陈没动数据库,而是继续看这台机器上的进程。有个Python脚本每五分钟跑一次,去拉一个内网GitLab的仓库。脚本里硬编码了GitLab的access token。

用这个token,老陈拿到了GitLab的API权限。翻仓库列表,发现一个叫“ops-scripts”的私有项目,里面有个Ansible playbook,专门用来批量改服务器密码。playbook的vars文件里,明文写着所有服务器的初始密码。其中一台就是开头提到的那台核心服务器,10.0.1.5,跑着订单系统。

登录上去,老陈没做任何破坏性操作。他拍了张截图,记下时间戳,然后退出来,给周总发了条消息:“进去了,明天当面说。”

第二天见面,周总脸色不太好看。老陈把路径画在白板上:外网Tomcat报错泄露版本 → 源码备份文件暴露 → 上传接口绕过 → 内网跳板机 → GitLab token泄露 → Ansible明文密码 → 核心服务器。一共七步,没有一步用了什么高级0day,全是配置疏忽和开发图省事留下的坑。

“你们买了那么多安全设备,WAF、IDS、堡垒机,一样没拦住。”老陈把烟掐灭,“因为攻击者根本没走正面。你防的是大门,人家翻的是窗户,窗户还是你们自己开的。”

周总问怎么办。老陈给了三条:第一,把那个上传接口的过滤逻辑重写,别只信Content-Type;第二,GitLab的token全部轮换,Ansible里的密码换成Vault加密;第三,也是最关键的——别让开发把备份文件扔在Web目录里。就这三条,能挡掉八成类似的路子。

回去的路上,老陈想的是另一件事。他干这行十二年,见过的入侵事件里,真正靠技术硬桥硬马打进去的不到两成。剩下的,全是这种“渗透作业”——像做小学奥数题一样,顺着别人留的线索一步步走。安全这行当,有时候拼的不是谁更聪明,而是谁更不懒。

    热门排行

    友情链接