IP Adressen im Netzwerk finden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

Hallo zusammen,

ein paar Kunpels und ich veranstalten öfter LAN-Partys, wir vergeben vorher immer eine Liste mit IP Adressen, aber es gibt immer welche die sich selbst welche zulegen und wir von daher nie genau wissen wer jetzt mit dabei ist oder nicht. Desswegen wollte ich ein Programm zusammenbasteln, mit den man alle möglichen IP-Adressen durchscannen kann. Dass kann ruhig ein paar Minuten dauern. Als Basis wollte ich das Modul subprocess benutzen, so ähnlich wie in dem Artikel hier :
http://www.python-forum.de/topic-11548.html

Ich habe jetzt schon ein paar mal probiert, ein Programm zu schreiben, dass alles IP Adressen durchgeht, aber irgenwie will das nicht und von de rLogik her, bin ihc mir auch nicht so sicher, wie man ein Programm implementiert, dass alle IP Adressen durchgehen kann.
Also im Prinzip fehlt mir eine Idee bze win Algorithmus, mit dem ich alle Varianten einer IP Adresse durchgehen kann. Ich habe es schon mit diversen Verknüfungen verschiedener Schleifenarten probiert...aber taugt alles nichts.

Hier im Forum habe ich auch schon gesucht, genau so wie bei google. Da ich ja auch nur ein Mensch bin, kann es aber auch gut sein, dass ich was übersehen habe.

Würd mich über ein paar Ideen freuen.

Danke!

Lg BlackMamba
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Hm, das klappt eigentlich auch ohne Python auf der Konsole mit nmap ganz gut. Damit ist es sogar recht einfach:

Code: Alles auswählen

nmap -sP 192.168.0.*
Wenn du nur die Adressen in einer Datei willst:

Code: Alles auswählen

nmap -sP 192.168.0.*|grep "appears to be up"|awk {'print $2'}>ips.txt
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Um was für eine Größenordnung geht es denn? Mit managebaren Switchen kann man sowohl ungewollte Adressbereiche sperren als auch herausfinden, wer da so alles dran hängt. Und ab einer gewissen Größe kann man auch über den Einsatz von DHCP nachdenken, wenn man die Möglichkeit (z.B. über Layer-3-Switche) hat, Rogue-DHCPds auszuschließen oder zumindest zu orten.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Hi BlackMamba...

versteh ich dich richtig, du willst alle Adressen von 1.0.0.1 bis 255.255.255.254 durchprobieren? Das wuerde wirklich ewig dauern...

EDIT: Aber wenn du wirklich unbedingt willst (ich rate wie gesagt davon ab, da du nur die wenigsten dieser Adressen brauchen wirst...):

Code: Alles auswählen

for q3 in xrange(1, 255):
    for q2 in xrange(255):
        for q1 in xrange(255):
            for q0 in xrange(255):
                print "%i.%i.%i.%i" %(q3,q2,q1,q0)
...das ist die einfachste Variante alle IP-Adressen zu generieren, die es gibt, wuerd ich meinen.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

@nkoehring: Danke für den Tipp, ich werde alles etwas begrenzen, schon richtig, aber so hatte ich mir das im Prinzip gedacht gehabt. Ich werde es mal ausprobieren.

@Y0Gi:
Um was für eine Größenordnung geht es denn? Mit managebaren Switchen kann man sowohl ungewollte Adressbereiche sperren als auch herausfinden, wer da so alles dran hängt. Und ab einer gewissen Größe kann man auch über den Einsatz von DHCP nachdenken, wenn man die Möglichkeit (z.B. über Layer-3-Switche) hat, Rogue-DHCPds auszuschließen oder zumindest zu orten.

Ich habe leider nicht ganz verstanden, wass du mir damit sagen willst. Kannst du mir das noch mal genauer erklären? Danke!!!!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Wieviele Teilnehmer haben eure LAN-Parties denn?
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

also wir hatten schon alles, von 2 - ca 100
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

da wir gerade schon beim Thema Lan-Partys sind, gibt es eine Modul für Python, mit dem man dann, wenn man die IP-Adresse hat, auf freigegebene Ordner zugreifen kann, zwecks Datenaustausch oder ähnlichem.....? Quasie wie das auch im Explorer funktioniert? Nur ist selbst geschreiben viel schöner finde ich.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Du kannst auf die Freigaben zugreifen wie auf jeden anderen Ordner.
Also genauso wie du mit Python Ordner und Dateien behandelst so arbeitest du auch mit Netzwerkfreigaben.

Der Aufwand lohnt sich aber nicht, meiner Meinung nach.

Ich finde für Lans am besten: alle selbe Workgroup und IP automatisch ;-)
Ich verstehe zwar nicht warum, aber irgendwie hilft es wenn alle die selbe Workgoup haben.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Bei aelteren Windozern hilft es, wenn die gleiche Workgroup eingestellt ist, ja. Aber an sich sollte DHCP das Problem generell am besten loesen... und um Rogues noch besser auszuschließen, sollte der DHCP-Server beim verteilen der Adressen auch noch die jeweiligen MACs eintragen, die dann ausschließlich erlaubt/reroutet werden.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

ich würde es aber gerne so machen :-)


Wie kann man denn mit Python Dateien&Ordner anzeigen lassen?



Einen schönen Sonntag noch euch allen!!!!
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

Code: Alles auswählen

import subprocess

for q3 in xrange(1, 255):
    for q2 in xrange(255):
        for q1 in xrange(255):
            for q0 in xrange(255):
		q3s = str(q3)
		q2s = str(q2)
		q1s = str(q1)
		q0s = str(q0)
		Adresse = q3s+'.'+q2s+'.'+q1s+'.'+q0s
		proc = subprocess.Popen(["ping", "Adresse"], stdout = subprocess.PIPE, shell = True)
		print "Antwort von" in proc.stdout.read() and "Computer ist im Netz" or "Computer ist offline"
                print "%i.%i.%i.%i" %(q3,q2,q1,q0)
ich weiß, dass DIng hat ne lange laufzeit aber egal...wisst ihr ob es eine deutsche Anleitung für das Modul subprocesse gibt? Bei der auf englische blicke ich nicht ganz durch. Ich möchte nämlich die IP Adressen die vorhanden und im Netzwerk sind anzeigen lassen und in einer Variabel einlesen um diese so später in ein File einlesen zu können.

Lg blackMamba

Edit (birkenfeld): Für Code gibt es Code-Tags.
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

hi,

man könnte den switch auch noch mit falschen mac adressen flooden damit der cache überläuft und er alle paket an alle schickt, nennt sich arp bzw. mac flood.
vorsicht: die netzwerkperformance bricht ein ;)

die könnte man nun im promiscuousmode abfangen und einfach alle ip adressen rausfinden die "in verwendung sind"
http://de.wikipedia.org/wiki/Promiscuous_Mode

bedingung:
der switch lässt sich vom flooden beeindrucken und schaltet in den hubmode (das ist eine art fallback damit das netz nicht komplett ausfällt)
die geräte die ich finden will senden auch ab und zu was damit ich das paket mit der absenderadresse bekomme

dann sollte das die schnellste lösung sein.

für das flooden könnte man python verwenden. zum auslesen der pakete tcpdump und zum verarbeiten der daten wieder python.

obwohl ich glaube das dein problem eigentlich ein anderes ist. entweder du würdest gern von leuten die du nicht kennst etwas erfahren was dich wenig angeht oder ihr schafft es nicht euch abzusprechen. es kann ja kein problem sein sich auf einen adressbereich zu einigen ;)
da kannst du dann auch im vernünftigen zeitrahmen durchscannen so wie es bereits ein vorredner anhand des beispiels mit nmap erklärt hat.

zusätzlich wird es relativ unwarscheinlich sein das man auf lanparties eine iprange != 10.0.0.0/8 oder 192.168.0.0/16 verwendet.

lgherby
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

ARP-Flooding ist mit Sicherheit kein guter Weg ;)

Vorweg: So interessant das ist, das selbst zu schreiben, so sehr gibt es auch mehr als genug fertige Tools für solche Low-Level-Netzwerk-Vorhaben.

Schau dir lieber mal Tools wie z.B. arpwatch/arpwatch-ng an, die protokollieren, welche MAC-Adressen als welche IP-Adressen so im Netz unterwegs sind. In einem kleinen Netz kann man ja dann auch mal den Monitoring-Port eines besseren Switches verwenden, um die Daten zu erhalten. Bei großen Netzen hilft es dann wie gesagt, möglichst schon an den Clientswitches oder zur Not am Backbone den Zugriff von anderen Adressen zu blocken.

thelittlebug hat geschrieben:zusätzlich wird es relativ unwarscheinlich sein das man auf lanparties eine iprange != 10.0.0.0/8 oder 192.168.0.0/16 verwendet.
Wir benutzen u.a. 172.16.0.0/12 :)
BlackMamba
User
Beiträge: 77
Registriert: Samstag 24. März 2007, 23:22
Wohnort: Germany,NRW,

@thelittlebug: obwohl ich glaube das dein problem eigentlich ein anderes ist. entweder du würdest gern von leuten die du nicht kennst etwas erfahren was dich wenig angeht also ich will nicht hacken oder so, wenn du darauf hinaus willst....darauf bin ich nicht hinaus und jede weiter Anzüglichkeit in die Richtung verbitte ich mir.

@ Y0gi & thelittlebug: leider habe ich wenig verstanden, von dem was ihr mir geschrieben habt. Wie gesagt ich bin in dem Bereich Netzwerk relativer Anfänger und möchte das einfach verstehen lernen. Ich weiß das es entsprechenede Tools gibt, nur glaube ich, dass wenn man Zeit darin investiert und sich etwas demit beschäftigt, man später viel mehr davon hat, als wenn man irgendwelche Tools benutzt. Und da ich mich dafür interessiere, möchte ich es halt lernen. Irgendwelche Tools benutzten von irgend welchen Zeitschriften kann ja jeder.... Denke ich mal....und da werdet ihr mir wohl zustimmen!!!!

Also um auf das eigeldliche Problem zurück zukehren....Ich möchte mit einem IP scan, ähnlich wie oben, mehrere IP Adrssen durchgehen...Ich hab jetzt eine bei uns im internen Netzwerk gefunden, z.B. die von meinem besten Freund. Mit welchem Modul kann ich nun mit Hilfe der IP-Adresse auf die freigegebenen Daten zugreifen? Ich habe wie oben schon erwähnt danach lange gesucht, aber ich finde einfach nichts passendes dazu.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Tools für Netzwerksicherheit findest du aber nicht auf "irgendwelchen Zeitschriften". Es geht hier nicht um 1337-h4x0r-ToolZ, sondern von in der Regel sehr fähigen Sicherheitsexperten geschriebene Anwendungen, deren Entwicklung auch ein äußerst umfassendes und tiefgehendes Verständnis von TCP/IP und anderen Technologien erfordert.

Sobald du auf niedriger Ebene arbeiten möchtest, wirst du oft Raw Sockets benötigen, und die wiederum erfordern, dass man selbst Pakete zusammenbauen kann - und funktionieren ab Windows XP SP2 angeblich auch nicht mehr.

Zumindest in Python in Scapy geschrieben, das aber unter Windows nur modifiziert sehr eingeschränkt oder gar nicht läuft. Damit kann man schon sehr viel und mehr machen, als andere gängige Tools abdecken - aber in der Regel auch nur mit sehr guten Netzwerkkentnissen.

Wenn du unbedingt was bauen willst, versuche doch erst einmal, einen guten Scanner wie z.B. das genannte nmap über das subprocess-Modul anzusprechen. Beachte aber auch, dass PINGs nur bedingt aussagekräftig sind (können z.B. absichtlich geblockt/verschluckt werden). Von Portscans der Teilnehmer-Maschinen würde ich sowieso Abstand nehmen, zumal dann deren "Firewalls" mit Popup-Fenstern um sich werfen und man dann nur noch mehr Ärger hat.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

BlackMamba hat geschrieben:Mit welchem Modul kann ich nun mit Hilfe der IP-Adresse auf die freigegebenen Daten zugreifen? Ich habe wie oben schon erwähnt danach lange gesucht, aber ich finde einfach nichts passendes dazu.
Wie hier glaube schonmal erwaehnt, kannst du auf Freigaben unter Windoze genauso zugreifen wie auf normale Ordner... also zB so:

Code: Alles auswählen

import os
ip="192.168.13.7"
os.listdir("//"+ip)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Wie freigegeben?
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Es soll jetzt aber nicht über SMB-Shares festgestellt werden, ob ein Host online ist, oder?
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

@Yogi: du solltest den Thread komplett verfolgen und nicht nur immer die letzten Beitraege... dann wuerden sich gewisse Fragen garnicht erst stellen ;)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Antworten