vulnhub Pwned: 1

2023-10-27

渗透思路:

nmap扫描端口 ---- gobuster扫描网站目录 ---- burp爆破网站目录 ---- 网站源代码泄露ftp用户名密码 ---- ariana用户用id_rsa进行ssh登录 ---- sudo bash脚本提权到selena ---- 利用docker越权查看文件

环境信息:

靶机:192.168.101.107

攻击机:192.168.101.34

具体步骤:

1、nmap扫描

sudo nmap -sC -sV -p- 192.168.101.107

扫描到21(ftp)、22(ssh)、80(http)端口

2、gobuster扫描网站目录

gobuster dir -u http://192.168.101.107 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

扫描到/nothing和/hidden_text

3、burp爆破网站目录

http://192.168.101.107/hidden_text/是一个目录,其中有一个文件secret.dic,看上去是个目录字典

http://192.168.101.107/hidden_text/secret.dic

用burp的intruder模块对网站目录进行爆破,爆破位置如下图所示

payload粘贴http://192.168.101.107/hidden_text/secret.dic中的内容

不要勾选URL-encode these characters

按Start attack开始爆破,爆破结果中只有/pwned.vuln状态码是301,其他都是404

4、网页源代码泄露ftp用户名密码

访问http://192.168.101.107/pwned.vuln/,是一个登录页面,查看网页源代码发现被注释掉的php代码

上图红框中的代码泄露了用户名为ftpuser,密码为B0ss_B!TcH

但这对用户名密码无法用于网站登录,因此想到尝试ftp登录

ftp 192.168.101.107

用户名和密码分别为ftpuser和B0ss_B!TcH,登录成功,发现share文件夹,进入share文件夹后发现两个文件:

id_rsa和note.txt

下载这两个文件

ftp> get note.txt
ftp> get id_rsa

5、ariana用户用id_rsa进行ssh登录

note.txt泄露了用户名ariana,可以猜测id_rsa属于ariana

ariana进行ssh登录

ssh -i id_rsa ariana@192.168.101.107

登录成功,得到第一个flag

6、sudo bash脚本提权到selena

执行sudo -l发现ariana可以在不需要输入密码的情况下以selena的身份sudo执行/home/messenger.sh

/home/messenger.sh内容如下,$msg(也就是提示符"Enter message for $name :"之后输入的内容)将被作为bash命令执行

#!/bin/bash

clear
echo "Welcome to linux.messenger "
		echo ""
users=$(cat /etc/passwd | grep home |  cut -d/ -f 3)
		echo ""
echo "$users"
		echo ""
read -p "Enter username to send message : " name 
		echo ""
read -p "Enter message for $name :" msg
		echo ""
echo "Sending message to $name "

$msg 2> /dev/null

		echo ""
echo "Message sent to $name :) "
		echo ""

sudo执行 /home/messenger.sh

sudo -u selena /home/messenger.sh

在提示"Enter username to send message : "后面随便输入些字母,然后在提示"Enter message for $name :"之后输入bash,即可进入selena的shell。

在/home/selena/user2.txt中有第二个flag

7、利用docker提权到root

同时注意到,selena是docker组的用户。

docker | GTFOBins中可以看到,当用户属于docker组时,有运行docker的权限,从而可以利用docker命令将靶机根目录挂载到靶机内某个新容器的目录下,进而利用容器的root用户越权查看靶机上的文件。

执行如下命令将靶机的根目录挂载到alpine镜像(不一定非要用这个镜像,只要是靶机上有的镜像就行,靶机上没有也可以从攻击机上下载)创建的新容器的/mnt目录,并将/mnt目录设置为根目录

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

在/root/root.txt中有第三个flag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vulnhub Pwned: 1 的相关文章

随机推荐

  • JS基础之String对象的常用方法

  • 【Git】Git commit push的时候出现了两个分支

    1 背景 是这样的 新建了一个项目 然后第一次提交到git的时候因为卡住了 然后我就关掉了IDEA 然后重新打开后提交就可以了 但是却在整个项目提交的时候出现了两个一样的分支 不一样的文件夹 而且提交到远程的时候 发现web文件夹是空的 不
  • Java SpringBoot框架面试题(入门必看)

    目录 一 SpringBoot 二 Linux 三 Redis 前言 在熟悉SpringBoot框架面试题前 需要掌握Spring家族等ssm框架的面试题 有需要的小伙伴可以翻看下面小编的这篇博客 Java SSM框架面试题 删繁就简 系统
  • 【虚拟仿真】Unity3D打包WEBGL后播放视频(VideoPlayer组件)

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好 我是佛系工程师 恬静的小魔龙 不定时更新Unity开发技巧 觉得有用记得一键三连哦 一 前言 本篇文章实现Unity3D打包WEBGL后播
  • vscode中怎样格式化js代码_Vue-cli Eslint在vscode里代码自动格式化的方法

    编辑器另外一个很重要的功能就是代码格式化了 vs code默认提供常见文件的格式化 如 js html等 添加对 vue文件的格式化支持 这里我们添加对 vue 文件的格式化支持 1 安装 vetur 插件 2 在 vs code 的设置中
  • WordPress所有Dashicons图标样式和用法

    Dashicons是WordPress官方出品的用于后台的图标样式 主要用在后台右侧菜单的图标 当我们自己开发和改造后台的时候非常实用 下面列出了所有的图标 方便开发后台时使用 经常使用的两个函数是 register post type 和
  • react 16.7 hooks - effect 详解

    Effect Hook可以使得你在函数组件中执行一些带有副作用的方法 import useState useEffect from react function Example const count setCount useState 0
  • gauge自动化框架踩坑(四):在测试报告中自定义messages

    在开始之前 我觉得很有必要介绍一下print和logger 因为平时调试用的最多的就是print和看日志 当然可以打断点调试 但是我不太习惯用这个 一 print gauge控制台输出到底支不支持print 其实自己可以写个demo 看来确
  • 如何查看小程序的APPID和AppSecret

    小程序APPID可以在手机上打开小程序后 点击右上角三点 然后点击中间位置的小程序名称 进入小程序介绍页面 点击 更多资料 后 进入页面就可以看到上方有APPID 另一种方法 在微信公众平台登录自己的小程序账号 微信公众平台 在开发管理 开
  • Python基础教程,Python入门教程(超详细)

    Python由荷兰数学和计算机科学研究学会 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python语法和动态类型 以及解释型语言的本质 使它成为多数平台上写脚本和快速开发应用的编程语言 目录 为什么使用Python Pytho
  • 微信小程序授权获取用户详细信息openid

    小程序获取用户的头像昵称openid之类 第一种使用wx getUserInfo直接获取微信头像 昵称 wx getUserInfo success function res that setData nickName res userIn
  • JSP基础详解

    目录 一 JSP简介 二 JSP的本质 三 JSP页面元素 1 JSP指令 2 JSP小脚本 3 JSP表达式 4 声明脚本 5 注释 四 JSP的执行过程 四 JSP九大内置对象 五 JSP四大域对象 六 JSP中的include标签 一
  • 【JVM · 调优】监控及诊断工具

    一 概述 1 背景说明 1 1 生产环境中的问题 生产环境发生了内存溢出该如何处理 生产环境应该给服务器分配多少内存合适 如何对垃圾回收器的性能进行调优 生产环境CPU负载飙高该如何处理 生产环境应该给应用分配多少线程合适 不加log 如何
  • (*(volatile unsigned int *))详解

    使用一个32位处理器 要对一个32位的内存地址进行访问 可以这样定义 define RAM ADDR volatile unsigned long 0x00000000 然后就可以用C语言对这个内存地址进行读写操作了 读 tmp RAM A
  • 常用导航坐标系 及 转换关系 (理论+程序)

    一 坐标系定义与符号约定 在捷联惯导中 涉及到多种坐标系 其中 惯性坐标系 地心地固坐标系 导航坐标系 的示意图如下 下面给出常用的坐标系的定义 1 惯性坐标系 i 系 以地球质心为原点 轴指向地球自转轴 轴位 于赤道面指向空间任意点 轴与
  • Java -------- 运算符

    目录 什么是运算符 算术运算符 加减乘除模 算数运算符 除 算数运算符 模 算数运算符 加 增量运算符 增量运算符 自增 自减运算符 关系运算符 lt gt lt gt 逻辑运算符 逻辑与 短路与 逻辑或 逻辑非 短路求值 和 遵循短路求值
  • Android studio开发Flutter常用插件

    Flutter 安装 Flutter 和 Flutter Snippets 设置中文 插件下载地址 看一下你的andio studio 是什么版本 下载插件时需要对应 下载完后 导入插件 重启 成功 CodeGlance Pro 代码缩略图
  • Flutter 中的同步与异步,我的Android美团求职之路

    Future error 创建一个执行结果为error的future factory Future error Object error StackTrace stackTrace return new Future immediateEr
  • OpenCV教程——OpenCV环境配置及第一个测试代码

    1 OpenCV简介 OpenCV是一个计算机视觉的开源库 英文全称是 Open Source Computer Vision Library 常用的OpenCV的核心模块 Image Process Camera Calibration
  • vulnhub Pwned: 1

    渗透思路 nmap扫描端口 gobuster扫描网站目录 burp爆破网站目录 网站源代码泄露ftp用户名密码 ariana用户用id rsa进行ssh登录 sudo bash脚本提权到selena 利用docker越权查看文件 环境信息