您现在的位置是:探索 >>正文

服务器提权

探索15748人已围观

简介拿到一台Linux服务器的shell,你看到的可能只是一个普通用户。真正的战场在提权那一刻才开始。 去年帮朋友排查一台被入侵的测试机,攻击者留下的痕迹很典型:一个低权限的www-data shell, ...

拿到一台Linux服务器的服务shell,你看到的器提权可能只是一个普通用户。真正的服务战场在提权那一刻才开始。

去年帮朋友排查一台被入侵的器提权测试机,攻击者留下的服务痕迹很典型:一个低权限的www-data shell,然后通过一个SUID位的器提权vim二进制文件直接拿到了root。整个过程不超过两分钟。服务这个案例说明了一个事实——提权漏洞往往不在内核本身,器提权而在管理员随手留下的服务配置里。

SUID:最容易被忽视的器提权入口

SUID(Set Owner User ID)机制让普通用户执行某个程序时临时获得文件所有者的权限。听起来合理,服务问题出在太多人把SUID随手加到了不该加的器提权程序上。

我见过最离谱的服务一个:某运维给/usr/bin/find加了SUID位,理由是器提权“方便脚本调用”。结果攻击者一条命令就完事:

find / -exec /bin/sh -p \; -quit

拿到root shell的服务那一刻,服务器已经不属于你了。类似的还有nmap、vim、less、python,只要它们带着SUID位,提权几乎是白送。检查方法也简单:

find / -perm -4000 -type f 2>/dev/null

这条命令跑完,你会看到系统里所有SUID程序。如果里面出现了编辑器、解释器、网络工具,那基本可以判定这台机器的安全基线是失控的。

内核漏洞:不是首选,但躲不掉

很多人一提提权就想到内核exploit,比如Dirty COW、PwnKit。这类漏洞确实好用,但有个现实问题:打内核补丁会导致服务器重启,很多生产环境宁可裸奔也不重启。所以老内核在真实环境中大量存在。

我的判断是:内核提权应该作为最后手段。原因很直接——exploit不稳定,打崩了机器就彻底失联。先用配置类漏洞尝试,失败再考虑内核。判断内核版本:

uname -r

然后去searchsploit或者GitHub上比对,但别急着编译运行。先确认目标环境的glibc版本、编译器是否可用,否则你连exploit都编译不过去。

计划任务与PATH劫持

cron job是另一个重灾区。管理员写定时任务时习惯用相对路径:

*/5 * * * * backup.sh

如果这个脚本没有写全路径,而cron的PATH变量里包含可写目录,你只需要在同名路径放一个恶意脚本,等五分钟就拿到权限。这种手法不需要任何漏洞,纯粹是利用配置疏忽。

我个人的习惯是:拿到shell后先看/etc/crontab和/etc/cron.d/,再检查ps aux里有没有以root运行的脚本调用了相对路径的命令。有一次发现一个每分钟执行一次的监控脚本调用了date,而/usr/local/bin在PATH里排在/bin前面且可写——直接替换date,一分钟后root shell到手。

提权之后的事

拿到root不代表结束。清理日志、留后门、横向移动,这些才是攻击者的完整链路。但从防御角度看,提权成功意味着前面所有防线都已经失效。与其纠结怎么检测提权,不如先把SUID清理一遍、把cron脚本改成绝对路径、把内核补丁打上。

这些事不酷,但有用。

Tags:

相关文章

  • 伪造黑客网站

    探索

    我花了二十分钟,用现成的网页模板改了改,一个带暗黑界面、滚动代码雨和假入侵进度条的“黑客网站”就上线了。域名是随手注册的,服务器是免费主机,SSL证书都没装。它看起来像模像样——标题写着“匿名者行动组 ...

    【探索】

    阅读更多
  • 网站修复工具

    探索

    网站崩了,比电脑蓝屏还让人绝望。尤其是凌晨三点,整个办公室只剩你一个人,屏幕上的错误代码像一串看不懂的摩斯密码。我上次遇到这种事,是给一家本地餐厅修他们的订座系统。客户急得不行,说周末预约全乱了,电话 ...

    【探索】

    阅读更多
  • EM网站

    探索

    EM网站上线第三周,我盯着后台数据,发现一个扎心的事实:用户平均停留时间只有47秒。这个数字像一记闷棍,让我意识到自己精心策划的“内容矩阵”完全失败了。 EM网站最初定位是“泛科技资讯平台”,每天更新 ...

    【探索】

    阅读更多


友情链接