Die Hash-Funktion ist ein allgemeiner Begriff für eine Art von Funktion. Die Eingabe dieser Art von Funktion sind beliebige binäre Daten und die Ausgabe ist eine feste Länge Binärdaten, diese Art von Funktion weist die folgenden Eigenschaften auf:
Unidirektionalität: Es ist einfach und schnell, die Ausgabe aus der Eingabeberechnung zu berechnen, aber es ist mathematisch nicht machbar, die Eingabe aus der Ausgabe abzuleiten
Kollisionsbeschränkung: Es ist äußerst schwierig, zwei verschiedene Eingaben mit derselben Ausgabe zu finden
Funktionen, die diese Eigenschaften erfüllen, können als Hash-Funktionen bezeichnet werden. Verwenden Sie bestimmte Daten als Eingabe der Hash-Funktion und berechnen Sie die Ausgabe. Diese Ausgabe wird üblicherweise als Hash-Wert der Daten bezeichnet.
Eine der Hauptfunktionen der Hash-Funktion besteht darin, das Passwort sicher zu speichern. Es speichert das Passwort nicht direkt (d. h. es speichert kein Klartext-Passwort), sondern speichert den Hash-Wert des Passworts. Während der Verifizierung müssen Sie nur das eingegebene Passwort erneut berechnen. Der Hash-Wert kann mit dem Hash-Wert des gespeicherten Passworts verglichen werden, um festzustellen, ob das Passwort korrekt ist. Aufgrund der Unidirektionalität der Hash-Funktion und der Kollisionsbeschränkungen ist es für einen Angreifer schwierig, das Passwort selbst zu kennen, selbst wenn er den Hash-Wert des Passworts erhält.
Der Angreifer hat den Hash-Wert des Passworts bekommen, gibt es wirklich keine Möglichkeit, das Passwort selbst zu erfahren? Natürlich nicht. Obwohl es mathematisch gesehen nicht machbar ist, das Passwort direkt aus dem Hash-Wert des Passworts zu berechnen, wissen wir, dass es einfach und schnell ist, die Ausgabe durch die Hash-Funktion aus der Eingabeberechnung zu erhalten. Im schlimmsten Fall können Sie es versuchen. Die Passwörter, die Menschen festlegen können, sind die einzigen, die Sie einzeln ausprobieren können, wenn Sie Glück haben. Der Vorgang des kontinuierlichen Versuchs, die Eingabe zu erhalten, die dem Hash-Wert entspricht, wird als Sprengen bezeichnet.
Basierend auf dieser Idee entstand hashcat. Es wird gesagt, dass hashcat geboren wurde, um zu beweisen, dass es sehr einfach ist, hash zu explodieren. hashcat behauptet, das schnellste Hash-Blasting-Tool der Welt zu sein, und es unterstützt sogar GPU und FGPA, wenn Sie es haben.
hashcat ist nicht nur schnell, sondern unterstützt auch professionell mehr als zweihundert Arten von Hash-Funktionen. Verwenden Sie den Befehl:
hashcat - -help
Sie können die Liste aller von hashcat unterstützten Hash-Funktionen sehen. Es gibt zu viele, die ich hier nicht posten werde.
hashcat ist standardmäßig in Kali installiert und kann direkt verwendet werden. Aber mein Kali ist in VirtualBox installiert und ich habe immer das Gefühl, dass die virtuelle Maschine langsamer ist, also möchte ich hashcat in einem physischen Host verwenden. Gehen Sie zunächst zur offiziellen Website von hashchat, um hashcat herunterzuladen. Derzeit ist die neueste Version v3.5.0, die am 05.04.2017 veröffentlicht wurde. Aus dem Aktualisierungsdatum ist ersichtlich, dass hashchat voller Vitalität ist. Ersparen Sie die Mühe des Kompilierens und laden Sie das binäre Paket direkt herunter, das nur 2,7 Millionen beträgt, was im Vergleich zu Spielen mit Dutzenden von GB sehr klein ist.
Nachdem der Download abgeschlossen ist, entpacken Sie hashcat und sehen Sie:
Solche Dateien sind ausführbare Dateien in linux und windows unter 32-Bit und 64-Bit. Wählen Sie einfach eine davon entsprechend der Situation Ihres Computers aus. Ich habe hashcat64.bin ausgewählt. Füge der Schönheit halber eine Zeile in die ~ /. bashrc-Datei hinzu:
alias hashcat = ' Pfad zu hashcat64.bin '
Nach dem Speichern öffnen Sie das virtuelle Terminal erneut, um die ~ /. bashrc-Datei wirksam zu machen. Auf diese Weise können Sie den Hashcat-Befehl direkt eingeben, egal wo Sie sich befinden, ohne das Verzeichnis zu wechseln oder das hässliche „64.bin "einzugeben, wie in der folgenden Abbildung dargestellt.
Nun, jetzt können Sie anfangen, verschiedene hash mit hashcat zu explodieren.
md5 sollte eine der berühmtesten und am weitesten verbreiteten Hash-Funktionen sein. Verwenden Sie zunächst Python, um mehrere MD5-Werte zum Sprengen zu generieren. Der Code lautet wie folgt:
import hashlib Passwörter = [' 123123 ', ' bond007 ', ' xxxxxx ', ' *H@ & (NT*@BR#^ '] für Passwort in Passwörter: md5 = hashlib.md5 () md5.update (Passwort) print md5.hexdigest ()
Der obige Code berechnet die Hash-Werte der vier Zeichenfolgen und das Ausgabeergebnis lautet:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
Speichert die Ausgabe in der Datei md5.hash mit einem HAHS-Wert pro Zeile. Verwenden Sie dann hashcat, um diese Hash-Werte zu sprengen. Der Befehl lautet wie folgt:
hashcat -w 3 -a 0 -m 0 - -remove -o md5.out md5.hash wordlist.dic
Der Parameter-w wird verwendet, um den Arbeitsmodus anzugeben. Es gibt vier Arten, wie in der folgenden Tabelle dargestellt:
| N | Leistung | Laufzeit | Stromverbrauch | Desktop-Auswirkung |
|---|---|---|---|---|
| 1 | Low | 2 ms | Low | Minimal |
| 2 | Default | 12 ms | Economic | Noticeable |
| 3 | hoch | 96 ms | hoch | Unresponsive |
| 4 | Albtraum | 480 ms | wahnsinnig | kopflos |
Der Parameter-a wird verwendet, um den Angriffsmodus anzugeben. Die Bedeutung von 0 ist direkt und kontinuierlich, d. h. es gibt fünf Werte für-a, wie in der folgenden Tabelle dargestellt:
| N | Modus |
|---|---|
| 0 | Gerade |
| 1 | Kombination |
| 3 | Brute-force |
| 6 | Hybrid Wordlist + Mask |
| 7 | Hybrid Mask + Wordlist |
-m wird verwendet, um den zu explodierenden hash anzugeben Die Hash-Funktion des Werts, 0 bedeutet, dass die Hash-Funktion md5 ist, die anderen Werte sind in der folgenden Tabelle aufgeführt:
| N | Name | Category |
|---|---|---|
| 0 | MD5 | Raw Hash |
| 300 | MySQL4.1/MySQL5 | Datenbankserver |
| 1000 | NTLM | Betriebssysteme |
| 1800 | sha512crypt $6$, SHA512 (Unix) | Betriebssysteme |
| 2611 | vBulletin < v3.8.5 | Foren, CMS, E-Commerce, Frameworks |
Diese Tabelle ist zu lang. Ich zeige hier nur einige der in diesem Artikel erwähnten Hash-Funktionen an. Sie können sie alle mit dem Parameter – help sehen.
Parameter – remove bedeutet, dass wenn ein bestimmter Hash-Wert erfolgreich explodiert wird, wird der Wert aus md5.hash entfernt.
Parameter-o wird von einem Dateinamen gefolgt, der angibt, wo die Sprengergebnisse gespeichert werden.
Die letzten beiden Parameter md5.hash und wordlist.dic sind der zu explodierende Hash-Wert bzw. das Passwortwörterbuch. Der Hash-Wert und das Passwortwörterbuch sind jeweils eine Zeile pro Zeile. Der Inhalt in md5.hash wurde von Python berechnet. Wenn Sie kein geeignetes Passwortwörterbuch zur Hand haben, können Sie den Befehl verwenden:
wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
Es fehlt wahrscheinlich eine Betriebsumgebung, also installieren Sie sie. Insgesamt habe ich diese Sachen installiert:
sudo apt-get install gcc make p7zip-full git lsb-core wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 sudo . /install.sh
Wenn die Internetgeschwindigkeit gut ist, wird sie in kurzer Zeit installiert. Der erste Befehl meldet einen Fehler:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 ist nicht ein symbolischer link /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 ist nicht ein symbolischer link
Aber es scheint nichts zu beeinflussen, ignorieren Sie es einfach. Drücken Sie nach der Installation erneut auf Enter und führen Sie den ursprünglich fehlerberichteten Befehl aus. Sie stellten fest, dass der Fehler tatsächlich nicht erneut gemeldet wurde und die Ausführung im Handumdrehen abgeschlossen war. Nachdem der Befehl ausgeführt wurde, überprüfte ich den Inhalt der Dateien md5.hash und md5.out und stellte fest, dass in md5.hash nur ein hash übrig war. Die drei erfolgreich explodierten Hashes wurden in die Datei md5.out übertragen. In md5.out sind drei Hash-Werte und ihre ursprünglichen Werte, wie in der folgenden Abbildung dargestellt:
Der Hash-Wert des Windows-Anmeldekennworts wird in der SAM-Datei gespeichert, SAM ist die Abkürzung von „security account manager ". Normalerweise befindet es sich in
C: \Windows\system32\config\SAM
Die SAM-Datei ist von Windows geschützt und kann nicht direkt gelesen werden. Sie benötigt Hilfe von Tools wie SAMInside. Finden Sie eine virtuelle Windows 7-Maschine, erstellen Sie einen neuen Administratorbenutzer namens hashcat und legen Sie ein Passwort fest. Laden Sie SAMInside in Windows 7 herunter und extrahieren Sie ihn, führen Sie ihn mit Administratorrechten aus und klicken Sie dann auf Datei- > Importieren Sie lokale Benutzer über den Scheduler, wie unten gezeigt:
Danach antwortet SAMInside möglicherweise „nicht ", aber es spielt keine Rolle. Warten Sie geduldig ein paar Sekunden und SAMInside liest den gewünschten hash wie unten gezeigt:
Wählen Sie den Benutzer „hashcat" aus, dessen Passwort wir explodieren möchten, drücken Sie Ctrl +5, um NT-hash zu kopieren, und kehren Sie dann zu Ubuntu zurück, in dem hashcat installiert ist. Verwenden Sie den folgenden Befehl, um den kopierten Hash-Wert in der Datei win7.hash zu speichern:
echo 356CEAE0C89FB65ED6D6AA7A445C4CE5 {> hashcat -w 3 -a 0 -m 1000 - -remove -o win7.out win7.hash wordlist.dic
Nach einer Weile wurde die Ausführung abgeschlossen. Ich überprüfte die win7.out-Datei und stellte fest, dass die Explosion erfolgreich war. Das Anmeldekennwort des Benutzers hashcat lautet rush2112:
werner@Yasser: ~ /hashcat$ cat win7.out
356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112
So erhalten Sie die SAM-Datei unter „So exportieren Sie die Windows-Hash-Serie 1 ". Das Folgende dokumentiert meinen Vorgang beim Lesen der SAM-Datei in der virtuellen Maschine Windows 7.
Wenn es sich um eine physische Maschine handelt, starten Sie die Maschine mit Win PE und lesen Sie die SAM-Datei auf der Festplatte. Meine ist eine virtuelle Maschine, und ich kann die Dateien auf der virtuellen Festplatte lesen, indem ich die Dateien auf der virtuellen Festplatte auf das Dateisystem montiere. Die virtuelle Maschine, die ich verwende, ist VirtualBox, die mit dem Befehl vdfuse erledigt werden kann. Wenn Sie vdfuse nicht haben, müssen Sie zuerst virtualbox-fuse installieren:
sudo apt-get install virtualbox-fuse
Sie können auch das Installationspaket von virtualbox-fuse herunterladen und es selbst installieren.
Nachdem die Installation abgeschlossen ist, gibt es den Befehl vdfuse, der das Zuordnen und Mounten der virtuellen Festplatte starten kann:
mkdir -p ~ /vmdisk
sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~ /vmdisk/
Nachdem Sie diesen Schritt durchgeführt haben, überprüfen Sie das ~ /vmdisk-Verzeichnis, das drei Dateien enthält: EntireDisk, Partition1 und Partition2, neues Verzeichnis:
mkdir -p ~ /vmdisk_en
mkdir -p ~ /vmdisk_1
mkdir -p ~ /vmdisk_2
Verwenden Sie den Befehl mount, um die drei Dateien EntireDisk, Partition1 bzw. Partition2 zu montieren:
sudo mount ~ /vmdisk/EntireDisk ~ /vmdisk_en
sudo mount ~ /vmdisk/Partition1 ~ /vmdisk_1
sudo mount ~ /vmdisk/Partition2 ~ /vmdisk_2
Es wurde festgestellt, dass die gesamte Disk-Mounting fehlgeschlagen ist. Der Inhalt in Partition1 ist nicht das, was ich wollte. Partition2 ist die Datei in der virtuellen Windows 7-Maschine, genau das, was ich wollte. Kopieren Sie unsere Ziel-SAM-Datei aus vmdisk_fs:
cp ~ /vmdisk_2/Windows/System32/config/SAM . /
Kopieren Sie übrigens auch die Systemdatei:
cp ~ /vmdisk_2/Windows/System32/config/SYSTEM . /
Sehen Sie sich den Inhalt der SAM-Datei an, wie in der Abbildung unten gezeigt, es ist keine einfache Textdatei, es ist tatsächlich der Stil von Windows,
Nun, obwohl wir die SAM-Datei erfolgreich geöffnet haben, erhalten wir immer noch keinen hash. Was soll ich tun, wenn ich sie als nächstes ändern? Der Inhalt der SAM-Datei kann nur mit Hilfe von Tools analysiert werden. Legen Sie die SAM-Datei und die Systemdatei in Kali ein und führen Sie den Befehl aus:
samdump2 -o sam.hash SYSTEM sam
Sehen Sie dann sam.hash an, und Sie können auch den Hash-Wert des Anmeldekennworts jedes Benutzers sehen. Jede Zeile in der sam.hash-Datei ist ein Benutzer, und das Format jeder Zeile lautet:
Benutzername: RID: LM-hash value: NTLM-hash value
Beachten Sie, dass dieses Format das Ausgabeformat des Befehls samdump2 ist und nicht das „Hash-Passwortformat unter Windows ".
3. hash des Linux-Anmeldekennworts explodieren
Zunächst müssen Sie einen Computer haben, auf dem das Linux-System läuft. Das ist leicht zu sagen, nur eine virtuelle Maschine reicht aus. Führen Sie dann den folgenden Befehl aus, um einen neuen Benutzer hinzuzufügen und ein Passwort festzulegen, damit wir es explodieren können:
sudo adduser justforfun
Der Hash-Wert des Benutzer-Anmeldekennworts in linux wird in der Datei/etc/shadow gespeichert (Hinweis: nicht/etc/passwd). Verwenden Sie den folgenden Befehl, um den hash anzuzeigen Wert des Anmeldekennworts des neuen Benutzers:
test@test-VirtualBox: ~ $ sudo tail -n 1 /etc/shadow
justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
Der Befehl tail wird verwendet, um die letzten Zeilen einer Datei zu lesen, die standardmäßig 10 Zeilen sind, wobei die Anzahl der Zeilen mit dem Parameter-n angegeben wird. Der Benutzer, den wir gerade erstellt haben, befindet sich natürlich in der letzten Zeile, daher wird er mit tail-n 1 gelesen. Das Ergebnis des Lesens sind die durch „: "geteilten Daten. Der erste Teil ist der Benutzername „justforfun", der zweite Teil ist der Hash-Wert des Passworts, und die anderen Teile müssen in diesem Artikel nicht beachtet werden. Wir konzentrieren uns auf den zweiten Teil.
„$6$ "beginnend mit bezieht sich auf den Typ der verwendeten Hash-Funktion als SHA-512. Zusätzlich zu „$6$" bezieht sich in linux „$1$ "auf MD5, „$2a$" auf Blowfish und „$2y$ "auf Blowfish (korrekte Handhabung von 8-Bit-Charakteren), „$5$" Bezieht sich auf SHA-256, Einzelheiten siehe Wikipedia: passwd. Darüber hinaus beschreibt die Datei/etc/login.defs auch den Hash-Algorithmus.
Der Teil "0fokwg59", der von "$6$" beginnt und vor dem nächsten "$" ist Salz. Was ist Salz? Baidu weiß, dass die Antwort von CNB2009 auf die Frage „ Was ist der MD5-Salzwert "einfach und leicht verständlich ist:
Einfach ausgedrückt ist es eine Möglichkeit, dasselbe Passwort unterschiedliche Hash-Werte zu verleihen. Das Mittel ist die Versalzung. MD5 selbst ist irreversibel, aber es gibt derzeit viele Datenbanken im Internet, die Anti-Query unterstützen. Wenn die Benutzerpasswortdatenbank versehentlich durchgesickert wird, können Hacker das Benutzerpasswort durch Anti-Query erhalten oder Hash-Codes (d. h. Viele Leute verwenden es), um Brutal-Force-Cracking durchzuführen (da es sich normalerweise um ein schwaches Passwort handelt). Der Salzwert ist ein zusätzlicher Zufallswert, der während des Passwort-Hash-Prozesses hinzugefügt wird. Meine id lautet beispielsweise 123456 und mein Passwort lautet 123456. Wenn es in der Datenbank gespeichert ist, kann ich die Zeichenfolge „123456/Epilepsy "hashen. Bei der Überprüfung des Passworts wird auch die Zeichenfolge „ (zu überprüfendes Passwort) /Epilepsy ω inverted ④" zur Überprüfung verwendet. Auf diese Weise, wenn ein anderes Idiotpasswort 123456 ist, können immer noch unterschiedliche Hash-Werte erstellt und erfolgreich überprüft werden. Zu diesem Zeitpunkt wird meine id als Salzwert verwendet, um ein komplexes hash für das Passwort durchzuführen. Also.. Die Rolle des Salzwerts besteht darin, Verluste durch Datenbanklecks zu reduzieren. Wenn Ihr RP sehr gut ist und mein Passwort 123456 richtig erraten hat, kann ich Sie nicht aufhalten
Diese Antwort richtet sich an md5, und das Gleiche gilt für andere Hash-Funktionen. Der Teil nach dem Salz ist der Hash-Wert. Kopieren Sie nun den gesamten zweiten Teil in die Datei linux.hash, der Inhalt in linux.hash sollte lauten:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0
Dann explodieren Sie das Linux-Login-Passwort hash mit dem folgenden Befehl:
hashcat -w 3 -a 0 -m 1800 - -remove -o linux.out linux.hash wordlist.dic
Nach einem Moment ist die Sprengung abgeschlossen, sehen Sie sich das Ergebnis an:
werner@Yasser: ~ /hashcat$ cat linux.out
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
Es ist ersichtlich, dass die Sprengung erfolgreich war.
4. hash des MySQL-Anmeldekennworts explodieren
Zuerst muss Mysql vorhanden sein. Ich habe es zufällig in meiner virtuellen Maschine. Baidu weiß, dass der Hash-Wert des MySQL-Anmeldekennworts in der Datei user.MYD gespeichert ist. Wo ist die Datei user.MYD? Ich weiß es auch nicht, also suche ich einfach nach:
test@test-VirtualBox: ~ $ sudo find / -name user.MYD
/var/lib/mysql/mysql/user.MYD
gefunden. Es befindet sich in/var/lib/mysql/mysql/user.MYD. Sehen Sie sich den Inhalt der Datei an:
sudo cat /var/lib/mysql/mysql/user.MYD
Es ist keine einfache Textdatei und hat wenig damit zu tun. Es ist immer noch ersichtlich, dass der Hash-Wert des Benutzerroot-Anmeldekennworts ist:
6B825255FB466413D6B1B724644E23428C94BBCB
Speichern Sie diesen Wert in der Datei mysql.hash und verwenden Sie den folgenden Befehl, um den hash des MySQL-Anmeldekennworts zu explodieren:
hashcat -w { Nach einem Moment ist die Sprengung abgeschlossen, sehen Sie sich das Ergebnis an:
werner@Yasser: ~ /hashcat$ cat mysql.out
6b825255fb466413d6b1b724644e23428c94bbcb:viper
Es ist ersichtlich, dass die Sprengung erfolgreich war.
5. Explosion Discuz! Forum Passwort
Discuz! Es ist ein bekanntes PHP-Forumprogramm in meinem Land und wird weit verbreitet. Lassen Sie uns jetzt Discuz explodieren! Hash-Wert für das Benutzerpasswort. Zuerst muss man den Hash-Wert finden. Wo kann man ihn finden? Von Discuz natürlich! in der Datenbank.
kann Discuz! Wo ist die Datenbank? So habe ich es gelöst: Laden Sie die neueste Version von Discuz von der offiziellen Website herunter! Quellcode, führen Sie es aus und installieren Sie es und Sie erhalten Discuz! Datenbank
Discuz! Der Standarddatenbankname lautet ultrax. Die Tabelle pre_ucenter_members speichert den Hash-Wert des Anmeldekennworts. „pre_ "ist das Standardpräfix, das während der Installation geändert werden kann. „ucenter_members" wird sich nicht ändern. Verwenden Sie die folgende SQL-Anweisung, um den Hash-Wert des Anmeldekennworts abzufragen:
select Passwort,salt from pre_ucenter_members;
Hash-und Salzwerte in der Datei speichern:
echo 69bcba126b93c6f397983629a0f70553:c13fd9 > discuz.hash
Der Hash-Wert und der Salzwert sind in derselben Zeile, geteilt durch ":". Verwenden Sie schließlich den folgenden Befehl, um das Discuz-Anmeldekennwort-Hash zu explodieren:
hashcat -w 3 -a 0 -m 2611 - -remove -o discuz.out discuz.hash wordlist.dic
Nach einem Moment ist die Sprengung abgeschlossen, anzeigen Sie das Ergebnis:
werner@Yasser: ~ /hashcat$ cat discuz.out
69bcba126b93c6f397983629a0f70553:c13fd9:winter
Es ist ersichtlich, dass die Sprengung erfolgreich war.
6. Großer Wörterbuchtest
Bisher verwenden wir ein kleines Wörterbuch mit nur 500 Wörtern. Es dauert jedes Mal nur einen Moment, um alle Arten von hash erfolgreich zu explodieren. Finden Sie es nicht seltsam?? Das liegt daran, dass ich absichtlich ein schwaches Passwort im Wörterbuch festgelegt habe, um die Verwendung von hashcat zu üben, sonst wäre es nicht schlecht, wenn es nicht aufgedeckt werden könnte. In der Praxis ist es unmöglich, so viel Glück zu haben. Lassen Sie uns zufällig den MD5-Wert eines nicht so schwachen Passworts berechnen und mit einem großen Wörterbuch sprengen, um einerseits Ihr Glück zu versuchen und andererseits zu sehen, wie schnell hashcat sein kann.
Berechnen Sie zuerst den MD5-Wert:
import hashlib
md5 = hashlib.md5 ()
md5.update (" werner123456!!! ")
print md5.hexdigest () Die Ausgabe lautet:
b17133f9abff287ed0546c1af2b171f7
Wählen Sie dann ein 10,5G-Wörterbuch mit 940 Millionen Passwörtern aus und beginnen Sie zu explodieren:
hashcat -w 3 -a 0 -m 0 - -remove -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Beachten Sie, dass Sie, wenn es nur einen Hash-Wert gibt, nicht in der Datei speichern müssen, sondern direkt in die Befehlszeilenparameter schreiben können. Ich begann zu sprengen, bevor ich ins Bett ging, wachte am nächsten Tag auf, um die Ergebnisse zu sehen, und fand:
Begonnen: Mi Jul 26 22:55:27 2017
Stoppt: Mi Jul 26 23:02:28 2017
Es stellte sich heraus, dass es nur 7 Minuten gedauert hat! Ich dachte, es würde 7 Stunden dauern, was 60-mal schneller war als ich erwartet hatte! Es ist ein wenig schade, dass der Hash-Wert nicht erfolgreich ausgesprengt wurde. Es scheint, dass "werner123456!!!" nicht im Passwortwörterbuch enthalten ist. Es scheint, dass ich ein 100-G-Passwortwörterbuch vorbereiten muss, aber es ist sehr unbequem, ein so großes Wörterbuch zu speichern und zu übertragen. Gibt es keinen anderen Weg? Natürlich, erinnern Sie sich an den Angriffsmodus? Wir haben den „Geraden "-Modus verwendet, werfen wir als nächstes einen Blick auf einige andere Modi.
7. Zusammenfassung
Wenn Sie hashcat verwenden, um hash zu explodieren, müssen Sie den richtigen hash finden. Verschiedene Systeme und unterschiedliche Software haben unterschiedliche Hash-Speicherorte, und Sie müssen den hash genau finden Wert kommen; Die zweite besteht darin, den Hash-Typ richtig zu beurteilen, festzustellen, ob hashcat diese Art von hash unterstützt, und die richtigen-m-Parameter auszuwählen, sonst ist es fast unmöglich, erfolgreich zu sein; Die dritte ist, dass das Passwortwörterbuch besser ist. Ob die Explosion am Ende erfolgreich sein kann, hängt vom Wörterbuch ab. Obwohl ein größeres Passwortwörterbuch nicht besser ist, ist es immer noch besser, größer zu sein. hashcat ist auch für seine Geschwindigkeit bekannt. Große Wörterbücher sind für hashcat kein Problem. Hier ist ein besseres Wörterbuch aufgezeichnet: Sammlung früherer Leckagetore + häufig verwendete schwache Passwortwörterbücher. 7Z , das Dekomprimierungskennwort lautet: anywlan. Wenn Sie außerdem viele kleine Wörterbücher gesammelt haben, können Sie die kleinen Wörterbücher zusammenführen, sortieren und entduplizieren, um ein großes Wörterbuch zu erhalten, das für die Hashcat-Sprengung verwendet werden kann. Wenn sich die kleinen Wörterbücher im selben Verzeichnis befinden, können Sie mit einem Befehl erledigen:
cat * | sort | uniq > Merge.dic
Was ist, wenn die kleinen Wörterbücher nach Kategorien organisiert und in mehrschichtigen Verzeichnissen verteilt werden? Es ist offensichtlich nicht möglich, nur den Cat-Befehl zu verwenden, aber tatsächlich ist nur ein Befehl erforderlich. Unter der Annahme, dass alle kleinen Wörterbücher im Verzeichnis MyDictionary gespeichert sind, kann der Befehl wie folgt geschrieben werden:
find . /MyDictionary -type f -exec cat {} \; | sortieren | uniq > Merge.dic