Sybaris pg walkthrough Intermediate 从redis 到 rce
nmap
┌──(root㉿kali)-[~/lab]
└─# nmap -p- -A 192.168.166.93
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-03 01:12 UTC
Nmap scan report for 192.168.166.93
Host is up (0.071s latency).
Not shown: 65519 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
20/tcp closed ftp-data
21/tcp open ftp vsftpd 3.0.2
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 0 0 6 Apr 01 2020 pub [NSE: writeable]
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.45.250
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.2 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
| 2048 21:94:de:d3:69:64:a8:4d:a8:f0:b5:0a:ea:bd:02:ad (RSA)
| 256 67:42:45:19:8b:f5:f9:a5:a4:cf:fb:87:48:a2:66:d0 (ECDSA)
|_ 256 f3:e2:29:a3:41:1e:76:1e:b1:b7:46:dc:0b:b9:91:77 (ED25519)
53/tcp closed domain
80/tcp open http Apache httpd 2.4.6 ((CentOS) PHP/7.3.22)
|_http-server-header: Apache/2.4.6 (CentOS) PHP/7.3.22
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
| http-robots.txt: 11 disallowed entries
| /config/ /system/ /themes/ /vendor/ /cache/
| /changelog.txt /composer.json /composer.lock /composer.phar /search/
|_/admin/
|_http-title: Sybaris - Just another HTMLy blog
|_http-generator: HTMLy v2.7.5
6379/tcp open redis Redis key-value store 5.0.9
10091/tcp closed unknown
10092/tcp closed unknown
10093/tcp closed unknown
10094/tcp closed unknown
10095/tcp closed unknown
10096/tcp closed unknown
10097/tcp closed unknown
10098/tcp closed unknown
10099/tcp closed unknown
10100/tcp closed itap-ddtp
Aggressive OS guesses: Linux 3.10 - 4.11 (92%), Linux 3.13 (90%), Linux 5.1 (90%), Linux 3.2 - 4.9 (89%), Linux 3.13 or 4.2 (88%), Linux 4.10 (88%), Linux 4.2 (88%), Linux 4.4 (88%), Asus RT-AC66U WAP (88%), Linux 3.11 - 3.12 (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 4 hops
Service Info: OS: Unix
TRACEROUTE (using port 53/tcp)
HOP RTT ADDRESS
1 70.09 ms 192.168.45.1
2 70.07 ms 192.168.45.254
3 71.23 ms 192.168.251.1
4 71.25 ms 192.168.166.93
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 124.59 seconds
尝试ftp匿名登录看看

登录成功但里面没文件
但是我尝试上传文件id_rsa 发现可以上传 也就是说我们对该目录具有上传能力

然后我们再看看redis端口

发现redis没有设置密码可以直接登录
但发现数据库好像也是空的
尝试定时任务反弹shell

失败
于是又看到了hacktrick的另一个方法
用redis上传webshell 写入不成功 服了

现在还有一个可行的rce方法就是联合之前我们发现的ftp可上传文件功能 让他加载我们上传的module.so 这样就能rce了
具体见下面的介绍
https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
我先上传好我的module.so文件

可是问题是我们并不知道他的ftp目录是哪如果实在不知道可以fuzz一下
在尝试了几个默认路径最终找到了ftp的目录路径 /var/ftp !!!
现在我们按照hacktrick的方案 执行rce

成功
反弹shell

shell不太稳定我觉得还是上传个ssh公钥 用ssh登录
我们先把authorized_keys 用ftp上传然后再把它放到 pablo的.ssh 目录下面 步骤如下图

ssh登录成功

接下来就到了提权环节了
老套路
先从kali 里面wget 出来我们的linpeas.sh 和 pspy64 脚本
从linpeas.sh

我尝试了一下这几个提权脚本发现好像都不太行
思路有点断了
pspy的定时任务也看了好像也没啥点客提权
卡了好久
没办法看看wp
wp说是有个定时任务
cat /etc/crontab 能够看到

但是神奇的是为啥pspy里面并没有这个任务执行呢 搞不懂
尝试运行这个命令
说没有一个so文件 这就很有意思了 可以提权的点来了

可以看到他的动态链接库的目录有/usr/local/lib/dev

而我们的linpeas.sh 刚好告诉我们我们具有对这个文件的写入权限

所以我们只要写一个so恶意so文件就可以提权了
先在本地写好提权so文件

然后编译
gcc -shared -fPIC -nostartfiles pwn.c -o pwn.so
上传到/usr/local/lib/dev 目录里面

提权成功
总结一下 其实整体来说还好不难
如果pspy能显示出来那个定时任务的话 我觉得不看wp肯定做得出来
还是不能太相信pspy 多亲自动手看看定时任务
反反复复打了也有3-4小时 前面拿到第一个shell还好 只花了1个小时多一点点主要是提权卡壳了
Sybaris pg walkthrough Intermediate 从redis 到 rce的更多相关文章
- Redis基于主从复制的RCE 4.x/5.x 复现
0x00 前言 最近期末考试,博客好久没有更新了,这段时间爆了三四个洞,趁着还没去实习,抓紧复现一下,这次复现的是Redis的RCE,复现过程中也遇到很多问题,记录下来和大家分享一下 0x01 拉取镜 ...
- 一次线上redis实例cpu占用率过高问题优化(转)
前情提要: 最近接了大数据项目的postgresql运维,刚接过来他们的报表系统就出现高峰期访问不了的问题,报表涉及实时数据和离线数据,离线读pg,实时读redis.然后自然而然就把redis也挪到我 ...
- postgresql和redis
redis 和postgresql区别以及其优缺点 一刹那者为一念,二十念为一瞬,二十瞬为一弹指,二十弹指为一罗预,二十罗预为一须臾,一日一夜有三十须臾. 那么,经过周密的计算,一瞬间为0.36 秒, ...
- redis实例cpu占用率过高问题优化
目录 一.简介 一.简介 前情提要: 最近接了大数据项目的postgresql运维,刚接过来他们的报表系统就出现高峰期访问不了的问题,报表涉及实时数据和离线数据,离线读pg,实时读redis.然后自然 ...
- Vulhub 漏洞学习之:Redis
Vulhub 漏洞学习之:Redis 1 Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库.Redis 与其他 key - value 缓存产品 ...
- python服务器环境搭建(3)——参数配置
前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题.好了费话少说,直接进入本篇话题. PS:本人不是专业的运 ...
- presto调研和json解析函数的使用
presto简单介绍 presto是一个分布式的sql交互式查询引擎.可以达到hive查询效率的5到10倍.支持多种数据源的秒级查询. presto是基于内存查询的,这也是它为什么查询快的原因.除了基 ...
- MySQL简介及安装 mysql Ver 14.14 Distrib 5.7.28
1.MySQL简介 1.数据库产品演变 第一代数据库架构: RDBMS 关系型数据库时代 : 合的时代 代表产品 :Oracle .MSSQL .MySQL.SQL server 第二代数据库架构:拆 ...
- algernon 基于golang 的独立的支持redis lua pg。。。 的web server
algernon 看到github 的介绍很很强大,一下子想到了openresty,功能看着很强大,支持 redis pg lua markdown quic http2 mysql 限速 pongo ...
- Redis 4.x RCE 复现学习
攻击场景: 能够访问远程redis的端口(直接访问或者SSRF) 对redis服务器可以访问到的另一台服务器有控制权 实际上就是通过主从特性来 同步传输数据,同时利用模块加载来加载恶意的用来进行命令执 ...
随机推荐
- HttpWebRequest调用API
public void HttpWebRequestPost(){ string responseContent = string.Empty; var userNameAndPwd = new { ...
- ARC133D Range XOR
ARC133D Range XOR 题目链接:[ARC133D] Range XOR 非常好数位 dp. 思路 根据异或的前缀和,我们可以把式子化成这样. \[\sum_{i=l}^r\sum_{j= ...
- vue结合element UI做checkbox全选的tree结构
由于element UI中的tree可能不能满足项目中的样式需求,所以自己动手结合element中的checkbox全选功能实现了一个符合项目需求的tree.效果如下: html部分: <tem ...
- rabbitmq-c与amqp扩展安装
最近需要使用RabbitMQ进行消息队列处理 1.安装rabbitmq-c 在安装amqp之前需要先安装rabbitmq-c扩展 rabbitmq-c下载网址:https://github.com/a ...
- Vue.js 其他指令
1.ref标识 通过给HTML标签或者组件标签设定ref属性,根据他的属性值来访问这个HTML元素或者组件 语法:this.$refs.属性值 //为p标签设置ref属性 <div id=&qu ...
- 全球气象数据ERA5的下载方法
本文介绍在ERA5气象数据的官方网站中,手动下载.Python代码自动批量下载逐小时.逐日与逐月的ERA5气象数据各类产品的快捷方法. ERA5(fifth generation ECMWF ...
- Qt QTtoolButton 鼠标移动到按钮上时,弹出菜单后,按钮的hover状态无法恢复的问题
需求:QTtoolButton 鼠标移到按钮上时,弹窗菜单,并且点击菜单或者其他地方,菜单关闭后,按钮的hover状态需要恢复原状. 1. 创建按钮和菜单,并安装事件过滤器 m_Menu = new ...
- 【Amadeus原创】查看正在运行的docker run参数
如何查看一个运行docker 容器的docker run启动参数,假设没有使用docker-compose这样的编排工具. 现在我如何进行重启,如何找回此前的启动命令? [root@mysql3 ~] ...
- 【Amadeus原创】更改docker run启动参数
经过一整天的摸索,答案: 没法直接修改.只能另外创建. 但是还好不用完全重头来,用docker commit命令可以基于当前修改的内容创建一个新的image. 执行docker 看看帮助先: Comm ...
- 鼠标事件:mouseout、mouseover事件会不断触发
mouseover 和 mouseenter mouseenter不会冒泡,而mouseover会冒泡 mouseover:指针进入事件监听的元素内 或者 其他的子元素内 都会触发mouseover ...