Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zeit zum finden eines Passwortes messen (SCHULPROJEKT!)

Frage Entwicklung Batch & Shell

Mitglied: niklaskar

niklaskar (Level 1) - Jetzt verbinden

03.09.2013, aktualisiert 04.09.2013, 1393 Aufrufe, 14 Kommentare, 1 Danke

Hallo,

ich bin gerade für ein Schulprojekt dabei, ein Programm zu programmieren um Aussagen über die Sicherheit eines Passwortes zu treffen. Das Ziel des Projektes ist es, das Internet ein wenig sicherer zu machen, indem den Leuten anhand von erschreckenden Werten aufgezeigt wird wie grob fahrlässig sie handeln, in dem Moment, in dem sie ein kurzes Passwort oder ein Passwort ohne Sonderzeichen wählen um damit ihre Konten abzusichern.
Ich habe das Programm bereits in PHP geschrieben, bis mir die Unzuverlässigkeit von PHP aufgefallen ist.
Nun habe ich mich an Batch-Programmierung gewagt, dieses Projekt zu verwirklichen.
In dem Ablauf werden zwei Programme aufzurufen. Das erste generiert einen md5 Hash, das zweite versucht mittels durchprobieren, das richtige Passwort herauszufinden.
Nun muss ich nur noch die Zeit, die das finden des Passwortes (soweit erfolgreich) in Anspruch genommen hat herausfinden und in eine Textdatei loggen, so dass ich die Daten nachher mit Excel verarbeiten kann.
Dazu habe ich bisher folgenden Code:
01.
@Echo Off 
02.
REM zufaelligen String generieren 
03.
Setlocal EnableDelayedExpansion 
04.
Set _RNDLength=3 
05.
Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 
06.
Set _Str=%_Alphanumeric%987654321 
07.
:_LenLoop 
08.
IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop 
09.
SET _tmp=%_Str:~9,1% 
10.
SET /A _Len=_Len+_tmp 
11.
Set _count=0 
12.
SET _RndAlphaNum= 
13.
:_loop 
14.
Set /a _count+=1 
15.
SET _RND=%Random% 
16.
Set /A _RND=_RND%%%_Len% 
17.
SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1! 
18.
If !_count! lss %_RNDLength% goto _loop 
19.
REM String in Datei schreiben 
20.
echo.>%temp%\tmp 
21.
set/p=%_RndAlphaNum%<%temp%\tmp>md5.txt 
22.
del %temp%\tmp 
23.
REM md5 Hash der Datei bilden 
24.
for /f "tokens=*" %%i in ('md5 md5.txt') do set password=%%i 
25.
REM datei löschen 
26.
del md5.txt 
27.
REM Ursprungs String herausfinden 
28.
finder.exe --hash %password%
Die Ausgabe der finder.exe ist dabei folgendermaßen:
01.
System / Thread #0: Collision found: 2hf 
02.
Info   / Thread #0: Candidate/Hash pairs tested: 12 176 ( 1.22e+004 ) in 3ms 
03.
Info   / Thread #0: Allocated key space: 2.42e+028 candidates, 0.00% done 
04.
Warning/ Average speed removed (not enough session time, need 500ms)
Hat einer von euch eine Idee, wie ich die benötigte Zeit, den String, den Hash und die Anzahl der probierten Hashes so in eine Datei exportiere, dass ich diese dann gesammelt in Excel einlesen kann?

Vielen Dank schonmal!!!

Gruß Niklas
Mitglied: Endoro
03.09.2013 um 22:40 Uhr
Hi,
ich würde die in Zeilen uns Spalten mit Komma, Tab oder sonstwie getrennt ausgeben.
Du kannst auch feste Spaltenbreiten nehmen, Excel importiert das auch.
lg.
Bitte warten ..
Mitglied: niklaskar
03.09.2013 um 23:06 Uhr
Zitat von Endoro:
Hi,
ich würde die in Zeilen uns Spalten mit Komma, Tab oder sonstwie getrennt ausgeben.
Du kannst auch feste Spaltenbreiten nehmen, Excel importiert das auch.
lg.

Aber wie lese ich erst mal Zeit, Passwort, Hash, Anzahl Hashes aus?
Exportieren tue ich das ganze doch am besten mit einer Art Separator getrennt und dann am Ende der Zeile nochmal einen, oder?
z.B. so?
01.
67000,passwort1,6e6fdf956d04289354dcf1619e28fe77,2345323; 
02.
634823,geheimespw,253d0ba904f79d7a6ed7fc20cd5849d6,8848484884;
Bitte warten ..
Mitglied: Endoro
04.09.2013 um 19:22 Uhr
Hi,
in deiner Ausgabe von finder sind die entsprechenden Daten nicht drin.

Als Feldtrenner kannst du Kommas nehmen, wenn die im Passwort nicht vorkommen.
Am Zeilenende ist nichts weiter erforderlich, da seht schon (unsichtbar) 0Dh0Ah.
lg.
Bitte warten ..
Mitglied: niklaskar
04.09.2013 um 22:24 Uhr
Hi,

Hash ist schon als variable gespeichert, %_RndAlphaNum%
01.
System / Thread #0: Collision found: 2hf
Dieser Teil beherbergt das Passwort, und zwar der String, nach "Collision found". In diesem Falle ist das Passwort "2hf".
Die Anzahl der Hashes die probiert wurden, sowie die Zeit sind auch zu sehen.
01.
Info   / Thread #0: Candidate/Hash pairs tested: 12 176 ( 1.22e+004 ) in 3ms
In diesem Falle wurden 12 176 Hashes probiert und dies in einer Zeit von 3ms.

Hast du eine Idee, wie ich diese Werte in Variablen speichern kann?

Gruß Niklas
Bitte warten ..
Mitglied: Endoro
04.09.2013 um 23:05 Uhr
Hi,
das ist klar soweit.
Was soll mit den 'Fehlern' (kein PW gefunden) passieren und wie wird der Fehler bemerkt ?
  1. errorlevel
  2. Ausgabe von finder.exe
lg.
Bitte warten ..
Mitglied: niklaskar
05.09.2013 um 07:19 Uhr
Hi,

diese Fehler sollten nicht auftreten, da ich ja immer die richtige Stringlänge vorgebe und bei der Methode, jeden möglichen String auszuprobieren, der richtige einfach rauskommen muss ;)
Es geht ja nicht um "richtig unbekannte" Passwörter, diese werden ja vorher per Zufall mit einer bestimmten Länge erzeugt.
Deswegen denke ich, kann man diesen Fall vernachlässigen um das Programm so einfach wie möglich zu halten.

lg
Bitte warten ..
Mitglied: Endoro
05.09.2013, aktualisiert um 08:38 Uhr
Hi,
der Code geht davon aus, dass finder.exe seine Ausgabe auf STDOUT (den Bildschirm) macht.
Er wird mit Sonderzeichen wie %!*=~"^ möglicherweise nicht oder nicht richtig funktionieren.
01.
@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION 
02.
SET "pat1=Collision found: " 
03.
SET "pat2=pairs tested: " 
04.
FOR /f "delims=" %%a IN ('finder.exe --hash %password% ^| findstr /c:"%pat1%" /c:"%pat2%"') DO ( 
05.
	SET "line=%%a" 
06.
	IF "!line:%pat1%=!" neq "!line!" ( 
07.
		SET "password=!line:*%pat1%=!" 
08.
	) ELSE ( 
09.
		SET "endline=!line:*%pat1%=!" 
10.
		FOR /f "tokens=3delims=:(" %%b IN ("!endline!") DO SET "numhashes=%%b" 
11.
		SET "numhashes=!numhashes: =!" 
12.
		FOR %%b IN (!endline!) DO SET "hashtime=%%b" 
13.
		SET "hashtime=!hashtime:~0,-2!" 
14.
15.
16.
ECHO %hashtime%,%password%,%_RndAlphaNum%,%numhashes%
Wobei ich jetzt nicht genau weiss, warum das Passwort noch mal eingelesen werden muss ...
lg.
Bitte warten ..
Mitglied: niklaskar
09.09.2013 um 11:19 Uhr
Stimmt, da hast du Recht, das Passwort ist ja eigentlich bekannt.
Dein Codeschnipsel produziert anscheinend eine Endlosschleife. Wenn man das @echo off wegkommentiert, zeigt dich, dass das Bash Script bei ich glaube Linie 14 stehen bleibt.
Linie 16 wird auf jeden fall nicht mehr ausgegeben.
Bitte warten ..
Mitglied: Endoro
09.09.2013, aktualisiert um 22:41 Uhr
Hi,
ich hab es hier mit dem von dir geposteten Output von finder getestet.
Wenn der nicht stimmt, geht gar nix.
Du könntest den nochmal checken und ein weiteres Beispiel hier reinschreiben.
Ggf muss eine robustere Lösung her.
lg.

PS: ich hab mal was robusteres aufgeschrieben:
01.
@ECHO OFF &SETLOCAL 
02.
SET "pat=pairs tested: " 
03.
FOR /f "tokens=3,5delims=():" %%a IN ('finder.exe --hash %password% ^| findstr /c:"%pat%"') DO ( 
04.
	SET "numhashes=%%a" 
05.
	SET "hashtime=%%b" 
06.
07.
SET "numhashes=%numhashes: =%" 
08.
SET "hashtime=%hashtime:~4,-2%" 
09.
ECHO %hashtime%,%password%,%_RndAlphaNum%,%numhashes%
Bitte warten ..
Mitglied: Endoro
10.09.2013 um 19:51 Uhr
Okey, ich habs noch mal überarbeitet, Falls es immer noch nicht geht, muss ich den Output mit "finder.exe" prüfen.
01.
@ECHO OFF &SETLOCAL 
02.
SET "pat=pairs tested: " 
03.
FOR /f "tokens=3,5delims=():" %%a IN ('finder.exe --hash %password% ^| findstr /c:"%pat%"') DO ( 
04.
	SET "numhashes=%%a" 
05.
	SET "hashtime=%%b" 
06.
07.
SET "numhashes=%numhashes: =%" 
08.
FOR /F "delims=inms " %%a in ("%hashtime%") do SET "hashtime=%%a" 
09.
ECHO %hashtime%,%password%,%_RndAlphaNum%,%numhashes%
lg.
Bitte warten ..
Mitglied: niklaskar
12.09.2013 um 18:18 Uhr
Super, funktioniert wie ne eins !
Genau das brauchte ich
Danke dir

Lg Niklas
Bitte warten ..
Mitglied: niklaskar
13.09.2013 um 07:31 Uhr
Habe nun gerade ein längeres Passwort (5 Stellen) probiert. Dort dauert die Entschlüsselung länger als 999ms und dadurch hat sich so ein bisschen die Ausgabe geändert, das Programm gibt jetzt xs yms aus.
01.
Info   / Thread #0: Candidate/Hash pairs tested: 54 132 066 ( 5.41e+007 ) in 4s 
02.
988ms 
03.
Info   / Thread #0: Allocated key space: 2.42e+028 candidates, 0.00% done 
04.
Info   / Thread #0: Average speed: ~ 10 851 082 ( 1.09e+007 ) h/s
Hast du dazu vielleicht noch ne Idee, wie man das in die Variable bringen kann?
Das ganze könnte ja z.B. nach dem Motto abgespeichert werden
12s 765ms => 12.765

Danke dir!
Bitte warten ..
Mitglied: Endoro
13.09.2013 um 09:57 Uhr
Hi,
ich würde das als Millisekunden speichern und die Formatierung mit Excel später erledigen:
01.
@ECHO OFF &SETLOCAL 
02.
SET "pat=pairs tested: " 
03.
FOR /f "tokens=3,5delims=():" %%a IN ('finder.exe --hash %password% ^| findstr /c:"%pat%"') DO ( 
04.
	SET "numhashes=%%a" 
05.
	SET "hashtime=%%b" 
06.
07.
SET "numhashes=%numhashes: =%" 
08.
SET "hashtime=%hashtime:*in=%" 
09.
FOR /F "tokens=1,2delims=ms " %%a in ("%hashtime%") do SET "hashtime=%%a%%b" 
10.
ECHO %hashtime%,%password%,%_RndAlphaNum%,%numhashes% 
11.
 
Bitte warten ..
Mitglied: niklaskar
16.09.2013 um 21:19 Uhr
Hi,

der Codeschnipsel weigert sich zu funktionieren, die Variable %hashtime wird gar nicht mit Werten gefüllt, sondern bleibt leer.
(Ich denke) Deswegen gibt das gesamte Skript nur
01.
*in=,,, =
aus.
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
Firewalldurchsatz messen
gelöst Frage von Eagle06LAN, WAN, Wireless17 Kommentare

Guten Abend, ich habe vor den Durchsatz meiner Firewall zu messen. Angegeben ist dieser dabei mit 5 Gbit/s und ...

PHP
Datenverbrauch messen
gelöst Frage von MiguelMesaPHP5 Kommentare

Hallo, ich entwickle eine Webcamchat- Website und möchte folgenden Service anbieten. Ein Zähler soll interaktiv den Datenverbrauch messen, den ...

Monitoring
Etagentraffic messen
Frage von svenderersteMonitoring6 Kommentare

Hallo zusammen, Ich habe folgendes Problem. Wie haben ein Gebäude mit 3 Etagen auf jeder Etage befindet sich eine ...

LAN, WAN, Wireless
Netzwerkperformance messen
gelöst Frage von AkcentLAN, WAN, Wireless7 Kommentare

Hallo, mit welchen Tools messt Ihr die Netzwerkperformance und was sind dann Referenzwerte? Viele Grüße, Herry

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 17 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 22 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 22 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
gelöst Frage von prodriveNetzwerkmanagement12 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...