同じローカルネットワーク上の他のコンピュータのホスト名を見つける方法は?

同じローカルネットワーク上の他のコンピュータのホスト名を見つける方法は?

私のローカルWi-FiでLubuntuを実行している他のコンピュータのIPとMAC​​を見つけることができ、そのコンピュータのホスト名も知っています。

$ sudo arp-scan olive
[sudo] password for t: 
Interface: wlx801f02b5c389, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.198   aa:bb:cc:dd:ee:ff   Liteon Technology Corporation

1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 1 hosts scanned in 1.449 seconds (0.69 hosts/sec). 1 responded

同じローカルWi-Fiネットワークに別のコンピュータがあり、Windowsを実行する可能性が高いですが、ホスト名がわかりません。

私のコンピュータでホスト名を見つけることができますか?arp-scan -lこの情報は表示されません。

ありがとうございます。

答え1

使用しているLinuxのバージョンに関係なくnmapをインストールしてください。

次に、次を実行します。

nmap -sP xxx.xxx.xxx.xxx/nn

ここで、xxx.xxx.xxx.xxx/nn は IP およびサブネットマスクビットです。たとえば、サブネットマスクが255.255.255.0の192.168.1.0ネットワークにある場合は、次のようにします。

nmap -sP 192.168.1.0/24

NmapはすべてのIPをpingスキャンし、ホスト名を解決しようとします。

たとえば、私のローカルLANには次のものが表示されます。

nmap -sP 192.168.169.0/24

Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-23 20:23 CST
Nmap scan report for _gateway (192.168.169.1)
Host is up (0.00026s latency).
Nmap scan report for grid (192.168.169.6)
Host is up (0.00026s latency).
Nmap scan report for anode (192.168.169.8)
Host is up (0.000048s latency).
Nmap scan report for 192.168.169.100
Host is up (0.0027s latency).
Nmap scan report for 192.168.169.101
Host is up (0.049s latency).
Nmap scan report for 192.168.169.102
Host is up (0.092s latency).
Nmap scan report for 192.168.169.104
Host is up (0.012s latency).
Nmap scan report for 192.168.169.106
Host is up (0.055s latency).
Nmap scan report for 192.168.169.107
Host is up (0.12s latency).
Nmap scan report for 192.168.169.109
Host is up (0.00095s latency).
Nmap scan report for 192.168.169.250
Host is up (0.0024s latency).
Nmap done: 256 IP addresses (11 hosts up) scanned in 3.79 seconds

名前のないホストはdhcpで、ホスト名を取得できません。他のものはすべてDNSにあるので、すべてホスト名を持っています。

もう一度arp-scanを使用すると、MACアドレスを取得できます。ディストリビューションに arp-scan を再インストールし、次の手順を実行します。

arp-scan 192.168.1.0/24

もう一度上記の例と同じLANにあるとします。非標準インターフェースがある場合は、-Iスイッチを使用して指定できます。

arp-scan -I enp4s2 192.168.1.0/24

ほとんどのディストリビューションでは、これを行うにはroot権限が必要です。したがって、もう一度ローカルLANを例にしてみましょう。

sudo arp-scan 192.168.169.0/24

これは私のすべてのノードを見つけました。

Interface: enp5s0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.169.6   74:d4:35:85:e0:44   GIGA-BYTE TECHNOLOGY CO.,LTD.
192.168.169.1   f4:f2:6d:70:16:c2   (Unknown)
192.168.169.100 6c:70:9f:d0:ff:1a   (Unknown)
192.168.169.101 10:9a:dd:80:f4:93   Apple, Inc.
192.168.169.104 08:02:8e:8e:a0:f6   (Unknown)
192.168.169.111 00:1c:c0:6e:f4:ec   Intel Corporate
192.168.169.106 fc:c2:de:4c:58:48   (Unknown)
192.168.169.102 b4:f6:1c:f2:f9:52   (Unknown)
192.168.169.103 dc:68:eb:5b:aa:c8   (Unknown)
192.168.169.250 00:01:e6:a2:3f:17   Hewlett-Packard Company
192.168.169.107 68:37:e9:d7:39:0b   (Unknown)
192.168.169.105 08:d4:6a:d1:df:5e   (Unknown)

13 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 2.438 seconds (105.00 hosts/sec). 13 responded

答え2

ルーターの各ライブホストを逆方向に検索すると、対応するdhcpホスト名を見つけることができます(通常はそのホスト名に設定されています)。まず live_hosts.txt を作成します。

sudo arp-scan 192.168.169.0/24 |
    grep '^192' |
    awk '{print $1}' >live_hosts.txt

それから:

for host in $(cat live_hosts.txt)
do
  echo "$host"
  host "$host" "$router_ip"
  sleep 0.1
done

ルータは、dhcp-leases ファイルを照会し、接続が切断されたノードでもリースが消去されるまで解決されます。ただし、ルーターのネームサービス(通常は小さなdnsmasq)が破損しない限り、現在オンラインになっているすべてのノードが一覧表示されます。

ハードウェア アドレスや接続期間など、すべての情報を子孫に提供する必要があります。定期的にネットワークをスキャンして出力をファイルに追加すると、このスクリプトを簡単に作成できます。

Linuxシステムに実行中のサービスがある場合(sshdが最近人気のようです)、これについて詳しく学ぶことができます。 。 (bugaboo、jimjonesdiary、maga、Pussy-socketと呼んでください。ちょうどmDNSです。

scapyのような単純なarp MITMを使用することは破壊的で失礼ですが、自分のネットワーク上で望むことをすることができます。 tcpdumpを使用してDNSルックアップを表示すると、両方のオペレーティングシステムを知らせ、誰がシステムを使用しているかを推測できます。

関連情報