Sybaris pg walkthrough Intermediate 從redis 到 rce

WSssSW發表於2024-12-03
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匿名登入看看

image

登入成功但裡面沒檔案
但是我嘗試上傳檔案id_rsa 發現可以上傳 也就是說我們對該目錄具有上傳能力
image

然後我們再看看redis埠
image
發現redis沒有設定密碼可以直接登入

但發現資料庫好像也是空的
嘗試定時任務反彈shell
image
失敗

於是又看到了hacktrick的另一個方法
用redis上傳webshell 寫入不成功 服了
image

現在還有一個可行的rce方法就是聯合之前我們發現的ftp可上傳檔案功能 讓他載入我們上傳的module.so 這樣就能rce了
具體見下面的介紹
https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
我先上傳好我的module.so檔案
image

可是問題是我們並不知道他的ftp目錄是哪如果實在不知道可以fuzz一下
在嘗試了幾個預設路徑最終找到了ftp的目錄路徑 /var/ftp !!!
現在我們按照hacktrick的方案 執行rce

image
成功
反彈shell
image

shell不太穩定我覺得還是上傳個ssh公鑰 用ssh登入
我們先把authorized_keys 用ftp上傳然後再把它放到 pablo的.ssh 目錄下面 步驟如下圖
image

ssh登入成功
image

接下來就到了提權環節了
老套路
先從kali 裡面wget 出來我們的linpeas.sh 和 pspy64 指令碼
從linpeas.sh
image
我嘗試了一下這幾個提權指令碼發現好像都不太行
思路有點斷了

pspy的定時任務也看了好像也沒啥點客提權

卡了好久
沒辦法看看wp
wp說是有個定時任務
cat /etc/crontab 能夠看到
image
但是神奇的是為啥pspy裡面並沒有這個任務執行呢 搞不懂

嘗試執行這個命令
說沒有一個so檔案 這就很有意思了 可以提權的點來了
image
可以看到他的動態連結庫的目錄有/usr/local/lib/dev
image
而我們的linpeas.sh 剛好告訴我們我們具有對這個檔案的寫入許可權
image
所以我們只要寫一個so惡意so檔案就可以提權了
先在本地寫好提權so檔案
image
然後編譯
gcc -shared -fPIC -nostartfiles pwn.c -o pwn.so
上傳到/usr/local/lib/dev 目錄裡面
image
提權成功

總結一下 其實整體來說還好不難
如果pspy能顯示出來那個定時任務的話 我覺得不看wp肯定做得出來
還是不能太相信pspy 多親自動手看看定時任務
反反覆覆打了也有3-4小時 前面拿到第一個shell還好 只花了1個小時多一點點主要是提權卡殼了

相關文章