2013-01-09 26 views
1

我需要基於IP地址列表或範圍上我的本地局域網上進行掃描和定位SQL Server實例,我期待了解以下信息:使用NMAP或.NET發現的Microsoft SQL服務器,而無需驗證

  1. 端口上的SQL Server監聽(普通是1434分之1433,但可以改變),
  2. IP地址機器的
  3. hostname其中SQL Server正在運行的機器
  4. 實例版本一樣10.5.2500.0
  5. 實例名稱的信息,例如喬\的SQLExpress

我將無法訪問任何憑據無論是Windows或SQL服務器。下注是通過Windows認證,但我更喜歡基於發現的方法。另外,我不想在掃描期間引發錯誤警報,並且掃描必須是非侵入性的。掃描必須執行若干漏洞測試(稍後),這將涉及檢查和更多信息,因此不需要爲每個服務器提供任何訪問憑證。

此外,一些情況下可能有SQL Server Browser服務禁用或可能有SQL Server代理服務停止。

我需要能夠查詢給定範圍的IP地址的所有SQL Server實例。我一直想在這裏使用的參數:

  1. here

  1. here

AC#基礎的解決方案還可以幫助只要它返回的所有實例無論SQL Server Browser或SQL Server代理是否正在運行。

但我希望我的掃描儘可能地不侵入。

+0

我不確定你的意思是非侵入性的。沒有證書連接與查找服務器是否存在無關。 – Bobson

+0

非侵入性意味着腳本/解決方案不應涉及憑證,因爲這會帶來潛在的安全風險。另外,我需要一些發現機制的方法來確定不應該涉及任何類型的身份驗證,以獲得原始問題中提到的所需的詳細信息的SQL服務器,版本,實例名稱和IP地址的種類。 –

+0

你檢查過SQLPing嗎? http://www.sqlsecurity.com/downloads – Icarus

回答

1

對於SQL Server 2005及更高版本,使用WMI的文檔和支持方式請參閱FAQ: Detecting SQL Server 2005 using WMI。這將檢測任何已安裝的實例,與正在運行或未運行的事實無關,並且不會打開與SQL Server本身的任何連接。當然,它需要適當的權限來查詢WMI的遠程機器

對於SQL 2000,唯一的方法是使用不支持的註冊表黑客(查找特定的鍵)。

相關問題