Fedora拒絕為黑客服務 剔除漏洞測試工具SQLninja
11月8日舉行的Fedora董事會議上討論了是否在發行版中加入SQL注入檢查工具SQLninja。討論的最終結果是否決,主要理由是擔心Fedora發行商面臨的法律風險會增加,Fedora認為它除了非法用途外,本身沒什么用。
最新的Fedora發行版為Fedora 14 “Laughlin”:整體大于部分之和
SQLninja到底是什么
數據庫服務器在企業的網絡應用中占據著重要地位,因此黑客們從來都沒有停止過SQL注入式攻擊,其花樣不斷翻新,因此對付這種威脅的方法也需要不斷更新。在此,我們要看一款漏洞測試工具SQLninja。#p#
SQLninja功能與特性
SQLninja的目的是利用Web應用程序中的SQL注入式漏洞,它依靠微軟的SQL Server作為后端支持。其主要的目標是在存在著漏洞的數據庫服務器上提供一個遠程的外殼,甚至在一個有著嚴格的防范措施的環境中也能如此。在一個SQL注入式漏洞被發現以后,企業的管理員特別是滲透攻擊的測試人員應當使用它,它能自動地接管數據庫服務器。
現在市場上有許多其它的SQL注入式漏洞工具,但SQLninja與其它工具不同,它無需抽取數據,而著重于在遠程數據庫服務器上獲得一個交互式的外殼,并將它用作目標網絡中的一個立足點。
這個軟件用Perl編寫,符合GPLv2標準。目前它已經在Linux、FreeBSD、Mac OS X等系統上成功地進行了測試。其特性主要有:
可找到遠程SQL服務器的標志和特征(版本、用戶執行的查詢、用戶特權、xp_cmdshell的可用性、身份驗證模式等)
“sa”口令的強力攻擊
如果找到口令后,就將特權提升到“sa”
如果原始的xp_cmdshell被禁用后,就創建一個定制的xp_cmdshell。
使用純粹的ASCII GET/POST請求來上載netcat.exe程序(以及其它任何可執行的程序),因此并不需要FTP連接。
為了找到目標網絡的防火墻所允許的端口,可以實施針對目標SQL 服務器的TCP/UDP端口掃描。
逃避技術,這是為了使注入式代碼“模糊”不清,并且混淆/繞過基于簽名的IPS和應用層防火墻。
采用“盲目執行”攻擊模式,在其它模式失效時,可以用于發布命令并執行診斷。
在SQLninja生成的SQL代碼上,執行的是自動化的URL編碼,這使得用戶可以更精細地控制漏洞利用的字符串。
目前,其最新版本為SQLninja 0.2.2用戶可以從以下網址下載這款工具:http://downloads.sourceforge.net/SQLninja/SQLninja-0.2.2.tgz
安裝要求
SQLninja是完全用Perl語言編寫的,所以你必須安裝Perl和以下模塊:
NetPacket Net-Pcap Net-DNS Net-RawIP IO-Socket-SSL
如何使用這個工具
SQLninja的行為可以由配置文件(默認情況下即為SQLninja.conf)控制,此文件告訴了SQLninja攻擊什么及如何攻擊(目標主機、有漏洞的網頁、漏洞字符串等); 此外,SQLninja的行為也可以由一些命令行選項控制,這些選項告訴SQLninja執行什么行動。這些命令行選項如下所示:
1. -m <攻擊模式> :指明攻擊模式。基本而言就是告訴SQLninja執行什么。其可能的值有:test ,fingerprint ,bruteforce ,escalation ,resurrectxp ,upload ,dirshell ,backscan ,revshell ,dnstunnel ,sqlcmd 等。關于這些選項,后文有解釋。
2. -v :詳細輸出內容
3. –f<配置文件>:指定一個要使用的配置文件。如果文件并不存在,系統就會以交互方式創建一個新文件。
4. –p<“sa”口令>:用于在擴增模式中將當前的數據庫用戶添加到系統管理員組中,并且如果數據庫用戶并不屬于這樣一個組的話,就在其它模式中以管理員身份運行查詢。這個選項很少使用,因為在找到“sa”口令時,默認情況下,強力模式會將數據庫用戶添加到系統管理員組中。
5. –w<單詞列表>:在強力模式中所使用的單詞列表
6. –d<調試模式>:激活調試,以查看動作的原因。其可能的值有:
1:打印注入的每一個SQL命令
2:打印發送到目標的每一個HTTP請求
3:打印來自目標的每一個HTTP響應
all:上述所有選項
下面重點談談其攻擊模式:
攻擊模式
SQLninja當前支持11種攻擊模式。所使用的模式可以由其名字來指定。
首先啟動它:
SQLninja -m upload
或者通過其快捷方法:
SQLninja -m u
要查看SQLninja可用的模式及其對應的快捷方法,可通過無參數方式啟動SQLninja方式而重新找到。
為幫助用戶初步領會其不同攻擊模式,在此筆者給出使用SQLninja的典型方法:
1、 設置配置文件,并使用測試模式來檢查SQL代碼是否被正確地注入(test mode)。
2、 用“采指紋”模式識別遠程的數據庫服務器(fingerpring mode)。
3、 如果需要的話,使用強力模式(bruteforce mode)找到“sa”口令,并提升特權。
4、 如果需要的話,使用重建模式(resurrectxp mode)重新創建xp_cmdshell可擴展過程。
5、 使用upload mode模式加載netcat。
6、 如果能夠在某個端口上與數據庫服務器聯系,就使用顯示外殼模式(dirshell mode)直接得到一個外殼。
7、 否則,使用backscan mode,找到一個允許“向外”發送的TCP/UDP端口。
8、 如果上一步成功,就使用revshell mode來獲得一個反向外殼。
9、 如果第七步失敗,則加載dnstun.exe,并啟動dnstunnel mode。
【編輯推薦】