Pues si, eso parece.. el telefono viene con bicho desde la fábrica o similar, pero empecemos por el principio…
Este año, como he debido ser malo bueno, los reyes me han regalado un movil nuevo. Un estupendo telefono chino de esos de marca desconocida en occidente salvo para los muy frikis del tema.
Se trata concretamente de un Doogee Voyager2 D310. Se conoce que esta vez los reyes, aparte de venir de oriente lo hacen a traves de Dealextreme.
Una de las primeras cosas que queria hacer, era investigar como funciona un jueguecito, pero ya hablare de eso otro dia, el caso es que en vez de conectarlo al punto de acceso de casa, lo puse por defecto al de una raspberry pi que tengo para tal efecto. Así se que puedo pinchar todo el tráfico de red para cotillear lo que se manda.
El susto que me lleve fue ya interesante, antes de instalar nada y ya el telefono, simplemente con su android y su cuenta de google ya generaba un monton de tráfico. Alguno de ellos salto ya directamente a la primera como algo “raro”
Definitivamente estas peticiones DNS, apestan. Un breve vistazo a lo que hay en esas máquinas en threatcrowd y confirmado, maquinas conocidas por estar sirviendo malware y unos 500 DNS distintos,
Asi que nada. Ya tengo tarea, encontrar que demonios esta corriendo el telefono que hace estas conexiones. Afortunadamente es un telefono que trae un “Engineer Mode ” que hace trivial ejecutar codigo como root si hace falta. Asi que la primera opcion para encontrar que programa estaba ejecutando esas conexiones fue cutre, pero eficiente. El comando script para registrar lo que iba saliendo en pantalla, una conexion adb, y un bucle infinito…
while true; do busybox netstat -tapn ; done
Despues simplemente a buscar cuando aparece la conexion…
Ahi esta… “debugs” que c#~@½ será eso??
Luego, ya te tiras de los pelos al ver el binario.. concretamente se encuentra en la ruta /data/debugs/debugs
Estupendo!! Ahora ya se, que ademas de tener, lo que parece ser un troyano en mi movil, supone un agujero de seguridad y que cualquier otra aplicacion podria intentar escalar privilegios…
Una busqueda, mas detallada encuentra otros dos binarios, esta vez en el /bin
Si no me fallan los calculos y lo poco que he visto por dentro, el debugsrun es que lo ejecuta, y el debugsbak es una copia del debugs que sobreescribe en la ruta original si ve que algo ha cambiado. No es que sea un fiera del reversing… un mero “strings” ya te cuenta todo eso..
Una vuelta rapida por virustotal me indica que el malware no esta inventariado, asi que os dejo por aqui los md5 de los ficheros
root@VOYAGER2_DG310:/ # md5 /data/debugs/debugs a0061e4b77dacd1cb25b0ee0e1c7b9ce /data/debugs/debugsroot@VOYAGER2_DG310:/ # md5 /system/bin/debugsrun 3e76bc08ea812adebfaa72cd72daf5d2 /system/bin/debugsrun root@VOYAGER2_DG310:/ # md5 /system/bin/debugsbak a0061e4b77dacd1cb25b0ee0e1c7b9ce /system/bin/debugsbak |
Tengo pendiente meterme en serio a tracear lo que hacen, tanto por reversing de los binarios como analizando mas en detalle el trafico que generan..
Mientras tanto, para que os hagais una idea, esta es la peticion estandar que he visto…
Os dejo aqui los ficheros.
Si alguien tiene a bien avanzar con la investigación, subirlos para que se detecten como algo sospechoso o localizarlos en otros modelos de teléfono, please que me avise.
Can you check your
sdcard/Download/debugsbin.apk for that file and upload it?
sdcard / Descargar / debugsbin.apk para ese archivo y subirlo ?
Sorry.
There is no apk on those directories or anyother apk in in the phone with the string ´debug´. I don’t know how to find more files related to this malware. Any idea?
Prueba con strace/strace para ver todos los archivos que abre al ejecutarse.
Saludos, puedes instalar Koodous en tú móvil https://play.google.com/store/apps/details?id=com.koodous.android, y desde la interfaz de analista https://analyst.koodous.com/ si tienes el móvil vinculado con tu cuenta puedes ver los apks instalados en tu dispositivo, sus análisis y si son detectados por la comunidad.
Cualquier duda solo pregúntame por email.
Saludos.
He instalado Koodus, y el primer vistazo lo que dice es que mi telefono esta limpio. Investigare un poco mas en la aplicacion a ver si puedo reportar lo que vaya encontrando. Gracias
I had a similar issue on a brand new Xiaomi Mi Pad2, it kept opening tabs on chrome everytime I opened it pointing to a malware download page.
In my case it all pointed to a youtube app, coming with the phone, that wasn’t the official google app.
My method to find it:
I activated developer mode, and USB debugging, and using adb to check on logs:
(On the PC, with the connected device on USB):
adb logcat > logs.txt
Looking through logs.txt I located entries with the suspect URL, and got the appid. I installed an ID to APP app from the market (root needed), that told me the culprit was youtube.
I will have a look at my Youtube.apk just in case……
Se conecta a alguno de estos 3 web services que informan sobre el terminal.
Creo que lo que intentan saber es el nº de terminales que se han “vendido” al usuario final
210.51.45.8911 ota.ragentek.com ota1.ragentek.com
Has probado a mirar si hay algún paquete raro instalado con “adb shell pm list packages -f” ?? (sin comillas)
Según el código descarga en la sdcard/Downloads un apk, lo instala y después lo elimina. No he podido reproducirlo porque me faltan algunas librerías compartidas.
Estoy bastante interesado en el tema, si quieres puedes ponerte en contacto conmigo a través de mi email. Gracias!
Creo que he encontrado el APK: https://analyst.koodous.com/apks/23bf9873c2d077cc4788d1cf8131e448d89018330491470ee6e58669b15a9af2
Si es este, no hace gran cosa, sólo copiar el “debugs” de la tarjeta a /system/bin/, le proporciona permisos y ejecuta.
“””
localRuntime.exec(“cp -r /sdcard/debugs/debugs /system/bin/debugs”);
localRuntime.exec(“chmod 777 /system/bin/debugs”);
localRuntime.exec(“/system/bin/debugs”);
“””
¿Donde has encontrado el apk? ¿Sabes como llega al telefono?
Gracias
Perdona por tardar en responder. Investigué un poco más y parece que es lo que dice Kepa iNKuBo. Hay 3 “ejecutables”, un APK y 2 binarios que se complementan entre sí. Todos ellos vienen instalados en el teléfono por defecto según me cuentas y puede que haya más marcas involucradas.
Ese APK lo tienen en Koodous, a lo mejor algún usuario lo envió antes.
Un saludo.
Yo tengo un DG310 de dealextreme, de los primeros que salieron, lo he flasheado varias veces y ahora tiene lolipop aosp bajado de needroms.com
También me viene con esos archivos, con identico md5sum, tampoco tengo /sdcard/downloads/debug ni ningún apk.
Haciendo un strings a uno de ellos me salen esas url junto a las de otra del fábricante.
Me llama la atención que en mi ROM también este, y que el malware tenga tantos comentarios de lo que hace,
¿ no sera parte del sistema de actualizaciones y/o debug de dooge/ragentek?
En cualquier caso me parece que envía mas información de la necesaria para simplemente comprobar si hay una actualización.
Es posible que sea parte del sistema de actualizaciones, pero en cualquier caso, mi punto de vista es que lo que hace es totalmente inadecuado y ademas un peligro para el telefono.
“Definitivamente estas peticiones DNS, apestan. ” No es por ser troll, pero hazme el favor de eliminar esa coma
No son solo las marcas “raras”, yo compre en navidad un HTC One E9 en Hong Kong y esta exactamente igual, incluso despues de un hard reset de fabrica sigue pasando, estoy planteandome seriamente instalarle un cyanogenmod, aunque he leido alguna buena recomendacion aqui, voy a seguirlas y a ver que pasa.
las .iso oficiales de MIUI se reinician solas en silencio sin que luego demande passwords, es imperceptible. Un dia lo descubrí por casualidad. Tras investigar cerré todo el tráfico con un firewall pero aun así había un código en la propia distro etiquetado con la marca de mi movil que podia reconfigurar el iptables y así volvia a permitir la conexion. Esnifando el tráfico con un binario de tcpdump externo renombrado y anulando permisos para internet de la mayoría de procesos necesarios del sistema con un software que usa xframework para establecer permisos, al final pude ver que las ip que se conectaban para ordenar reiniciarse el movil (de madrugada casi siempre) no sólo eran solo chinas sino también de otros paises. Creaban un tráfico cifrado no muy voluminoso tras haber logueado un recorrido por las carpetas clave de datos personales (contactos, thumbs, etc) Todo esto tarde semanas en descubrirlo porque al reiniciarse parecia desaparecer el rastro de todo lo que habia pasado. Todo sucedia antes del momento de reinicio y despues. Daba igual anular el 3G. Al final consegui anular la reconfiguración y segmentos enteros de IP de varios paises y de momento no lo ha hecho más. Nunca supe como transcurre todo exactamente pero todo esto me temo que está automatizado y en principio no hay personas detras de lo que ocurre. Pero no te recomiendaria subir nada en internet hasta que investigues mejor que es lo que hace no sea que dentro exista alguna identificacion de tu movil.
La verdad es que todo esto es totalmente indignante. No quiero ni imaginar que estará pasando con la mayoria de usuarios que no tienen ningun conocimiento. Yo no me creo en absoluto que esto tenga simples propósitos comerciales por la sofisticación empleada y la procedencia de las IP que se conectan que no son todas del fabricante. Todo esto es propio de un estado fascista o parapolicial. Deberia existir una campaña mundial para que haya una legislacion de alcance global. Se nos está olvidando que esto es una cuestión de derechos humanos tipificado en la la Carta de la ONU. Esto no acabará bien.
Animo con tus pesquisas.
Sin ofender… No cuentas nada en este análisis y haces unas afirmaciones que no tienen fundamento. No digo que la ip no sea maliciosa. Solo tienes que meterla en google y ver la advertencia (solo con eso ya te habrías ahorrado esta cutrez de post). Pero el análisis no dice nada… troyano, virus… un md5 de un archivo que podría ser un log y que posiblemente no será el mismo en cinco minutos…
netstat, ls… LOL! Te queda hacer un mkdir y un df -h (que por cierto, saber este comando te habría sido de ayuda) para que el post quede mejor. XD. Y encima te pones a hablar de que una aplicación podría usar este código para escalar privilegios… y lo dices mientras estás conectado al terminal como root a través de una mera aplicación porque el teléfono viene rooteado de fábrica. En serio…?? Si tienes un teléfono rooteado ninguna aplicación necesitará de ningún bug para escalar privilegios… Lo hará y punto.
Conecta el teléfono a internet a través de un proxy que esté instalado en tu pc y desde ahí podrás hacer un man in the middle y rastrear toda la información que manda y recibe. Pero para enseñar esta milonga no enseñes nada… porque me parece increíble que sea portada de meneame.
Para Tony… http://es.gizmodo.com/ley-cunningham-cuando-quieras-saber-algo-en-internet-1753726444
Tony, yo he preferido avisar en cuanto lo he visto, en vez de enredarme a investigar sin avisar a nadie. Si a la gente le ha parecido relevante para menearlo no me lo puedes achacar a mi. En cuanto a lo que dices, para el rigor que pides, algunas de tus afirmaciones son totalmente incorrectas.
1) No tengo ni idea de donde sacas que el archivo podria ser un log, que no lo es, son binarios que se ejecutan. Y no, no cambian cada 5 minutos. En el resto de comentarios veras que hay otro usuario que confirma que en su telefono tambien estan esos binarios con esos md5.
2) Cualquier aplicacion no puede obtener permisos de root sin mas. Yo me he conectado desde fuera con esos permisos poniendo el telefono en modo debug que eso si te lo permite, que es totalmente distinto a que cualquier aplicacion pueda obtenerlos desde dentro.
3) En cuanto a lo del proxy….. ¿De donde te crees que sale la captura de trafico que esta en el articulo?
He estado jugueteando con el debugs hace un rato y esto es un troyano de manual. Se conecta a cierto servidor por HTTP pasándole todo tipo de información como bien detectaste aquí y de ahí se baja comandos. Esos comandos incluyen bajarse movidas, instalar APKs y ejecutar comandos en el shell. De los otros pasé porque mira, es tarde y tengo sueño 😛
Tengo por aquí todo el fichero decompilado, me pasé un rato renombrando las funciones (gracias a las funciones de debug que hay por todas partes) y la cosa tiene un poco más de sentido. No sé si avanzaste mucho más, ¿quieres que te pase lo que tengo hecho, o algo?