[Gelöst] Wie ip's im Netzwerk sammeln (script nmap)

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

[Gelöst] Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 12:25:20

Hi,
ich möchte im Netzwerk mit einem Script scannen, welche PCs bzw. Geräte mit welcher IP an meinem Server bzw im Netzwerk waren und das Ergebniss in einer Datei sammeln.
Wie kann ich das bewerkstelligen, dass keine Einträge doppelt in meiner Zieldatei existieren ?

mit
nmap -sP 192.168.22.0-256 >> /root/ipusage.txt
wird meine Liste ja immer länger.
Irgendwie fehlt mir hier der grep teil.

und wie mache ich aus der 2 Zeiligen Ausgabe von nmap -sP eine einzeilige ?
Zuletzt geändert von Huck Fin am 27.10.2011 14:43:07, insgesamt 1-mal geändert.

Benutzeravatar
hoeschler
Beiträge: 93
Registriert: 05.07.2007 11:28:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von hoeschler » 24.10.2011 12:34:47

nmap -sP 192.168.22.0-256 |grep "scan report" > /root/ipusage.txt

Meinst so?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Cae » 24.10.2011 12:43:19

Huck Fin hat geschrieben:welche PCs bzw. Geräte mit welcher IP an meinem Server
Genau dafür wäre vielleicht auch ein Script mit ngrep eine Idee wert. Da kann man bei jedem Treffer die RegEx verändern, dass die gerade gefundene IP ausgefiltert wird. Falls du Interesse hast, sag' Bescheid, ich komme erst nach Feierabend daran.
Huck Fin hat geschrieben:Wie kann ich das bewerkstelligen, dass keine Einträge doppelt in meiner Zieldatei existieren ?
uniq?

Gruß Cae
Zuletzt geändert von Cae am 24.10.2011 12:45:28, insgesamt 1-mal geändert.
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 12:45:06

Hört sich gut an.
Bin für jeden Tip dankbar.

Ich glaube uniq ist das Schlüsselwort.

Nun ist erstmal die Frage
Wenn ich
nmap -sP 192.168.22.0-256 >> /root/tempip.txt
mache, wie bekomme ich die Daten uniq in /root/ipusage.txt

Und wie bekomme ich die erste Zeile da raus

Code: Alles auswählen

Starting Nmap 4.62 ( http://nmap.org ) at 2011-10-24 13:03 CEST

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 13:23:47

Normal müsste das hier gehen, aber geht net

Code: Alles auswählen

#!/bin/sh
# IPs scannen und in Datei ausgeben
nmap -sP 192.168.22.0-255 > /root/tempip1.txt
cat /root/tempip1.txt /root/ipliste.txt | uniq > /root/tempip2.txt
cp /root/tempip2.txt /root/ipliste.txt
Alles verdoppelt sich.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Cae » 24.10.2011 13:58:50

Code: Alles auswählen

#!/bin/sh
# IPs scannen und in Datei ausgeben

tmpfile=$(mktemp)
tmplist=$(mktemp)

nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | uniq >$tmplist
cp $tmplist /root/ipliste.txt

rm $tmpfile $tmplist
Dies ist schonmal besser, nur das uniq wird nicht richtig eingesetzt. awk? Yeeeeti! :mrgreen:

Gruß Cae

--Edit: siehe Wiki

--Edit: das hier tut:

Code: Alles auswählen

#!/bin/sh
# IPs scannen und in Datei ausgeben

tmpfile=$(mktemp)
tmplist=$(mktemp)

nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | awk '!a[$0] && a[$0]=1' >$tmplist
cp $tmplist /root/ipliste.txt

rm $tmpfile $tmplist
Zuletzt geändert von Cae am 24.10.2011 14:07:02, insgesamt 2-mal geändert.
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

uname
Beiträge: 12481
Registriert: 03.06.2008 09:33:02

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von uname » 24.10.2011 14:02:54

Statt "nmap" könnte vielleicht auch ein Broadcast-Ping und die ARP-Tabelle reichen je nach Anwendungsfeld.

Code: Alles auswählen

ping -b 192.168.22.255
arp -a

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 14:05:38

Das Ergebnis gefällt mir schon mal.
Jetzt muss ich nur noch die Doppelten rausfiltern...

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 14:07:25

uname hat geschrieben:Statt "nmap" könnte vielleicht auch ein Broadcast-Ping und die ARP-Tabelle reichen je nach Anwendungsfeld.

Code: Alles auswählen

ping -b 192.168.22.255
arp -a
Nö, das listet mir nur einen Teil meiner Geräte auf.
Der andere Ansatz ist schon mal genial.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Cae » 24.10.2011 14:10:44

So, hab mal oben rumeditiert. Was passiert eigentlich mit Hosts, die nicht erreichbar sind? Keine Ausgabe? Dann wär's perfekt.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 14:13:06

So scheint es zu gehen.
Ich teste das mal ausgibig.

Code: Alles auswählen

#!/bin/bash
# IPs scannen und in Datei ausgeben
tmpfile=$(mktemp)
tmplist=$(mktemp)

nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | uniq >$tmplist
cp $tmplist /root/ipliste.txt
rm $tmpfile $tmplist

sort /root/ipliste.txt | uniq > /root/ipliste2.txt
cp /root/ipliste2.txt /root/ipliste.txt


Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Cae » 24.10.2011 14:16:20

Ahhh klar, uniq fasst nur benachbarte Zeilen zusammen! Also wäre

Code: Alles auswählen

cat doubles.txt | sort | uniq # oder gleich
cat doubles.txt | sort -u
die Lösung, um auch auseinaderliegende Zeilen zusammenzufassen.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 15:16:33

So, auf meinem PC funzt das.
Nur auf einem Testrechner geht es nicht.
Die IPs findet er, aber die Namen nicht.

wenn ich nmap -sP 192.168.22.0/24 eingebe kommt

Code: Alles auswählen

Host 192.168.22.228 appears to be up. MAC Address: 00:27:19:C7:30:29 (Unknown)
Host 192.168.22.242 appears to be up. MAC Address: 00:11:85:F9:1A:DE (Hewlett Packard)
in der ipliste.txt sieht alles so aus.

Code: Alles auswählen

Host: 192.168.22.228 () Status: Up
Host: 192.168.22.22 ()  Status: Up
Da fehlen die Namen.
smbstatus gibt aber den Maschinennamen zur IP aus.
Ist zum irre werden...

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Cae » 24.10.2011 15:20:05

"Namen" - meinst du damit echte DNS-Namen oder irgendwelche Netbios- oder sonstige Bezeichnungen? Dann ist es total klar, dass keine Namen angezeigt werden. Evtl. dafür alle Rechner, die "up" sind, an smbdingens pipen und mit dessen Output arbeiten.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

uname
Beiträge: 12481
Registriert: 03.06.2008 09:33:02

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von uname » 24.10.2011 15:22:08

Also wenn du

Code: Alles auswählen

strace -ff -o out.txt nmap -sP 192.168.22.0/24
ausführst, sollte in

Code: Alles auswählen

out.txt.<prozessid>
was stehen von

Code: Alles auswählen

open("/etc/resolv.conf", O_RDONLY)      = 3
Was steht denn in /etc/resolv.conf? Funktioniert die Nameserverauflösung?

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 15:35:33

Bei mir

Code: Alles auswählen

open("/etc/resolv.conf", O_RDONLY)      = 6
ping google.de geht
ping fritz.box geht

resolv.conf

Code: Alles auswählen

nameserver 127.0.0.1
nameserver 192.168.22.2
Wie starte ich denn den resolver neu ?

uname
Beiträge: 12481
Registriert: 03.06.2008 09:33:02

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von uname » 24.10.2011 15:57:46

Naja. Die Frage ist erst mal wo die Namen von den internen Systemen überhaupt stehen.

Code: Alles auswählen

Host 192.168.22.228 appears to be up. MAC Address: 00:27:19:C7:30:29 (Unknown)
Host 192.168.22.242 appears to be up. MAC Address: 00:11:85:F9:1A:DE (Hewlett Packard)
Hast du einen lokalen Nameserver, der das verwaltet bzw. kann DHCP sich die Namen zu den beiden IP-Adressen merken? Wenn nicht könntest du die Namen mal in /etc/hosts auf dem System eintragen von wo du die Überprüfung startest. Reicht wahrscheinlich.

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 16:08:56

Also wenn ich die von Hand eintrage in die Hosts werden die gefunden.
Aber das wollte ich ja nicht.
Ich habe ne FritzBox auf 192.168.22.2. Die trage ich als DNS-Server auf allen PCs ein.
und es werden ja auch Drucker mit Namen gefunden.
Frage mich warum dann überall nix in den Klammern steht.
Da ist doch was faul am Server.
Nur wo suche ich da weiter ?

uname
Beiträge: 12481
Registriert: 03.06.2008 09:33:02

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von uname » 24.10.2011 16:13:41

Ok was sagt denn

Code: Alles auswählen

host 192.168.22.228
nslookup 192.168.22.228
dig 192.168.22.228
dig 192.168.22.228 @192.168.22.2

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 24.10.2011 16:32:27

host 192.168.22.228

Code: Alles auswählen

Host 228.22.168.192.in-addr.arpa not found: 3(NXDOMAIN)
nslookup 192.168.22.228

Code: Alles auswählen

Server:         192.168.22.2
Address:        192.168.22.2#53

** server can't find 228.22.168.192.in-addr.arpa: NXDOMAIN
dig 192.168.22.228

Code: Alles auswählen

; <<>> DiG 9.3.4 <<>> 192.168.22.228
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34240
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;192.168.22.228.                        IN      A

;; ANSWER SECTION:
192.168.22.228.         3600    IN      A       80.156.86.78
192.168.22.228.         3600    IN      A       62.157.140.133

;; Query time: 1 msec
;; SERVER: 192.168.22.2#53(192.168.22.2)
;; WHEN: Mon Oct 24 16:25:17 2011
;; MSG SIZE  rcvd: 64
dig 192.168.22.228 @192.168.22.2

Code: Alles auswählen

; <<>> DiG 9.3.4 <<>> 192.168.22.228 @192.168.22.2
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 108
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;192.168.22.228.                        IN      A

;; ANSWER SECTION:
192.168.22.228.         3600    IN      A       80.156.86.78
192.168.22.228.         3600    IN      A       62.157.140.133

;; Query time: 1 msec
;; SERVER: 192.168.22.2#53(192.168.22.2)
;; WHEN: Mon Oct 24 16:26:47 2011
;; MSG SIZE  rcvd: 64

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 27.10.2011 14:16:46

Also...
Ich habe ein

Code: Alles auswählen

nbtscan -l 192.168.22.1-255 >> /etc/hosts
gemacht.
Danach funktioniert mein Script halbwegs.
Meine Liste ist allerdings nicht sortiert.

Nachtrag:
Es ist mir ein Rätsel.

Code: Alles auswählen

sort /root/ipliste.txt | uniq > /root/ipliste2.txt
macht mir die Liste durcheinander.
Aber jeder Eintrag ist nur einmal vorhanden.
Nehme ich statt dessen

Code: Alles auswählen

cat /root/ipliste.txt | uniq > /root/ipliste2.txt
stimmt die Reihenfolge, aber alles verdoppelt sich.
Auch bei

Code: Alles auswählen

sort -m /root/ipliste.txt | uniq > /root/ipliste2.txt
stimmt die Reihenfolge, aber alles verdoppelt sich.

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Wie ip's im Netzwerk sammeln (script nmap)

Beitrag von Huck Fin » 27.10.2011 14:42:09

So, fertig

sort -nk 2 war der passende Parameter.

Code: Alles auswählen

#!/bin/bash
# IPs scannen und in Datei ausgeben
tmpfile=$(mktemp)
tmplist=$(mktemp)

nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | uniq >$tmplist
cp $tmplist /root/ipliste.txt
rm $tmpfile $tmplist

sort -nk 2 /root/ipliste.txt | uniq > /root/ipliste2.txt
cp /root/ipliste2.txt /root/ipliste.txt

Antworten