| Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a. |
Diskussion: Mein eigenes Bruteforce-Tool im Forum Cryptography & Encryption, in der Kategorie Security Area; Anzeige Hi @all! Ich habe dieses Wochenende mein eigenes Programm zum Knacken von Hashes programmiert. Das Ganze habe ich mit ...
![]() |
| | #1 (permalink) |
| Registriert seit: 13.03.05 ![]() Likes: 0 | Anzeige Hi @all! Ich habe dieses Wochenende mein eigenes Programm zum Knacken von Hashes programmiert. Das Ganze habe ich mit Visual Basic .NET (für alle Noobs: .NET-Paket wird benötigt) realisiert. :) Klar ist das nicht so schnell und der Code ist auch noch nicht optimiert (es gibt da noch andere generierende Funktionen die mit Array-Permutationen arbeiten^^) aber ich wollte so was einfach mal selbst programmieren. Einfach schon weil ich Erfahrung sammeln will, mich das Thema interessiert und ich etwas experimentieren will. Das Tool gibt es im Moment noch hier: http://files.robertnitsch.de/Hashsuite.exe Falls der Link tot ist gibt es das Tool wahrscheinlich hier: *mittlerweile ungültigen Link am 09.07.2007 entfernt* (weil ich in ein paar Tagen das Programm offiziell auf meiner Homepage veröffentlichen will!) Besonders stolz bin ich auf die Wildcars-Funktion. Das heisst man kann alle Kombinationen nach dem Schema '***istblöd' durchprobieren (lassen *g*). Wenn jemand besonders schnelle Funktionen zum Generieren etlicher Kombinationen kennt, soll er es mich bitte wissen lassen. Wer den Code haben will kann mich anschreiben. Mit der schrillen Farbgebung will ich übrigens jedem meine Lieblingsfarbe (=grün) aufzwängen. :D :) MfG, BattleMaker |
| | |
| | #2 (permalink) | ||
| Registriert seit: 20.06.05 ![]() Likes: 0 | Zuerst: Echt nicht schlechte Idee, jetzt will ich das auch mal versuchen zu programmieren... Zitat:
Zitat:
Wie überkam dich die Idee Visual Basic .NET zu verwenden? Wie gesagt, zunächst braucht man das Paket, zusätzlich frisst es Arbeitsspeicher als hättest du es in Java programmiert. | ||
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | ||
| Themenstarter Registriert seit: 13.03.05 ![]() Likes: 0 | Zitat:
![]() Zitat:
In einer anderen Programmiersprache wäre das Programm ohne Frage schneller. Aber was für mich viel mehr zählt, das ist die gesammelte Erfahrung bei der Umsetzung einer solchen Anwendung. MfG, BattleMaker | ||
| | |
| | #4 (permalink) | ||
| Registriert seit: 20.06.05 ![]() Likes: 0 | Zitat:
Zitat:
Ich selber würde die ASCII-Zeichen einfach (als Zahl darstellt) nach oben zählen, wodurch das Alphabet durchgegangen wird. Ein Char mit Array und einfach die Werte in diesem Array nach oben Zählen, jeh nach Benutzereinstellung. Das wäre wohl die schnellste Methode die mir einfallen würde. | ||
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 13.03.05 ![]() Likes: 0 | Ich arbeite tatsächlich mit einem Array. Eine Funktion getWord() in der Klasse WordGenerator kriegt dann bei jedem Durchlauf alle benötigten Parameter übergeben, unter anderem das zuletzt generierte Wort. Davon wird die letzte Stelle um eins erhöht und, sofern es das letzte Zeichen der möglichen CHAR's "übersteigt" wird die nächste Stelle erhöht usw... Damit sich das bis zum ersten Zeichen fortsetzt habe ich eine FOR-Schleife verwendet. Man muss aber auch wahnsinnig auf die Zwischenspeicherung von Variablen achten. Bestimmte Aktionen sollten außerdem nur alle X Durchläufe ausgeführt werden. Das ist in etwa mit Code: if durchlauf Mod 1500 = 0 then ... end if Insgesamt erreicht mein Code mittlerweile ca. 74000 Kombinationen pro Sekunde (neue Version hochgeladen). Im Vergleich mit Profi-Programmen ist aber nur Kleinkrams. ![]() Btw: Ich hab ein Problem mit Multithreading in dem Programm. In der Funktion md5_bytes(data() as byte) as String - die ja offensichtlich zur Generierung eines MD5-Hashs zuständig ist, tritt an dieser Stelle oft ein Fehler auf: Code: Private Function md5_bytes(ByVal data() As Byte) As String
Try
Dim ergebnis As String
Dim hash() As Byte
Dim durchl As Integer = 0
hash = md5_hasher.ComputeHash(data) ' <== HIER TRITT DER FEHLER AUF!!! Der Stacktrace verweist immer auf eine Methode die aus dem Aufruf ComputeHash() hervorgeht!
tmp_hashlength = hash.Length - 1
For durchl = 0 To tmp_hashlength
ergebnis &= hash(durchl).ToString("X2") ' um das Ganze in Hex-Schreibweise umzuwandeln
Next
Return ergebnis
Catch ex As Exception
' stille fehlerbehandlung
log("Fehler: " & ex.Message)
End Try
End Function 1. 'Auf das verworfene Objekt kann nicht zugegriffen werden.' 2. 'Hash im angegebenen Status nicht gültig.' Die Fehler treten dann auf, wenn man den Bruteforce-Thread oft beendet und neu startet. Ich habe allerdings keine Erklärung dafür. Weiß jemand Rat? MfG, BattleMaker |
| | |
| | #6 (permalink) | |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, also unter .NET ist die StringBuilder-Class xxxxx mal schneller als normale Stringmanipulationen. Bsp: Code: Dim i As Integer
Dim builder As New Text.StringBuilder()
Console.WriteLine("StringBuilder-Durchlauf wird gestartet!")
builder.EnsureCapacity(300000)
For i = 0 To 100000
builder.Append(CStr(i) & Environment.NewLine)
Next i
Console.WriteLine("StringBuilder-Durchlauf fertig!" & _
Environment.NewLine & _
"String-Durchlauf wird gestartet!")
Dim str As String
For i = 0 To 100000
str &= CStr(i) & Environment.NewLine
Next i
Console.WriteLine("String-Durchlauf fertig!") Zitat:
Aber mich würde doch intressieren, welchen Geschwindigkeiten du so erreichst (mit PC Infos), um mal zu sehen ob .NET wirklich ähnlich schnell ist wie z.B. C++, wie oft versprochen. | |
| | |
| | #7 (permalink) |
| Senior Member Registriert seit: 28.08.05 ![]() Likes: 0 | wie wäre es mit einer regex implementation für wildchar? sonst ganz gut aufgebaut |
| | |
| | #8 (permalink) |
| Themenstarter Registriert seit: 13.03.05 ![]() Likes: 0 | @Elderan: Danke für den Tipp. Bei dem bisherigen Code lässt sich das aber nicht so oft verwenden... (meine 'Methode' ist... battlemaker-isch halt )Meinen Laptop habe ich 2004 zu Weihnachten bekommen - von ALDI. Also Intel Pentium M 1,7 GHz, 512 MB Ram. Insgesamt schaffe ich mit meinem Programm durchschnittlich zwischen 65000 und 75000 Wörter pro Sekunde. Mit Cain & Abel, das ich mir zum Vergleich heruntergeladen habe, schaffe ich 3,6 Millionen Wörter pro Sekunde... *schluck* Aber man wird auch kaum ein .NET-Programm zum professionellen Knacken von Hashes einsetzen .@2Bios: Du meinst doch nicht etwa reguläre Ausdrücke?! Aber natürlich wäre auch das wieder eine Herausforderung. Mein Vater hat übrigens gemeint ich soll eher mal einen Funktionsplotter und solchen Kram programmieren (mit den Ableitungen von Funktionen) usw... MfG, BattleMaker |
| | |
| | #10 (permalink) |
| Registriert seit: 15.01.05 ![]() Likes: 0 | Die Wildcard funktion soltest du noch ausbauen (man muss immoment die länge des Pws kennen).Wie wäre es mit der Funktion "Beginnt mit" oder "Endet mit". Die vermiss ich bei vielen bisherigen Progs. Oder Geburtsdatum im Format ddmmyyy. Sowas als PW verwenden erschreckend viele meiner freunde. |
| | |
| | #11 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, das schnellste Tool wird wahrscheinlich das sein, welches auf Strings/Buchstaben komplett verzichtet. Dies ist ganz leicht zu erklären. Wenn ich z.B. 'Hallo Welt', an eine MD5-Hashfunktion übergebe, so wird der Text zuerst in 32 Bit Wörter aufgeteilt, und dann jeweils 4 davon durch den Algorithmus gedreht. Wenn ich also jetzt in eine Schleife einen Wert hochzähle, dann diesen in einen String umwandle, diesen String an die MD5 Funktion übergebe, diese den String wieder in Zahlen umwandelt, dann kann ich doch gleich auf die Stringbehandlung verzichten. Denn Strings sind extrem langsam, da diese jedes mal neu erstellt werden. Das beste wäre, wenn ich den/die Integer-Wert(e) direkt an die MD5 Hashfunktion übergebe. Somit spare ich mit das Konvertieren von Integer => String und dann String => Integer. |
| | |
| | #12 (permalink) | |
| Moderator ![]() Registriert seit: 12.02.02 ![]() Likes: 0 | Zitat:
grüße sirphreak PS: Aber ob VB sowas kann ?( | |
| | |
| | #13 (permalink) | |
![]() Registriert seit: 17.01.06 ![]() Likes: 7 | Zitat:
ich fummel auch momentan an einem bruteforce programm rum und irgend wie komm ich nur auf um die 40.000 kombinationen pro sekunde wobei auch die methode nach der es cheffriert wird etwas langsam ist mal schauen ob ich die irgend wie kürzen kann so das das ergebnis stimmt... | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Mein Eigenes Netz knacken | nitramf | WLAN-Zone | 10 | 04.10.07 14:23 |
| Wie kann ich mein eigenes WLan überwachen ? | DoppelXX | WLAN-Zone | 7 | 16.09.07 12:40 |
| tool damit mein windows schneller lädt | alexanderus | Windows | 3 | 12.10.03 20:47 |