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!)

Mitglied: niklaskar

niklaskar (Level 1) - Jetzt verbinden

03.09.2013, aktualisiert 04.09.2013, 1412 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
Backup
Find-Befehl - Es hakt gerade
Frage von it-fraggleBackup1 Kommentar

Vielleicht sollte ich endlich schlafen gehen, aber DAS muss ich noch zuende machen. Wo ist der Fehler? In /media/backups/ ...

Debian

Find: sys kernel debug Permission denied

Frage von vikozoDebian

guten Tag ich habe unter Proxmox ein LXC Container erstellt Linux prox1 4.4.15-1-pve (gcc version 4.9.2 (Debian 4.9.2-10) wenn ...

Batch & Shell

Nonsense Error - find ihn nicht. (Batch)

gelöst Frage von clragonBatch & Shell7 Kommentare

Hey Leute! Ich bin's wieder. Heute habe ich ein besonders unnötiges Problem,. Aus irgendeinem Grund hat dieses Script einen ...

Linux

Find Ausgabe in formatierte text Datei umleiten

gelöst Frage von MadM4xLinux5 Kommentare

Nabend, lese mich gerade ein wenig im Umgang mit dem Find Befehl ein und bräucht mal Hilfe. Und zwar ...

Neue Wissensbeiträge
Internet

Verlag protestiert gegen Artikel 13 (jetzt Artikel 17) der geplanten EU-Verordnung

Information von Dilbert-MD vor 2 StundenInternet

Leider etwas spät, aber immerhin hat auch der heise-Verlag eingesehen, dass die Umsetzung der Urheberrechtsreform - so wie sie ...

Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 3 TagenDatenschutz4 Kommentare

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 4 TagenSicherheit2 Kommentare

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 4 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Heiß diskutierte Inhalte
DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS14 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Grafik
Viele Fotos organisieren - Windows Dateisystem zu lahm bzw. überfordert
Frage von augustaparkGrafik12 Kommentare

Hallo und Guten Morgen, hat einer eine Idee, wie man viele Fotos sinnvoll und effizient organisieren kann? Wir haben ...

Voice over IP
Mikrotik: Voip mit SIP Phones in verschiedenen Subnetzen mit FritzBox
Frage von SpartacusVoice over IP12 Kommentare

Hallo, ich habe das Problem, dass ich verschiedene SIP-Clients in unterschiedlichen Subnetzen habe, die mit meinem Server FritzBox7412 keine ...

Windows Server
Windows 2012 R2 - Skript um Druckerkonfiguration auszulesen und zu setzen
gelöst Frage von Der-PhilWindows Server11 Kommentare

Hallo! Kennt ihr eine Möglichkeit, per Skript die Konfiguration eines Druckers auszulesen und auf einen anderen anzuwenden? Hintergrund: Ich ...