Başka hangi makinelerin yerel ağa bağlı olduğunu bulma


27

Bulunduğum LAN’da bulunan tüm makinelerin listesini nasıl görebilirim.

Yanıtlar:


28

Söz konusu LAN hakkında ne biliyorsunuz? Kablonun fişine takılı veya wifi bağlantısı olan bir şey bilmediğini farz ediyorum.

  1. DHCP ile bir IP adresi istemeyi deneyin. Bir tane aldın mı? O zaman zaten birkaç şey biliyorsunuz: ağ geçidi IP'si, DHCP sunucusu IP'si, alt ağ maskesi ve belki de DNS sunucuları.
  2. Bir tane alamazsanız, DHCP sunucusu yoktur veya ağ MAC filtrelidir.
  3. Her iki durumda da, paketleri wireshark ile çekmeye başlayın . Kablosuzsanız veya bir hub'a bağlıysanız bu kolaydır. Bir anahtara bağlıysanız, MAC taşmasını "hub moduna" geri döndürmek için deneyebilirsiniz, ancak daha akıllı bir anahtar bağlantı noktanızı devre dışı bırakır. Yine de denemek istiyorsanız ettercap bunu sizin için yapabilir. (Veya macchanger ve bir kabuk betiği :))
  4. Paketlere bakarak IP adreslerini bulabilir, ancak en önemlisi, ağ parametrelerini tahmin edebilirsiniz. MAC filtrelemesini değiştirdiğinizden şüpheleniyorsanız, MAC adresini bıraktıktan sonra gözlemlenenlerden birine gönderin (bir süre hiçbir şey göndermez).
  5. Ağ yapılandırması hakkında iyi bir fikriniz olduğunda (ağ maskesi, ağ geçidi, vb.) Taramak için nmap kullanın. Nmap, -sPbazı ana makinelerin ping'e yanıt vermemesi durumundan çok daha fazlasını yapabilir ( belgelere bakın ). Nmap'ın yalnızca ağ ayarlarınız ve rotalarınız doğruysa çalışması önemlidir.
  6. Nmap'ın boşta taramasıyla daha da fazla ana bilgisayar bulabilirsiniz .

Bazı (çoğu?) Sistem yöneticileri yukarıdaki yöntemlerden birkaçını beğenmediğinden, izin verildiğinden emin olun (örneğin, ağınız budur). Ayrıca, kendi güvenlik duvarınızın bu yöntemlerden bazılarını engelleyebileceğini (DHCP ile IP alma) da ilk önce kurallarınızı kontrol edin.

Nmap

Nmap ile temel ana bilgisayar keşfi nasıl yapılır ? Dediğim gibi, ağ yapılandırmanız bunu denediğinizde doğru olmalıdır. Diyelim ki 192.168.0.50, bir / 24 alt ağındasınız. MAC adresiniz birbirine bağlanmasına izin verilen bir şeydir, vb. Ne yaptığımı görmek için wireshark'ın çalışmasını seviyorum.

Öncelikle, yalnızca belirtilen IP adresleri için DNS'deki PTR kayıtlarını çözmeye çalışan liste taramasını denemeyi seviyorum. Ana bilgisayarlara hiçbir şey göndermez, bu nedenle gerçekten bağlanma veya açılma garantisi yoktur ancak iyi bir şans vardır. Bu modun açıkça sizinle konuşmak isteyen bir DNS sunucusuna ihtiyacı var.

nmap -vvv -sn -sL 192.168.1.0/16

Bu hiçbir şey bulamayabilir veya her IP'nin açık olduğunu söyleyebilir.

Sonra genellikle ARP taramasına giderim. ARP istekleri gönderir (onları "Who has <target IP>? Tell <your IP>"wireshark'ta görüyorsunuz ). Bu oldukça güvenilirdir, çünkü kimse ARP'yi filtreler veya sahte yapar. En büyük dezavantajı yalnızca alt ağınızda çalışmasıdır.

nmap -vvv -sn -PR 192.168.1.0/24

Yönlendiricilerin veya güvenlik duvarlarının arkasındaki bir şeyi taramak istiyorsanız, SYN ve ACK taramalarını kullanın. SYN bir TCP bağlantısı başlatır ve yanıt olarak bir RST veya SYNACK alırsınız. Her iki durumda da ana bilgisayar çalışıyor. Güvenlik duvarı varsa, ICMP iletişimini yasaklayabilir veya bunun gibi bir şeyle karşılaşabilirsiniz. Bir güvenlik duvarı paketlerinizi filtrelerse çoğu zaman hiçbir şey alamazsınız. Bazı güvenlik duvarları yalnızca TCP SYN paketlerini filtreler ve diğer tüm TCP paketlerinin geçmesine izin verir. ACK taramasının faydalı olmasının nedeni budur. Ana bilgisayar çalışırsa, RST'yi alırsınız. Hangi güvenlik duvarının yerinde olduğunu bilmiyorsanız, ikisini de deneyin.

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

Tabii ki ICMP tabanlı taramaları -PE -PP -PM ile kullanabilirsiniz.

Diğer ilginç bir yöntem var olmayan bir protokol numarasına sahip -PO'dur. Genellikle, güvenlik duvarlarında sadece TCP ve UDP göz önünde bulundurulur ve bilinmeyen bir protokolü denediğinizde ne olduğunu kimsenin test etmez. Ana bilgisayar çalışır durumda olduğunda bir ICMP protokolüne erişilemez.

nmap -vvv -sn -PO160 10.1.2.0/24

Ayrıca nmap'a ana bilgisayar keşif işlemini (-Pn) atlamasını ve her ana bilgisayarda bir portscan yapmasını söyleyebilirsiniz. Bu çok yavaştır ancak ana bilgisayar keşiflerinin bir nedenle kaçırdığı diğer ana bilgisayarları bulabilirsiniz.


Bu mükemmel bir cevap gibi gözüküyor ve şimdi her bir görev için hangi komutları koyacağımı da ekleyerek beni kaşıkla beslemenizi isteyeceğim. Ben soruma cevap vermek için
Nmap'ı

5
@Tshepang: Bazı nmap örnekleri ekledim ama umarım belgeleri okumayı düşünürsünüz. Nmap en büyük ağ araçlarından biridir ve belgeleri iyi yazılmış ve zaman ayırmaya değer.
stribika

9

Sevdiğim ip neighiproute2 ile gelir komutu.

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

Ancak, yalnızca arp-able düğümlerle çalıştığını düşünüyorum .


Tam olarak ne yapar? Bana göre, sadece birkaç girişi listeler.
tshepang

Ben sadece yayın IP'sine bir arp gönderiyor ve cevap verenleri listeliyor. Açıkçası nasıl çalıştığını bilmiyorum .
xenoterracide

1
man ipkomşunun ne yaptığını gösterir.
slm

9

Nmap'i kurun ve çalıştırın nmap -sP <mynetwork>.


Ben olsun Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds.
tshepang

1
@Tshepang - Yaptım nmap -sP 192.168.0.*ve formun çıktısının bir listesini verdi:Nmap scan report for justin-desktop2 (192.168.0.61) Host is up (0.00056s latency).
Justin Ethier

@justin 5.00 sürümünü kullanıyorum ve şu anda formumla birlikte ağımda bazı makineleri gösteriyor Host 192.168.2.23 is up (0.0088s latency)..
tshepang

3
<mynetwork> ile neyi değiştirmeliyim?
tshepang

@tshepang Ana bilgisayar bölümü sıfırlanmış ve bir CIDR maskesi olan ağ numarası. Buna benzer şekilde: 192.169.1.0/24
Keith,

0

Her iki cevap için: NO nmap gerekli / NO sudo zorunludur .

cevap 1

$ arp

Cevap 2

Xenoterracides üzerinde bina ip neighve 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))

Üzerinden indir

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.