lunes, 29 de febrero de 2016

Linux con Unhide

Linux con Unhide

bien bien algunas de las cosas que muchos usuarios tememos son los procesos ocultos los cuales no sabes cuando se ejecutan que hacen y ocasiones hasta parecemos paranoicos checando de abajo hacia arriba
y como siempre checando en muchas paginas sobre el tema me e encontrado una muy interesante securitybydefault y bueno me encontre con algo como caido del cielo para analizar mi sistema que en esa ocasion por alguna extraña razon la sentia rara y bueno en la pagina anterior me describia mucho del tema asciendo referencia a esta herramienta unhide-forensics la cual les combiene saber estos datos.

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. 
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.

 para instalarlo en kali también es la siguiente manera
Ubuntu/Debian
# apt-get install unhide 

una vez instalado comenzamos a analizar nuestra máquina de la siguiente manera
#unhide proc
#unhide brute






# unhide sys
# unhide-tcp
a mi parecer esta es una de las herramientas de las cuales no puede faltar en nuestra computadora.A su vez le facilitan mucho las cosas a los Sysadmin cuando necesitan
detectar alguna anomalía en los sistemas.


bien ahora la pequeña documentación para utilizarlo

LISTADO DEL TEST

Los controles que no consisten en una o más de las siguientes pruebas.
Las pruebas estándar son la agregación de una o más elemental de prueba (s). 
test estándar :
   *El brute técnica consiste en los ataques de fuerza bruta todos los     identificadores de proceso.
Esta técnica sólo está disponible en kernels de Linux 2.6.
   *El proc técnica consiste en comparar /proc con la salida del /bin/ps.
   *El procall Combinaciones técnica pros y procfs pruebas.
 Esta técnica sólo está disponible en kernels de Linux 2.6.
   *El procfs técnica consiste en la comparación de la información obtenida de /bin/ps con la información recogida por caminar en el procfs.
con la opción -m prueba con más chequeos,para comprobar chdir.
Esta técnica sólo está disponible en kernels de Linux 2.6.

 
Elementary tests :
La técnica consiste en checkbrute fuerza bruta sobre todos los identificadores de proceso.
Esta técnica sólo está disponible en kernels de Linux 2.6.
La técnica de verificación chdir consiste en la información obtenida de la comparación de / bin / ps con la información recogida por hacer chdir () en el procfs.
Con la opcion -m, También verifica que el hilo que aparece en el "proceso de líder" y lista de conversaciones.
Esta técnica sólo está disponible en kernels de Linux 2.6.


La técnica checkgetaffinity consiste en comparar la información obtenida de / bin / ps con el resultado de la llamada a la función del sistema sched_getaffinity ().
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkgetparam technique consists of comparing information gathered from /bin/ps with the result of call to the sched_getparam() system function.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkgetpgid technique consists of comparing information gathered from /bin/ps with the result of call to the getpgid() system function.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkgetprio technique consists of comparing information gathered from /bin/ps with the result of call to the getpriority() system function.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkRRgetinterval technique consists of comparing information gathered from /bin/ps with the result of call to the sched_rr_get_interval() system function.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkgetsched technique consists of comparing information gathered from /bin/ps with the result of call to the sched_getscheduler() system function.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkgetsid technique consists of comparing information gathered from /bin/ps with the result of call to the getsid() system function.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkkill technique consists of comparing information gathered from /bin/ps with the result of call to the kill() system function.
Note : no process is really killed by this test.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checknoprocps technique consists of comparing the result of the call to each of the system functions. No comparison is done against /proc or the output of ps.
This technique is only available on Linux 2.6 kernels.
The checkopendir technique consists of comparing information gathered from /bin/ps with information gathered by making opendir() in the procfs.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkproc technique consists of comparing /proc with the output of /bin/ps.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkquick technique combines the proc, procfs and sys techniques in a quick way. It's about 20 times faster but may give more false positives.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkreaddir technique consists of comparing information gathered from /bin/ps with information gathered by making readdir() in /proc and /proc/pid/task.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checkreverse technique consists of verifying that all threads seen by ps are also seen in procfs and by system calls. It is intended to verify that a rootkit has not killed a security tool (IDS or other) and make ps showing a fake process instead.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checksysinfo technique consists of comparing the number of process seen by /bin/ps with information obtained from sysinfo() system call.
Esta técnica sólo está disponible en kernels de Linux 2.6.

The checksysinfo2 technique is an alternate version of checksysinfo test. It might (or not) work better on kernel patched for RT, preempt or latency and with kernel that don't use the standard scheduler.
It's also invoked by standard tests when using the -r option
Esta técnica sólo está disponible en kernels de Linux 2.6.

ESTATUS DE SALIDA:

0    Para OK,
1    Si se encuentra un hilo oculto o falso.