lowbyte1
Goto Top

Tool - ArpScanner - Hosts im Subnet ermitteln mit 100 Prozent erfolg - Only private net - 10 Sec.... Update 7

Arp-Mapping

@Echo off & Color 0A & Setlocal
Title  Lowbyte

REM ~~~~~~~
for /L %%q in (1,1,15) do call :demo
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.                              ) LOADING
echo.
echo.
echo.
ping -n 3 localhost>nul & endlocal & setlocal
  CLS
  Title MP-ARP sweeper
goto :MainC


:demo
cls
echo.
echo.
echo.
echo.                                %random%
echo.                                %random%
echo.                                %random%
echo.                              ) LOWBYTE
echo.                                %random%
echo.                                %random%
echo.                                %random%
ping -n 1 localhost>nul
goto :eof

:MainC
REM ~~~~~~~


:RE

  Echo.________________________________________________________________________
  Echo.
  Echo.                        MP_ARP sweeper 1.45
  Echo.________________________________________________________________________
  Echo.
  Echo.
  Echo.Die ersten 3 Oktette der Address Range angeben ...
  Echo.
  Echo.Syntax ( 172.16.3 ) -255)
  Echo.
  Echo.Input: & set /P A=

  Set TMEM=%SYSTEMROOT%\TEMP\
  PUSHD %TMEM%

  for /L %%r in (16,1,32) do if %A:~0,6% == 172.%%r goto:go_main
  for /L %%m in (1,1,255) do if %A:~0,4% == 10.%%m goto:go_main
  if %A:~0,7% == 192.168  goto:go_main

  if exist messg1.vbs (

        goto:Jumpx

            ) else (

      Echo msgbox"Only Private Class C Network",vbCritical , "Only Private-net"> messg1.vbs  

        )

:Jumpx

  start messg1.vbs
  CLS

goto:RE

:go_main



  CLS
  Echo.
  Echo.Die Range %A%.1 - %A%.255 wird gescannt ..
  Echo.
  Ping -n 2 localhost>NUL

  ipconfig | findstr "Standardgateway" > sgw.txt  
  if %ERRORLEVEL%==1 ( 
        ipconfig | findstr "Default Gateway" > sgw.txt  
  )
  for /F "delims=" %%p in (sgw.txt) do @set VARGW=%%p  
  	set SGW=%VARGW:~44,56%
  @Ping -n 1 -w 50 %SGW%>NUL
  @Arp -d

  For /L %%i in (1,1,255) do Echo ping -n 1 -l 0 -f -i 2 -w 1 %A%.%%i>nul >> threads%%i.cmd
  For /L %%y in (1,1,255) do Echo.Exit  >> threads%%y.cmd

          Echo For /L %%%%z in (26,1,50) do Start /HIGH /B threads%%%%z.cmd>NUL >> threadpool_id1.cmd & Echo.Exit >> threadpool_id1.cmd
           Echo For /L %%%%w in (1,1,25) do Start /HIGH /B threads%%%%w.cmd>NUL >> threadpool_id2.cmd & Echo.Exit >> threadpool_id2.cmd
            Echo For /L %%%%x in (76,1,100) do Start /HIGH /B threads%%%%x.cmd>NUL >> threadpool_id3.cmd & Echo.Exit >> threadpool_id3.cmd
             Echo For /L %%%%u in (51,1,75) do Start /HIGH /B threads%%%%u.cmd>NUL >> threadpool_id4.cmd & Echo.Exit >> threadpool_id4.cmd
              Echo For /L %%%%q in (126,1,150) do Start /HIGH /B threads%%%%q.cmd>NUL >> threadpool_id5.cmd & Echo.Exit >> threadpool_id5.cmd
          Echo For /L %%%%d in (101,1,125) do Start /HIGH /B threads%%%%d.cmd>NUL >> threadpool_id6.cmd & Echo.Exit >> threadpool_id6.cmd
     	   Echo For /L %%%%h in (175,1,200) do Start /HIGH /B threads%%%%h.cmd>NUL >> threadpool_id7.cmd & Echo.Exit >> threadpool_id7.cmd
     	    Echo For /L %%%%t in (151,1,175) do Start /HIGH /B threads%%%%t.cmd>NUL >> threadpool_id8.cmd & Echo.Exit >> threadpool_id8.cmd
	     Echo For /L %%%%s in (226,1,255) do Start /HIGH /B threads%%%%s.cmd>NUL >> threadpool_id9.cmd & Echo.Exit >> threadpool_id9.cmd
	      Echo For /L %%%%r in (201,1,225) do Start /HIGH /B threads%%%%r.cmd>NUL >> threadpool_id10.cmd & Echo.Exit >> threadpool_id10.cmd


	For /L %%b in (1,1,10) do Start /HIGH /B /I threadpool_id%%b.cmd >NUL & Echo. & Echo.Subnet zu %%b0%% Prozent gescannt .. & Ping -n 1 -w 100 localhost>NUL & CLS & Echo.  &  Echo.
	Ping -n 2 -w 1 localhost>NUL

	POPD


	Ping -n 1 localhost>NUL && arp -a >> arpcache.txt

        type arpcache.txt | findstr "statisch">> arp_req.txt  
        if %ERRORLEVEL%==1 (
	      type arpcache.txt | findstr "static">> arp_req.txt  
        )
        type arpcache.txt | findstr "dynamisch">> arp_req.txt  
        if %ERRORLEVEL%==1 (
	      type arpcache.txt | findstr "dynamic">> arp_req.txt  
        )

	CLS & echo. & echo. & echo.

  Echo.Scannvorgang der Ip-Range %A%.1 - %A%.255 ist abgeschlossen ..

  Echo. & Echo. & Echo.

  Ipconfig | findstr "IP-Adresse"> LocalIP.txt  
  if %ERRORLEVEL%==1 ( 
        Ipconfig | findstr "IP Address"> LocalIP.txt  
  )
  For /F "delims=" %%k in (LocalIP.txt) do @set "Pvar=%%k"  
  Set request=%Pvar:~44,60%
  Echo. %request%  -UP-   Localhost

  For /F "tokens=1,2" %%i in (arp_req.txt) do call :ProcessLine "%%i" "%%j"  
  Echo.
  Echo.
  Echo.
  Echo.
  Echo.
  Echo.All Activ Hosts im Subnet ..
  Echo.
  Echo.
  Echo.
  Echo.Output saving ?..y/n

	Set /P NOYES=
	if y == %NOYES%  goto:c_logf
	if Y == %NOYES%  goto:c_logf

:ret_log

  PUSHD %TMEM%
  if exist sgw.txt erase sgw.txt
  for /L %%i in (1,1,255) do if exist threads%%i.cmd erase threads%%i.cmd
  for /L %%l in (1,1,10) do if exist threadpool_id%%l.cmd erase threadpool_id%%l.cmd
  POPD
  if exist arpcache.txt erase arpcache.txt
  if exist arp_req.txt erase arp_req.txt
  if exist LocalIP.txt erase LocalIP.txt
  if exist messg1.vbs erase messg1.vbs
  Title MP-ARP sweeper

	ENDLOCAL && CLS

goto:RE

:c_logf

  Echo.Scan .. vom ## DATE:%DATE% ## Time:%TIME% ## >> Logfile.log
  Echo. >> Logfile.log
  Echo. %request%  -UP-   Localhost >> Logfile.log
  For /F "tokens=1,2" %%d in (arp_req.txt) do call :ProcessLine "%%d" "%%e" >> Logfile.log  
  Echo. >> Logfile.log
  Echo. >> Logfile.log
  Echo. & Echo. & Echo. >> Logfile.log
  Echo.All activ Host's im Subnet .. >> Logfile.log  
  Echo. & Echo. & Echo. >> Logfile.log
  CLS
  Echo.
  Echo. Output wurde im Logfile gespeichert ...
  ping -n 3 localhost>nul

goto:ret_log

  :ProcessLine

  set "sss=%~2%"  
  set "var=%sss:~0,8%"  
  set "VE=not found"  
  for /f "tokens=2*" %%c in ('findstr /i "%var%" IEEEMACLIST.txt') do set "VE=%%d"  
  Echo. %~1  -UP-   MAC = %~2   -   %VE%
  goto :eof


REM  # lowbyte #

Bevor der Pc in einem Lan verbindung zu einem Gerät-Pc im subnet herstellt, löst der Kernel ein Arp anfrage aus, sofern er die Daten nicht schon in seinem ARP-cache hat.
Dieser Cache speichert solche Ip und Mac Adressen über ein Zeitraum der vom Kernel des jeweiligen Betriebsystems festgelegt ist.
Erst wenn ein ARP REPLY eintrifft und er es gespeichert hat in seinem ARP-cache dann weiss er mit welcher Machine er sich im Netzwerk verbinden muss.
Auf weitere details des Arp-protokoll möchte ich nicht eingehen.
Die Arp-sweeps verspechen 100 Prozent erfolg, den Ping könnte durch eine Firewall blockiert werden =ICMP Typ 0 code 8 und damit die ausgabe fälschen.
Mit meinem Programm sende ich ein Ping packet, aber statdessen das ich die Ausgabe der Ping.exe auswerte,werte ich den Arp-cache aus. Wenn dort die Ip + Mac gespeichert ist kann man sicher sein das der host UP ist.
Das ganze nennt man Arp mapping.

Und nicht vergessen Arp funktioniert immer ...weil es sozusagen das rückrad von von Ethernet ist.
Anders gesagt ohne Arp geht nichts! Da im Lan mit Mac adressen gearbeitet wird!
Oder man müsste allen Host's im Lan eine Statische Ip zuweisen. Und jeweils bei allen machinen die Ip + Mac im Arp Cache von allen Stationen im Lan eintragen.

Example:
(Arp Cache)(arp -s 172.16.0.1 00-23-23-23-23-23)


es gibt nur eins 0 or 1 [lowbyte]

Content-Key: 67097

Url: https://administrator.de/contentid/67097

Printed on: April 19, 2024 at 23:04 o'clock

Member: gnarff
gnarff Aug 26, 2007 at 01:07:11 (UTC)
Goto Top

ich wil nicht sagen das ich der erste bin
der sowas macht im gegenteil es geht ja in
erster linie ums prinzip.

Ich will auch nicht der Erste im Forum sein, der dir sagt: "Lern mal Deutsch!"
Bin es aber wohl...
Deine Orthographie ist unter aller Sau - das muss ich jetzt mal so sagen.

Mit Nmap kannst Du auch Pingsweeps ausfuehren oder mit Ping Sweep von SolarWinds.

saludos
gnarff
Member: lowbyte1
lowbyte1 Aug 26, 2007 at 02:45:54 (UTC)
Goto Top
hallo

danke nett von dir !
ja jeder macht tipfehler und ?
ich bessere si nicht aus weil ich keine zeit habe...

mfg lowbyte
Member: lowbyte1
lowbyte1 Aug 26, 2007 at 02:51:29 (UTC)
Goto Top
hallo

und auserdem komme ich von weit weg.
ich glaube das deutsch reicht mir...

mfg lowbyte
Member: Xerebus
Xerebus Aug 26, 2007 at 07:50:04 (UTC)
Goto Top
Also ich finde wenn man die Zeit hat ein Tutorial zu schreiben sollte man schon auf die Rechtschreibung achten.
Bei der Batch tippst du ja auch nicht alles blind ein.
Member: lowbyte1
lowbyte1 Aug 26, 2007 at 13:09:12 (UTC)
Goto Top
hallo

Ich werde die Fehler beheben.
Nice Day....


mfg lowbyte
Member: HanSolo
HanSolo Sep 19, 2007 at 05:46:47 (UTC)
Goto Top
Ich finde den Beitrag recht gut. Rechtschreibfehler hin oder her, hat jeder mal.

Ein interessantes Programm, jetzt sieht man auch mal was hinter den Tools steckt. Allerdings werde ich das wohl nie verstehen.

MFG
Member: fritzo
fritzo Oct 26, 2007 at 11:51:35 (UTC)
Goto Top
Gut geschriebenes Script, ich finde es sehr gelungen. Die Rechtschreibung ist imho völlig sekundär; ich denke wer sich angesichts eines geposteten Scripts über derlei Dinge aufregt, der sollte es mit Baldrian versuchen. ;)

mfg,
fritzo
Member: lowbyte1
lowbyte1 Oct 28, 2007 at 10:47:16 (UTC)
Goto Top
hallo Freaks

An alle die es Intressiert ...
Da der alte Script ein wenig mit der Laufzeit zu kämpfen hatte, dachte ich, ich schreibe ihn um.Ich habe das ganze mit sogenannten (virtuellen treaths) unter Batch gemacht.
Ich scanne damit 255 Ip's in weniger als 15 Sec.
Im gegensatz zum anderen Script der es nicht unter 3 Min. erledigte.
Und der Bug, mit falschen oder doppelten Adressen ist somit auch behoben.

Der Source Code habe ich oben ersetzt...


es gibt nur eins '0 or 1' [lowbyte]
Member: Biber
Biber Oct 28, 2007 at 12:46:03 (UTC)
Goto Top
Moin lowbyte1,

ist eine runde Sache, die inzwischen aus Deinem Tutorial geworden ist.

Vielen Dank fürs Veröffentlichen Deiner Lösung!

Schönes Wochenende
Biber
Member: lowbyte1
lowbyte1 Oct 28, 2007 at 13:09:48 (UTC)
Goto Top
hallo Biber

THX

Ich bin eigentlich für OPEN SOURCE ..
Obwohl es hier ja nicht um Millionen Software geht und wen auch ...
Nice weekend

Lowbyte
Member: lowbyte1
lowbyte1 Oct 28, 2007 at 16:41:25 (UTC)
Goto Top
helo Coders

Nun kommt das ARP Sweep tool in seiner 3 Version.

  • Kleinere Style und Performance verbesserungen

  • Output kann gelogt werden (Logfile)

Source Code wurde oben ersetzt ...


lowbyte
Member: gnarff
gnarff Oct 29, 2007 at 01:30:34 (UTC)
Goto Top

  • Output kann gelogt werden (Logfile)

Auf dieses Feature hatte ich gewartet; sehr gut!
Ich bin gespannt...

saludos
gnarff
Member: lowbyte1
lowbyte1 Oct 29, 2007 at 02:57:36 (UTC)
Goto Top
helo

Da die Abfrage zur Logfile erstellung im Code ein Bug hat
funktioniert sie nicht !!
Habe es bereits angepasst ..

Oben in der Source wurde der Bug behoben ....


lowbyte
Member: gnarff
gnarff Oct 29, 2007 at 14:17:38 (UTC)
Goto Top

Da die Abfrage zur Logfile erstellung im
Code ein Bug hat
funktioniert sie nicht !!

Deswegen schrieb ich, ich sei gespannt...

Habe es bereits angepasst ..

Oben in der Source wurde der Bug behoben

Dann kann ich das ja mal im Laufe der Woche ausprobieren...

saludos
gnarff
Member: lowbyte1
lowbyte1 Oct 29, 2007 at 21:12:35 (UTC)
Goto Top
helo


{ Da die Abfrage zur Logfile erstellung im
Code ein Bug hat
funktioniert sie nicht !!

Deswegen schrieb ich, ich sei gespannt... }


hehe das habe ich schon gedacht ...
Ich bin jetzt an einer Vers. die das in ca. 10 Sekunden verarbeiten wird !
Auserdem wird das Design ein wenig anders.
Dan wären wir bei Update 5


greetz lowbyte
Member: lowbyte1
lowbyte1 Oct 30, 2007 at 02:55:06 (UTC)
Goto Top
helo

Nun ist die Vers. 1.30 da


  • Perfomance Update _-> 10sec. - 12sec

Speed finde ich geil ... und das mit Batch.

  • Style angepasst

  • Time Limite für Rückmeldung entfernt...
(da dieser Para. Theoretisch Konstant auf 1 stehen kann,
und keine konsequenzen auf die ARP Requests haben.)


Der neue Source-Code 1.30 werde ich jetz oben ersetzen.


cyu lowbyte
Member: lowbyte1
lowbyte1 Jan 09, 2008 at 23:21:11 (UTC)
Goto Top
helo


update

  • (efizienter code)

  • MAC mit hersteller

sourcecode wurde oben ersetzt.


lowbyte

es gibt nur eins 0 or 1
Member: miniversum
miniversum Jan 14, 2008 at 14:50:03 (UTC)
Goto Top
Bei mir kommt ne unschöne Fehlermeldung:"FINDSTR: IEEEMACLIST.txt kann nicht geöffnet werden.".
Könntst Du vielleicht mit nem if exist abfangen...

miniversum
Member: lowbyte1
lowbyte1 Jan 15, 2008 at 05:56:02 (UTC)
Goto Top
____________________________________

AN ALLE
____________________________________


helo miniversum


du kannst die liste downloaden. !

unter : standards.ieee.org/regauth/oui/oui.txt

dann die datei in IEEEMACLIST.txt umbenennen, und ins selbe verzeichnis wie die batch stecken.
dann funktioniert der script wie er sollte.
wen alles funktioniert sollte es dir beim output den hersteller der nic auch anzeigen.


lowbyte
Member: alex4444
alex4444 Jan 15, 2008 at 12:29:38 (UTC)
Goto Top
cooles Programm! gute Laufzeit.

Danke!
Member: miniversum
miniversum Jan 15, 2008 at 15:49:28 (UTC)
Goto Top
Ichhab bei mir jetzt einfach ein If exist eingebaut udn gut ist. Wenn die Datei da ist gehts wie es soll.

miniversum
Member: lowbyte1
lowbyte1 Jan 17, 2008 at 13:53:20 (UTC)
Goto Top
helo

so wie ich feststellen musste hat der code noch einen kleiner bug der sich auf den
Output auswirken könnte.dies tritt auf wenn man eine anderes subnet als das eigene scannt.(wenn möglich).

der fehler wurde oben in der source behoben.


lowbyte
Mitglied: 43344
43344 May 20, 2008 at 05:29:29 (UTC)
Goto Top
Feine Sache!!!

Kann man das evtl. noch etwas anpassen, um auch einen Adresskreis von sagen wir mal 1.1.1.x scannen zu können ??

Gruß

Style
Member: lowbyte1
lowbyte1 May 29, 2008 at 16:06:10 (UTC)
Goto Top
hello

das geht schon ...indem du de code anpasst...


lowbyte
Member: Nowologix
Nowologix Sep 04, 2008 at 00:18:40 (UTC)
Goto Top
würde den code gerne mal verwenden...
aber ich kopiere mir immer diese lästigen zahlen und leerzeilen mit hinein... :- /
Kannst du den nochmal als plaintext posten ?
(oder ich geb mir einfach 5minuten mühe, ihr habt recht ^^)
Member: miniversum
miniversum Sep 04, 2008 at 14:03:21 (UTC)
Goto Top
Wenn Du beim Code oben auf "Quelltext" klickst hast dus schon.
Member: Snowman25
Snowman25 Feb 23, 2010 at 09:03:55 (UTC)
Goto Top
Hi @lowbyte1,

'n ganz nettes Feature wäre noch, IP-Range und Logfile per Übergabeparameter anzugeben.
Ausserdem weiss ich nicht, ob das so stimmt, aber als Endergebnis bekomme ich in meinem Netz folgendes heraus:
Scan .. vom ## DATE:23.02.2010 ## Time:10:01:54.09 ## 
 
 ~44,60  -UP-   Localhost 
 
 
 
All activ Host's im Subnet .. 

Gruß
Snow
Member: lowbyte1
lowbyte1 Feb 23, 2010 at 17:48:27 (UTC)
Goto Top
HI Snowman

Ich würde das ganze mal debugen. Wen du Vista benutz kan es sein das zum bsp. arp -d oder andere Befehle nicht richtig ausgeführt weredn können.
Die batch würde auf Xp optimiert !. Darum kann ich nichts versprechen, für andere Windows Versionen.


lowbyte
Member: miniversum
miniversum Feb 23, 2010 at 18:01:53 (UTC)
Goto Top
Die Meldung kann ja fast nur aus Zeile 130, 131 kommen... bzw. was dazu gehört.
Member: lowbyte1
lowbyte1 Feb 23, 2010 at 19:09:18 (UTC)
Goto Top
hi
Würde mal die stelle anschauen..so wie es miniversum geschrieben hat. Warscheinlich kann bei dir die lokale Ip nicht ausgewertet werden.
Debug bei dieser stelle doch einmal.! Und schau was passiert.

Bei zeile 128. :

Ipconfig | findstr "IP-Adresse"> LocalIP.txt

For /F "delims=" %%k in (LocalIP.txt) do @set "Pvar=%%k"

Set request=%Pvar:~44,60%

Echo. %request% -UP- Localhost


Die Ausgabe sollte etwa so aussehen:
Scannvorgang der Ip-Range 172.17.0.1 - 172.17.0.255 ist abgeschlossen ..


 172.17.0.3  -UP-   Localhost
 172.17.0.1  -UP-   MAC = 00-00-0C-ff-44-90   -   CISCO SYSTEMS, INC.
/*weitere Systeme */ ...



All Activ Hosts im Subnet ..


Output saving ?..y/n

lowbyte
Member: Snowman25
Snowman25 Feb 24, 2010 at 09:04:12 (UTC)
Goto Top
Ok, Fehler gefunden.
Eigentlich ganz einfach:
Englischs System --> Gibt in der Ausgabe von ipconfig keine Deutschen Wörter, allerdings englische.
Dachte zuerst, es könnte an der IPv6-Kompatiblität meines Systems liegen, deshalb hab ich an die pings jeweils ein -4 angehängt (was dann ja auch nichts gebracht hat).
Deshalb solltest du Zeile 128:
Ipconfig | findstr "IP-Adresse"> LocalIP.txt
änder in
Ipconfig | findstr "IP-Adresse"> LocalIP.txt  
if %ERRORLEVEL%==1 (
	Ipconfig | findstr "IP Address"> LocalIP.txt  
)

Genauso mit dem Standardgateway in Zeile 90:
ipconfig | findstr "Standardgateway" > sgw.txt  
if %ERRORLEVEL%==1 (
	ipconfig | findstr "Default Gateway" > sgw.txt  
)

und mit dem arpcache-scan in den zeilen 119 und 120:
type arpcache.txt | findstr "statisch">> arp_req.txt  
if %ERRORLEVEL%==1 (
	type arpcache.txt | findstr "static">> arp_req.txt  
)
type arpcache.txt | findstr "dynamisch">> arp_req.txt  
if %ERRORLEVEL%==1 (
	type arpcache.txt | findstr "dynamic">> arp_req.txt  
)

Damit hättest du dann schonmal knapp 50% aller WindowsXP-Rechner weltweit abgedeckt...

Gruß
Snow

PS:
Zeile
 for /f "tokens=2*" %%c in ('findstr /i "%var%" IEEEMACLIST.txt') do set "VE=%%d"
Liese sich auch noch in
  if exist IEEEMACLIST.txt (
	for /f "tokens=2*" %%c in ('findstr /i "%var%" IEEEMACLIST.txt') do set "VE=%%d"  
  )
änder. Gibt eine wesentlich schönere ausgabe, sollte die IEEEMACLIST.txt nicht vorhanden sein.

PPS:
unter http://snowman25.de/IEEEMACLIST.txt ist eine gekürzte Mac-Liste verfügbar.
Habe ich bloß schnell aus der Originalen per
 type IEEEMACLIST.txt | findstr "(hex)" >>IEEEMACLIST_new.txt
erstellt.
Member: lowbyte1
lowbyte1 Feb 24, 2010 at 13:32:52 (UTC)
Goto Top
Hi

Das ist alles gut. Doch auf diese Sachen habe ich bei der implementierung nicht geschaut. Wie gesagt es ist auf Xp Pro Deutsch optimiert.


lowbyte
Member: Snowman25
Snowman25 Feb 24, 2010 at 13:37:53 (UTC)
Goto Top
Das 'if exist'-statement ist eher ein Bugfix.
Wie gesagt es ist auf Xp Pro Deutsch optimiert.
Naja, jetzt kann es halt auch Englisch. Immerhin schreibst du deine VB-MsgBox auch in Englisch.
Member: lowbyte1
lowbyte1 Feb 24, 2010 at 14:06:53 (UTC)
Goto Top
HI

Ja... werde es ersetzen !
Bei der entwicklung des scriptes dachte ich halt nicht an OS ver. konflikte.
Läuft es jetz bei dir wenigstens jetzt einwandfrei ?


lowbyte
Member: lowbyte1
lowbyte1 Feb 24, 2010 at 14:25:08 (UTC)
Goto Top
Hi zusammen


Da Snowman ein paar anregungen hatte ,wurde der Quelltext ein bischen modifiziert. So das er jetz auch auf Englischen versionen läuft.


lowbyte
Member: Snowman25
Snowman25 Feb 24, 2010 at 14:47:19 (UTC)
Goto Top
Hi,

Ja, Läuft jetzt einwandfrei. Mit der gekürzten IEEEMACLIST (statt 2 MB nur 1/2 MB) gehts sogar noch ein klein wenig schneller. Wobei es eigentlich sowieso schon rasend schnell ist.
Danke für dieses tolle Skript!

Gruß
Snow
Member: lowbyte1
lowbyte1 Feb 24, 2010 at 16:23:05 (UTC)
Goto Top
Hi Snow

Freut mich das es dir gefällt. Danke für deine anregungen.


lowbyte
Member: Snowman25
Snowman25 Apr 26, 2010 at 11:24:46 (UTC)
Goto Top
Zitat von @Snowman25:
unter http://snowman25.de/IEEEMACLIST.txt ist eine gekürzte Mac-Liste verfügbar.
Jetzt verfügbar unter http://administrator.snowman25.de/IEEEMACLIST.txt
Member: kbudde
kbudde May 17, 2010 at 10:59:52 (UTC)
Goto Top
Das Skript ist toll. Das kommt in meine Sammlung.

Eine Sache allgmeiner Natur muss aber noch angemerkt werden:
Das beantworten von ARP Anfragen kann durchaus geblockt werden. Ich habe das mal bei Norton gesehen.
Es gibt eine Einstellung, dass nur Anfragen von Hosts mit den man "reden möchte" beantwortet werden (Stealth mode) oder so.

Diese Systeme erkennt das Skript dann nicht.
Member: lowbyte1
lowbyte1 May 17, 2010 at 19:17:24 (UTC)
Goto Top
Hi

Schön das es dir gefällt.

Das beantworten von ARP Anfragen kann durchaus geblockt werden. Ich habe das mal bei Norton gesehen.
Es gibt eine Einstellung, dass nur Anfragen von Hosts mit den man "reden möchte" beantwortet werden (Stealth mode) oder so.

Ja das ist schon klar. Aber die Standart Firewall von Microsoft macht dies zum bsp. nicht, so wie viele andere auch nicht. Und ausserdem ist diese "Anti Arp-Request" Option sicher nicht standard mässig gesetzt.


lowbyte
Mitglied: 60730
60730 Jul 03, 2010 at 10:38:56 (UTC)
Goto Top
Salü Lowbyte,

einen "Bock" habe ich bei deiner Version - genau den Bock, den ich bei meinem Beispiel umgangen habe.

Grund sind die "vielen" Nics die mittlerweile doch eher üblich als die Ausnahme sind.
Dass mich (zum allerersten mal in 3 Jahren) meine Sonicwall rausgeworfen hat, nachdem ich dein Script laufen liess,
- sortiere ich mal in die Kategorie Zufall ein, denn bei dem Wetter geh ich liebe mit dem Kindl auf den Spielplatz.

edit - nein - kein Zufall...

C:\Dokumente und Einstellungen\Ti.Mobeil>ipconfig /all

Windows-IP-Konfiguration

Ein interner Fehler ist aufgetreten: Ein an das System angeschlossenes Gerät fun
ktioniert nicht.

Wenden Sie sich an den Microsoft Software Service, um weitere Hilfe zu erhalten.


Zusätzliche Informationen: Unbekannter Medienstatuscode

Und die Sonicwall wirft mich (den Rechner) nach dem Scriptlauf immer raus - der Gag mit 255 einzelnen zweizeilern mal ordentlich last auf alles zu geben, sorry - ist nix für mich und die FW denkt sich "ihren" Teil und macht dementsprechend das, wozu Sie da ist.

meine Ipconfig - zur Abwechslung mal mit parameter -all Die mac Adressen anonymisiert.
Windows-IP-Konfiguration
        Hostname. . . . . . . . . . . . . : Timobeil050
        Primäres DNS-Suffix . . . . . . . : 
        Knotentyp . . . . . . . . . . . . : Hybrid
        IP-Routing aktiviert. . . . . . . : Nein
        WINS-Proxy aktiviert. . . . . . . : Nein

Ethernetadapter VMware Network Adapter VMnet8:
        Verbindungsspezifisches DNS-Suffix: 
        Beschreibung. . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
        Physikalische Adresse . . . . . . : 00-50-xx-xx-xx-xx
        DHCP aktiviert. . . . . . . . . . : Nein
        IP-Adresse. . . . . . . . . . . . : 192.168.153.1
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0

        Standardgateway . . . . . . . . . : 


Ethernetadapter VMware Network Adapter VMnet1:
        Verbindungsspezifisches DNS-Suffix: 
        Beschreibung. . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
        Physikalische Adresse . . . . . . : 00-50-xx-xx-xx-xx
        DHCP aktiviert. . . . . . . . . . : Nein
        IP-Adresse. . . . . . . . . . . . : 192.168.204.1
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0
        Standardgateway . . . . . . . . . : 

Ethernetadapter Drahtlos:
        Verbindungsspezifisches DNS-Suffix: 
        Beschreibung. . . . . . . . . . . : Intel(R) PRO/Wireless 3945ABG Network Connection
        Physikalische Adresse . . . . . . : 00-1C-xx-xx-xx-xx
        DHCP aktiviert. . . . . . . . . . : Ja
        Autokonfiguration aktiviert . . . : Ja
        IP-Adresse. . . . . . . . . . . . : 192.168.199.100
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0
        Standardgateway . . . . . . . . . : 192.168.199.1
        DHCP-Server . . . . . . . . . . . : 192.168.199.1
        DNS-Server. . . . . . . . . . . . : 192.168.199.1
        Lease erhalten. . . . . . . . . . : Samstag, 3. Juli 2010 11:42:06
        Lease läuft ab. . . . . . . . . . : Sonntag, 4. Juli 2010 11:42:06

Programmlauf
__________________________________________________

                        MP_ARP sweeper 1.45
__________________________________________________


Die ersten 3 Oktette der Address Range angeben ...

Syntax ( 172.16.3 ) -255)

Input:
192.168.199 -255
Die Range 192.168.199 -255.1 - 192.168.199 -255.255 wird gescannt ..
Scannvorgang der Ip-Range 192.168.199 -255.1 - 192.168.199 -255.255 ist abgeschlossen ..
- du siehst - es wurde 192.168.199 -255 eingegeben, aber machen tut er anscheinend Ip-Range 192.168.199 -255.1 - 192.168.199 -255.255 ,
also 5 okette. Da solltest du die Anweisung, was einzugeben ist - dautauglicher beschreiben - nur die ersten drei oktette - ohne () und ohne -255.
Das er so in Wahrheit was ganz anderes macht - siehe weiter unten bei den Logfiles.

   -UP-   Localhost
All Activ Hosts im Subnet ..



Output saving ?..y/n

die Erases hab ich deaktiviert und:
Arpcache.txt
Keine ARP-Eintr„ge gefunden.
LocalIP
Windows-IP-Konfiguration
Logfile.txt
Scan .. vom ## DATE:03.07.2010 ## Time:11:42:17,79 ##

192.168.204.1 -UP- Localhost


All activ Host's im Subnet ..

jetzt mal "richtig -also so wie das einzugeben ist und nicht so, wie du es im
Scannvorgang der Ip-Range 192.168.199.1 - 192.168.199.255 ist abgeschlossen ..



 192.168.199.100  -UP-   Localhost
 192.168.199.1  -UP-   MAC = xx--xx-xx-xx-xx-xx -   xyz.





All Activ Hosts im Subnet ..
Da fehlen "einige" Systeme, die gerade eingeschaltet und im gleichen Netz sind - mußt du mir "leider" so glauben.

Du siehst, trotz eingabe des Netzes - wenn man die Zahlen so eingibt, wie du es vorschlägst - dann versucht er den mittleren Nic zu nehmen? - nicht den ersten, oder den letzten oder den, der zu dem Netz gehört und das funktioniert natürlich auch nur dann, wenn der mittlere (zufällig) der aktive ist.

Und wenn ich es so eingebe, wie es sein soll - dann findet er außer meiner Sonicwall nix - also irgendwo ist der Code noch arg unrund.

btw: Das einzige, was ich an deinem ganz kurz gelesenen Code bemerkt habe - ist
42. :RE

158. if y == %NOYES% goto:c_logf
159. if Y == %NOYES% goto:c_logf
wäre doch simpler mit
158. if /i y == %NOYES% goto:c_logf
zu lösen.

Und anstatt "umständlich - wie es dir Snow gezeigt hat - je nach OS Sprache nach der IP A oder IPadresse zu suchen, kannst du bequem mit
ipconfig -all|findstr "IP.Adres"
arbeiten. Du schreibst ja - ist für XP optimiert.
Ansonsten mein Weg nach Rom wäre indem Fall:
for /f "tokens=2 delims=" %%a in ('"ping %computername% -n 1|find "[""') do echo %%a

Wie gesagt - nur kurz überflogen.

btw: mir ging es eigentlich nicht um die Funktion, sondern um das Zeigen, wie man anhand von Befehlen - die "formatierte Listen" ausspucken - diese auswerten und "sinnvoll" kürzen kann. Das diese Abfrage in einem sauberen Netz eigentlich vollkommen überflüssig ist da sind wir uns beide ja hoffentlich einig.
Und ein arger Kritikpunkt meinerseits sollte auch noch erlaubt sein - dein Code besteht nur aus Befehlen - die wenigsten Zeilen sind "unten" kommentiert.
Für eine Anleitung nach heutigen Massstäben etwas dürftig.
Und das sowohl deine, als auch meine Version in anderer Hinsicht kompletter Murks ist, weil wir wegen Speed irgendwelche Krücken nehmen (ein Rechner im halbschlaf antwortet nicht auf einen einzelnen Ping) - ist ja auch klar.

Auch ein simples ping netzwerk -> ping 192.168.0.255 wirkt nicht immer auf alles.

Nur, warum du so auf "ARP" bestehst - so richtig verstanden warum du dann deine Lösung so geschrieben hast - verstehe ich nicht.

ARP geht nicht über Router/Gateways - denn den Arp Cache für die anderen Netze halten die vor - nicht der lokale Rechner.
Warum man dann umständlich die ersten 3 Oktette des zu durchsuchenden Netztes eingeben soll - ist mir ehrlich geschrieben schleierhaft.

Wie oben geschrieben, mit den Taschenspüielertricks, die du da nimmst - kam man vielleicht mal durch, aber heutige Sicherheitssysteme erkennen einen nicht nur angeblichen Aussähversuch und kicken deinen Nic.

Wenn - wie bei mir - anderen Notebook mehrere nics gefunden werden, kannst du doch bequem diese auslesen, das jeweilige GW anpingen und wenn das antwortet, weißt du welches Netz aktiv ist und sich durchsuchen läßt.

Daher und weil - wie geschrieben du wenig und nur außrhalb des Codes dokumentierst (du kannst dir denken, was die Jungs haben wollen, was Sie machen und dass die sich später nicht mehr an den Ursprung wo das Script herkam erinnern) - gäbe es von mir ein mangelhaft. Aber ich lass das mal und hoff du holst das nach.


Gruß
Member: lowbyte1
lowbyte1 Aug 24, 2010 at 15:01:50 (UTC)
Goto Top
Hallo TimoBeil

Es geht um den Batch-Script Subnetscanner.
Ja das ist alles klar, doch damals ging es mir nur um Geschwindikeit.
Und das der Code Suboptimal ist, das weis ich auch.
Doch wir müssen uns wohl nicht darüber streiten das unsere Batch-Scrpts völliger HumBug sind.!

Das würde ich eher mit meinem Scanner machen den ich in C geschriben habe. Oder zbsp. NMAP
Und klar würde ich nicht einfach planlos ein Netz scannen. Ich komme aus dem bereich Netzwerksicherheit / Software Eintwickler , und das ist mir schon klar.
Slow - Random - Header modifikation (u.a IP - MAC Spoofing ,Flag modif.) etc etc. sind das A und O, dazu kommt ein Breites wissen über Protokolle & Standard's etc.
Wen man will, und gut ist kann man jede IDS ,IPS ,HW Firewall etc. unterwandern. Und somit würde ich all Deine Rechner entdecken.


Unter dem Strich, um ein Netz zu scannen sind diese Batches nicht's. Ein IDS würde auch Dein Batch erkennen, wenn es den richtig gefütert ist.

PS: Komm doch nicht immer mit Deiner Sonicwall, die ist leider kein cent Wert. Und das kann ich Dir belegen. ;) Wir haben hier zum Pentesting eine NSA E7500, die ist schon echt lustig ;) ;)
Aber das ist jedem das seine. Und noch was ...ich zitiere "Wie oben geschrieben, mit den Taschenspüielertricks, die du da nimmst ". Und etwas kann ich Dir garantieren, wen ich in dem Suboptimalen Script die Wartezeit zwischen den Icmp Packet um sagen wir mal ne Minute Setze, oder noch besser, Random zwischen 30sec und 1 Min, dann schmeist mich Deine Sonicwall nicht mehr raus! Dazu könnte ich die Source Mac spoofen und dazu den Broadcast abhöhren. etc..etc


Viele Wege führen nach Rom, doch Ping (ICMP) würde ich als letztes vorziehen.
Und Batches sind auch nicht dafür gedacht, Netzwerk-Scanner zu schreiben, da sind wir uns hofentlich auch einig. Einfach zu unflexibel ^10.

(Wenn Du dich beleidigt fühlst, ...das wollte ich nicht).

lowbyte