martes, 20 de diciembre de 2016

NUEVA LINUX / RAKOS AMENAZA: DISPOSITIVOS Y SERVIDORES BAJO EXPLORACIÓN SSH (DE NUEVO)


CONOCIMIENTO pertenece al mundo

Al parecer, los usuarios se quejan más a menudo frustrados recientemente en varios foros acerca de sus dispositivos integrados están sobrecargados de tareas informáticas y de red. Lo que estos mensajes particulares tienen en común es el nombre del proceso que causa el problema. Se ejecuta desde un directorio temporal y disfrazada como una parte del marco de Java, a saber, ".javaxxx". También se utilizan otros nombres como ".swap" o "kworker". Hace unas semanas, hablamos de los recientes incidentes Mirai y conectados a Mirai problemas de seguridad de la IO en la colmena mente: Cuando los dispositivos IO van pícaro y todo lo que fue escrita a continuación, sigue siendo válida.

VECTOR DE ATAQUE

El ataque se realiza a través de los intentos de forzar a los inicios de sesión SSH, de una manera similar a aquella en la que muchos gusanos Linux operan, incluyendo Linux / Moose (que se extendió al atacar a los inicios de sesión Telnet) - también se hace referencia aquí - como analizados por ESET desde el año pasado. Los objetivos incluyen tanto los dispositivos integrados y servidores con un puerto SSH abierto y donde una contraseña muy débil se ha establecido. El objetivo evidente de este troyano es armar una lista de dispositivos no garantizados y de tener la oportunidad de crear una red de bots que consta de los zombies como sea posible. La exploración se inicia con no demasiado extensa lista de IPs y se extiende de forma incremental a más objetivos. Sólo las máquinas que representan fruta madura desde la perspectiva de la seguridad se vean comprometidos. Tenga en cuenta que las víctimas reportado casos en los que habían tenido una contraseña segura, pero se olvidaron de su dispositivo que tenía activado el servicio en línea y fue revertido a una contraseña por defecto después de una restauración de fábrica. Sólo un par de horas de exposición en línea fue suficiente para una máquina de este tipo de reinicio para terminar en peligro!

ANÁLISIS

El malware está escrito en el lenguaje Go y el binario es generalmente comprimido mediante UPX la herramienta estándar. Lo extraño era que los nombres de las funciones fueron despojados de la binaria de la forma habitual, pero que todavía están presentes en una sección especial de todos modos. Con la ayuda de un guión de RedNaga Seguridad que mapea los símbolos de vuelta a su respectiva función en el software Pro desmontaje IDA, todo el análisis se simplifica a la revisión de las características que funcionan nombres sugieren, como main_loadConfig, main_startLocalHttp, main_Skaro_Upgrade, main_IPTarget_checkSSH etc. Hay cadenas como "Skaro" y "Dalek" en el binario. El autor (s) posiblemente tenía en mente una conexión a un planeta ficticio de la ciencia ficción serie televisiva Doctor Who de donde se originaron los Daleks.
Como primer paso, [Linux /] Rakos carga su configuración a través de la entrada estándar (stdin) en formato YAML. El archivo de configuración contiene información como listas de C & C de todas las credenciales que se han probado en contra de sus objetivos y parámetros internos:
-
Versión: 30 de 
la tala: sin 
generación: 0
Skaro: 
IPS: 
- "193.0.178.151" 
- "46.8.44.55" 
- "5.34.183.231" 
- "185.82.216.125" 
- "195.123.210.100" 
de ping: 60
damas: 
- "http://193.0.178.151" 
- "http://46.8.44.55" 
- "http://5.34.183.231" 
- "http://185.82.216.125" 
- "http: //195.123. 210.100 " 
-" http://httpbin.org/ip "
userpass: [ 
"raíz: qwerty", 
"usuario: admin", 
"ubnt: ubnt", 
"raíz: 12345",
"Invitado: 1234", 
"raíz: 1111", 
"prueba: Prueba", 
"apoyo: contraseña", 
"admin: 1", 
"prueba: test123", 
"administrador: administrador", 
"Fax: fax", 
"servicio : servicio ", 
" raíz: letmein ", 
" ventas: las ventas ", 
" invitado invitado ", 
" shell: sh ", 
" permitirá: sistema ", 
" usuario: contraseña ", 
" copia de seguridad: copia de seguridad ", 
" ftpuser: ftpuser ", 
" admin: password123 ", 
" Monitor: Monitor ", 
" bin: bin ", 
" raíz: ikwb ", 
" admin: manager ", 
" Oracle: Oracle ", 
" prueba: 12345 ", 
" bob: Bob ", 
"usuario1: 1234", 
"raíz: 1234", 
"raíz: sistema", 
PlcmSpIp: PlcmSpIp ",
"Usuario1: 123456", 
"1: 1", 
"raíz: 1", 
"apoyo: 123456", 
"nagios: nagios", 
"Demo: Demo", 
"admin: 1111", 
"PlcmSpIp: PlcmSpIp", 
"POS : pos ", 
" apoyo: 12345 ", 
" raíz: el béisbol ", 
" invitado: 12345 ", 
" admin: 1234 ", 
" apache: apache ", 
" raíz: 123456 ", 
" Adam: Adam ", 
" raíz: alpina ", 
" probador: retset ", 
" raíz: frambuesa ", 
" pi: frambuesa ", 
" administrador: 1234 ", 
" admin: abc123 ", 
" admin: qwerty ", 
" raíz: OpenELEC ", 
" admin: admin1234 ", 
"envío: envío", 
"ftpuser: asteriskftp", 
"operador: operador", 
]
El texto sin formato configuración completa de Linux / Rakos está disponible en Github de ESET: https://github.com/eset/malware-ioc/tree/master/rakos.
Después de esto, se inicia un local de servicio HTTP disponible en http://127.0.0.1:61314. Hay dos razones por las que este está instalado: la primera es como un método astuto para las futuras versiones del robot para matar a las instancias en ejecución independientemente de su nombre por su interés en http://127.0.0.1:61314/et; En segundo lugar, se trata de analizar una consulta de URL para los parámetros "IP", "u", "p" al solicitar http://127.0.0.1:61314/ex. El propósito de este recurso HTTP / ex todavía no está claro en el momento de la escritura y parece que no se hace referencia en otra parte del código.
El robot también crea un servidor web escucha en todas las interfaces. En las primeras versiones, se escucha en el puerto TCP 13666, pero ahora el puerto es escogida al azar de 20.000 a 60.000. El envío de una solicitud remota al dispositivo en este puerto devuelve la respuesta ...
{ "Origen": "192.168.18.1"}
... Donde la dirección IP corresponde a la parte del cliente. Esta salida está en el mismo formato que el servidor de prueba pública http://httpbin.org con la petición / ip. En el lado que ejecuta Linux / Rakos, uno puede ver los siguientes conectado a la salida estándar:
"{21/11/2016 09:02:03 INFO StartChecker.func1 ▶001 de verificación: 192.168.18.1}"
A continuación, se envía una solicitud HTTP inicial que contiene información importante acerca de los dispositivos tohttps víctima: // {C} y C / ping. Los datos enviados puede aparecer de la siguiente manera (algunos campos han sido modificados):

"Arco": "amd64", 
"config": 30, 
"tenedor": 0, 
"generación": 0, 
"IP": "192.168.18.1", 
"origen": "desconocido", 
"contraseña": " el envío ", 
" servicios: ": {" http ": {" addr ":" 192.168.18.1:80","available":false,"running":false}, 
"dns": { "addr": "" "disponibles": false, "corriendo": true}, 
"corrector": { "addr": "192.168.18.1:22418","available":false,"running":true}}, 
" estadísticas ": { 
"cnt": "carga: 0 análisis: 0 bendiga: 0 sm: 0: 0 ins mem: 2692k", 
"CPU": "1 x Intel (R) Core (TM) i7-4790 CPU @ 3.60GHz 3591Mhz", 
"hechos": "host: ubuntu pid: 10219 uid: 0 args: [/tmp/.javaxxx]", 
"carga": "1.14 0.45 0.17", 
"mem": "592MB / 1983MB libre (35,21% usado)" }, "tiempo de actividad": 514, 
"nombre de usuario": "envío", 
"uuid": "ab-97-b1-d5-2d-8F", 
"versión": 706 
}
La característica principal de este robot es su digitalización del servicio SSH en varias direcciones IP, que se obtienen desde el servidor C & C pidiendo la lista situada en la dirección https: // {C & C} / scan. Esta lista parece ser modificados con frecuencia. Las versiones anteriores del troyano también escanean para el servicio SMTP, pero los atacantes han deshabilitado la opción de compilación actual. Especulamos que esta característica podría estar bajo un mayor desarrollo, junto con las características adicionales de escaneado en red.
El ataque principal se lleva a cabo de la siguiente manera: si uno de los nombre de usuario: pares de contraseña de los resultados del archivo de configuración en un inicio de sesión con éxito a una de las conexiones de los dispositivos de destino para apuntar es exitosa, dos comandos se ejecutan en esa víctima visitada recientemente (id, uname -m), y otros controles se llevan a cabo y facilitar información. Finalmente los controles binarios ya sea si es posible subir a la nueva víctima y lo hace si la respuesta es afirmativa. Hemos simulado un ataque a nivel local con dos objetivos recogidos, 127.0.0.1 y 127.0.0.100 (originalmente, los atacantes intentan 200 blancos simultáneos cada 10 segundos). Supongamos que el robot no puede conectar con el primero que posteriormente marcas como olvidar, mientras que el segundo tiene éxito con el aviso INSTALAR (una conexión SSH se estableció con los envío correcto: las credenciales de acceso de envío, también tenga en cuenta que se elimina el ejecutable cargado inmediatamente después de la ejecución):
1_skaro_logs
Por otra parte, la puerta trasera es capaz de:
  • actualizar el archivo de configuración (https: // {C & C} /upgrade/vars.yaml)
  • la actualización en sí
Sin actividades maliciosas de manera inequívoca que se podría esperar, al igual que los ataques DDoS o spam difusión (por ahora), se implementan. Sin embargo, el envío de vuelta la dirección IP, nombre de usuario y la contraseña que permite a los atacantes a hacer lo que quieran con la máquina después. Junto con el lenguaje soez utilizado en el código, creemos que es poco probable que esto es sólo un experimento invasivo, pero inocente o un ejercicio desafortunado en la investigación académica.
Hay informes en línea acerca de los compromisos. Por ejemplo, uno del 23 de agosto, 2016, se pueden encontrar en Pastebin. La tabla siguiente contiene la salida de correr "lsof -n" en el proceso culpable. Tenga en cuenta que los rangos de direcciones IP juzgados por SSH intentos parecen al azar:
CMDPIDUSUARIOFDTIPOTAMAÑO / OFFNODONOMBRE
.javaxxx2773raízTXTREG5822568/tmp/.javaxxx(Suprimido)
.javaxxx2773raíz5uIPv60T0TCP*: 13666(ESCUCHA)
.javaxxx2773raíz6uIPv40T0TCP127.0.0.1:61314(ESCUCHA)
.javaxxx2773raíz7UIPv40T0TCP192.168.88.210:59958->66.209.103.211:ssh(ESTABLECIDO)
.javaxxx2773raíz10uIPv40T0TCP192.168.88.210:57370->139.196.21.134:ssh(ESTABLECIDO)
.javaxxx2773raíz13uIPv40T0TCP192.168.88.210:52507->148.75.167.198:ssh(SYN_SENT)
.javaxxx2773raíz16uIPv40T0TCP192.168.88.210:54746->208.9.162.70:ssh(SYN_SENT)
.javaxxx2773raíz17UIPv40T0TCP192.168.88.210:54533->148.75.167.191:ssh(SYN_SENT)
.javaxxx2773raíz18uIPv40T0TCP192.168.88.210:51856->139.196.20.79:ssh(ESTABLECIDO)
.javaxxx2773raíz19uIPv40T0TCP192.168.88.210:57210->208.9.162.95:ssh(SYN_SENT)
.javaxxx2773raíz24uIPv40T0TCP192.168.88.210:45946->148.75.167.99:ssh(SYN_SENT)
.javaxxx2773raíz25uIPv40T0TCP192.168.88.210:55928->208.9.162.25:ssh(SYN_SENT)
.javaxxx2773raíz27uIPv40T0TCP192.168.88.210:50041->139.196.21.177:ssh(ESTABLECIDO)

LA MITIGACIÓN Y LA LIMPIEZA

El troyano no es capaz de mantener la persistencia después de que el sistema es reiniciado. En su lugar, los dispositivos disponibles pueden verse comprometidas repetidamente.
Los pasos necesarios para limpiar después de un compromiso son los siguientes:
  • conectarse a su dispositivo mediante SSH / Telnet,
  • buscar un proceso llamado .javaxxx,
  • ejecutar comandos como netstat o lsof con opción -n para confirmar que se encarga de las conexiones no deseadas,
  • (Voluntariamente) reunir pruebas forenses por el vertido del espacio de memoria del proceso correspondiente (con gcore por ejemplo). También se podría recuperar la muestra de borrado de / proc con cp / proc / PID {} ​​/ {exe output_file}
  • el proceso con la -KILL
No hace falta decir que las víctimas tienen que asegurar sus credenciales SSH y tienen que ver que después de cada reinicio de fábrica.
También preparamos un plugin para Marco Volatilidad llamada vf_ioc_linux_rakos_a.py que pueda detectar los indicadores de compromiso si un volcado de memoria todo el apoyo de este marco se adquiere. Por otra parte, se extrae de los datos espaciales proceso maliciosos tales como la configuración o información enviados a la C & C. Está disponible aquí: https://github.com/eset/malware-ioc/tree/master/rakos

CONCLUSIÓN

Hemos presentado aquí otro ejemplo de una puerta trasera Linux difusión a través de un canal bien conocido. Parece que vale la pena para los atacantes para escribir nuevas piezas de software malicioso para abusar de las lagunas en el estado actual de la seguridad de la red. Nuestro consejo es el siguiente: No construir muros alrededor de los dispositivos de palos y pajas, pero a partir de ladrillos y piedras. El Internet es un lugar con mucho viento.
Fuente: http: //www.welivesecurity.com
CONOCIMIENTO pertenece al mundo

No hay comentarios:

Publicar un comentario

Disqus Shortname

Comments system