
Dieser Artikel enthält Lösungen für die Codierung von ASCII- und Codierungs-UU-Aufgaben, die auf die Codierung abzielen, Hash Message Digest 5 und Hash SHA-2, um das inverse Bild des Hash zu finden, Shift-Chiffre - Shift-Chiffre und Pixel Madness, um das Bild zu erstellen.
OrganisationsinformationenSpeziell für diejenigen, die etwas Neues lernen und sich in einem der Bereiche Informations- und Computersicherheit entwickeln möchten, werde ich über die folgenden Kategorien schreiben und sprechen:
- PWN;
- Kryptographie (Krypto);
- Netzwerktechnologien (Netzwerk);
- Reverse (Reverse Engineering);
- Steganographie (Stegano);
- Suche und Ausnutzung von WEB-Schwachstellen.
Darüber hinaus werde ich meine Erfahrungen in den Bereichen Computerforensik, Analyse von Malware und Firmware, Angriffe auf drahtlose Netzwerke und lokale Netzwerke, Durchführung von Pentests und Schreiben von Exploits teilen.
Damit Sie sich über neue Artikel, Software und andere Informationen informieren können, habe ich
in Telegram einen
Kanal und eine
Gruppe eingerichtet, um alle Probleme im Bereich ICD
zu diskutieren . Außerdem werde ich Ihre persönlichen Anfragen, Fragen, Vorschläge und Empfehlungen
persönlich prüfen
und alle beantworten .
Alle Informationen werden nur zu Bildungszwecken bereitgestellt. Der Autor dieses Dokuments übernimmt keine Verantwortung für Schäden, die jemandem durch die Verwendung von Kenntnissen und Methoden entstehen, die durch das Studium dieses Dokuments erworben wurden.
Codierung - ASCII
Beginnen wir mit dem allerersten Job - Encoding-ASCII.

Wir gehen zur eigentlichen Aufgabe über. Wir sehen eine Folge von 16. Zeichen. Die allererste Annahme ist ein reguläres Hex (alle Zeichen sind in der 16. Form).

s = "4C6520666C6167206465206365206368616C6C656E6765206573743A203261633337363438316165353436636436383964356239313237356433323465" s.decode("hex")

Wir bekommen die Antwort und gehen weiter.
Codierung - UU

Wir gehen zur eigentlichen Aufgabe über. Trotz des Hinweises im Namen der Aufgabe ist es einfach, Dateien in UUE (Codierung zum Übertragen von Dateien, die keine Textdaten enthalten) zu unterscheiden - sie beginnen in der Zeile:
Begin_--_-

s = '''begin 644 root-me_challenge_uudeview B5F5R>2!S:6UP;&4@.RD*4$%34R`](%5,5%)!4TE-4$Q%"@`` ` end''' f = open('./uu.enc', 'w') f.write(s) f.close() import uu uu.decode('uu.enc', 'uu.dec') ans = open('uu.dec', 'r').read()

Wir übergeben die Flagge.
Hash - Message Digest 5

Wir werden gebeten, den Prototyp für den md5-Hash zu finden. Dies kann einfach über diese Site (https://md5decrypt.net/) erfolgen. Aber wir verwenden zu Schulungszwecken natürlich Hashcat. Verwenden Sie dazu die folgenden Parameter und Codes:
- -a 0 - Suche im Wörterbuch;
- -m 0 - Hash-Typ MD5;
- File.hash - eine Datei mit einem Hash;
- rockyou.txt - unser Wörterbuch;
- --force - Fehler ignorieren.

Wir fahren mit der nächsten Aufgabe fort.
Hash - SHA-2

Als Antwort müssen Sie den SHA1-Hash aus dem umgekehrten Bild dieses Hashs angeben. Tatsache ist, dass dies ein zusätzlicher Charakter ist.

Löschen Sie es. Um den Hashing-Algorithmus zu bestimmen, verwenden wir das Hash-Programm.

Von den vorgestellten Algorithmen ist der wahrscheinlichste SHA-256. Hashcat hat gezeigt, wie man eine solche Aufgabe mit Hashcat löst. Jetzt werden wir dies tun
Website .

Es bleibt SHA-1 von dieser Linie zu nehmen.
from hashlib import * sha1('4dM1n').hexdigest()

Chiffre verschieben

Nun, mit dem Verschlüsselungsalgorithmus helfen sie uns. Dieselbe Caesar-Chiffre, nur die Verschiebung tritt nicht im Bereich von Null bis zur Länge des Alphabets auf, sondern gemäß allen möglichen 256 Werten eines Bytes. Wir werden ein Programm schreiben, das jedes Zeichen zuerst um 1, dann um 2 usw. verschiebt. bis zu 255.
s = open('ch7.bin', 'r').read() for x in range(255): “”.join( chr((ord(y) + x)%256 ) ) for y in s)

Unter den Zeilen finden wir die, die die Antwort enthält.

Pixel Wahnsinn

Wir bekommen mehrere Ausdrücke und am Ende sagen sie, dass 0 weiß und 1 schwarz ist. Das Ergebnis sollte höchstwahrscheinlich ein Bild sein. Ich nehme an, dass Sie im Ausdruck nicht multiplizieren müssen, sondern die erforderliche Anzahl von Malen eines bestimmten Zeichens wiederholen müssen.
Sie können einen Ausdruck schnell mit der Funktion eval ausführen, müssen jedoch zuerst das Format 0x1 in '0' * 1 ändern.
s = ''''0x3+1x1+0x1+0x1+0x7+1x2+0x15+1x1+0x8+1x1+0x8+1x1+0x1+1x1+0x1+1x1+0x1+1x1+0x1+1x1+0x3+1x1+0x1+1x1+0x3+1x1+0x1+1x4+0x2+1x1+0x25 '0x2+1x1+0x4+1x1+0x4+1x3+0x1+1x2+0x2+1x8+0x11+1x4+0x1+1x3+0x6+1x2+0x4+1x1+0x4+1x2+0x7+1x4+0x4+1x2+0x7+1x2+0x3+1x2+0x3 '0x3+1x1+0x2+1x1+0x2+1x1+0x11+1x2+0x2+1x3+0x7+1x1+0x4+1x2+0x2+1x2+0x7+1x1+0x6+1x1+0x2+1x1+0x4+1x3+0x1+1x1+0x4+1x1+0x2+1x1+0x2+1x1+0x3+1x1+0x2+1x3+0x2+1x2+0x3 '1x1+0x2+1x1+0x4+1x1+0x2+1x1+0x1+1x1+0x2+1x1+0x2+1x1+0x1+1x2+0x2+1x2+0x1+1x2+0x3+1x1+0x3+1x1+0x2+1x2+0x1+1x3+0x3+1x1+0x2+1x1+0x4+1x2+0x1+1x1+0x4+1x1+0x3+1x2+0x12+1x2+0x1+1x1+0x3+1x7+0x3 '0x3+1x1+0x7+1x1+0x1+1x1+0x4+1x1+0x2+1x2+0x2+1x2+0x4+1x1+0x2+1x1+0x1+1x2+0x1+1x8+0x1+1x1+0x4+1x1+0x5+1x1+0x3+1x2+0x2+1x1+0x1+1x2+0x2+1x1+0x3+1x2+0x9+1x1+0x1+1x2+0x2+1x3+0x2+1x1 '0x7+1x1+0x4+1x1+0x4+1x1+0x1+1x1+0x1+1x7+0x3+1x1+0x1+1x2+0x3+1x1+0x1+1x6+0x1+1x1+0x3+1x1+0x2+1x1+0x14+1x2+0x8+1x1+0x10+1x2+0x3+1x2+0x1+1x1+0x1 '0x6+1x5+0x4+1x1+0x7+1x1+0x2+1x1+0x3+1x2+0x4+1x1+0x8+1x1+0x3+1x2+0x1+1x2+0x3+1x1+0x8+1x1+0x2+1x2+0x1+1x1+0x3+1x7+0x5+1x2+0x2+1x1+0x2+1x2+0x3 '0x1+1x1+0x2+1x1+0x1+1x2+0x5+1x1+0x6+1x2+0x3+1x1+0x2+1x1+0x1+1x2+0x20+1x8+0x1+1x1+0x1+1x1+0x4+1x2+0x3+1x1+0x2+1x2+0x3+1x2+0x7+1x2+0x3+1x2+0x4 '0x2+1x1+0x3+1x5+0x5+1x2+0x7+1x1+0x4+1x2+0x2+1x1+0x2+1x2+0x1+1x1+0x3+1x1+0x6+1x2+0x2+1x2+0x3+1x2+0x2+1x3+0x1+1x1+0x6+1x3+0x3+1x5+0x3+1x1+0x4+1x1+0x5 '0x4+1x2+0x3+1x2+0x3+1x1+0x5+1x2+0x2+1x1+0x1+1x1+0x1+1x1+0x1+1x2+0x9+1x1+0x3+1x1+0x2+1x1+0x1+1x1+0x2+1x1+0x1+1x2+0x2+1x1+0x2+1x1+0x1+1x1+0x4+1x3+0x1+1x1+0x2+1x2+0x3+1x2+0x3+1x1+0x5+1x1+0x4+1x1+0x2 '0x6+1x5+0x4+1x1+0x1+1x1+0x2+1x2+0x6+1x1+0x1+1x7+0x4+1x3+0x3+1x1+0x4+1x1+0x2+1x2+0x4+1x1+0x6+1x1+0x6+1x8+0x3+1x1+0x5+1x1+0x7 '0x2+1x1+0x3+1x6+0x4+1x1+0x1+1x3+0x4+1x1+0x2+1x2+0x4+1x1+0x5+1x1+0x2+1x1+0x3+1x2+0x3+1x1+0x2+1x3+0x1+1x1+0x2+1x2+0x3+1x3+0x2+1x3+0x9+1x1+0x4+1x2+0x7+1x2''' s = s.replace("x", "'*").replace("+","+'") examp = s.split('\n') bits = [eval(i) for i in examp] print(bits)

Erstellen Sie nun ein Bild mit der PIL-Bibliothek. Fügen wir den folgenden Code hinzu, bearbeiten Sie ihn und öffnen Sie das resultierende Bild.
from PIL import Image width, height = len(bits[0]), len(bits) pic = Image.new('RGB', (width, height)) pix = pic.load() for i in range(height): for j in range(width): pix[j,i] = ( bits[i][j]=='0' and (255,255,255) or (0,0,0) ) pic.save('pixel.png')

Ich zoomte auf das Bild und las das Wort LÖSUNG. Tatsächlich gibt es mehr Stege als Krypten. Dieser Artikel wird höchstwahrscheinlich nur für Anfänger interessant sein.
Immer komplizierter ... Sie können sich uns
per Telegramm anschließen . Dort können Sie Ihre eigenen Themen vorschlagen und über die Themenauswahl für die folgenden Artikel abstimmen.