前言
google hacking其實並算不上什麼新東西,在早幾年我在一些國外站點上就看見過相關的介紹,但是由於當時並沒有重視這種技術,認為最多就只是用來找找未改名的mdb或者別人留下的webshell什麼的,並無太大實際用途.但是前段時間仔細啃了些資料才猛然發覺google hacking其實並非如此簡單...
google hacking的簡單實現
記得以前看見過一篇文章寫的就是簡單的通過用www.google.com來搜索dvbbs6.mdb或conn.inc來獲得一些站點的敏感信息.其實使用google中的一些語法可以提供給我們更多的信息(當然也提供給那些習慣攻擊的人更多他們所想要的.),下面就來介紹一些常用的語法.
intext:
這個就是把網頁中的正文內容中的某個字符做為搜索條件.例如在google裡輸入:intext:動網.將返回所有在網頁正文部分包含"動網"的網頁.allintext:使用方法和intext類似.
intitle:
和上面那個intext差不多,搜索網頁標題中是否有我們所要找的字符.例如搜索:intitle:安全天使.將返回所有網頁標題中包含"安全天使"的網頁.同理allintitle:也同intitle類似.
cache:
搜索google裡關於某些內容的緩存,有時候也許能找到一些好東西哦.
define:
搜索某個詞語的定義,搜索:define:hacker,將返回關於hacker的定義.
filetype:
這個我要重點推薦一下,無論是撒網式攻擊還是我們後面要說的對特定目標進行信息收集都需要用到這個.搜索指定類型的文件.例如輸入:filetype:doc.將返回所有以doc結尾的文件URL.當然如果你找.bak、.mdb或.inc也是可以的,獲得的信息也許會更豐富:)
info:
查找指定站點的一些基本信息.
inurl:
搜索我們指定的字符是否存在於URL中.例如輸入:inurl:admin,將返回N個類似於這樣的連接:http://www.xxx.com/xxx/admin,用來找管理員登陸的URL不錯.allinurl也同inurl類似,可指定多個字符.
link:
例如搜索:inurl:www.4ngel.net可以返回所有和www.4ngel.net做了鏈接的URL.
site:
這個也很有用,例如:site:www.4ngel.net.將返回所有和4ngel.net這個站有關的URL.
對了還有一些操作符也是很有用的:
+ 把google可能忽略的字列如查詢范圍
- 把某個字忽略
~ 同意詞
. 單一的通配符
* 通配符,可代表多個字母
"" 精確查詢
下面開始說說實際應用(我個人還是比較習慣用google.com,以下內容均在google上搜索),對於一個居心叵測的攻擊者來說,可能他最感興趣的就是密碼文件了.而google正因為其強大的搜索能力往往會把一些敏感信息透露給他們.用google搜索以下內容:
intitle:"index of" etc
intitle:"Index of" .sh_history
intitle:"Index of" .bash_history
intitle:"index of" passwd
intitle:"index of" people.lst
intitle:"index of" pwd.db
intitle:"index of" etc/shadow
intitle:"index of" spwd
intitle:"index of" master.passwd
intitle:"index of" htpasswd
"# -FrontPage-" inurl:service.pwd
有時候因為各種各樣的原因一些重要的密碼文件被毫無保護的暴露在網絡上,如果被別有用心的人獲得,那麼危害是很大的
同樣可以用google來搜索一些具有漏洞的程序,例如ZeroBoard前段時間發現個文件代碼洩露漏洞,我們可以用google來找網上使用這套程序的站點:
intext:ZeroBoard filetype:php
或者使用:
inurl:outlogin.php?_zb_path= site:.jp
來尋找我們所需要的頁面.phpmyadmin是一套功能強大的數據庫操作軟件,一些站點由於配置失誤,導致我們可以不使用密碼直接對phpmyadmin進行操作.我們可以用google搜索存在這樣漏洞的程序URL:
intitle:phpmyadmin intext:Create new database
還記得http://www.xxx.com/_vti_bin/..%5C..%5C....m32/cmd.exe?dir嗎?用google找找,你也許還可以找到很多古董級的機器。同樣我們可以用這個找找有其他cgi漏洞的頁面。
allinurl:winnt system32
前面我們已經簡單的說過可以用google來搜索數據庫文件,用上一些語法來精確查找能夠獲得更多東西(access的數據庫,mssql、mysql的連接文件等等).舉個例子示例一下:
allinurl:bbs data
filetype:mdb inurl:database
filetype:inc conn
inurl:data filetype:mdb
intitle:"index of" data //在一些配置不正確的apache+win32的服務器上經常出現這種情況
和上面的原理一樣,我們還可以用google來找後台,方法就略了,舉一反三即可,畢竟我寫這篇文章的目的是讓大家了解google hacking,而不是讓你用google去破壞.安全是把雙刃劍,關鍵在於你如何去運用.
利用google完全是可以對一個站點進行信息收集和滲透的,下面我們用google對特定站點進行一次測試。www.xxxx.com是全國著名大學之一,一次偶然的機會我決定對其站點進行一次測試(文中所涉及該學校的信息均已經過處理,請勿對號入座:).
首先用google先看這個站點的一些基本情況(一些細節部分就略去了):
site:xxxx.com
從返回的信息中,找到幾個該校的幾個系院的域名:
http://a1.xxxx.com
http://a2.xxxx.com
http://a3.xxxx.com
http://a4.xxxx.com
順便ping了一下,應該是在不同的服務器.(想想我們學校就那一台可憐的web服務器,大學就是有錢,汗一個)。學校一般都會有不少好的資料,先看看有什麼好東西沒:
site:xxxx.com filetype:doc
得到N個不錯的doc。先找找網站的管理後台地址:
site:xxxx.com intext:管理
site:xxxx.com inurl:login
site:xxxx.com intitle:管理
超過獲得2個管理後台地址:
http://a2.xxxx.com/sys/admin_login.asp
http://a3.xxxx.com:88/_admin/login_in.asp
還算不錯,看看服務器上跑的是什麼程序:
site:a2.xxxx.com filetype:asp
site:a2.xxxx.com filetype:php
site:a2.xxxx.com filetype:aspx
site:a3.xxxx.com filetype:asp
site:.......
......
a2服務器用的應該是IIS,上面用的是asp的整站程序,還有一個php的論壇
a3服務器也是IIS,aspx+asp。web程序都應該是自己開發的。有論壇那就看看能不能遇見什麼公共的FTP帳號什麼的:
site:a2.xxxx.com intext:ftp://*:*
沒找到什麼有價值的東西。再看看有沒有上傳一類的漏洞:
site:a2.xxxx.com inurl:file
site:a3.xxxx.com inurl:load
在a2上發現一個上傳文件的頁面:
http://a2.xxxx.com/sys/uploadfile.asp
用IE看了一下,沒權限訪問。試試注射,
site:a2.xxxx.com filetype:asp
得到N個asp頁面的地址,體力活就讓軟件做吧,這套程序明顯沒有對注射做什麼防范,dbowner權限,雖然不高但已足矣,back a shell我不太喜歡,而且看起來數據庫的個頭就不小,直接把web管理員的密碼暴出來再說,MD5加密過。一般學校的站點的密碼都比較有規律,通常都是域名+電話一類的變形,用google搞定吧。
site:xxxx.com //得到N個二級域名
site:xxxx.com intext:*@xxxx.com //得到N個郵件地址,還有郵箱的主人的名字什麼的
site:xxxx.com intext:電話 //N個電話
把什麼的信息做個字典吧,掛上慢慢跑。過了一段時間就跑出4個帳號,2個是學生會的,1個管理員,還有一個可能是老師的帳號。登陸上去:
name:網站管理員
pass:a2xxxx7619 //說了吧,就是域名+4個數字
要再怎麼提權那就不屬於本文討論訪問了,呵呵,到此為止。
關於google hacking的防范
以前我們站的曉風?殘月寫過一篇躲避google的文章,原理就是通過在站點根目錄下建立一個robots.txt以避免網絡機器人獲得一些敏感的信息,具體大家看原文章:
http://www.4ngel.net/article/26.htm
不過這種方法我個人不推薦,有點此地無銀三百兩的味道。簡單一點的方法就是上google把自己站點的一些信息刪除掉,訪問這個URL:
http://www.google.com/remove.html
前幾天看見又有人討論用程序來欺騙robot的方法,我覺得可以試試,代碼如下:
<?
if (strstr($_SERVER['HTTP_USER_AGENT'], "Googlebot"))
{
header("HTTP/1.1 301");
header("Location: http://www.google.com");
}
?>
後記
這段時間在國外的一些google hack的研究站點看了看,其實也都差不多是一些基本語法的靈活運用,或者配合某個腳本漏洞,主要還是靠個人的靈活思維。國外對於google hack方面的防范也並不是很多,所以大家還是點到為止,不要去搞破壞拉,呵呵。對於一些在win上跑
apache的網管們應該多注意一下這方面,一個intitle:index of就差不多都出來了:)
a2服務器用的應該是IIS,上面用的是asp的整站程序,還有一個php的論壇
a3服務器也是IIS,aspx+asp。web程序都應該是自己開發的。有論壇那就看看能不能遇見什麼公共的FTP帳號什麼的:
site:a2.xxxx.com intext:ftp://*:*
沒找到什麼有價值的東西。再看看有沒有上傳一類的漏洞:
site:a2.xxxx.com inurl:file
site:a3.xxxx.com inurl:load
在a2上發現一個上傳文件的頁面:<