Google Hacking信息刺探的攻與防
我們都知道滲透測試中信息收集的重要性,是第一步也是最重要的一步。有的人滲透測試使出渾身解數破門而不入,可對有的人來說卻如同囊中取物,也許功力就是差在信息收集,那麼現在就讓我帶領各位讀者重新認識一下Google———你軍火庫中的「大咖」 。(前面基礎部分希望大家不要錯過,說不定有你不知道的秘密,各位伺服器管理員也不要錯過最後的彩蛋哦!)
0X01 你不得不知道的谷歌基礎
一、谷歌周邊
1.谷歌圖片
谷歌圖片是一個圖片識別的非常強大的工具,一張你不知道來源的圖片上傳之後不僅能知道來源,還能自動尋找相似圖片。
2.谷歌地球
坐看世界各地,笑看雲捲雲舒,滲透之前看看滲透的地方長啥樣對吧…
3.谷歌論壇
信息收集的重要地點,谷歌背後的繁榮之地(多得是你不知道的事)
4.谷歌日曆
記錄你生活的點點滴滴,有時卻給hacker留下了巨大的財富
5.谷歌地圖
找到你回家的路,跑路的重要工具…..
6.谷歌高級搜索
這個功能異常強大,更加能滿足你的需要
7.谷歌自定義搜索引擎
8.GHDB 谷歌黑客資料庫
https://www.exploit-db.com/google-hacking-database/
這一部分我會放在github中會仔細的講一下,鏈接地址在本文下方,希望大家關注
二、搜索基礎
1.查詢是
不區分
大小寫(OR在表示布爾含義時一定要大寫)2.在谷歌搜索的時候只能當做*一個單詞使用
3.谷歌有32詞的搜索限制(當然可以通過*代替某些單詞突破這種限制)
4.短語搜索要帶上
單引號
5.AND對谷歌來說是多餘的,谷歌會自動查詢你輸入的一切
6.谷歌會忽略特別常見的字元,但是前面加上」+」強制搜索(+後面
不能
有空格)7.NOT可以使用」-「(減號代替)
8.布爾查詢OR/「|」
0X02 不得不說的高級運算符
一、總覽
intitle,allintitle
inurl,allinurl
filetype
allintext
site
link
inanchor
datarange
cache
info
related
phonebook
rphonebook
bphonebook
uthor
group
msgid
insubject
stocks
define
使用方法:
operator:search
注意點:
1.在操作符、冒號、搜索項之間
沒有
空格2.all運算符(以all開頭的運算符)都是有些奇怪的,通常一個查詢只能使用
一次
,而且不能和其他運算符一起使用①allintitle 會告訴谷歌,它後面的每一個單詞或者短語都要在標題中出現
②allintext 在除了標題、URL、鏈接以外的任何地方找到某個內容(它後面的每一個單詞或者短語都要在內容中出現)
3.intitle:」index of」等價於 intitle:index.of
因為『.』休止符能夠代替任何字元(這個技術也提供了一個無需鍵入空格和兩邊引號的短語)
4.intitle:」index of」 private 能返回標題中有index of 以及在任何地方有 private的頁面(intitle只對其後面第一個搜索項有效)
二、常見運算符解釋
site 把搜索精確到特定的網站
site 允許你搜索僅僅位於一個特定伺服器上的或者在一個特定域名里的頁面
filetype 搜索特定後綴的文件
搜索以一個特別的文件擴展名結尾的頁面,谷歌會以網頁快照的形式來將這種格式轉換成html頁面,但是你直接點擊標題就會下載
link 包含指定網頁的鏈接的網頁
搜索包含指定網頁的鏈接的網頁,link後面跟的是完整的URL可以包含目錄名、文件名、參數等,信息量越大查詢結果越精確。
注意
1. 不要認為 Link能搜索鏈接中的文本,inanchor才執行的是這個操作,如果輸入錯誤,那麼並不會執行link查詢而是把[link:短語]當做一個整體直接默認查詢
2. link運算符不能和其他運算符一起使用
inanchor 尋找鏈接的錨點
inanchor 用於尋找鏈接的錨點,或者在鏈接中顯示的文本(就是顯示在頁面上的提供點擊的文字)
cache 顯示頁面的緩存版本
直接跳轉到頁面的緩存版本
numberange 搜索一個數字
numberange 需要兩個參數,一個低位數字,一個高位數字,中間用連字元分割
例如:
為了找到12345 numberange:12344-12346
注意:
1.這個運算符還有簡化版, 12344..12346
2.可以和其他運算符一起使用
daterange 搜索在特定日期範圍內發布的頁
谷歌每次重新抓取一個網頁網頁的日期就會刷新
兩個參數日期都必須是自公元前4713年1月1日起經過的天數,中間用連字元分割但(不如使用谷歌的高級搜索引擎實現)
info 顯示谷歌的總結信息
顯示一個網站的總結信息還提供了可能關於該網站的其他搜索鏈接
注意:
info不能和其他運算符一起使用
related 顯示相關站點
參數是一個URL
注意:
1.點擊類似網頁鏈接和使用高級搜索引擎能實現相同的功能
2.不能和其他運算符一起使用
define 顯示一個術語的定義
此處語言蒼白……
0X03 Google Hacking 基礎
文件類
一、目錄列表的查找
目錄列表能列出存在於一個web伺服器上的文件和目錄
查找目錄列表
實例:
intitle:index.of 這裡的休止符代表的是單個字母的通配符
更優化的查找
實例:
intitle:index.of 「parent directory」
intitle:index.of name size
二、(特定版本的)伺服器
能被攻擊者用來決定攻擊web伺服器最佳方法的一小段信息,就是確切的伺服器版本
實例:
intitle:index.of 「server at」
intitle:index.of 「Apache/1.3.27 Server at」
我們還可以確定伺服器的操作系統、模塊和其他信息
我們會把操作系統寫在括弧里
Apache/1/3/26(Unix)
CentOS
Debian
Debian GNU/Linux
Fedora
FreeBSD
Linux/SUSE
Linux/SuSE
NETWRE
Red Hat
Ubuntu
UNIX
Win32
攻擊者能結合這個操作系統標籤里的信息以及web伺服器的版本制定有針對性的攻擊
三、擴展遍歷技術
經常會出現web頁面的備份文件,他們有泄露源碼的傾向。常常在配置錯誤的時候出現這種問題,把php代碼備份到不是以php結尾的文件中,比如bak
實例:
intitle:index.of index.php.bak
inurl:index.php.bak
四、配置文件的查找
配置文件的存在說明服務就在附近
實例:
filetype:conf inurl:firewall
如果你能知道配置文件的名字也是一個非常好的搜索方式,當然你可以從配置文件中抽取特定的字元串來查詢,如果能再配上軟體名字的話就效果更好了
注意:
1.除了配置文件名conf的使用,也可以組合其他的通用的命名規則來查找其他等價的命名規則
inurl:conf OR inurl:config OR inurl:cfg
五、日誌文件的查找
日誌文件中也記錄著日誌很多的敏感信息
日誌文件也有一個默認的名字可以被我們用作基礎的搜索,最常見的擴展名就是log了
實例:
filetype:log inurl:log
ext log log
filetype:log username putty
六、office文檔
實例:
filetype:xls inurl:password.xls
filetype:xls username password email
資料庫、後台類
一、登錄入口
登錄入口是第一道防線,很容易泄露軟硬體的信息
查找入口一般使用關鍵字login
大的廠商一般會把版權的注意事項放在頁面的底部
實例:
intitle:login intext:版權信息
二、錯誤消息
資料庫的錯誤消息能夠用來分析操作系統和web伺服器的版本,還可能更多
SQL command not properly ended
這個表示沒有在sql語句的最後找到正確的終止符,所以可能會被用於注入攻擊
三、資料庫的轉儲
資料庫基於文本的轉換在網路上是很常見的,使用資料庫的轉儲資料庫管理員能完整地重建資料庫,也就意味著一個完整的轉儲的細節並不只是數據表格的結構還有每張表的每一條記錄。
攻擊者可以搜索轉儲的標題 # Dumping data for table並且通過執行必要的關鍵詞 username password等能夠縮小範圍
實例:
Dumping data for table(user|username|password|pass)
還可以關注一些由別的工具添加到資料庫轉儲中最後的文件名
實例:
filetype:sql sql
四、真實的資料庫文件
攻擊者還能直接搜索到資料庫本身,並不適合所有的資料庫系統,只適合哪些有著特定名字或者擴展名的資料庫,因為是二進位文件,所以沒法在裡面搜索字元
實例:
filetype:mdb inurl:com
0X4 如何防禦Google Hacking
web 伺服器的安全防護
一、目錄列表和丟失的索引文件
.htaccess 可以來防止目錄的內容未授權的訪問,但是不當的配置還會讓這個文件可見甚至可讀
在 apache 的伺服器上可以通過 httpd.conf文件中的單詞indexs前加一個連字元或者減號來禁止目錄列表
二、robots.txt
#
開頭的行為會被認為是注釋,每一個不以#開頭的行為都會以 User- agent或者是一個 disallow 聲明開頭,表示禁止爬蟲爬行的位置,但是也可以允許特定的爬蟲訪問。
三、NOARCHIVE緩存殺手
有時候你希望google住抓取某個頁面但是又不希望對頁面的副本進行緩存,或者搜索結果中顯示緩存鏈接,這個要求可以通過META實現
如果你只想阻止谷歌對文件的緩存,可以在HEAD節里使用
四、NOSNIPET 去除摘要
另外這個功能還有個副作用,就是谷歌也不能緩存,一舉兩得。
五、十五條防止信息泄露和伺服器入侵的措施
1.檢查所有的文檔能否被Google搜索到,避免敏感文件能出現在公眾的視野中
2.選擇一個強大的自動化工具來掃描你網站上是否有信息的泄露
3.不要使用默認的登錄入口,以防止登錄入口被hacker猜解
4.關閉資料庫的遠程管理工具
5.刪除明顯的顯示軟體版本的信息
6.配置伺服器只能下載特定的文件類型(白名單比黑名單要簡單有效得多)
7.正確的配置你的伺服器,不要抱有僥倖心理,任何的鬆懈帶來的災難是巨大的
8.不要把源碼的備份放在未經授權就能訪問的地方,並且及時刪除網站上的無用的備份文件
9.不要使用弱密碼,防止攻擊者輕易攻破後台
10.登錄請加上強度相對較高的驗證手段,防止攻擊者採用爆破的手段
11.關閉伺服器不必要的埠
12.請不要使用網站上的任何信息作為密碼,否則都屬於容易爆破的類型
13.備份的源代碼請經過專業的混淆,防止被下載之後輕易讀取到內容
14.及時更新伺服器的系統,修復潛在的漏洞
15.安裝正規的安全防護軟體
0X04 總結
親愛的讀者,讀到這裡真的是辛苦了,我上面講的這些只是冰山一角,Google能做到的絕對超乎你的想像,如果大家對滲透測試、Google Hacking或者伺服器防範感興趣可以訪問我的github我會把我了解的更多的信息告訴你,而且還會介紹一些谷歌黑客資料庫的知識(如果喜歡的話也歡迎你們fork或者star)
下面是我的github地址:
https://github.com/K0rz3n/GoogleHacking-Page
* 本文作者:K0rz3n,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載
※醫療機構頻遭黑客攻擊,2018年還將面臨五大安全威脅
※關於網路釣魚的深入討論
TAG:FreeBuf |