<vulnhub>-记一次实验Load of The Root

2023-11-11

Load of The Root

一、信息收集

1.主机探测

探测到主机IP:192.168.88.159

image-20220723191329029

2.端口扫描

扫描到端口只开放了一个22端口
image-20220723191406182

尝试使用SSH连接

image-20220723191545226

Easy as 1,2,3

端口碰撞:端口上的防火墙通过产生一组预先指定关闭的端口进行连接尝试,一旦接收到正确的连接尝试序列,防火墙规则就会动态修改,以允许发送连接尝试的主机通过特定端口进行连接
这里我们使用ping命令冲撞三次试试1,2,3
命令:
hping3 -S 192.168.88.159 -p 1 -c 1
hping3 -S 192.168.88.159 -p 2 -c 1
hping3 -S 192.168.88.159 -p 3 -c 1

image-20220723191913693

通过ping碰撞后,防火墙规则会修改,再次端口扫描一次试试
image-20220723192208893

发现1337端口已经打开,访问试试

image-20220723192250913

发现这里面并没有什么线索,查看一下robots.txt文件

image-20220723192601543

查看一下源代码

image-20220723192625210

发现一串用Base64加密的值,我们解码查看一下

THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh

image-20220723192707662

Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!

发现还是一串base64加密的值,二次解码查看

image-20220723192750329

/978345210/index.php 

一看就知道是目录,我们访问试试

image-20220723192850905

目前不知道账户和密码,我们使用sqlmap进行基于登录表单的注入查看,检索数据库名称和登录凭证

sqlmap -o -u "http://192.168.88.159:1337/978345210/index.php" --forms --dbs

image-20220723193552151

查看webapp数据库中数据

sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T --tables

image-20220723194155880

sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users --columns

image-20220723194602032

sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users -C id,username,password --dump

image-20220723195315750

将这些用户名和密码保存在两个不同的文本中,使用msfconsole来破解SSH正确的账户密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNt7RRl1-1663660394270)(Load of The Root-image/Load of The Root/image-20220723195629747.png)]

image-20220723195810772

image-20220723200025171

结果

image-20220723200101648

账号密码:smeagol:MyPreciousR00t

二、提权方式

1.Linux内核提权

SSH登录

image-20220723200323161

查看内核版本

image-20220723200444924

查看到ubuntu 14.04的版本
image-20220723200757166

我们使用39166.c进行提权
image-20220723200950511

提取shell到本地,开启服务,准备上传shell

image-20220723201105558

通过python开启服务上传shell,并进行gcc编译,继续提权

image-20220723201314663

成功提权到root

2.以root身份运行Mysql提权

在我们查看进程的时候,发现mysql是以root权限在运行,同时查看到数据库的版本是5.5.44

image-20220724204011042

根据这个信息我们使用exploit进行反弹shell提权,继续所有数据库信息看看有哪些,咱们筛选一下信息

image-20220724204213388

image-20220724204305804

准备开始上传shell到smeagol用户下

image-20220724204707966

我们参考1518.c脚本内容进行命令输入,制作反弹shell

image-20220724204851476

在这里我们在数据中找mysql的root密码,一般都在/var/www目录下查找配置文件

image-20220724205043372

发现数据库密码是darkshadow,接下来按照步骤进行

image-20220724205154325

image-20220725124127789
image-20220725125056666

这样就拿到root权限了

image-20220725125106276

缓冲区溢出提权

学过缓冲区溢出提权,都会了解到SECRET文件夹目录,我们来找找

find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null

image-20220725125354756

每个文件夹都有一个可执行文件,需要输入字符串才能执行

image-20220725125559405

尝试是否在这里可以利用缓冲区溢出提权

易受攻击的文件会文件夹之间随机移动,要确认是哪个文件,可以使用file命令来比较每个文件的哈希值

file door1/file door2/file door3/file

image-20220725125814889

还可以比较使用ls -lahR创建的文件大小和日期
image-20220725130032895

还可以比较文件大小为du -b字节
image-20220725130114114

目前是door3
image-20220725130200411

将文件复制到bof目录下,方便进行进一步测试

为了确认是否受到攻击,使用python命令快速模糊找出崩溃的字符数

首先发送100个“A”不会执行任何操作

image-20220725130501673

经过测试发现,171是崩溃的确切位置
image-20220725130559180

二进制文件的快速替代方法是使用base64,使用base64的fileName编码二进制文件,将值复制到一个文本即可

image-20220725130919141

然后将base64.txt文件读入base64命令并解码为输出文件

image-20220725130858242

要进行下一步,检查下文件类型之前file door1/file 查看到的哈希值一样

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

<vulnhub>-记一次实验Load of The Root 的相关文章

  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • 应用程序中两个不同版本的库

    考虑一个场景 其中有两个不同版本的共享库 考虑 A 1 so 链接到 B so A 2 so 链接到 C so 现在 B so 和 C so 都链接到 d exe 当 B so 想要调用 A 1 so 中的函数时 它最终会调用 A 2 so
  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写

随机推荐

  • 在windows下使用Vscode用CMake..命令编译源代码时候遇到的问题之解决办法

    由于我在windows下用Vscode总是不记得如何deal这个错误 因此今天就用这篇博客记录下来 在windows的Vscode这个IDE下 打开终端 输入命令行 C Users 11602 Desktop test build gt c
  • 【互联网有记忆】爬取微博热搜榜并存入数据库(python爬虫+存储过程后端实现)

    一 爬虫代码 import random time import requests re import datetime import mysql connector 定义爬取间隔 minutes interval time 15 clas
  • 随机森林(RF)

    目录 RF概念 RF算法流程 RF算法的优缺点 RF算法使用实现 RF应用 RF概念 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器 决策树的详解见链接决策树 ID3算法 C4 5算法 CART算法 xiaoming1999的博客
  • Jmeter验证码图片识别注册接口压力测试实战

    写在前面 前段时间写了一篇博文 Jmeter验证码注册接口压力测试实战 前两天又登录对应的网站看了一下 发现原来滑动验证的方式改成了图片验证码的方式 防止用户多次发送手机验证码 看到这里我本来不想再有太多想法了 但是看到如下的注册界面 将很
  • Windows Server 命令行编码乱码问题

    Windows Server 命令行编码乱码问题 输入chcp发现编码是437也就是英文编码 那么有两种解决办法 0 前提 假如服务器是中文的 那么直接跳过 英文版的要找到时间和语言设置里的区域 gt 其他日期 时间和区域设置 将格式改为中
  • kvm环境快照(snapshot)的使用方法

    实例一 使用qemu img命令使用快照 kvm环境下qcow2的镜像支持快照 1 确认镜像的格式 root nc1 boss qemu img info test qcow2 image test qcow2 file format qc
  • 3. Zipkin 持久化

    Zipkin 持久化 其实 我们仔细想想也可以总结出这种方式的几种缺陷 缺陷1 zipkin客户端向zipkin server程序发送数据使用的是http的方式通信 每次发送的时候涉及到连接和发送过程 缺陷2 当我们的zipkin serv
  • AIGC发展研究(1.0版)

    该图谱由中国信息通信研究院 中国通信标准化协会大数据技术标准推进委员会 CCSA TC601 共同发起 旨在梳理数据治理产业上下游相关企业 产品 服务的分布情况 掌握数据治理市场现状 洞察数据治理产业发展趋势 图谱1 0收录了来自98家企业
  • Qt支持https请求

    Qt支持https请求需要配置openssl环境 Qt默认是不支持SSl认证的 检测Qt支持的协议 QNetworkAccessManager manager new QNetworkAccessManager this qDebug lt
  • 毕业两年后的经历总结——一个奋斗中的前端蜂鸟

    转眼间 已经毕业两年了 不得不感叹时间过的真快啊 学生时代的美好 终于只能永久停留在记忆长河中不再复返 韶光易逝 但唯一不变的 是变化 回望过去 有过困惑 有过迷茫 也有过焦虑 刚开始工作时 也遇到了很多很多的困难 这时的我对未来比较迷茫
  • 二进制数字(2ASK)载波调制解调仿真设计(matlab仿真)

    一 实验目的 了解二进制数字信号2ASK波形特点 掌握2ASK调制解调系统的构成 基带信号 载波和2ASK已调信号之间的关系 掌握利用matlab对2ASK进行仿真的分析方法 二 实验任务 利用matlab实现对2ASK信号调制与解调的仿真
  • 微服务架构设计的12个要点

    一 负载均衡 二 API网关 三 无状态化与独立有状态集群 四 异步处理机制 五 数据集群 分库分表 六 缓存 七 服务拆分与服务发现 八 服务编排与弹性伸缩 九 统一配置中心 十 统一日志中心 十一 熔断 限流 降级 十二 全方位的监控
  • 微信小程序获取用户信息(getUserProfile接口回收后)——通过头像昵称填写获取用户头像和昵称

    背景 最近在用uniapp写微信小程序授权登录的时候 发现项目在微信开发者工具中调试是正常的 但是在真机运行时 返回的用户数据中昵称变成了微信用户 头像变成了默认的灰底头像 接着去百度了一下发现出现这个问题的原因是getUserProfil
  • Delphi XE10实现移动端支付宝支付接口(含源码)

    Demo下载地址 https pan baidu com s 14i84u 加入支付宝开发者平台 https open alipay com 签约移动支付服务 访问https b alipay com order productSet ht
  • TensorFlow(Python

    回归任务旨在从输入训练数据中预测连续变量 而分类任务旨在将输入数据分为两个或多个类别 例如 预测某一天是否会下雨的模型是一项分类任务 因为模型的结果将分为两类 下雨或不下雨 然而 预测给定日期的降雨量的模型将是回归任务的一个示例 因为模型的
  • 服务器上传excel文件并读取数据,ASP.NET中上传并读取Excel文件数据示例

    在CSDN中 经常有人问如何打开Excel数据库文件 本文通过一个简单的例子 实现读取Excel数据文件 首先 创建一个Web应用程序项目 在Web页中添加一个DataGrid控件 一个文件控件和一个按钮控件 在代码视图中首先导入OleDb
  • Appium自动化框架从0到1之 框架结构组成

    从0到1搭框架 框架背景 框架功能 框架视图 框架背景 可能会利用一周的时间 我们来写一个Appium自动化框架的搭建 从0到1 跟着小鱼一起 完善Android 的自动化框架体系 框架模式 PO 语言 python3 7 Appium 1
  • mac 利器

    mac 利器 攒了很久的钱 环境彻底迁移到mac os 下 总结下自己使用的一些工具 从win到mac的一些工具迁移可以看老的文章 win下的mac利器替代品 这一篇主要集中在mac下的工具体会和使用心得距离上一次更新 应该很久了 上一次是
  • Flutter之修改AppBar的高度

    全局 设置AppBar的主题中的toolbarHeight override Widget build BuildContext context return GetMaterialApp title Flutter Demo debugS
  • <vulnhub>-记一次实验Load of The Root

    Load of The Root 一 信息收集 1 主机探测 探测到主机IP 192 168 88 159 2 端口扫描 扫描到端口只开放了一个22端口 尝试使用SSH连接 Easy as 1 2 3 端口碰撞 端口上的防火墙通过产生一组预