Inicio » Malware » UN CASO REAL UN LINUX TROYANIZADO analisis y limpieza.

UN CASO REAL UN LINUX TROYANIZADO analisis y limpieza.

Hola a todos, hoy os voy a contar unos hechos acaecidos en un ordenador muy cercano a mí, tanto como el usuario que lo utiliza, el caso es que este usuario se está iniciando en el uso de Linux como S.O. ya que le he estado comiendo la cabeza para que se mudara a linux vendiéndole sus virtudes (que son muchas) y obviando los riesgos de este  maravilloso S.O. que también los tiene , por tanto ahí se encontraba él con su distribución Kali linux digamos de uso común y como es un apasionado de las pruebas de concepto en ello estaba disfrutando de su máquina, cuando se le ocurrió poder instalar unas maquina virtuales para poder probar otras cosas de manera local, como el 99% de la gente, tira de vez en cuando de las descargas Peer to  peer ya sea por falta de recursos, el precio del software, u otras 60000 causas distintas que no vamos a analizar aquí, el caso que hizo uso de los famosos torrent, de la página web no menos famosa the pirate bay.sx…

Hasta aquí todo correcto verdad?, bien como mi amigo es un orgulloso exusuario Windows, y profundo conocedor de las redes peer to peer, en lugar de decidirse por Oracle Virtualbox o VMware player opciones muy válidas y gratuitas ambas, se dirigió a la nombrada página y realizo una búsqueda sobre los términos Vmware y obtuvo estos resultados los siguientes para la versión 10.0.1 muy moderna y apetecible…

1

Fijaos las dos opciones “Vmware Workstation v10.0.1 Linux Incl Keymaker -Embrace” tanto en su versión normal como en la version x64…

Como eran la opciones más apetecibles por su actualidad, mi amigo las descargo y procedio a instalarlas, y comprobó como aparte de estar registradas (Guay!!!) funcionar perfectamente (Mas Guuuaay!!!!) y ser gratis (ReGuuuuayyy!!!!!) en unas de sus comprobaciones con netstat (la paranoia está muy difundida entre algunos de nosotros :-D) se realizaba una conexión tcp de su dirección ip desde el puerto 59757 a una dirección ip desconocida a un puerto poco común…

En su mosqueo, formateo su pc, y hablando con el me reprocho que Linux no era seguro y que le había tangado, y en consecuencia me comprometí con el explicarle que había pasado en su sistema y la solución…

Bien como lo prometido es deuda procedí a descargarme los últimos programas que había descargado, y como yo no deseo tener visitas no deseadas procedí a crear una máquina virtual con la misma distribución que usa el Kali-linux en la que realizaría todo el estudio de la intrusión en vivo…

Para ello procedí a instalar  Vmware Workstation v10.0.1 linux incl Keymaker -Embrace…

2a

Vemos como el script de instalación comprueba la integridad del bundle…

2

Y carga el GUI del instalador de Vmware, mientras se descomprime el bundle…

3

Instalando a continuación sin problemas el programa…

Bien una vez aquí, comprobé mediante el uso de NETSTAT -anp las conexiones de red de mi máquina virtual, junto con el programa que las había provocado, y encontré lo que estaba buscando…

4

Fijaos la conexión TCP  establecida en nuestra ip 192.168.0.197 desde el puerto 59757 a la ip 95.211.60.8 al puerto 8070 y observad que esta conexión es realizada por el proceso con PID 2618 siendo el programa mingetty tty4, acto seguido me fui al monitor de sistema y en el apartado de procesos busque el PID del programa encontrando lo siguiente…

5

Como veis si vemos las propiedades del proceso y los archivos abiertos del mismo, nos da una nada desdeñable información, aquí tenemos que hacer un pequeño inciso y recordar que Linux trata todo el hardware como si fuera un archivo, por lo que si observamos los archivos abiertos vemos que pertenecen al directorio dev, en el cual se encuentran todos los devices o dispositivos del sistema por lo tanto observamos cómo está abierta una consola, un puerto 0, el archivo usr/sbin/vmware-ifconfig y una conexión de red del protocolo ipv4 a la ip 95.211.60.8 al puerto 8070.

Si comprobamos los mapas de memoria de dicho proceso podremos observar todos las librerías, archivos temporales, y archivos que utiliza dicho proceso, y podemos comenzar a inferir ligeramente que es lo que hace.

6

Vemos que las librerías que utiliza son libc-2.13.so, libcrypt-2.13.so, libdl-2.13.so, libm-2.13.so,    libnsl-2.13.so, libnss_compat-2.13.so,libnss-files-2.13.so,libnss-nis-2.1.3.so, lipthreat-2.13.so, lbutil-2.13.so,ld-2.13.so que se trataran de librerías de programación de c en el caso de libc, de enlace dinámico de librerías dll, libdl, la librería matemática libm, en el caso de libcrypt se trata de la librería de C dedicada a la criptología, en el caso de libnss se trata de una librería que para simplificar provee de resolución de nombres de host vía multicast DNS, siendo estas las librerías más llamativas en mi opinión, continuamos viendo los mapas de memoria…

7

Vemos como se han creado varios directorios temporales en los cuales se encuentran diversos archivos como Zlib.so, glob.so, etc … todos por duplicado y realizando función de entrada y salida, fijaos en los permisos una de las copias tiene permiso de ejecución y la otra tiene permisos de lectura y escritura…

8

Continuamos observando y al final de la misma vemos a nuestro archivo vmware-ifconfig, por triplicado con su localización…

Bien hasta aquí, recapitulemos tenemos una conexión saliente a una dirección ip, por un puerto que no hemos abierto nosotros causada por un archivo que venía en un programa aparentemente intacto, ¿curioso verdad?, podemos seguir indagando con el monitor de sistema y seguro clarificaremos algo más de cómo ha llegado hasta aquí nuestro amigo, recordemos que acabamos de instalar el programa “infectado” y que alguno de los procesos podría seguir apareciendo en el monitor del sistema, veamos…

9

Este me llamo la atención porque startpar es un ejecutable legítimo que se utiliza para iniciar scripts en paralelo, si hacéis una búsqueda en google veréis como el modificador –f  no se encuentra recogido en la man page, pero en este caso puedo inferir que cuando se ejecuta llama al archivo vmware-network para su ejecución en paralelo.

10

Vemos que utiliza varias de las librerías antes nombradas nada fuera de lo común y tiene algunos archivos abiertos, veamos qué es lo que contiene  vmware-network ¿os parece?

11

Pues parece ser que este script lo único que provee es el inicio del archivo vmware-ifconfig vemos que es un sencillo script de bash de apariencia legitima pero que hace una llamada a un ejecutable que no debería estar vmware-ifconfig.

Bien pues se iba clarificando como se había producido la troyanización, recordemos que mingetty está diseñado para  “to be a minimal getty for the virtual terminals on the the workstation’s monitor and keyboard. It has no support for serial lines.”

Luego es una terminal ¿qué usos se estará hacienda de ella?

En este punto reinicie el sistema, y puse a jugar a Wireshark que es el que me podría contestar muchas de las preguntas que me estaba haciendo sobre esta terminal, para acortar y resumir pondré solo las capturas más interesantes de wireshark, resumiendo se produce desde nuestro equipo la petición de conexión al equipo remoto se procede al three way handshake y se empieza la comunicación  y vemos esto en las capturas…

12

Irc? c4r4v4n3? VMW ES? Nickname is already in use…??  What The Fuck!!!! Es un canal de IRC!!!!

13

Número de usuarios, usuarios invisibles, Canales, etc…

14

Y más, uno no se puede sentir peor, cuando le han robado la cartera…por un momento comprendí como se sintió mi amigo…como lo prometido es deuda tire un poco más del hilo a ver si con un poco de suerte la página estaba en España y poner en conocimiento
del GDT esta intrusión para ello busque en whois…

15

16

Y comprobé  que era una empresa de hosting situada en Los Países Bajos…

 17

Bueno ya tenía claro que se trataba de un ircbot, como había sido instalado, y solo quedaba limpiarlo para ello me fui a su directorio dispuesto a acabar con el…

18

Pero no me dejaba, sorprendente aunque por otra parte esperado el que realizo esta llamémosla infección se tomó demasiadas molestias  como para dejar eliminar su obra así como así, pero tampoco se complicó mucho la vida, ahora veremos que blindo el archivo con el comando chattr –i el cual de el atributo de inmutabilidad a los archivos que se le otorgue por tanto  abrimos una terminal bash

19

Nos situamos en su directorio en este caso /usr/bin

20

Y le damos de nuevo su propia medicina…

21

Y estará en la basura.

Desde luego que hay partes del proceso que no documento del todo, se miraron los log del sistema a ver que interacciones se habían producido…

22

Cuando ya había identificado el archivo sospechoso me interés por su familia…

23

Como ya sabía de donde venía quise ver un poco más dentro de el…

24

25

E incluso busque cadenas que me permitieran saber mas…

26

Solo me falta pasarlo por IDA a ver si saco algo más en claro pero por el momento me lo reservo para mi 😀

Ahora viene la parte donde se dice lo que no se quiere oír Linux es un Sistema Operativo maravilloso, agil, eficiente, gratuito,  de código abierto y esta es la parte más maravillosa y a la vez más peligrosa que tiene , todas y cada una de sus aplicaciones, sean lo antiguas que sean están a disposición de la gente, esta documentadas de sobra y todos sabemos que no todo el mundo es bueno, hoy he querido ponerme en  paz con mi amigo cumpliendo mi palabra y a la vez gritar que no es oro todo lo que reluce, que lo que aparentemente es gratis y funciona trae consecuencias.

También he de decir que este problema en Ubuntu 13 no hubiera pasado por que no permite la escritura del instalador en el directorio usr/ , digo esto no habiéndolo probado al 100% y no haciéndome responsable de lo que hagáis, por ultimo una recomendación si usáis una distribución como kali recordad que en todo momento sois root  que cualquier acción que se realice en el sistema tiene consecuencias inmediatas, ¿a qué eso te lo repetí una cuantas veces amigo?…

Un Saludo a todos y espero que disfrutarais leyendo tanto como yo disfrute haciéndolo!!

Hasta pronto.

Para Juanjo mi Padre con todo mi amor.

13 pensamientos en “UN CASO REAL UN LINUX TROYANIZADO analisis y limpieza.

  1. Muy interesante. Me llama la atención la facilidad para encontrar el paquete de VMWare con mierdecilla contenida. Me pregunto cuántas veces sucede esto en el día a día a los que descargamos, ya no solo en Unix.

    • bastante a menudo, fijate en un detalle el boom de las botnets, aparte de las web maliciosas, etc,…que cosa mas sencilla que meter en el gta V por ejemplo un troyano… nos lo bajamos en un torrent y un zombie mas… escalofriante verdad?
      un saludo y gracias por comentar!

  2. Pingback: Un caso real: linux troyanizado, análisis y limpieza

  3. Pingback: UN CASO REAL UN LINUX TROYANIZADO analisis y limpieza. | BITÁCORA DE REDES | klinews.com

  4. Este tipo de amenazas tiene los pies muy cortos. Para empezar hay que usar distros un poco “seguras” o por lo menos mas conocidas (a ser posible versiones mas estables y de mas largo soporte). Despues hay que usar “sudo” y un usuario sin privilegios para todo lo que se pueda: A la hora de instalar software en distribuciones como Ubuntu, no usar repositorios que no sean los exclusivamente oficiales y de mirrors que sean oficiales (o comprobar las firmas hash de los paquetes). Es decir, nada de “ppa” ni cosas por el estilo. Si se quiere instalar algún software que viene en binario o es comercial, instalarlo como usuario sin privilegios en un directorio de vuestro “/home” y si pide privilegios de superusuario, no instalarlo o instalarlo por medio de una maquina virtual tipo virtualbox, lxc-jails o algo similar.

    Yo personalmente he instalado mucho software que viene en binario, pero siempre como usuario sin privilegios y en mi cuenta /home. También comprobar firmas hash desde la pagina oficial de ese software y no descargarlo de otros sitios. Ejemplo: si quiero tener la ultima version del IDE Eclipse y mi distro tiene el paquete mas antiguo, me voy a la pagina oficial de Eclipse y me lo descargo de alli. Despues lo ejecuto como usuario no root en mi /home y lo instalo en un directorio alli y lo ejecuto desde alli (poniendo un path si quieres para los binarios en .bash_profile o .bashrc).

    Luego además se pueden tener multitud de otras medidas de seguridad que harían imposible el uso de este tipo de troyanos. Cosas que pueden ayudar: selinux, apparmor, pax-grsecurity, rsbac, unhide, rkhunter, bsign, etc etc etc (sin contar con utilidades de redes y trafico).

    La principal y unica necesaria (en principio) es usar para este tipo de programas un usuario sin privilegios tanto para instalar como ejecutar. También el uso de una maquina virtual o jails dentro de vuestro sistema para usar ese tipo de programas (kvm, lxc, virtualbox, xen, ….). Y asunto arreglado.

    • Completamente de acuerdo, y si te fijas en el post es lo que quiero significar, por lo demás solo se trato de contextualizar una situación, que tenia solución, aparte claro esta de las medidas preventivas que tu cuentas.
      Gracias por comentar y ya te digo completamente de acuerdo contigo!!

    • Me parece que no has comprendido el tono del post, te recomendaría que volvieras a leerlo esta vez de manera comprensiva y verías que es exactamente lo que digo, parece ser que te lo tomas como un ataque al software libre en concreto a GNU/linux cosa que no es correcta de forma alguna.
      De todas formas un pequeño apunte, patético es aquel que falta el respeto sin tener necesidad…a buen entendedor…
      Un saludo.

  5. Pingback: UN CASO REAL UN LINUX TROYANIZADO, parte II como se realizo. | BITÁCORA DE REDES

  6. Huuuu interesate, me sucedio algo similar pero con un bug dentro de debian, que solicitaba conectarse a una direccion ip buscando salida por todos los puertos disponibles lo que ocacionaba que el router tronara

  7. Ola me facino tu pequeño gran aporte ala comunidad… pero estoy en pesando en el mundo de la seguridad… me encantaria me recomendaras algunos link de web o libros para poder aprender un poco mas sobre el tema… gracias por leer este msj…

    • Gracias! mira te recomendaría hxxp://it-ebooks.info , y hxxp://ebooks-it.org/ si tienes conocimientos de ingles fluidos, y aunque los tengas, siempre hxxp://0xword.com/ para mi son los fundamentales, por ahí puedes empezar…suerte!!

      perdona que me había comido los links!! un saludo

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s