Ich möchte gern mein Netzwerk in einem IP-Adressbereich, z.B. 192.168.0.10 bis 192.168.0.50 nach Windows Rechnern durchsuchen, die aktuell mit dem Netzwerk verbunden sind. Ich kenne weder Hostnamen noch IP-Adressen (wegen DHCP).
Wie macht man das am besten?
Windows Rechner im Netzwerk erkennen
Code: Alles auswählen
nmap 192.168.0.10-50
Achtung: User ist ein Python-Lehrling!
Die Windows-Firewall ist mittlerweile Standard, viele User haben auch eine andere Firewall.
Gibt es die Möglichkeit, eine Art "ping" zu machen oder sich gleich mittels _winreg auf die Fremd-Registry zu hängen? Also try/except?
Gibt es die Möglichkeit, eine Art "ping" zu machen oder sich gleich mittels _winreg auf die Fremd-Registry zu hängen? Also try/except?
Aber nicht in internen Netzen.droptix hat geschrieben:Die Windows-Firewall ist mittlerweile Standard, viele User haben auch eine andere Firewall.
Sollten tatsächlich die Rechner mit einer Software-Firewall ausgestattet sein (wozu im internen Betrieb?!), dann: Nein!droptix hat geschrieben:Gibt es die Möglichkeit, eine Art "ping" zu machen oder sich gleich mittels _winreg auf die Fremd-Registry zu hängen?
Achtung: User ist ein Python-Lehrling!
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Tief in den Erinnerungen war da was mit Ping, TTL und OS, also kurz danach gesucht - und was gefunden. Vielleicht hilft der hier weiter.
Ich sehe das immer wieder, auch auf Arbeit und bei vielen Kunden. Das ist gängige Praxis.Ronnie hat geschrieben:Aber nicht in internen Netzen.droptix hat geschrieben:Die Windows-Firewall ist mittlerweile Standard, viele User haben auch eine andere Firewall.
Es gibt doch immer eine Lösung, selbst Windows durchsucht sein eigenes Netzwerk nach anderen Rechnern. Allerdings weiß ich nicht, ob dabei Windows-Rechner ausfindig gemacht werden könnten.Ronnie hat geschrieben:Sollten tatsächlich die Rechner mit einer Software-Firewall ausgestattet sein (wozu im internen Betrieb?!), dann: Nein!droptix hat geschrieben:Gibt es die Möglichkeit, eine Art "ping" zu machen oder sich gleich mittels _winreg auf die Fremd-Registry zu hängen?
Der Link zu TTL & Co. half leider nicht weiter. Was aber ist nmaps?
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Nicht in der Lage eine Suchmaschine zu bedienen?
Whatsoever : Lesen und verstehen : www.nmap.org
Du wirst feststellen das nmap für deine Zwecke die Kanone auf den Spatz ist.
Wieso hilft dir der Response vom Ping nicht weiter? Wenn du innerhalb deines Netzwerkes bleibst (also kein Router dazwischen ist), bekommst du von Computern mit einem OS aus Redmond eine TTL von 128 zurückgeliefert. Wenn das OS eines der Unix-Derivate ist, bekommst du eine TTL von 64. Und jeder Router dazwischen dekrementiert die TTL um 1.
Whatsoever : Lesen und verstehen : www.nmap.org
Du wirst feststellen das nmap für deine Zwecke die Kanone auf den Spatz ist.
Wieso hilft dir der Response vom Ping nicht weiter? Wenn du innerhalb deines Netzwerkes bleibst (also kein Router dazwischen ist), bekommst du von Computern mit einem OS aus Redmond eine TTL von 128 zurückgeliefert. Wenn das OS eines der Unix-Derivate ist, bekommst du eine TTL von 64. Und jeder Router dazwischen dekrementiert die TTL um 1.
Bekanntlich können Millionen Fliegen auch nicht irren ...droptix hat geschrieben:Ich sehe das immer wieder, auch auf Arbeit und bei vielen Kunden. Das ist gängige Praxis.
Ja, aber es findet diese nur, wenn sie nicht durch eine Firewall blockiert sind. Natürlich kann eine Firewall verschiedene Regelsätze für interne und externe Zugriffe haben.droptix hat geschrieben:Es gibt doch immer eine Lösung, selbst Windows durchsucht sein eigenes Netzwerk nach anderen Rechnern.
Was Querdenker vorschlägt, läuft auf ein Fingerprinting hinaus. Das machen entsprechende Werkzeuge automatisch und gehört zu den Kleinigkeiten die nmap z.B. einfach mal so miterledigt. Aber wie gesagt, nur wenn keine Firewall das Spiel blockiert.
Innerhalb einer Domäne bieten sich nochmal andere und weitergehende Möglichkeiten, z.B. über die Windows PowerShell und WMI (http://de.wikipedia.org/wiki/Windows_Ma ... umentation).
Achtung: User ist ein Python-Lehrling!
Die Leute im TTL Beitrag diskutieren ob das auch immer hinhaut, daher bin ich verunsichert. Ich probiere das aber mal aus, überredet
An WMI hab ich auch schon gedacht. Das läuft auf dasselbe hinaus wie die Idee mit _winreg (s.o.). Ist das wirklich auf Rechner in derselben Domain beschränkt? Ich brauch das für lose zusammen gewürfelte Arbeitsplätze, die leider nicht alle in derselben Domain sind.
An WMI hab ich auch schon gedacht. Das läuft auf dasselbe hinaus wie die Idee mit _winreg (s.o.). Ist das wirklich auf Rechner in derselben Domain beschränkt? Ich brauch das für lose zusammen gewürfelte Arbeitsplätze, die leider nicht alle in derselben Domain sind.
-
- User
- Beiträge: 108
- Registriert: Sonntag 7. Februar 2010, 14:16
Ich würde mir aus deinem Python-Programm heraus nmap mit dem Argument -O (OS-Detection) und der Angabe für den IP-Range aufrufen, die machen so ziemlich alles was möglich ist, um das herauszufinden. Daran könntest du dich halten. Außerdem gibt es schöne Optionen um eine mit Python sehr einfach zu parsende Ausgabe zurückzubekommen.
Ja, das klingt sehr vielversprechend! -> hab's im kleinen Umfeld getestet und scheint ganz gut zu funktionieren. Krieg ich die Rückinfos auch irgendwie strukturiert raus, das sie sich (noch) besser parsen lassen?
Im ersten Schritt möchte ich im Netzwerk alle erreichbaren Windows-Rechner identifizieren. In der kommenden Woche mache ich ein paar Versuche damit. Danach muss ich auf den erkannten Rechnern eine Installation durchführen... da muss ich mir auch noch was einfallen lassen.
Ich gehe davon aus, dass ich Daten nicht per "push" hinschieben und beliebigen Code ausführen kann. Also muss ich die Daten auf einem zentralen Fileserver bereit stellen und abholen lassen.
Aber wie? Vielleicht kann man sich quasi remote mit der entfernten Win32 API verbinden (oder eben _winreg) und darüber Aktionen auslösen. Ich halte euch auf dem Laufenden.
Wenn ihr weitere Ideen dazu habt, gerne her damit!
Im ersten Schritt möchte ich im Netzwerk alle erreichbaren Windows-Rechner identifizieren. In der kommenden Woche mache ich ein paar Versuche damit. Danach muss ich auf den erkannten Rechnern eine Installation durchführen... da muss ich mir auch noch was einfallen lassen.
Ich gehe davon aus, dass ich Daten nicht per "push" hinschieben und beliebigen Code ausführen kann. Also muss ich die Daten auf einem zentralen Fileserver bereit stellen und abholen lassen.
Aber wie? Vielleicht kann man sich quasi remote mit der entfernten Win32 API verbinden (oder eben _winreg) und darüber Aktionen auslösen. Ich halte euch auf dem Laufenden.
Wenn ihr weitere Ideen dazu habt, gerne her damit!
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Was willst du machen? Einfach mal so 'ne Installation, so nebenbei quasi?
Mal ehrlich - da ist es sinnvoller die Software an den einzelnen Arbeitsplätzen selber zu installieren. Insbesondere wenn das ein wilder Zusammenschluß von verschiedensten Rechnern ist, die als einzige Gemeinsamkeit das gleiche Class-C Subnet haben. Deine Probleme kann ich dir jetzt schon sagen: Zugriffsrechte lokal + Netzwerk, Verzeichnisstrukturen, Sicherheitsprogramme (Firewall, Virenscanner, ...).
Mal ehrlich - da ist es sinnvoller die Software an den einzelnen Arbeitsplätzen selber zu installieren. Insbesondere wenn das ein wilder Zusammenschluß von verschiedensten Rechnern ist, die als einzige Gemeinsamkeit das gleiche Class-C Subnet haben. Deine Probleme kann ich dir jetzt schon sagen: Zugriffsrechte lokal + Netzwerk, Verzeichnisstrukturen, Sicherheitsprogramme (Firewall, Virenscanner, ...).
Ein Skript auf den Windowsrechnern laufen lassen, welches auf bestimmten Ports horcht, wenn da was ankommt mit PW erst authentifizieren und dann den Befehl bearbeiten
the more they change the more they stay the same
-
- User
- Beiträge: 108
- Registriert: Sonntag 7. Februar 2010, 14:16
Ja siehe Manual, es gibt mehrere Varianten. -oG sollte einfach sein, aber natürlich auch -oX für XML.droptix hat geschrieben:Ja, das klingt sehr vielversprechend! -> hab's im kleinen Umfeld getestet und scheint ganz gut zu funktionieren. Krieg ich die Rückinfos auch irgendwie strukturiert raus, das sie sich (noch) besser parsen lassen?
Hab gerade gesehen, dass da schon jemand einen Python-Parser für die -oG Option geschrieben hat: http://www.tssci-security.com/projects/nmaparse_py/
Das ist bei einigen tausend Rechnern leider nicht machbar. Es ist so: alle Rechner im gleichen Netzwerk, jeder kann jeden anpingen. Es gibt eine Passwort-Regel, also hat jeder Rechner dasselbe Passwort für den lokalen Benutzer "Administrator". Die Benutzer arbeiten mit eingeschränkten Nutzerrechten. Allerdings verwalten viele Sub-Admins ihre eigenen kleinen Rechnereinheiten, der eine nur 5, der andere ein paar hundert... d.h. bei einigen läuft die Windows-Firewall, bei anderen eine Alternative und bei wiederum anderen gar keine. Einige Rechner sind an eine Windows-Domäne angeschlossen, aber eben nicht alle.querdenker hat geschrieben: Was willst du machen? Einfach mal so 'ne Installation, so nebenbei quasi?
Mal ehrlich - da ist es sinnvoller die Software an den einzelnen Arbeitsplätzen selber zu installieren. Insbesondere wenn das ein wilder Zusammenschluß von verschiedensten Rechnern ist, die als einzige Gemeinsamkeit das gleiche Class-C Subnet haben. Deine Probleme kann ich dir jetzt schon sagen: Zugriffsrechte lokal + Netzwerk, Verzeichnisstrukturen, Sicherheitsprogramme (Firewall, Virenscanner, ...).
Ein bunter Haufen eben, historisch gewachsen.
Das ist prinzipiell ein guter Ansatz, aber auch da geht keine manuelle Installation, sondern das sollte ebenfalls remote passieren.Dav1d hat geschrieben:Ein Skript auf den Windowsrechnern laufen lassen, welches auf bestimmten Ports horcht, wenn da was ankommt mit PW erst authentifizieren und dann den Befehl bearbeiten
Habe mich weiter mit WMI beschäftigt, das scheint machbar zu sein, wenn die Firewall den Remotedienst durchlässt (netsh.exe firewall set service type=REMOTEADMIN mode=ENABLE scope=ALL). Ich könnte mir vostellen, dass der Oberadmin jedem Sub-Admin befiehlt, diese Firewall-Ausnahme bei seinen Rechnern einzustellen.
-
- User
- Beiträge: 108
- Registriert: Sonntag 7. Februar 2010, 14:16
Das wäre die einfachste Lösung, du lässt auf allen Rechnern die Remoteunterstützung einschalten, wobei, wenn du sowieso delegieren kannst was auf den Rechnern geschieht (also wenn sowieso ein Admin die Remoteunterstützung einschalten kann) können Sie dann nicht auch dein ausführbares Programm aus dem Intranet laden? Ist weniger umständlich.
Damit hast du nicht ganz unrecht, aber ein eigenes Programm als "Agent" muss man gut absichern, damit kein Missbrauch betrieben wird. Das muss man auch immer erstmal den vielen Sub-Admins klar machen. Eine Öffnung der Firewall ist da schon eher vorstellbar, weil man ohne Windows-Admin-Zugang nichts auf den Rechnern machen kann. Das wird häufig als "ausreichend sicher" anerkannt.