Windows

Windows 嘗試在提供的共享之前訪問 IPC$ 共享

  • January 7, 2017

我有一個 samba 伺服器,我在其中禁用了對IPC$共享的訪問

$$ 1 $$出於安全原因(使用者和共享列舉,使用者資訊查詢,…)。 我可以毫無問題地從任何基於 Unix 的電腦訪問此伺服器上的數據共享mount.cifs。但是,當我嘗試從 Windows 電腦(使用 Windows 7 和 10 測試)訪問它們時,我在提供我的憑據後收到拒絕訪問錯誤。

記錄 SMB 流量後,我注意到 Windows 電腦總是在嘗試訪問我提供Tree connect requestIPC$共享之前對共享進行操作(通過映射網路驅動器添加網路位置)。我的 samba 伺服器為共享返回拒絕訪問IPC$,並且 Windows 從不嘗試訪問我想要的共享。

所以我的問題是如何防止 Windows 執行這個無用的請求IPC$並訪問我提供的共享?IPC$或者至少在返回Access denied後如何強制 Windows 訪問真實共享?

提前感謝您的幫助和節日快樂!

海綿寶寶

$$ 1 $$ https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/securing-samba.html#id2618877

所以我的問題是如何防止 Windows 執行這個無用的請求……? 或者至少我怎樣才能強制 Windows 在之後訪問真正的共享..?

答案是你不能!很抱歉,但事實就是如此。但是,儘管這是您問題的真正答案-我不想听起來沒有幫助。我確實想提供幫助,因此希望以下是我能提供的最佳建議,在您的情況下對您有用。

我是一名專業的滲透測試人員,經常使用匿名共享訪問(例如 IPC$)來獲取有關係統的資訊並闖入系統以進行合法測試。關鍵是防止匿名使用者(沒有有效憑據的人)列舉使用者和共享。一旦獲得有效憑據,通常還有其他列舉使用者的方法(例如 cat /etc/passwd),無論如何,它對攻擊者的優先級較低。

您引用的文章包含以下內容:

如果您使用此方法,那麼當客戶端嘗試訪問 IPC$ 共享時,他們將收到“拒絕訪問”回复。這些客戶端將無法瀏覽共享,也可能無法訪問其他一些資​​源。除非由於某種原因您不能使用剛剛討論的其他方法之一,否則不建議這樣做。

之所以不推薦,是因為“那些客戶端……也可能無法訪問其他一些資​​源”。Windows 無法訪問機器上的任何共享就是一個例子。不幸的是,Windows 需要訪問 IPC $ in order to view the other shares. If it can’t see IPC $ 它只是假設沒有其他股票可用並放棄。

Samba 的 Linux 客戶端實現的工作方式略有不同,因此不會遇到同樣的問題。由於沒有辦法繞過它,我只會確保 IPC$ 共享不會將資訊洩露給匿名使用者。

使用您發送的文章中基於主機的保護和基於使用者的保護部分是防止對所有 Samba 的不良訪問的好方法,包括來自不受信任來源的 IPC$ 共享,並且很可能會為您提供所需的一切。

但是,此頁面的指定部分提供了進一步的建議: https ://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

要查看的部分:

“基於訪問的共享列舉”

“可瀏覽” - 在所有共享(IPC$ 除外)上設置為“否”應該會阻止它們出現,但視窗應該仍然能夠訪問

“guest ok” - 測試在 IPC$ 共享上設置為 “no” 是否會阻止 Windows 訪問其他共享

如果您使用的是 winbind,請設置以下內容以防止列舉:

winbind enum groups = no
winbind enum users = no

引用自:https://serverfault.com/questions/822682