我想显示本地网络中所有可用的 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
答案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>
如果您没有任何特定凭证。