Oracle中泄露“天機”的TNS
瀏覽量: 次 發布日期:2023-10-14 12:07:22
Oracle中泄露“天機”的TNS
數據庫的安全是長期存在的問題。在目前大量的數據泄露事件以及漏洞面前,大家看到的大都是SQl注入、越權操作、緩沖區溢出等這些具體漏洞。往往卻忽視了造成這些問題的前提,黑客想要入侵數據庫一定會嘗試獲取數據庫ip、端口和數據庫版本號。
沒有ip和端口黑客對數據庫的攻擊將無從下手,也就無法對數據庫發動真正有效的進攻。所以防止數據庫ip 、端口和版本號的泄露是防止黑客入侵數據庫的第一道防線。
數據庫版本號的泄露途徑
要想防止黑客盜取數據庫版本信息。首先就要弄清黑客是從哪些渠道獲取數據庫版本信息的,然后才能提出切實有效的防御方案。本文僅針對Oracle講解黑客獲取Oracle數據庫版本號的方式以及預防措施。除去社會工程學從技術角度出發TNS(ORTACLE的網絡核心組件)是泄露數據庫版本號的一個重要功能。
筆者結合多年的經驗與實踐總結出黑客通過TNS獲取ORACLE數據庫版本信息主要有以下三種方式:
1. 身份驗證前部分函數泄露數據庫版本
在TNS的通訊包中存在大量的函數調用。這些函數調用中有一部分函數會在進行身份驗證之前被運行,其中一部分函數會導致數據庫版本信息外泄。從而使得只要黑客知道數據庫ip和端口以及實例名就可以成功騙去數據庫版本信息。其中最有代表的函數是0x3B TTC函數。
客戶端接收到服務器發送的接收包,服務器可能會選擇商議附加的網絡服務,約定客戶端和服務器采用的身份驗證、加密、數據完整性和管理等。在ANO商議頭(下面包中的0XDEADBEEF)后面的3個字節中可以找到服務器的數據庫版本信息。
圖中紅線所指地方0x0a200100就是數據庫版本信息,只觀可以判斷版本為10.2.0.1.0(a在16進制里是10)。
2.TNS報錯信息泄露數據庫版本
如果TNS接到一個它無法識別的TNS命令(是格式正確,但內容不對),就會會送一個錯誤,在這個錯誤中包含VSNNUM,它保存了一個十進制數字,把該數字轉成十六進制會得到數據庫版本號。這種方式比上一種方式需求的信息更少,只需要數據庫的IP和端口就可以進行數據庫版本號的騙取。
例如:C:Documents and Settingslsc>sqlplus scott/tig@192.168.0.60:1521/or(實例名、密碼全不對,但格式正確。)
服務器會回答一個錯誤應答包如下圖所示:
箭頭所指的方向 VS NNUM=169869568 是ORACLE客戶端的版本號。把這組數轉成16進制變成 A200100
3. TNS命令不合理使用泄露數據版本
第三種也是最危險的一種。只需要有IP就能獲取端口號、數據庫版本號甚至操作系統版本號。危險的來源是本來lsnrctl的命令應該只在本地執行,但oracle為了照顧操作的靈活性,某些版本支持lsnrctl 遠程使用。僅通過IP信息可以獲取目標數據庫所有外圍敏感信息。例如我們ping 192.168.0.60發現可以ping 通。直接設置監聽目標ip (set current_listener 192.168.0.60)執行命令version
獲取目標IP數據庫的端口、數據庫版本以及操作系統版本。
對比3種獲取數據庫版本信息的方法,第三種方法要求最低,收益最高,但缺點是這種方式只支持到Oracle10R2版本。而方法一和方法二,則是任何一個版本的oracle數據庫都存在安全隱患。
防止泄露數據庫版本號的方法
知道了黑客采集數據庫版本的辦法,我們就可以針對性的進行防御。筆者根據多年經驗以及攻防測試總結出以下4點有助于加固TNS的解決法辦法。
1.設置TNS Listener 口令
默認情況下,TNS Listener 沒有設置口令,任何可以連接到系統的人都可以管理它。設置Listener口令可以防止對Listener的無授權管理。為了設置口令,編輯listener.ora 加入PASSWORDS_LISTENERNAME.按步操作,直到完成整個加口令過程。
2.開啟 Admin Restrictions
通過開啟Admin Restrictions(管理限制)可防止對Listener的未授權管理。隨著Admin Restrictions的開啟,一些命令將不能被遠程調用。及時提供Listener口令也不行。為開啟Admin Restrictions,將下面的代碼行添加到Listener.ora文件中。
ADMIN_RESTRICTIONS_listencername=ON
3.開啟TCP有效節點檢查
TCP有效節點檢驗可以用來允許某些主機連接到數據庫而阻止其他服務器鏈接。為開啟TCP有效節點檢驗,按如下方式編譯代碼:
TCP.VALIDNODE_CHECKING=YES
????TCP.EXCLUDED_NODES=
或者:
TCP.INVITED_NODES=
浦東數據恢復4.網絡通信量加密
利用Oracle Net Manager實現對客戶機和數據庫服務器之間的通訊進行加密。注意此處的加密指的是協議加密,而并非數據加密。
常州數據恢復. oracle11g修復,Oracle 11g TNS-12545錯誤排查與修復指南
. 達夢數據庫啟動過程中會加載哪些文件,達夢數據庫啟動文件加載解析
. 數據恢復中心有哪些,揭秘硬盤故障與數據丟失的解決方案n2. 硬盤數據恢復攻略:數據恢
. oracle數據庫數據恢復,Oracle數據庫數據恢復策略與實戰指南
. 恢復數據,SEO優化新策略——探索雙標題在提升文章收錄與排名中的優勢
. pickupartist百度網盤,百度網盤中的戀愛技巧解析
. deepspeech 中文模型,深度學習賦能下的中文語音識別技術解析
. oracle數據庫官網,深入探索Oracle數據庫官網——您的數據庫學習與資源寶庫
. oracle數據庫導入dmp,Oracle數據庫導入dmp文件詳解
. 金泰克120g固態硬盤數據恢復,固態硬盤檢測修復工具中文版破解版
. 電腦硬盤數據恢復會不會泄露,電腦硬盤數據恢復過程中的隱私保護與數據安全