目錄掃描技術介紹
目錄掃描是采用字典對目標網站路徑進行猜測并發現隱藏URL的技術,這是黑客對網站常用的攻擊手段之一。根據掃描結果,黑客首先可以從大體上了解網站的結構,為實施下一步攻擊收集信息,還可以發現網站的隱藏路徑或文件等敏感信息,比如:
1)網站的管理后臺:網站后臺是管理員管理網站的接口之一,通常不會在網站公開頁面上留下鏈接,所以很難被搜索引擎的爬蟲掃描發現。當通過目錄掃描方式,只要字典足夠好,還是有相當大的機會發現隱藏的管理后臺入口。
2)未受保護的敏感頁面:指不被網站鑒權機制保護的頁面,而這類頁面可能會擁有一些執行敏感操作的功能。
3)網站的備份文件:如果數據庫、源代碼備份等,備份是管理員日常管理工作之一,有時候可能會因為疏忽而把備份遺留在網站目錄下。通過這些文件,黑客可以獲取網站的源代碼以及保存在數據庫中的敏感信息。
4)其他黑客留下的后門:通過掃描黑客還可能發現其他人留下的webshell后門,通過這些后門黑客可以不費吹灰之力獲得網站服務器的權限。
5)網站配置文件:如果數據庫初始化sql腳本,網站后臺配置等。
如何防范目錄掃描
當網站被掃描時訪問量會突然增大,同時產生大量的404訪問日志,這是網站被掃描攻擊的主要癥狀。接下來我給大家介紹如何通過使用iptables防火墻策略識別流量中的404關鍵字,并對異常的掃描流量進行限制,這里我們使用到了iptables的recent及string模塊:
iptables -F
iptables -Z
iptables -X log404
iptables -N log404
iptables -A log404 -m limit --limit 1/min -j LOG --log-prefix "Dir_buster_attack " --log-level 3
iptables -A log404 -j DROP
iptables -A OUTPUT -p tcp -m tcp --sport 80 -m string --string "404 Not Found" --algo bm --to 65535 -m recent --update --seconds 10 --reap --hitcount 10 --rttl --name Block404 --mask 255.255.255.255 --rdest -j log404
iptables -A OUTPUT -p tcp -m tcp --sport 80 -m string --string "404 Not Found" --algo bm --to 65535 -m recent --set --name Block404 --mask 255.255.255.255 --rdest
在上面的例子中,我們使用string模塊識別HTTP響應中的“404 Not Found”關鍵字,并使用recent命令把服務器對每個IP的404響應速率限制在每10秒10次,當超過這個限制時,后續的應將被丟棄并觸發TCP重傳,直到過去10秒的響應次數少于10次。
通過這種方式,iptables可識別短時間內發生的大量404響應,并通過丟包方式延長掃描工具的等待時間。
通過使用掃描工具dirb(
https://tools.kali.org/web-Applications/dirb)進行測試發現,當沒有iptables限制時,dirb在不到16秒的時間內總共掃描了13836個URL,平均800多次每秒:

當使用iptables時,100次請求則花了50秒,平均每秒2次,而黑客通常每實施一次掃描要發送上萬甚至上百萬次請求,這個速度大大超出了他們可接受的范圍。可見iptables在防范目錄掃描攻擊上能起到很好的防護作用:

需要注意的是:
1)首先對流量比較大的網站,recent模塊的ip_list_tot參數應設置得足夠長,建議設置為網站在高峰時平均在線IP的兩倍左右,可通過修改/etc/modprod.d目錄下相應的配置文件:

2)使用CDN部署的網站不建議使用這種方式,否則很可能導致CDN IP被誤殺。
3)--seconds及--hitcount參數應根據實際環境進行調整,盡量在不影響正常訪問的同時提高網站的防護水平。