查找本地网络中的所有 Samba 共享

查找本地网络中的所有 Samba 共享

我想显示本地网络中所有可用的 samba 共享(如果我正确指定了网络掩码,则为 192.0.1.1/24)。

我已经搜索过这个问题,并尝试了诸如smbtree、之类的操作findsmb,但没有返回任何内容,以及nmblookup -S '*',返回

name_query 找不到名称 *

似乎这些命令在过去是有效的。我知道我的网络上存在 Samba 共享,并且我正在使用其中一些,但我想知道例如我的打印机的本地 IP 地址。所以我想知道是否有办法使用标准 Linux 工具进行本地网络扫描。如果没有,那么我希望有另一个工具建议。

答案1

这些命令已经不再使用,并且一些秘密参数不再由新的 Linux 开发人员维护。

以下命令曾经有效,但我无法让它再起作用。它可能在某些发行版上仍然有效:

nmblookup -S __SAMBA__

这个仍然有效,但不如以前好:

nmblookup -S WORKGROUP

如果您希望探索网络,可以先通过 nmapping 并查找开放端口 139,假设我们的 LAN 是 192.168.0.1-255 并且我们有 6 台计算机:

nmap -sS -O 192.168.0.1-6 -p 139

一旦知道了所有打开 SAMBA 端口的服务器,下一步就是找出这些机器的 Netbios 名称。我们将从 192.168.0.5 的机器开始:

nmblookup -A 192.168.0.5 -N

现在我们已经获得了计算机名称,例如,为了调查其共享,请使用带有标志的COMPX诊断程序来抑制密码提示(不需要密码):smbclient-N

smbclient -L \\COMPX -I 192.168.0.1 -N

上述程序在不同的 Linux 发行版上可能会有所不同。

答案2

Steve Friedl 的nbts扫描(最后更新于 2008-04)是一款命令行工具,用于扫描本地或远程 TCP/IP 网络上的开放 NETBIOS 名称服务器,这是查找开放共享的第一步。它是 Windows统计信息系统命令,只不过它操作的是一定范围的地址并且也可以在 Linux 上运行。

例子
nbtscan 192.168.0.0/24

主页:   nbtscan——NETBIOS 名称服务器扫描器

答案3

尝试使用 nmap 和 smb-enum-shares 脚本,如下所示:

nmap -p139,445 --script smb-enum-shares.nse --script-args smbusername=<USERNAME>,smbpass=<PASSWORD> <IP_OR_NETWORK>

你可以省略部分

--script-args smbusername=<USERNAME>,smbpass=<PASSWORD>

如果您没有任何特定凭证。

https://nmap.org/nsedoc/scripts/smb-enum-shares.html

相关内容