rootkit.png

Una de las cosas que por mas que intentemos no podemos evitar, es la visita de un usuario no deseado en nuestras infraestructura, y por que digo, por más que intentemos? Cada día surgen vulnerabilidades y exploits que en dado momento tal vez no estemos enterados y uno o varios de los servicios que tenemos públicamente pueden ser objeto de ataque, y en algunos casos no nos damos cuenta que estamos comprometidos si no ya cuando ha pasado un tiempo.

Como siempre en mis andanzas por la red me he encontrado con un proyecto bastante interesante visto en SecurityByDefault y que no puede faltar en nuestro arsenal de herramientas de seguridad, esta herramienta es Unhide y vamos a hablar brevemente de ella.

Unhide es una herramienta desarrollada por Yago Jesus y Patrick Gouin enfocada a indentificar anomalías inicialmente para sistemas Unix/Linux, pero según vi en la página del proyecto hay una versión para sistemas Windows. Estas anomalías son detectadas por la herramienta indentificando procesos y puertos TCP/UDP ocultos, que son, sin duda síntomas de un RootKit en el sistema.

Según lei en un articulo en SBD de uno de los desarrolladores, unhide no emplea firmas, que es el método utilizado por los anti-virus, y se basa en conceptos del tipo “Deteccion de anomalías” contrastando diferentes fuentes de información y buscando inconsistencia entre ellas.

Unhide para Linux emplea las siguientes técnicas para la detección

unhide (ps)

Detecta procesos ocultos y a su vez emplea seis técnicas

  • Compara la salida de /proc contra /bin/ps
  • Compara la información obtenida de /bin/ps con la info obtenida recorriendo el filesystem de /proc.
  • Compara la información obtenida de /bin/ps con la obtenida de syscalls o llamadas del sistema (syscall scanning)
  • Búsqueda por fuerza bruta de todos los PIDs del sistema (PIDs bruteforcing)
  • Búsqueda al reverso, verifica que todos los hilos visto por ps también sean vistos por el Kernel (/bin/ps vs /proc, procfs, syscall)
  • Rápida comparación /proc, recorrido procfs y syscall vs salida /bin/ps

unhide-TCP

  • Identifica puertos TCP/UDP en escucha que no se muestran en /bin/nestat haciendo un brute forcing de todos los puertos TCP/UDP disponibles.

Unhide para Windows emplea las siguientes técnicas para la detección

WinUnhide

  • Compara la información obtenida del comando wmic con la Información obtenida de openprocess y toolhelp

WinUnhide-TCP

  • Primero muestra los puertos TCP/UDP mediante GetTcpTable y GetUdpTable y luego identifica los puertos ocultos usando bind()bruteforcing

Como instalamos esta valiosa herramienta en nuestros sistemas Linux.

Linux CentOS/RHEL

Instalamos el repo EPEL

Linux CentOS/RHEL 6

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Linux CentOS/RHEL 7

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

Instalamos Unhide

yum install unhide

Ubuntu/Debian

apt-get install unhide

Ejemplos de uso.

unhide proc

unhide brute

unhide sys

unhide-tcp

Es una herramienta que como mencione en el inicio de la entrada no debe faltar en nuestro arsenal de herramientas de seguridad. De mi parte mis felicitaciones a los desarrolladores por crear herramientas como esta que a su vez le facilitan mucho las cosas a los Sysadmin cuando necesitan detectar alguna anomalía en los sistemas. Esta va para mi arsenal y porque no, ya esta en agenda para integrarlo al deployer de seguridad JackTheStripper.

 

Fuente: jsitech

¿Quién está en línea?

Hay 15564 invitados y ningún miembro en línea