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