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
登入成功但裡面沒檔案
但是我嘗試上傳檔案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個小時多一點點主要是提權卡殼了