web-dev-qa-db-ja.com

ローカルネットワーク内のすべてのSamba共有を検索する

ローカルネットワークで使用可能なすべてのSamba共有を表示したいと思います(ネットワークマスクの指定が正しい場合は192.0.1.1/24)。

私はこの問題を検索し、何も返さないsmbtreefindsmb、返されるnmblookup -S '*'などを試しました。

name_queryが名前を見つけられませんでした*

これらのコマンドは過去に機能したようです。 Samba共有がネットワーク上に存在し、それらのいくつかを使用していることは知っていますが、たとえば、プリンターのローカルIPアドレスを知りたいです。したがって、標準のLinuxツールを使用してこのローカルネットワークスキャンを実行する方法があるかどうか疑問に思っています。そうでない場合は、別のツールの提案をいただければ幸いです。

1
sequence

これらのコマンドは使用されなくなり、一部の秘密のパラメーターは新しいLinux開発者によって維持されていません。

次のコマンドは以前は機能していましたが、機能しなくなりました。一部のディストリビューションでは引き続き機能する可能性があります。

nmblookup -S __SAMBA__

これはまだ機能しますが、以前ほど良くはありません:

nmblookup -S WORKGROUP

ネットワークを探索したい場合は、LANが192.168.0.1-255で、6台のコンピューターがあると仮定して、nmappingして開いているポート139を探すことから始めることができます。

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
harrymc

次のように、smb-enum-sharesスクリプトでnmapを使用してみてください。

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

1
synouser