破解Oracle數(shù)據(jù)庫的密碼
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-08 19:03:29 作者:佚名
我要評論

要連接遠(yuǎn)程的 Oracle 數(shù)據(jù)庫,需要知道 SID,用戶名, 密碼,當(dāng)然還有最重要的 IP 地址。SID 如果被管理 員修改的話,可以利用 sidguess 來進(jìn)行破解,速度非常的快,至于成功與否,就要看你的字典配置了。破解 效果如圖 1。
圖 1
Oracle 不同的版
要連接遠(yuǎn)程的 Oracle 數(shù)據(jù)庫,需要知道 SID,用戶名, 密碼,當(dāng)然還有最重要的 IP 地址。SID 如果被管理 員修改的話,可以利用 sidguess 來進(jìn)行破解,速度非常的快,至于成功與否,就要看你的字典配置了。破解 效果如圖 1。
圖 1
Oracle 不同的版本有大量的默認(rèn)帳戶密碼。可是有些情況下,Oracle 數(shù)據(jù)庫管理員把默認(rèn)的密碼給修改了, 我們就要選擇暴力破解了 。如果帳戶破解成功 ,登錄上去,是 DBA 權(quán)限的話最好 ,不是的話,也可以利用 Oracle 的一些漏洞進(jìn)行提權(quán)到 DBA。進(jìn)入數(shù)據(jù)庫后,我一般選擇的是抓取其他用戶的密碼哈希值,然后本地 Rainbow 破解。如果同網(wǎng)段還有其他的 Oracle 數(shù)據(jù)庫,可以抓包等待其他用戶的 Oracle 登錄驗(yàn)證,取出敏感 信息,然后破解。進(jìn)一步擴(kuò)大戰(zhàn)果。下面我就分別講講這三種破解方法及相關(guān)工具的使用。
Quotation
有關(guān) Oracle 密碼的基礎(chǔ)知識(shí)
1、標(biāo)準(zhǔn)的 Oracle 密碼可以由英文字母,數(shù)字,#,下劃線(_),美元字符($)構(gòu)成,密碼的最大長度為 30 字符;Oracle 密碼不能以"$","#","_"或任何數(shù)字開頭;密碼不能包含像"SELECT","DELETE","CREATE"這類的 Oracle/SQL 關(guān)鍵字。
2、Oracle 的弱算法加密機(jī)制:兩個(gè)相同的用戶名和密碼在兩臺(tái)不同的 Oracle 數(shù)據(jù)庫機(jī)器中,將具有相同的哈希值。這些哈希值存儲(chǔ)在 SYS.USER$表中??梢酝ㄟ^像 DBA_USERS 這類的視圖來訪問。
3、Oracle 默認(rèn)配置下,每個(gè)帳戶如果有 10 次的失敗登錄,此帳戶將會(huì)被鎖定。但是 SYS 帳戶在 Oracle 數(shù)據(jù)庫中具有最高權(quán)限,能夠做任何事情,包括啟動(dòng)/關(guān)閉 Oracle 數(shù)據(jù)庫。即使 SYS 被鎖定,也依然能夠訪問數(shù)據(jù)庫。
一、遠(yuǎn)程暴力破解
由前面的基礎(chǔ)知識(shí) 3,可以得知選擇遠(yuǎn)程破解 Oracle 的最好帳戶是 SYS,因?yàn)榇藥粲肋h(yuǎn)有效。在 Oracle10g
以前的版本在安裝的時(shí)候并沒有提示修改 SYS 的默認(rèn)密碼,Oracle10g 雖然提示修改密碼了,但是并沒有檢查密碼的復(fù)雜性。如圖2
圖 2
可以使用 Orabrute 工具來進(jìn)行遠(yuǎn)程破解,在使用這個(gè)工具的時(shí)候,需要系統(tǒng)提前安裝好 Sqlplus,該工具的 原理很簡單,就是不停的調(diào)用 Sqlplus 然后進(jìn)行登錄驗(yàn)證,帳戶選擇的是 SYS,密碼則為 password.txt 中的密 碼單詞。只要登錄成功 ,就會(huì)調(diào)用 selectpassword.sql 腳本抓取出在 SYS.USER$表中的其他用戶的哈希值 , 然后退出程序。這里有個(gè)注意的地方,當(dāng)?shù)诙芜\(yùn)行 Orabrute 的時(shí)候,需要?jiǎng)h除或移動(dòng)同目錄下的前一次運(yùn)行 Orabrute 時(shí)生成的 thepasswordsarehere .txt 和 output.txt 文件。
Orabrute 的使用方法為:
orabrute
效果如圖 3,4
圖 3
圖 4 Orabrute 的破解速度比較慢,我們可以采取變通的方法來破解,如果 Oracle 的數(shù)據(jù)庫版本為 Oracle10g。默 認(rèn)自帶個(gè)通過 8080 端口來遠(yuǎn)程管理數(shù)據(jù)庫的 WEB 接口,如圖 5
圖 5
當(dāng)我們訪問 http://ip:8080/oradb/public/global_name 時(shí),會(huì)彈出認(rèn)證信息,這種 HTTP 的基本驗(yàn)證,有好 多的工具可以快速破解,可以選擇著名的 Hydra,我這里選擇的是圖形界面的 wwwhack,設(shè)置好用戶名為 SYS, 選擇字典,就可以破解了。速度要比通過 Orabrute 來破解快許多。效果如圖 6 所示
圖 6
二、以 DBA 權(quán)限登錄后的破解
當(dāng)?shù)玫揭粋€(gè)遠(yuǎn)程登錄的帳號(hào)后,可以使用 Checkpwd 來驗(yàn)證數(shù)據(jù)庫中所有的缺省用戶的默認(rèn)密碼。Checkpwd 是采用遠(yuǎn)程破解的,速度比較慢。不過能清晰的看出每個(gè)帳戶的狀態(tài)(過期,鎖定),Checkpwd 的使用方法為:
checkpwdusername/password@//ip:port/sidpasswordfile
效果如圖 7 所示
圖 7
我們也可以使用 Sqlplus 直接登錄到 Oracle 數(shù)據(jù)庫,然后使用 select username,password form dba_users 命令查看數(shù)據(jù)庫中的用戶名和密碼,然后本地用 Cain 來破解,如圖 8 所示。
圖 8
本地破解速度是非??斓模彝扑]先選擇字典破解,在 Cain 中點(diǎn)選的 Cracker 標(biāo)簽,然后右鍵點(diǎn)擊先前導(dǎo)入 好的用戶名和哈希值,選擇"Dictionary Attack"選項(xiàng),就可以字典破解了。效果如圖 9,圖 10。
圖 9
圖 10
字典攻擊無效果的時(shí)候,可以采用 RainBow 破解,Cain 自帶了 Rainbow 表生成器,打開 Winrtgen,點(diǎn)選"AddTable",在"Hash" 欄中選擇 Oracle,在"Min Len" ,"Max Len" 分別表示是最小密碼長度和最大密碼長度 ,"Charset"選擇密碼中的字符集,然后點(diǎn)"Ok"按鈕就能開始生成 Rainbow 表了,如圖 11
圖 11
生成表的時(shí)間要看你的 CPU 和你剛才的 Rainbow 配置了,生成的表會(huì)占用大量的硬盤空間。不過好處是一 次生成可以多次使用。使用 Rainbow 方法進(jìn)行破解的時(shí)候,會(huì)占用大量的內(nèi)存。可是速度非常的快,效率也 很高。
三、同交換機(jī)/集線器下的其他 Oracle 數(shù)據(jù)庫破解
THC 組織新發(fā)布了一款叫 Orakel 的工具,該工具分析,破解 Oracle 數(shù)據(jù)庫的脆弱遠(yuǎn)程認(rèn)證機(jī)制。經(jīng)我測試, 該工具仿佛只對 Oracle8i 的遠(yuǎn)程登錄認(rèn)證有效果。不過隨軟件附帶的文檔提供了一種攻擊方法 。如果是在同 集線器(HUB)下的其他端口有 Oracle8i 數(shù)據(jù)庫,我們知道集線器(HUB)是在同一個(gè)沖突域和廣播域中的??梢?直接使用 Ethereal 此類的抓包工具抓取其他端口的用戶連接 Oracle8i 數(shù)據(jù)庫的認(rèn)證信息。我測試的時(shí)候選擇的是 Ethereal 抓包工具,因?yàn)樵摴ぞ哂袀€(gè)非常好的功能"Follow TCP Stream",可以利用這個(gè)功能,快速的找 出認(rèn)證包中的 AUTH_SESSKEY,AUTH_PASSWORD,連接用戶名的值 ,然后把相關(guān)的值填入 OrakelSniffert 工具中,就可以破解了,OrakelSniffert 工具支持字典破解和暴力破解,破解速度非常快。效果如圖 12,圖13
圖 12
圖 13
如果是在交換機(jī)的環(huán)境下 (SWITCH),每個(gè)端口都是一個(gè)沖突域 ,我們無法直接的捕捉到其他端口的信息 , 但可以利用 ARP 欺騙技術(shù)或配置交換機(jī)的端口分析功能(SPAN),讓其他端口的數(shù)據(jù)包流量流經(jīng)本地,實(shí)際應(yīng) 用中,最常用的還是 ARP 欺騙技術(shù),然后使用 Ethereal 抓取認(rèn)證過程,破解的方法是一樣的。
四、防護(hù)
由基礎(chǔ)知識(shí) 1 得知,默認(rèn)情況下設(shè)置標(biāo)準(zhǔn)的 Oracle 密碼是很不復(fù)雜的, 但可以使用雙引號(hào)來突破 Oracle 的 設(shè)置密碼限制,通過使用雙引號(hào)能夠添加以下額外的字符
%^@$*()_ ~`-=[{]}\|;:’,
在 Oracle 中添加并賦予用戶 DBA 權(quán)限的命令如下:
SQL> create user minnie identified by "%^@$*()_ ~`=-[}[{\:’";
SQL> grant dba to minnie;
效果如圖 14 所示:
圖 14
通過設(shè)置如此復(fù)雜的密碼,可以在一定程度上防止密碼的破解。

圖 1
Oracle 不同的版本有大量的默認(rèn)帳戶密碼。可是有些情況下,Oracle 數(shù)據(jù)庫管理員把默認(rèn)的密碼給修改了, 我們就要選擇暴力破解了 。如果帳戶破解成功 ,登錄上去,是 DBA 權(quán)限的話最好 ,不是的話,也可以利用 Oracle 的一些漏洞進(jìn)行提權(quán)到 DBA。進(jìn)入數(shù)據(jù)庫后,我一般選擇的是抓取其他用戶的密碼哈希值,然后本地 Rainbow 破解。如果同網(wǎng)段還有其他的 Oracle 數(shù)據(jù)庫,可以抓包等待其他用戶的 Oracle 登錄驗(yàn)證,取出敏感 信息,然后破解。進(jìn)一步擴(kuò)大戰(zhàn)果。下面我就分別講講這三種破解方法及相關(guān)工具的使用。
Quotation
有關(guān) Oracle 密碼的基礎(chǔ)知識(shí)
1、標(biāo)準(zhǔn)的 Oracle 密碼可以由英文字母,數(shù)字,#,下劃線(_),美元字符($)構(gòu)成,密碼的最大長度為 30 字符;Oracle 密碼不能以"$","#","_"或任何數(shù)字開頭;密碼不能包含像"SELECT","DELETE","CREATE"這類的 Oracle/SQL 關(guān)鍵字。
2、Oracle 的弱算法加密機(jī)制:兩個(gè)相同的用戶名和密碼在兩臺(tái)不同的 Oracle 數(shù)據(jù)庫機(jī)器中,將具有相同的哈希值。這些哈希值存儲(chǔ)在 SYS.USER$表中??梢酝ㄟ^像 DBA_USERS 這類的視圖來訪問。
3、Oracle 默認(rèn)配置下,每個(gè)帳戶如果有 10 次的失敗登錄,此帳戶將會(huì)被鎖定。但是 SYS 帳戶在 Oracle 數(shù)據(jù)庫中具有最高權(quán)限,能夠做任何事情,包括啟動(dòng)/關(guān)閉 Oracle 數(shù)據(jù)庫。即使 SYS 被鎖定,也依然能夠訪問數(shù)據(jù)庫。
一、遠(yuǎn)程暴力破解
由前面的基礎(chǔ)知識(shí) 3,可以得知選擇遠(yuǎn)程破解 Oracle 的最好帳戶是 SYS,因?yàn)榇藥粲肋h(yuǎn)有效。在 Oracle10g
以前的版本在安裝的時(shí)候并沒有提示修改 SYS 的默認(rèn)密碼,Oracle10g 雖然提示修改密碼了,但是并沒有檢查密碼的復(fù)雜性。如圖2

圖 2
可以使用 Orabrute 工具來進(jìn)行遠(yuǎn)程破解,在使用這個(gè)工具的時(shí)候,需要系統(tǒng)提前安裝好 Sqlplus,該工具的 原理很簡單,就是不停的調(diào)用 Sqlplus 然后進(jìn)行登錄驗(yàn)證,帳戶選擇的是 SYS,密碼則為 password.txt 中的密 碼單詞。只要登錄成功 ,就會(huì)調(diào)用 selectpassword.sql 腳本抓取出在 SYS.USER$表中的其他用戶的哈希值 , 然后退出程序。這里有個(gè)注意的地方,當(dāng)?shù)诙芜\(yùn)行 Orabrute 的時(shí)候,需要?jiǎng)h除或移動(dòng)同目錄下的前一次運(yùn)行 Orabrute 時(shí)生成的 thepasswordsarehere .txt 和 output.txt 文件。
Orabrute 的使用方法為:
orabrute
效果如圖 3,4

圖 3

圖 4 Orabrute 的破解速度比較慢,我們可以采取變通的方法來破解,如果 Oracle 的數(shù)據(jù)庫版本為 Oracle10g。默 認(rèn)自帶個(gè)通過 8080 端口來遠(yuǎn)程管理數(shù)據(jù)庫的 WEB 接口,如圖 5

圖 5
當(dāng)我們訪問 http://ip:8080/oradb/public/global_name 時(shí),會(huì)彈出認(rèn)證信息,這種 HTTP 的基本驗(yàn)證,有好 多的工具可以快速破解,可以選擇著名的 Hydra,我這里選擇的是圖形界面的 wwwhack,設(shè)置好用戶名為 SYS, 選擇字典,就可以破解了。速度要比通過 Orabrute 來破解快許多。效果如圖 6 所示

圖 6
二、以 DBA 權(quán)限登錄后的破解
當(dāng)?shù)玫揭粋€(gè)遠(yuǎn)程登錄的帳號(hào)后,可以使用 Checkpwd 來驗(yàn)證數(shù)據(jù)庫中所有的缺省用戶的默認(rèn)密碼。Checkpwd 是采用遠(yuǎn)程破解的,速度比較慢。不過能清晰的看出每個(gè)帳戶的狀態(tài)(過期,鎖定),Checkpwd 的使用方法為:
checkpwdusername/password@//ip:port/sidpasswordfile
效果如圖 7 所示

圖 7
我們也可以使用 Sqlplus 直接登錄到 Oracle 數(shù)據(jù)庫,然后使用 select username,password form dba_users 命令查看數(shù)據(jù)庫中的用戶名和密碼,然后本地用 Cain 來破解,如圖 8 所示。

圖 8
本地破解速度是非??斓模彝扑]先選擇字典破解,在 Cain 中點(diǎn)選的 Cracker 標(biāo)簽,然后右鍵點(diǎn)擊先前導(dǎo)入 好的用戶名和哈希值,選擇"Dictionary Attack"選項(xiàng),就可以字典破解了。效果如圖 9,圖 10。

圖 9

圖 10
字典攻擊無效果的時(shí)候,可以采用 RainBow 破解,Cain 自帶了 Rainbow 表生成器,打開 Winrtgen,點(diǎn)選"AddTable",在"Hash" 欄中選擇 Oracle,在"Min Len" ,"Max Len" 分別表示是最小密碼長度和最大密碼長度 ,"Charset"選擇密碼中的字符集,然后點(diǎn)"Ok"按鈕就能開始生成 Rainbow 表了,如圖 11

圖 11
生成表的時(shí)間要看你的 CPU 和你剛才的 Rainbow 配置了,生成的表會(huì)占用大量的硬盤空間。不過好處是一 次生成可以多次使用。使用 Rainbow 方法進(jìn)行破解的時(shí)候,會(huì)占用大量的內(nèi)存。可是速度非常的快,效率也 很高。
三、同交換機(jī)/集線器下的其他 Oracle 數(shù)據(jù)庫破解
THC 組織新發(fā)布了一款叫 Orakel 的工具,該工具分析,破解 Oracle 數(shù)據(jù)庫的脆弱遠(yuǎn)程認(rèn)證機(jī)制。經(jīng)我測試, 該工具仿佛只對 Oracle8i 的遠(yuǎn)程登錄認(rèn)證有效果。不過隨軟件附帶的文檔提供了一種攻擊方法 。如果是在同 集線器(HUB)下的其他端口有 Oracle8i 數(shù)據(jù)庫,我們知道集線器(HUB)是在同一個(gè)沖突域和廣播域中的??梢?直接使用 Ethereal 此類的抓包工具抓取其他端口的用戶連接 Oracle8i 數(shù)據(jù)庫的認(rèn)證信息。我測試的時(shí)候選擇的是 Ethereal 抓包工具,因?yàn)樵摴ぞ哂袀€(gè)非常好的功能"Follow TCP Stream",可以利用這個(gè)功能,快速的找 出認(rèn)證包中的 AUTH_SESSKEY,AUTH_PASSWORD,連接用戶名的值 ,然后把相關(guān)的值填入 OrakelSniffert 工具中,就可以破解了,OrakelSniffert 工具支持字典破解和暴力破解,破解速度非常快。效果如圖 12,圖13

圖 12

圖 13
如果是在交換機(jī)的環(huán)境下 (SWITCH),每個(gè)端口都是一個(gè)沖突域 ,我們無法直接的捕捉到其他端口的信息 , 但可以利用 ARP 欺騙技術(shù)或配置交換機(jī)的端口分析功能(SPAN),讓其他端口的數(shù)據(jù)包流量流經(jīng)本地,實(shí)際應(yīng) 用中,最常用的還是 ARP 欺騙技術(shù),然后使用 Ethereal 抓取認(rèn)證過程,破解的方法是一樣的。
四、防護(hù)
由基礎(chǔ)知識(shí) 1 得知,默認(rèn)情況下設(shè)置標(biāo)準(zhǔn)的 Oracle 密碼是很不復(fù)雜的, 但可以使用雙引號(hào)來突破 Oracle 的 設(shè)置密碼限制,通過使用雙引號(hào)能夠添加以下額外的字符
%^@$*()_ ~`-=[{]}\|;:’,
在 Oracle 中添加并賦予用戶 DBA 權(quán)限的命令如下:
SQL> create user minnie identified by "%^@$*()_ ~`=-[}[{\:’";
SQL> grant dba to minnie;
效果如圖 14 所示:

圖 14
通過設(shè)置如此復(fù)雜的密碼,可以在一定程度上防止密碼的破解。
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機(jī)密碼”,主要是為了防止別人使用自已的計(jì)算機(jī),設(shè)置的一個(gè)屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實(shí)沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨(dú)立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時(shí)會(huì)采用 Windows 自帶的 BitLocker 加密工具對電腦磁盤分區(qū)進(jìn)行加密。但有些人加密后就會(huì)忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價(jià)值,2017-06-27量子計(jì)算機(jī)輕松破解加密算法 如何破解加密算法?
最近有電腦用戶反應(yīng)量子計(jì)算機(jī)可以破解下載的所有的加密算法嗎?其實(shí)也不是不可以,下面虛擬就為大家講解買臺(tái)量子計(jì)算機(jī),如何分分鐘破解加密算法2016-09-26怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會(huì)通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19針對Linux系統(tǒng)全盤加密的啟動(dòng)攻擊
本文討論了針對Linux系統(tǒng)全盤加密的冷啟動(dòng)攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個(gè)企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實(shí),針對內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17