Cara menemukan mesin lain yang terhubung ke jaringan lokal

27

Bagaimana saya bisa melihat daftar semua mesin yang tersedia di LAN saya bagian dari.

tepang
sumber

Jawaban:

28

Berapa banyak yang Anda ketahui tentang LAN yang dimaksud? Saya berasumsi Anda tidak tahu apa-apa hanya terhubung ke kabel atau terhubung ke wifi.

  1. Coba minta alamat IP dengan DHCP. Apakah kamu dapat satu? Maka Anda sudah tahu beberapa hal: IP gateway, IP server DHCP, subnet mask dan mungkin server DNS.
  2. Jika Anda tidak mendapatkannya, tidak ada server DHCP atau jaringan yang difilter MAC.
  3. Apa pun itu, mulailah menangkap paket dengan wireshark . Jika Anda menggunakan nirkabel atau terhubung ke hub, itu mudah. Jika Anda terhubung ke sakelar, Anda dapat mencoba MAC flooding untuk mengubahnya kembali ke "mode hub" tetapi sakelar yang lebih pintar hanya akan menonaktifkan porta Anda. Jika Anda ingin mencobanya, ettercap dapat melakukannya untuk Anda. (Atau macchanger dan skrip shell :))
  4. Melihat paket Anda dapat menemukan alamat IP, tetapi yang paling penting, Anda bisa menebak parameter jaringan. Jika Anda menduga pemfilteran MAC mengubah alamat MAC Anda ke salah satu yang diamati setelah ia pergi (tidak mengirim apa-apa untuk sementara waktu).
  5. Ketika Anda memiliki ide bagus tentang konfigurasi jaringan (netmask, gateway, dll) gunakan nmap untuk memindai. Nmap dapat melakukan lebih banyak daripada -sPseandainya beberapa host tidak merespons ping (lihat dokumentasi ). Sangat penting bahwa nmap hanya berfungsi jika pengaturan dan rute jaringan Anda sudah benar.
  6. Anda mungkin dapat menemukan lebih banyak host dengan pemindaian idle nmap .

Beberapa administrator sistem (kebanyakan?) Tidak menyukai beberapa metode di atas, jadi pastikan itu dibolehkan (misalnya itu jaringan Anda). Perhatikan juga bahwa firewall Anda sendiri dapat mencegah beberapa metode ini (bahkan mendapatkan IP dengan DHCP) jadi periksalah peraturan Anda terlebih dahulu.

Nmap

Inilah cara melakukan penemuan host dasar dengan nmap . Seperti yang saya katakan konfigurasi jaringan Anda harus benar ketika Anda mencoba ini. Katakanlah Anda 192.168.0.50 Anda berada di subnet / 24. Alamat MAC Anda adalah sesuatu yang diizinkan untuk terhubung, dll. Saya suka menjalankan wireshark untuk melihat apa yang saya lakukan.

Pertama saya ingin mencoba pemindaian daftar, yang hanya mencoba menyelesaikan catatan PTR dalam DNS untuk alamat IP yang ditentukan. Tidak mengirim apa pun ke host sehingga tidak ada jaminan itu benar-benar terhubung atau dihidupkan tetapi ada peluang bagus. Mode ini jelas membutuhkan server DNS yang bersedia berbicara dengan Anda.

nmap -vvv -sn -sL 192.168.1.0/16

Ini mungkin tidak menemukan apa pun atau mungkin memberi tahu Anda bahwa setiap IP sudah habis.

Maka saya biasanya pergi untuk memindai ARP. Ini mengirimkan permintaan ARP (Anda melihatnya seperti "Who has <target IP>? Tell <your IP>"di wireshark). Ini cukup dapat diandalkan karena tidak ada yang menyaring atau memalsukan ARP. Kerugian utama adalah ia hanya berfungsi pada subnet Anda.

nmap -vvv -sn -PR 192.168.1.0/24

Jika Anda ingin memindai sesuatu di belakang router atau firewall, gunakan SYN dan ACK scan. SYN memulai koneksi TCP dan Anda mendapatkan RST atau SYNACK sebagai respons. Either way tuan rumah sudah habis. Anda mungkin mendapatkan komunikasi ICMP dilarang atau sesuatu seperti itu jika ada firewall. Sebagian besar waktu jika firewall menyaring paket Anda, Anda tidak akan mendapatkan apa-apa. Beberapa jenis firewall hanya memfilter paket TCP SYN dan membiarkan setiap paket TCP lainnya lewat. Inilah sebabnya mengapa pemindaian ACK bermanfaat. Anda akan mendapatkan RST sebagai respons jika host sudah habis. Karena Anda tidak tahu firewall apa yang ada, cobalah keduanya.

nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24

Maka tentu saja Anda dapat menggunakan scan berbasis ICMP dengan -PE -PP -PM.

Metode lain yang menarik adalah -PO dengan nomor protokol yang tidak ada. Seringkali hanya TCP dan UDP yang dipertimbangkan pada firewall dan tidak ada yang menguji apa yang terjadi ketika Anda mencoba beberapa protokol yang tidak diketahui. Anda mendapatkan protokol ICMP yang tidak dapat dijangkau jika host sudah habis.

nmap -vvv -sn -PO160 10.1.2.0/24

Anda juga dapat memberitahu nmap untuk melewati pencarian host (-Pn) dan melakukan portscan pada setiap host. Ini sangat lambat tetapi Anda mungkin menemukan host lain yang tidak ditemukan oleh host karena beberapa alasan.

stribika
sumber
Ini sepertinya jawaban yang sangat bagus, dan sekarang saya harus meminta Anda untuk memberi makan saya dengan memasukkan perintah apa yang harus dijalankan untuk setiap tugas. Saya secara khusus tertarik pada bagaimana menggunakan Nmap untuk menjawab pertanyaan saya (jangan membuat saya membaca dokumen :)
tshepang
5
@Tepanget: Saya menambahkan beberapa contoh nmap tapi saya harap Anda mempertimbangkan membaca dokumen. Nmap adalah salah satu alat jaringan terhebat dan dokumentasi yang ditulis dengan baik sangat layak untuk digunakan.
stribika
9

Saya suka ip neighperintah, yang datang dengan IpRoute2.

ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE

Namun, saya pikir itu hanya berfungsi dengan arpnode -able.

xenoterracide
sumber
Apa fungsinya sebenarnya? Pastor saya, itu hanya daftar beberapa entri.
tshepang
Saya pikir itu hanya mengirim arp ke IP broadcast, dan mendaftar apa yang merespons. Jujur saya tidak tahu cara kerjanya.
xenoterracide
1
man ipmenunjukkan apa yang dilakukan tetangga atau tetangga.
slm
9

Instal nmap dan jalankan nmap -sP <mynetwork>.

Keith
sumber
Saya mengerti Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds.
tshepang
1
@Tepanger - Saya lakukan nmap -sP 192.168.0.*dan mengembalikan daftar output dari bentuk:Nmap scan report for justin-desktop2 (192.168.0.61) Host is up (0.00056s latency).
Justin Ethier
@ justin Saya menggunakan versi 5.00 dan sekarang menunjukkan sejumlah mesin di jaringan saya, dengan formulir Host 192.168.2.23 is up (0.0088s latency)..
tshepang
3
Dengan apa saya harus mengganti <mynetwork>?
tshepang
@tshepang Nomor jaringan, dengan bagian host memusatkan perhatian dan masker CIDR. Seperti ini: 192.169.1.0/24
Keith
0

Untuk kedua jawaban: TIDAK diperlukan nmap / TIDAK diperlukan sudo .

jawaban 1

$ arp

Jawaban 2

Membangun xenoterracides menjawab dengan ip neighdan hosts:

#!/usr/bin/env python

"""List all hosts with their IP adress of the current network."""

import os

out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
    ip = line.split(' ')[0]
    h = os.popen('host {}'.format(ip)).read()
    hostname = h.split(' ')[-1]
    print("{:>3}: {} ({})".format(i, hostname.strip(), ip))

Unduh via

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py
Martin Thoma
sumber