ローカルネットワークで使用可能なすべてのSamba共有を表示したいと思います(ネットワークマスクの指定が正しい場合は192.0.1.1/24)。
私はこの問題を検索し、何も返さないsmbtree
、findsmb
、返されるnmblookup -S '*'
などを試しました。
name_queryが名前を見つけられませんでした*
これらのコマンドは過去に機能したようです。 Samba共有がネットワーク上に存在し、それらのいくつかを使用していることは知っていますが、たとえば、プリンターのローカルIPアドレスを知りたいです。したがって、標準のLinuxツールを使用してこのローカルネットワークスキャンを実行する方法があるかどうか疑問に思っています。そうでない場合は、別のツールの提案をいただければ幸いです。
これらのコマンドは使用されなくなり、一部の秘密のパラメーターは新しい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ディストリビューションで異なる場合があります。)
次のように、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>
特定の資格情報がない場合。