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服务器可以访问到的另一台服务器有控制权 实际上就是通过主从特性来 同步传输数据,同时利用模块加载来加载恶意的用来进行命令执 ...
随机推荐
- NZOJ 模拟赛6
T1 叉叉 现在有一个字符串,每个字母出现的次数均为偶数.接下来我们把第一次出现的字母a和第二次出现的a连一条线,第三次出现的和四次出现的字母a连一条线,第五次出现的和六次出现的字母a连一条线...对 ...
- php open_basedir的使用
今天跨省问为什么file_exists检测一个相对路径的文件无法获取到true,文件明明有,但是获取不到,我看了一下,感觉可能是因为这个文件是软链接过来的有关系. 然后他找了找发现是和这么一个文件.u ...
- JPEG格式研究——(3)霍夫曼解码
因为霍夫曼编码以bit为单位,长度又不确定,读取时无法区分,JPEG采用了范式霍夫曼编码. 读取并生成霍夫曼表 JPEG中DC系数和AC系数是分别进行编码将霍夫曼表保存在DQT中. 直接上代码解释可能 ...
- 2023 秋季学期 六周集训 Misc方向
by 高鹏鸿.密语 写在前面,记录和交流是一个很好的习惯,建议可以自己先搭建一个博客用于存储自己的做题记录以及方便交流.还有,对于Misc方向,灵活应对十分重要,一定要善用搜索引擎. 还有一点,给大家 ...
- 重磅推出 Sdcb Chats:一个全新的开源大语言模型前端
重磅推出 Sdcb Chats:一个全新的开源大语言模型前端 在当前大语言模型(LLM)蓬勃发展的时代,各类 LLM 前端层出不穷.那么,为什么我们还需要另一个 LLM 前端呢? 最初的原因在于质感的 ...
- 你应该了解的hooks式接口编程 - useSWR
什么是 useSWR ? 听名字我们都知道是一个 React 的 hooks,SWR 是stale-while-revalidate的缩写, stale 的意思是陈旧的, revalidate 的意思 ...
- Kubernetes 可能是分布式架构的大结局了
前两年在爬虫里折腾的太久了,最近快马加鞭追赶分布式架构潮流. SpringCloud.Dubbo.ServiceComb 刷完,以为分布式架构就是这样了.这批架构可能也就 Java 栈的人会感觉它们特 ...
- Java的HTTP接口测试框架Gatling
之前讲过的<JHM>是一个java的基准测试框架,一般用于测试jdk里的API.如果要测试http接口,可以使用Gatling. 你可能用过JMeter,也是可以的 原生的Gatling是 ...
- 设置VirtualBox共享文件夹的方法
1.创建共享文件夹进入linux终端,通过如下指令创建共享文件夹.在此处的/mnt/share是Linux下的共享文件夹. sudo mkdir /mnt/share2.在VirtualBox的设置中 ...
- 【sprinb-boot】@ComponentScan 跳过扫描 excludeFilters
@ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Contr ...