2012-08-02 49 views
-4

我試圖模擬一個用戶從我的網站進入需要廣告憑證的網站。我知道用戶標識已經不是密碼。我想知道是否有代碼的方式可以連接到廣告並用用戶標識模擬用戶。模擬用戶

整體目的是允許代理登錄服務。

+10

這就好像在問:「我知道這個電子郵件帳戶的用戶名,但沒有密碼,我想允許代理登錄服務在沒有密碼的情況下查看郵件。」在沒有訪問帳戶密碼的情況下進行模擬將是一個巨大的安全漏洞。 – 2012-08-02 18:57:32

+3

這簡直就像所有那些試圖給我錢的尼日利亞王子一樣粗略。 – Coeffect 2012-08-02 19:04:47

+1

多麼愚蠢的問題。提醒自己密碼服務的目的是什麼,並思考這個問題是否真的值得問。 – spender 2012-08-02 19:06:05

回答

4

我有點緊張,以-5票回答一個問題。我想指出存在這樣的特徵。它被稱爲Protocol Transistion extension。它也被稱爲S4USelf

Microsoft發明協議轉換,因爲Active Directory主要使用Kerberos進行身份驗證。但是,在許多情況下,Kerberos端口在Internet環境中被阻止。所以,應用程序不能使用Kerberos來進行身份驗證。 Web應用程序尤其如此,通常只有端口80被打開。爲了解決這個問題,Microsoft允許通過其他一些機制來完成身份驗證,例如,使用基於ASP.NET表單的身份驗證。然後,代理服務器可以爲使用它自己的機制進行身份驗證的任何用戶獲得Kerberos票證。在這個過程中,不需要Active Directory密碼。但是,請注意,Microsoft確實希望使用此方法獲取Kerberos票證的應用程序將對用戶執行其自己的身份驗證。例如,您可能有一個SQL服務器數據庫存儲一組用戶名和密碼。您的應用程序使用存儲在SQL Server數據庫中的用戶名和密碼進行身份驗證,然後獲取指定用戶的Kerberos票證。

正如你們許多人所指出的,如果這真的可能發生,這看起來像是一個很大的安全漏洞。這是精美的印刷品。爲了使用Protocol Transistion方法獲得Kerberos票證,您的流程必須具有Act作爲操作系統權限的一部分。這在系統中是非常高的特權。爲了簡單起見。如果您剛剛以普通AD用戶帳戶身份登錄並嘗試使用協議轉換方法運行程序以獲取域管理員權證,則該權限不起作用,因爲您沒有作爲操作系統權限的一部分。默認情況下,您的NT Authority\LocalSystem帳戶將擁有此權限。所以,爲了做到這一點,在很多情況下,您只需編寫服務並將服務帳戶設置爲使用NT Authority\LocalSystem即可。該服務將能夠從Active Directory獲得您需要的任何Kerberos S4US票證。

等一下。你們中的許多人會說這仍然是一個安全漏洞,因爲我可能是特定工作站機器上的本地管理員。然後,我可以安裝任何我喜歡的服務。我可以自己創建服務,並使用S4USelf獲取域管理員權證並訪問企業環境中的一些重要信息。那麼......這是不正確的。微軟將S4USelf Kerberos票證製作得如此特別,以至於它只能在請求票證的機器上使用。換句話說,您不能使用網絡上的S4US票證來請求任何其他服務。這聽起來更合理,對嗎?訪問僅限於該特定機器。是的,我知道仍然很難接受這樣一個事實,即一個人可以在不知道密碼的情況下冒充另一個用戶帳戶,但該功能在那裏。

沿着這條線,還有另一個瘋狂的東西叫Constraint Delegation。它也被稱爲S4UProxy。它基本上將這種模擬能力擴展到網絡資源。這意味着使用S4US票,你可以得到S4UProxy票。使用S4UProxy票據,您可以使用模擬身份訪問選定的網絡資源,而無需向Active Directory提供任何密碼。再次,這看起來很瘋狂,但這裏是細節。首先,默認情況下,加入Active Directory的所有機器都不能請求S4UProxy票據。域管理員必須在計算機對象上打開一個標誌,以便有意識地發生這種情況。域管理員應該明白,授予這個基本上就像說我把這臺機器當作一個域中的域控制器一樣對待。它掌握着王國的關鍵。其次,並非所有的服務都可以通過S4UProxy方法獲得。域管理員可以通過在計算機對象上指定SPN來選擇允許哪些服務明確使用S4UProxy。這就是爲什麼它有名稱約束代表團。它看起來很瘋狂,但它確實不是那麼糟糕。

0

不是我所知道的。 AD中的安全(通常)設置爲防止未經授權的訪問,因此您必須或者不得不或者

  • 從用戶處獲取密碼。
  • 創建一個「假」用戶進行測試。
  • 蠻力的密碼。

當然,暴力強制密碼/帳戶不是一個很好的方式去,除非它是你自己的網絡,並沒有自己的法律後果。

理想情況下,我會建議創建一個假用戶來測試。

希望有所幫助。