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 binäre Daten mit fester Länge. 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 möglich, 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 des Passworts 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 erhalten. Gibt es wirklich keine Möglichkeit, das Passwort selbst zu kennen? Natürlich nicht. Obwohl es mathematisch gesehen nicht möglich 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 nur diese. Probieren Sie sie einzeln aus, wenn Sie Glück haben, können Sie es trotzdem ausprobieren. 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 das Sprengen von hash sehr einfach ist. 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 Hash-Funktionen. Verwenden Sie die Befehle:
hashcat - -help
Sie können eine 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 den 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
Speichern Sie 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 - -entfernen -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 | Niedrig | 2 ms | niedrig | Minimal |
| 2 | Default | 12 ms | wirtschaftlich | auffällig |
| 3 | hoch | 96 ms | High | Unresponsive |
| 4 | Nightmare | 480 ms | Insane | 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 | Rohkraft |
| 6 | Hybrid Wordlist + Mask |
| 7 | Hybrid Mask + Wordlist |
-m wird verwendet, um den zu explodierenden hash anzugeben Die Hash-Funktion des Wertes, 0 bedeutet, dass die Hash-Funktion MD5 ist. Die anderen Werte sind in der folgenden Tabelle dargestellt:
| N | Name | Kategorie |
|---|---|---|
| 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 Hash-Funktionen an, die in diesem Artikel behandelt werden. Sie können sie alle mit dem Parameter – help sehen.
Parameter – remove bedeutet, dass, wenn ein Hash-Wert erfolgreich gesprengt wird, der Wert aus MD5.hash entfernt wird.
Der 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 Netzwerkgeschwindigkeit 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 Hashs wurden in die Datei MD5.out übertragen. MD5.out Es gibt 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, legen Sie ein Passwort fest, laden Sie SAMInside in Windows 7 herunter und extrahieren Sie es, führen Sie es mit Administratorberechtigungen aus und klicken Sie dann auf Datei- > Lokale Benutzer im Scheduler importieren, wie unten dargestellt:
Danach antwortet SAMInside möglicherweise „nicht ", aber es spielt keine Rolle. Warten Sie geduldig ein paar Sekunden und SAMInside hat die Erwartungen erfüllt und liest den gewünschten hash aus, wie in der folgenden Abbildung dargestellt:
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 > win7.hash
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, verwenden Sie Win PE, um die Maschine zu starten und die SAM-Datei auf der Festplatte zu lesen. 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 das Installationspaket von virtualbox-fuse auch herunterladen und es selbst installieren.
Nachdem die Installation abgeschlossen ist, gibt es den Befehl vdfuse, der die virtuelle Festplattenzuordnung und-montage starten kann:
mkdir -p ~ /vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~ /vmdisk/
Nachdem Sie diesen Schritt ausgefü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 EntireDisk-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 Zieldatei SAM aus vmdisk_fs:
cp ~ /vmdisk_2/Windows/System32/config/SAM . /
Kopieren Sie übrigens auch die Systemdatei:
cp ~ /vmdisk_2/Windows/System32/config/SYSTEM . /
Wenn Sie den Inhalt der SAM-Datei ansehen, wie in der Abbildung unten dargestellt, stellt sich heraus, dass es sich nicht um eine einfache Textdatei handelt, sondern im Windows-Stil.
Nun, obwohl die SAM-Datei erfolgreich geöffnet wurde, haben wir den hash immer noch nicht erhalten. Was soll ich tun, wenn ich ihn 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 und führen Sie den Befehl aus:
samdump2 -o sam.hash SYSTEM sam
Überprüfen Sie dann sam.hash, und Sie können auch den Hash-Wert des Login-Passworts jedes Benutzers sehen. Jede Zeile in der sam.hash-Datei ist ein Benutzer. Das Format jeder Zeile lautet:
Benutzername: RID:lm-hash-wert: NTLM-hash-wert
Beachten Sie, dass dieses Format das Ausgabeformat des Befehls samdump2 ist und nicht das „Hash-Passwortformat unter Windows ".
Zunächst müssen Sie einen Computer haben, auf dem das Linux-System ausgeführt wird. 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$ "am Anfang bezieht sich auf den Typ der verwendeten Hash-Funktion als SHA512. Mit Ausnahme von „$6$" bezieht sich in linux „$1$ "auf MD5, „$2a$" bezieht sich auf Blowfish, „$2y$ "bezieht sich auf Blowfish (korrekte Handhabung von 8-Bit-Charakteren), „$5$" Bezieht sich auf SHA256, 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 "$" liegt, 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 Sie mein Passwort 123456 erraten, 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 sprengen 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
Kurz später ist die Sprengung abgeschlossen, Ergebnis ansehen:
werner@Yasser: ~ /hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
Es zeigt sich, dass die Sprengung erfolgreich war.
Zunächst 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
Ich habe es unter/var/lib/mysql/mysql/user.MYD gefunden. Sehen Sie sich den Inhalt der Datei an:
sudo cat /var/lib/mysql/mysql/user.MYD
Es ist keine einfache Textdatei, es spielt keine Rolle. 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 das MySQL-Anmeldekennwort zu explodieren hash:
hashcat -w 3 -a 0 -m 300 - -entfernen -o mysql.out mysql.hash wordlist.dic
Nach einer Weile 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.
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 sein! 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 von
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 password,salt from pre_ucenter_members;
Hash-und Salzwerte in der Datei speichern:
echo 69bcba126b93c6f397983629a0f70553: c13fd9 > discuz.hash
Hash-und Salzwerte 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
Augenblick später ist die Sprengung abgeschlossen, Ergebnis ansehen:
werner@Yasser: ~ /hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553: c13fd9:winter
Es ist ersichtlich, dass die Sprengung erfolgreich war.
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?? Dies 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 explodieren, 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 - -Entfernen -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
Beachten Sie, dass es bei nur einem Hash-Wert möglich ist, ihn direkt in die Befehlszeilenparameter zu schreiben, anstatt ihn in einer Datei zu speichern. Ich begann zu sprengen, bevor ich ins Bett ging, wachte am nächsten Tag auf, um mir die Ergebnisse anzusehen, und fand:
Begonnen: Mi Jul 26 22:55:27 2017 Stopped: 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.
Wenn Sie hashcat verwenden, um hash zu explodieren, müssen Sie zunächst den richtigen hash finden. Verschiedene Systeme und unterschiedliche Software haben unterschiedliche Hash-Speicherorte. Sie müssen den hash genau finden Wert kommt; 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 es am Ende erfolgreich explodiert werden 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 Lecktore + 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:
finden . /MyDictionary -type f -exec cat {} \; | sortieren | uniq > Merge.dic