我有一个samba服务器,由于安全原因(用户和共享枚举,用户信息查询…),我禁止访问IPC$ share [1]。
我可以访问这台服务器上的数据共享,没有问题从任何基于Unix的计算机mount.cifs 。 但是,当我尝试从Windows计算机访问它们(使用Windows 7和10进行testing)时,在提供我的凭据之后,我得到一个Access拒绝错误。
在loggingSMBstream量之后,我注意到Windows计算机总是在IPC$共享上执行Tree connect request ,然后尝试访问我提供的共享(通过映射networking驱动器或添加networking位置 )。 我的桑巴服务器返回IPC$ 拒绝访问共享和Windows从不尝试访问我想要的共享。
所以我的问题是如何防止Windows在IPC$上做这个无用的请求,只是访问我提供的共享? 或者至less我可以强制Windows访问真正的共享IPC$ 1之一后返回访问被拒绝 ?
提前感谢您的帮助和节日快乐!
海绵宝宝
[1] https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/securing-samba.html#id2618877
所以我的问题是如何防止Windows做这个无用的请求…? 或者至less我可以如何强制Windows访问真正的份额后?
答案是你不能! 对不起,但是这是事实。 不过,虽然这是对你的问题的真正答案 – 我不想听起来无益。 我希望能够提供帮助,所以希望接下来的是我可以给予的最好的build议,在您的情况下,这对您会有帮助。
我是一个专业的渗透testing人员,通常使用匿名共享访问(如IPC $)获取有关系统的信息,并进入系统进行合法testing。 关键是要防止匿名用户(没有有效凭证的人)枚举用户和共享。 一旦获得有效的证书,通常还有其他的方法来枚举用户(例如,cat / etc / passwd),对于攻击者来说,它不再是优先级。
您引用的文章包含以下内容:
如果你使用这个方法,那么客户端在尝试访问IPC $共享时会被给予一个“拒绝访问”的答复。 这些客户端将无法浏览共享,也可能无法访问其他资源。 除非由于某种原因,否则不推荐使用其他方法之一。
之所以不推荐是因为“这些客户…也可能无法访问其他资源”。 Windows无法访问机器上的任何共享是一个例子。 不幸的是,Windows需要访问IPC $才能查看其他共享。 如果它不能看到IPC $,它只是假设没有其他的股票可用并放弃。
Samba的Linux客户端实现工作方式稍有不同,因此不会遇到同样的问题。 由于没有办法,我只能确保IPC $的份额不会泄露匿名用户的信息。
使用您发送的文章的基于 主机的保护和基于 用户的保护部分是防止不受欢迎地访问所有Samba(包括来自不受信任的源的IPC $共享)的好方法,并且可以给您提供您所需的一切。
但是,本页的指定部分还提供了进一步的build议: https : //www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
部分要看:
“基于访问的共享枚举”
“可浏览” – 在所有共享(除了IPC $)上设置为“否”应该防止它们出现,但窗口应该仍然能够访问
“guest ok” – testing在IPC $共享上设置为“no”是否阻止Windows访问其他共享
如果您使用的是winbind,请设置以下内容以防止枚举:
winbind enum groups = no winbind enum users = no