Puerta trasera y otras delicias en puntos de acceso Netis y Prolink

[h]Puerta trasera y otras delicias en los puntos de acceso Netis[/h]

https://www.wifi-libre.com/img/members/3/netis_2.jpg

Hay marcas de Puntos de Acceso de las cuales nunca hemos oído hablar.
A lo mejor es por algo… :stuck_out_tongue:
Netis sytem es una de ella.
Es una empresa China basada en Shenzhen - una más - un lugar que parece ser la silicon valley de los routers.
Los de Netis sytem prometen nada más ni menos que “Una tecnología y un cualidad sobresalientes con un servicio perfecto
No dudo de que el simpático equipo en su local de 20 000 metros cuadrados (y además tienen un bonzaï; podéis ver las fotos aqui netis company profile) lo da todo para el cliente.
El problema que tienen es que parecen un poco perdidos en lo que es “seguridad”.

Es lo que demuestra Karn GANESHEN en un “full disclosure” publicado el 13 de octubre (2015):
[list=*]
]netis RealTek wireless router / ADSL modem Multiple Vulnerabilities/]
]También publicado en Packet Storm : netis RealTek 2.1.1 Backdoor Accounts / RBAC Failure / CSRF/]
[/list]
Y lo que sugiere en su “timeline” :

[quote=r]# Discovered by: Karn Ganeshen

Reported on: [October 13, 2015]

Vendor Response: Vulnerability? What’s this?] (Respuesta del fabricante : ¿Una vulnerabilidad?¿Que es esto?)[/quote]

:lol:

Las vulnerabilidades descritas afectan a todos los PA con chipset Realtek que tiran del firmware RTK v2.1.1

[h]Puertas traseras http y credenciales débiles en ftp[/h]

[h] - http[/h]

El router tiene dos cuentas : la de administrador ( guest:guest ) y la de usuario ( user:user ).
Es un poco para despistarse llamar a “guest” el superusario y a “user” el usuario con menos privilegios.
La cuenta guest tiene un nivel de privilegios “2” (V N=“PRIORITY” V=“0x2” - poder total sobre la interfaz)
La cuenta de user tiene un nivel “0” y solo puede ejecutar unas tareas segundarías. ( N=“PRIORITY” V=“0x0” )
Si cambiamos los passwords como debido estaremos protegidos…, No es así.
Un intruso podría entrar como usuario (guest) con una segunda contraseña que ha quedado habilitada.
La contraseña tiene este formato : XXXXairocon
Dónde los XXXX son simplemente los 4 últimos dígitos del bSSID.
Si se entra con esta contraseña obtenemos unos privilegios “de usaurio avanzado” (nivel 1) muy similares a los de administrador (nivel 2)
Podéis ver a continuación el fichero de configuración de la cuenta :

<chain N="USERNAME_PASSWORD"> <V N="FLAG" V="0x0"/> <V N="USERNAME" V="guest"/> <V N="PASSWORD" V="XXXXairocon"/> <V N="BACKDOOR" V="0x1"/> <V N="PRIORITY" V="0x1"/> </chain>
Con su nivel intermedio de privilegios : V=“0x1”

[h] - ftp[/h]

El servicio ftp viene con tres cuentas con alto nivel de privilegios.
Con unos credenciales de los más peligrosos :
[list=*]
]admin:admin/]
]useradmin:useradmin/]
]user:user/]
[/list]

Si nos se deshabilita** telnet** se ha de cambiar la contraseña de… 3 cuentas :stuck_out_tongue:
Sino tendremos una puerta trasera accesible a cualquier niño…

[h]Posibilidad por un usuario sin privilegios de crear una cuenta con derechos de administrador[/h]

Por si no nos bastaba con los privilegios nivel uno, podemos tener los “super poderes” muy fácilmente.
Si quieres jugar a ser dios esto es el modo de empleo :
[list=1]
]Creamos un usuario nuevo y interceptamos nuestra petición POST /]
]Cambiamos el nivel de privilegio de 0 a 2 en los data “POST” que mandamos./]
]No hay protección CRSF - lo que nos permite ser discretos cuando mandamos datas a ejecutar en nuestras petciones http - y la nueva cuenta no aparece en la lista de usuario :D/]
[/list]

A continuación tenéis el modelo para hacer vuestra petición con datas POST.

POST /form2userconfig.cgi HTTP/1.1 Host: <IP> User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Referer: http://<IP>/userconfig.htm?v= Cookie: SessionID= Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 115 username=test&privilege=2&newpass=test&confpass=test&adduser=Add&hiddenpass=&submit.htm%3Fuserconfig.htm=

[h]… Y otras delicias[/h]

De regalo : otra petición con Data POST.
Un poco malvada ya que permite a un usuario non administrador de borrar cualquier cuenta, incluso de administrador…

POST /form2userconfig.cgi HTTP/1.1 Host: <ip> User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Referer: http://<IP>/userconfig.htm Cookie: SessionID= Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 131 username=test&privilege=2&oldpass=&newpass=&confpass=&deluser=Delete&select=s3&hiddenpass=test&submit.htm%

Podemos también desde una cuenta con derechos restringidos ejecutar funciones que nos están supuestamente prohibidas.
Nos basta con entrar la dirección completa de la pagina deseada en el navegador.
Por ejemplo, para jugar con el filtrado mac

http://<IP>/fw-macfilter.htm

Otra gran cagada :stuck_out_tongue: : los credenciales son guardados en texto plano y accesibles a cualquiera: :smiley:
Podemos descargar el fichero “config.img” que contiene los credenciales.

Además, en la interfaz web , los passwords y otras cosas sensibles aparecen con estrellitas *****.
Un usuario sin privilegios puede ver la información examinado el elemento desde el propio navegador (clic derecha + “examinar elemento”) y modificando el valor de “password” a “text”

Parta concluir una foto de familia de Netis sytem.
Uno de ellos es el encargado de la seguridad en los firmwares… ¿Sabrás encontrarlo?
https://www.wifi-libre.com/img/members/3/netis_1.jpg

edit

Nuestro amigo Karn GANESHEN ha encontrado las mismas vulnerabilidades en otro firmware de otro fabricante :lol:
Se trata de Prolink y de su firmware R76S Slt 4WNE1 6.1R que encontramos en el H5004NK
Todos los detalles en :
[list=*]
]PROLiNK H5004NK Backdoor Accounts / RBAC Failure / CSRF @ Packet Storm/]
[/list]