```html 渗透计算机 渗透计算机 凌晨两点十七分,我盯着屏幕上那个跳动的计算机绿色光标。目标是渗透一台老旧的 ThinkPad T430,跑着 Ubuntu 18.04,计算机IP 地址在某个东欧国家的渗透居民宽带段里。这不是计算机演习。我手里只有一个浏览器,渗透一个 SSH 客户端,计算机还有三本翻烂了的渗透《Metasploit 渗透测试指南》。 渗透计算机这件事,计算机外行看是渗透敲几行命令就黑进五角大楼。实际上更像是计算机在漆黑楼道里摸门——你手里有一串钥匙,但不知道哪把能开。渗透试错是计算机常态,挫败是渗透底色。那天晚上我花了四十分钟才确认目标开着 22 端口,又花了二十分钟猜用户名。最后发现对方用 admin 当登录名,密码是 admin123。我差点把咖啡喷在键盘上。 nmap -sV -p- 192.168.xx.xx → 22/tcp open ssh OpenSSH 7.6 → 80/tcp open http Apache 2.4.29 → 3306/tcp open mysql MySQL 5.7.33 端口扫描是第一步,也是最老实的一步。工具帮你把门牌号列出来,剩下的全靠人。我见过有人扫出 65535 个端口全开,结果连个弱口令都跑不出来。也见过只开 443 的机器,反而因为一个陈年 Struts2 漏洞被拿下。渗透的讽刺之处在于:你越觉得固若金汤的系统,往往藏着最蠢的配置错误。 说回那台 T430。我登进去之后没急着提权,先 ls /home。三个用户目录:anna、peter、webadmin。webadmin 的主目录里有个 backup.sh,权限是 -rwxr-xr-x。我 cat 了一下,脚本最后一行写着:tar czf /tmp/webbackup.tar.gz /var/www/html --exclude=config.php。然后它用 cron 每五分钟跑一次。问题来了——tar 是 root 跑的,但输出文件在 /tmp,权限是 644。我能读。 一个典型的权限提升路径:利用定时任务写文件 + 通配符注入。把 /tmp 下的 webbackup.tar.gz 换成指向 /etc/shadow 的符号链接,等下一个五分钟,root 亲手把影子文件打包给我。 我照做了。五分钟后 tar -xzf 解开,shadow 文件躺在那里。john 跑了不到三分钟,peter 的密码是 sunshine。用 su peter 切过去,再 sudo -l,发现 peter 能免密运行 /usr/bin/vim。剩下的就是 :!/bin/bash 的老把戏。从普通用户到 root,总共没用到十行命令。 整个过程里最耗时的不是技术,是判断。你要决定扫哪些端口、试哪些用户名、用哪个漏洞。自动化工具能帮你跑字典,但选字典的是人。我认识一个干了十五年的老手,他渗透一台机器平均只要七分钟。问他诀窍,他说:“先看 /etc/passwd 里有没有 nobody 之外的可疑用户,再看 sudo -l 的输出。百分之六十的 Linux 提权就靠这两步。” Windows 那边是另一套逻辑。去年帮朋友查一台被入侵的 Server 2012,攻击者留了个 svchost.exe 在 C:\Windows\Temp 下,数字签名是假的,但 tasklist 里看着和真的一模一样。用 wmic process get name,executablepath,commandline 才露出马脚——真的 svchost 永远从 System32 启动,那个假的从 Temp 跑。一个路径不对,整台机器就完了。 渗透计算机到最后,拼的是耐心和对系统“正常状态”的理解。你知道 ls -la /tmp 该有什么,知道 netstat -tunlp 该监听哪些端口,知道 crontab -l 里不该出现 curl | bash。异常往往就藏在那些你扫一眼觉得“没问题”的地方。我至今保留着一台没打补丁的虚拟机,里面跑着老版本 vsftpd 2.3.4。每次带新人,我都让他们先拿这台练手。那个笑脸后门——:) ——一敲进去就弹 root shell。简单到让人怀疑人生。 但真实的网络里没有笑脸。只有无穷无尽的配置错误、懒人密码、和忘了删的测试脚本。渗透者不过是把这些碎片拼起来的人。拼图的过程不优雅,甚至有点笨拙。可当你看到 root@target:~# 那个提示符亮起来的时候——怎么说呢——就像在旧货市场花五块钱买到一块真的劳力士。你知道这不合法,但那一瞬间的成就感,骗不了人。 ``` |