73 lines
2.9 KiB
Markdown
73 lines
2.9 KiB
Markdown
# Brutus
|
|
|
|
Salvete! Willkommen zum Write-up für Brutus. Dies ist eine klassische "Cry" (Kryptographie) Challenge, die eine der ältesten und berühmtesten Verschlüsselungstechniken einführt: die Caesar-Chiffre.
|
|
|
|
In dieser Challenge erhalten wir eine mysteriöse Nachricht und einige Python-Skripte. Das Ziel ist es, die Nachricht zu entschlüsseln, um die Flagge zu finden.
|
|
|
|
---
|
|
|
|
## 1. Erste Analyse
|
|
|
|
Wir bekommen einen kurzen lateinischen Satz und eine flaggenartige Zeichenkette präsentiert.
|
|
|
|
Der Satz "Ultimum scriptum arcanum a Caesare ad Brutum" übersetzt sich zu "Die letzte geheime Nachricht von Caesar an Brutus."
|
|
|
|
Die explizite Erwähnung von Caesar ist hier der primäre Hinweis. Im Kontext von Kryptographie-Challenges deutet dies fast immer auf die Caesar-Chiffre hin, eine der einfachsten und bekanntesten Substitutionschiffren.
|
|
|
|
## 2. Identifizierung der Verschiebung
|
|
|
|
Eine Caesar-Chiffre funktioniert, indem jeder Buchstabe im Alphabet um eine feste Anzahl von Positionen (den "Schlüssel") verschoben wird. Um sie zu lösen, müssen wir diese Zahl finden.
|
|
|
|
Wir können uns die Struktur des bereitgestellten Geheimtextes ansehen:
|
|
{xdsy: Uswksj_Wl_Tjmlmk_Seaua_Xava}
|
|
|
|
Die meisten CTF-Challenges folgen einem Standard-Flaggenformat, wie z.B. {flag: ...} oder flag{...}.
|
|
Es ist höchstwahrscheinlich, dass das Geheimtext-Präfix {xdsy: dem Klartext {flag: entspricht.
|
|
|
|
Vergleichen wir die Buchstaben, um die Verschiebung zu berechnen:
|
|
|
|
* x $\rightarrow$ f
|
|
* d $\rightarrow$ l
|
|
* s $\rightarrow$ a
|
|
* y $\rightarrow$ g
|
|
|
|
Überprüfen wir den Abstand zwischen diesen Buchstaben im Alphabet:
|
|
|
|
1. x (24) zu f (6):
|
|
* Um von X nach F zu kommen, gehen wir einmal um das Alphabet herum.
|
|
* X $\rightarrow$ Y $\rightarrow$ Z $\rightarrow$ A $\rightarrow$ B $\rightarrow$ C $\rightarrow$ D $\rightarrow$ E $\rightarrow$ F
|
|
* Das ist eine Verschiebung von +8.
|
|
|
|
2. d (4) zu l (12):
|
|
* 4 + 8 = 12.
|
|
* Das ist ebenfalls eine Verschiebung von +8.
|
|
|
|
Das Muster bestätigt, dass der Entschlüsselungsschlüssel eine Rechtsverschiebung von 8 (ROT+8) ist.
|
|
|
|
(Hinweis: Das bedeutet, die Nachricht wurde ursprünglich mit einer Linksverschiebung von 8 verschlüsselt).
|
|
|
|
## 3. Entschlüsselung
|
|
|
|
Nun wenden wir eine +8 Verschiebung auf den Rest des Geheimtextes an: Uswksj_Wl_Tjmlmk_Seaua_Xava
|
|
|
|
* U (+8) $\rightarrow$ C
|
|
* s (+8) $\rightarrow$ a
|
|
* w (+8) $\rightarrow$ e
|
|
* k (+8) $\rightarrow$ s
|
|
* s (+8) $\rightarrow$ a
|
|
* j (+8) $\rightarrow$ r
|
|
* ...und so weiter.
|
|
|
|
Sie können dies manuell durchführen oder ein Online-Tool wie CyberChef (mit "ROT13" und einer Anzahl von 8) oder dcode.fr verwenden.
|
|
|
|
Geheimtext: Uswksj_Wl_Tjmlmk_Seaua_Xava
|
|
Klartext: Caesar_Et_Brutus_Amici_Fidi
|
|
|
|
## 4. Die Lösung
|
|
|
|
Kombinieren wir die Teile, erhalten wir die vollständige Flagge:
|
|
|
|
{flag: Caesar_Et_Brutus_Amici_Fidi}
|
|
|
|
("Caesar und Brutus treue Freunde" - eine etwas ironische Flagge angesichts der historischen Ereignisse!)
|