Web服務(wù)攻擊反偵查痕跡檢測
web站點(diǎn)默認(rèn)80為服務(wù)端口,關(guān)于它的各種安全問題不斷的發(fā)布出來,這些漏洞中一些甚至允許攻擊者獲得系統(tǒng)管理員的權(quán)限進(jìn)入站點(diǎn)內(nèi)部,以下是Zenomorph對一些80端口攻擊方式的痕跡的研究,和告訴你怎樣從日志記錄中發(fā)現(xiàn)問題。
詳細(xì)描述
下面部分通過一些列子,展示對web服務(wù)器和其上的應(yīng)用程序普遍的攻擊,和其留下的痕跡,這些列子僅僅是代表了主要的攻擊方式,并沒有列出所有的攻擊形式,這部分將詳細(xì)描述每種攻擊的作用,和其怎樣利用這些漏洞進(jìn)行攻擊。
(1)”.” “..” 和 “…” 請求
這些攻擊痕跡是非常普遍的用于web應(yīng)用程序和web服務(wù)器,它用于允許攻擊者或者蠕蟲病毒程序改變web服務(wù)器的路徑,獲得訪問非公開的區(qū)域。大多數(shù)的CGI程序漏洞含有這些”..”請求。
Example:
http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
這個(gè)列子展示了攻擊者請求mosd這個(gè)文件,如果攻擊者有能力突破web服務(wù)器根目錄,那么可以獲得更多的信息,并進(jìn)一步的獲得特權(quán)。
(2)”%20″ 請求
%20是表示空格的16進(jìn)制數(shù)值,雖然這個(gè)并不代表你能夠利用什么,但是在你瀏覽日志的時(shí)候會(huì)發(fā)現(xiàn)它,一些web服務(wù)器上運(yùn)行的應(yīng)用程序中這個(gè)字符可能會(huì)被有效的執(zhí)行,所以,你應(yīng)該仔細(xì)的查看日志。另一方面,這個(gè)請求有時(shí)可以幫助執(zhí)行一些命令。
Example:
http://host/cgi-bin/lame.cgi?page=ls%20-al│
這個(gè)列子展示了攻擊者執(zhí)行了一個(gè)unix的命令,列出請求的整個(gè)目錄的文件,導(dǎo)致攻擊者訪問你系統(tǒng)中重要的文件,幫助他進(jìn)一步取得特權(quán)提供條件。
(3)”%00″ 請求
%00表示16進(jìn)制的空字節(jié),他能夠用于愚弄web應(yīng)用程序,并請求不同類型的文件。
Examples:
http://host/cgi-bin/lame.cgi?page=index.html
這可能是個(gè)有效的請求在這個(gè)機(jī)子上,如果攻擊者注意到這個(gè)請求動(dòng)作成功,他會(huì)進(jìn)一步尋找這個(gè)cgi程序的問題。
http://host/cgi-bin/lame.cgi?page=../../../../etc/motd
也許這個(gè)cgi程序不接受這個(gè)請求,原因在于它要檢查這個(gè)請求文件的后綴名,如:html.shtml或者其他類型的文件。大多數(shù)的程序會(huì)告訴你所請求的文件類型無效,這個(gè)時(shí)候它會(huì)告訴攻擊者請求的文件必須是一某個(gè)字符后綴的文件類型,這樣,攻擊者可以獲得系統(tǒng)的路徑,文件名,導(dǎo)致在你的系統(tǒng)獲得更多的敏感信息
http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html
注意這個(gè)請求,它將騙取cgi程序認(rèn)為這個(gè)文件是個(gè)確定的可接受的文件類型,一些應(yīng)用程序由于愚蠢的檢查有效的請求文件,這是攻擊者常用的方法。
(4)”│” 請求
這是個(gè)管道字符,在unix系統(tǒng)用于幫助在一個(gè)請求中同時(shí)執(zhí)行多個(gè)系統(tǒng)命令。
Example:
# cat access_log│ grep -i “..”
(這個(gè)命令將顯示日志中的“..“請求,常用于發(fā)現(xiàn)攻擊者和蠕蟲攻擊)
??梢钥吹接泻芏鄔eb應(yīng)用程序用這個(gè)字符,這也導(dǎo)致IDS日志中錯(cuò)誤的報(bào)警。
在你的程序仔細(xì)的檢查中,這樣是有好處的,可以降低錯(cuò)誤的警報(bào)在入侵檢測系統(tǒng)中。
下面給出一些列子:
http://host/cgi-bin/lame.cgi?page=../../../../bin/ls│
這個(gè)請求命令執(zhí)行,下面是一些變化的列子
http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc│
這個(gè)請求在unix系統(tǒng)中列出/etc目錄的所有文件
http://host/cgi-bin/lame.cgi?page=cat%20access_log│grep%20-i%20″lame”
這個(gè)請求cat命令的執(zhí)行并且grep命令也將執(zhí)行,查詢出”lame”
(5)”;” 請求
在unix系統(tǒng),這個(gè)字符允許多個(gè)命令在一行執(zhí)行
Example:
# id;uname -a
(執(zhí)行id命令后,緊跟著執(zhí)行uname命令)
一些web程序用這個(gè)字符,可能導(dǎo)致在你的IDS日志中失敗的警告,你應(yīng)該仔細(xì)的檢查你的web程序,讓你的IDS警報(bào)失敗的幾率降低。
(6)”" 請求
應(yīng)該檢查你的日志記錄中這兩個(gè)字符,眾多的原因中,首要的一個(gè)是這個(gè)字符表明了添加數(shù)據(jù)在文件中
Example 1:
# echo “your hax0red h0 h0″ >> /etc/motd (請求寫信息在motd這個(gè)文件中)
一個(gè)攻擊者可以容易的用象上面的這個(gè)請求篡改你的web頁面。比如著名的RDS exploit常被攻擊者用于更改web主頁面。
Example 2:
http://www.2cto.com /something.php=Hi%20mom%20Im%20Bold!
你會(huì)注意到這里html語言的標(biāo)志,他同樣用了“〈”,“〉”字符,這種攻擊不能導(dǎo)致攻擊者對系統(tǒng)進(jìn)行訪問,它迷惑人們認(rèn)為這是個(gè)合法的信息在web 站點(diǎn)中(導(dǎo)致人們在訪問這個(gè)聯(lián)結(jié)的時(shí)候訪問到攻擊者設(shè)定的地址,這種請求可能會(huì)被轉(zhuǎn)變成16進(jìn)制的編碼字符形式,使攻擊的痕跡不那么明顯)
(7)”!”請求
這種字符請求常用語對SS(Server Side Include) I進(jìn)行攻擊,如果攻擊者迷惑用戶點(diǎn)擊被攻擊者設(shè)定的聯(lián)結(jié),和上面的一樣。