Neuer Host im Netzwerk finden
-
Hallo zusammen,
Ich suche nach einem Programm, mit welchem ich nach einem Host suchen kann, welcher sich ganz frisch in einem Netzwerk anmeldet. Das Programm soll auf einem PC laufen, welcher sich in diesem Netzwerk bereits befindet. Ich möchte die IP-Adresse herausfinden, welche diesem neuen Host zugewiesen wird. Was für Tools gibt es dazu? Kann man das mit nmap machen? Wenn ja, wie? Port 22 ist garantiert offen auf dem neuen Host.
Es sollte auf Windows (bevorzugt) oder Linux laufen.
Danke im Voraus.
Grüssli
-
reicht es da nicht, einfach nach ARP-Paketen zu lauschen? Oder auf Windows die Ausgabe von
arp -a
regelmäßig auszuwertenMit nmap sollte es auch klappen, aber damit kenn ich mich nicht aus
-
zwutz schrieb:
reicht es da nicht, einfach nach ARP-Paketen zu lauschen? Oder auf Windows die Ausgabe von
arp -a
regelmäßig auszuwertenWar ARP nicht dazu da, für IP-Adressen MAC-Adressen zu finden? Ich habe weder IP- noch MAC-Adresse.
zwutz schrieb:
Mit nmap sollte es auch klappen, aber damit kenn ich mich nicht aus
Das sucht aber nur die IPs aus einem Bereich ab. Wenn du in einem 10.0.0.0/8 Netzwerk drin bist, könnte das wohl etwas dauern. Und wenn dann noch mehrere hundert den Port 22 offen haben, bringt dir das rein gar nichts. Ausser ich hätte da etwas falsch verstanden.
Mir kam aber zwischenzeitlich eine Idee. Kann ich grundsätzlich nicht einfach nach DHCP ACK lauschen? Die IP Vergabe sollte in diesem Netzwerk eigentlich mit DHCP ablaufen.
Grüssli
-
Dravere schrieb:
Mir kam aber zwischenzeitlich eine Idee. Kann ich grundsätzlich nicht einfach nach DHCP ACK lauschen? Die IP Vergabe sollte in diesem Netzwerk eigentlich mit DHCP ablaufen.
Im Prinzip ja, nur wird das DHCP ACK bei deinem PC gar nicht erst ankommen, denn das ist kein Broadcast (höchstens bei WLAN hättest du damit eine Chance).
Das simpelste dürfte sein, dem DHCP-Server zu sagen, dass er dich benachrichtigen soll, wenn ein neuer Host dazukommt. Dann kannst du sicher sein, dass du keine Nachrichten verpasst, und du kannst sogar um absolut sicher zu gehen den DHCP-Server periodisch abfragen, welche Hosts ihm bekannt sind. Das klappt natürlich nur, wenn du auf den DHCP-Server Admin-Zugriff hast.
Das nächst-einfachste dürfte tatsächlich das Mithören von DHCPDISCOVER-Paketen sein. Die sind broadcast, deswegen haben die anders als die späteren DHCP-Pakete eine Chance, bei deinem PC anzukommen. Dafür kenn ich aber nichts fertiges, außer eben die normalen Paket-Logger wie wireshark und ähnliches. Du müsstest dann das Log auf DHCPDISCOVER-Pakete überwachen und dann noch rausfinden, welche IP der neue Host nun bekommen hat.
Aber vielleicht gibt es dafür auch etwas fertiges. Ich würde aber wie gesagt erstmal versuchen, mich in den DHCP-Server zu hängen, das sieht für mich nach einer viel einfacheren und saubereren Lösung aus.
edit: Wenn du weißt, dass Port 22 garantiert offen ist auf dem neuen Host, weißt du dann vielleicht auch, dass der neue Host immer dieselbe MAC-Adresse besitzt? In dem Fall wird er nämlich vom DHCP-Server (sehr wahrscheinlich) immer dieselbe IP-Adresse bekommen, und du kannst einfach periodisch checken, ob jemand auf dieser IP antwortet. Das wär vermutlich die Lösung für ein kleines Heimnetzwerk mit dem geringsten Aufwand, falls du nicht eh schon Admin-Zugang zum DHCP-Server hast.
-
Dravere schrieb:
Kann man das mit nmap machen?
Ja
Wenn ja, wie?
RTFM
-
Dravere schrieb:
War ARP nicht dazu da, für IP-Adressen MAC-Adressen zu finden? Ich habe weder IP- noch MAC-Adresse.
Aber du hast MAC- und IP-Adresse der anderen Teilnehmer. Wenn dann plötzlich vorher unbekannte MAC- oder IP-Adressen auftauchen, hast du deinen neuen Host
-
Christoph schrieb:
..., wenn du auf den DHCP-Server Admin-Zugriff hast.
Hab ich nicht.
Christoph schrieb:
Das nächst-einfachste dürfte tatsächlich das Mithören von DHCPDISCOVER-Paketen sein.
Ich bin nicht mehr gerade sehr frisch auf dem Gebiet, aber war DHCP DISCOVER nicht das, was der Client dem DHCP Server schickt, um eine neue IP zu bekommen? Wenn schon wäre es doch eher DHCP OFFER?
Christoph schrieb:
edit: Wenn du weißt, dass Port 22 garantiert offen ist auf dem neuen Host, weißt du dann vielleicht auch, dass der neue Host immer dieselbe MAC-Adresse besitzt?
Es können leider auch unterschiedliche MAC-Adressen sein. Ich kann zwar die MAC-Adresse herausfinden, da ich das Gerät selber ins Netzwerk stecke. Aber dann müsste ich jeweils Bildschirm, Tastatur, Maus usw. an das Gerät anhängen, nur um die MAC-Adresse oder gleich die IP-Adresse herauszufinden. Das möchte ich eben gerne vermeiden
zwutz schrieb:
Aber du hast MAC- und IP-Adresse der anderen Teilnehmer.
Hab ich das?
Grüssli
-
Dravere schrieb:
Christoph schrieb:
Das nächst-einfachste dürfte tatsächlich das Mithören von DHCPDISCOVER-Paketen sein.
Ich bin nicht mehr gerade sehr frisch auf dem Gebiet, aber war DHCP DISCOVER nicht das, was der Client dem DHCP Server schickt, um eine neue IP zu bekommen? Wenn schon wäre es doch eher DHCP OFFER?
Im Prinzip ja, nur kommen DHCP-OFFER-Pakete bei deinem PC niemals an, denn das sind keine broadcast-Pakete. Die gehen zielgerichtet nur an den neuen Host.
-
Christoph schrieb:
Dravere schrieb:
Christoph schrieb:
Das nächst-einfachste dürfte tatsächlich das Mithören von DHCPDISCOVER-Paketen sein.
Ich bin nicht mehr gerade sehr frisch auf dem Gebiet, aber war DHCP DISCOVER nicht das, was der Client dem DHCP Server schickt, um eine neue IP zu bekommen? Wenn schon wäre es doch eher DHCP OFFER?
Im Prinzip ja, nur kommen DHCP-OFFER-Pakete bei deinem PC niemals an, denn das sind keine broadcast-Pakete. Die gehen zielgerichtet nur an den neuen Host.
Wie soll das gehen, wenn der neue Host noch gar keine IP Adresse hat?
Die neue IP Adresse bekommt er ja erst im DHCP OFFER als Vorschlag. Scheint auch auf Wikipedia anders zu stehen:
http://en.wikipedia.org/wiki/DHCP#Technical_details
Dort steht, dass sogar DHCP ACK per Broadcast verschickt wird.Grüssli
-
Dravere schrieb:
Christoph schrieb:
Im Prinzip ja, nur kommen DHCP-OFFER-Pakete bei deinem PC niemals an, denn das sind keine broadcast-Pakete. Die gehen zielgerichtet nur an den neuen Host.
Wie soll das gehen, wenn der neue Host noch gar keine IP Adresse hat?
Ganz einfach: Die IP-Adresse ist irrelevant fürs Routing der Pakete vom DHCP-Server zum DHCP-Client, denn beide befinden sich im selben Subnetz. In dem DHCP-OFFER-Paket steht als Ziel die MAC-Adresse des Clients. Das Netzwerk kann das Paket deswegen direkt zum Client routen.
Aber du hast mich daran erinnert, dass ich das nie selber nachgeprüft habe. Wär also möglich, dass ich hier falsch liege.
-
Unicast ist für MAC-Adressen doch nur in der Collision Domain vorhanden? Theoretisch wäre es möglich, dass man mit MAC-Adressen in einem Subnetz ein Routing machen könnte, wäre mir aber neu, dass dies auch gemacht wird.
Aber ich bin ebenfalls kein Experte.
Ich werde am Montag dies dann mal mit Wireshark ausprobieren. Falls jemand noch weitere Ideen hat, immer her damit
Grüssli
-
Ich hab grad an einen Router/DHCP-Server an einen freien Ethernet-Port einen neuen Host angeschlossen und währenddessen auf einem anderen PC, der am selben Router an einem anderen Ethernet-Port hängt, die Pakete mitgeschnitten. Der andere PC hat von dem DHCP-Austausch genau zwei Pakete gesehen: DHCP DISCOVER und DHCP REQUEST. Beide kamen vom neuen Client. Die DHCP-Pakete vom Server sind bei meinem PC nicht angekommen, wurden also vermutlich direkt an den neuen Client geschickt, wie ich vermutet hatte.
In dem DHCP-REQUEST-Paket steht die neue IP-Adresse des Clients, allerdings weißt du dann noch nicht sicher, ob der DHCP-Server den Request akzeptiert hat.
-
http://www.henkessoft.de/OS_Dev/Bilder/rev936.PNG
Im Sourcecode von PrettyOS könnt ihr genau sehen, wie DHCP läuft.
-
@Erhard Henkes:
Die Frage war hier eher, welche DHCP-Pakete als Broadcast durchs gesamte Subnetz geschickt und mitgehört werden können. Meinem Test nach gehen viele Pakete direkt zwischen Server und Client hin- und her, ohne dass andere Teilnehmer die jemals zu sehen bekommen.
-
Wie Du im Code von PrettyOS siehst, werden DHCP DISCOVER und DHCP REQUEST vom Client mit gesetztem Broadcast Flag gesendet. Das hast Du mit deinen Tests auch heraus gefunden.
Siehe Richtlinie "RFC 2131 - Dynamic Host Configuration Protocol", 3.1
-
Dravere schrieb:
Ich habe weder IP- noch MAC-Adresse.
-vv
interessant. ich würde gerne wissen, was du stattdessen hast.
-
hallo!
grosszuegigerweise senden systeme nach dem dhcp passiert ist meist ein gratuitous arp. und da steht alles drin, was du wissen wolltest.
-
Dravere schrieb:
zwutz schrieb:
Aber du hast MAC- und IP-Adresse der anderen Teilnehmer.
Hab ich das?
Grüssli
arp -a
Zeigt dir die aktuelle ARP-Tabelle an.
-
mezzo mix schrieb:
grosszuegigerweise senden systeme nach dem dhcp passiert ist meist ein gratuitous arp. und da steht alles drin, was du wissen wolltest.
Kann ich nicht bestätigen, mein System (Linux) hat das beim Testen nicht gemacht, oder zumindest kam der gratuitous ARP nicht an bei den restlichen PCs im Netzwerk.
-
Christoph schrieb:
mezzo mix schrieb:
grosszuegigerweise senden systeme nach dem dhcp passiert ist meist ein gratuitous arp. und da steht alles drin, was du wissen wolltest.
Kann ich nicht bestätigen, mein System (Linux) hat das beim Testen nicht gemacht, oder zumindest kam der gratuitous ARP nicht an bei den restlichen PCs im Netzwerk.
und da muss ich dir recht geben. mein darwin machts, mein linux nicht