UNHIDE(8) UNHIDE(8) NOMBRE unhide -- Herramienta forense para descubrir procesos ocultos SINOPSIS unhide-linux [OPTIONS] TEST_LIST unhide-posix proc | sys DESCRIPCION unhide es una herramienta forense para detectar procesos ocultos en sistemas Unix que hayan sido ocultados mediante rookits / modulos en el Kernel o cualquier otra tecnica de ocultacion. Implementa seis tecnicas de deteccion OPCIONES Opciones solo estan disponibles para unhide-linux no para unhide-posix. -d Realiza una prueba doble control en test 'brute' para reducir la aparicion de falsos positivos. -f Crea un fichero de log (unhide-linux.log) en el directorio de ejecucion. -h Muestra la ayuda -m Realiza multiples tests anadidos, desde la version 2012-03-17, esta opcion solo es valida en los tests 'procfs', 'procall', 'checkopendir' y 'checkchdir' Implica -v -r Emplea una version alternativa del test sysinfo -V Muestra la version y sale -v Fuerza la salida debug con los mensajes de error (se puede repetir varias veces -vv) -u Realiza envios sin buffer a la salida estandar. Esta opcion puede ser util cuando unhide es iniciado por otro proceso (por ejemplo, es utilizado por unhideGui). -H Proporcionar un resultado un poco mas humano. Esta opcion anade mensajes finales a las pruebas e indica cuando no se encuentran procesos ocultos. TEST_LIST Los checks consisten en uno o mas de los siguientes tests Los tests estandar son en realidad agrupaciones de varios tests elementales Tests estandar : El test brute consiste en hacer fuerza bruta sobre todo el espacio de identificadores de procesos (PIDS) Esta tecnica solo esta disponible con la version unhide-linux. El test proc consiste en comparar el directorio /proc con la salida del comando /bin/ps El test procall combina los tests proc y procfs Esta tecnica solo esta disponible con la version unhide-linux. El test procfs consiste en comparar la informacion obtenida por /bin/ps con los datos obtenidos al recorrer procfs Con la opcion -m este test realiza tests adicionales, para mas informacion consultar checkchdir Esta tecnica solo esta disponible con la version unhide-linux. El test quick combina los tests proc, procfs y sys en una forma 'rapida' de ejecucion, es hasta 20 veces mas rapido que otros test pero tambien puede ofrecer mas falsos positivos Esta tecnica solo esta disponible con la version unhide-linux. El test reverse consiste en verificar que todos los procesos e hilos que son vistos por /bin/ps existen realmente buscandolos en procfs y por system calls. El objetivo es averiguar si se ha modificado /bin/ps para hacer creer que existen en ejecucion algunos programas que realmente no lo estan Esta tecnica solo esta disponible con la version unhide-linux. El test sys consiste en comparar la informacion obtenida de /bin/ps contra algunas system calls Tests elementales : El test checkbrute consiste en hacer fuerza bruta contra todo el espacio de procesos (PIDS) del sistema Esta tecnica solo esta disponible con la version unhide-linux. El test checkchdir consiste en comparar la informacion obtenida por /bin/ps y compararla haciendo chdir() en procfs Con la opcion -m tambien se comprueba que el hilo aparece en la lista "leader process" Esta tecnica solo esta disponible con la version unhide-linux. El test checkgetaffinity consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call sched_getaffinity() Esta tecnica solo esta disponible con la version unhide-linux. El test checkgetparam consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call sched_getparam() Esta tecnica solo esta disponible con la version unhide-linux. El test checkgetpgid consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call getpgid() Esta tecnica solo esta disponible con la version unhide-linux. El test checkgetprio consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call getpriority() Esta tecnica solo esta disponible con la version unhide-linux. El test checkRRgetinterval consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call sched_rr_get_interval() Esta tecnica solo esta disponible con la version unhide-linux. El test checkgetsched consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call sched_getscheduler() Esta tecnica solo esta disponible con la version unhide-linux. El test checkgetsid consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call getsid() Esta tecnica solo esta disponible con la version unhide-linux. El test checkkill consiste en comparar la informacion obtenida por /bin/ps con el resultado de la system call kill() Nota: ningun proceso es 'matado' con este test Esta tecnica solo esta disponible con la version unhide-linux. El test checknoprocps consiste en comparar el resultado de la informacion obtenida usando cada una de las system calls buscando diferencias entre si. No se emplea /bin/ps o /proc Esta tecnica solo esta disponible con la version unhide-linux. El test checkopendir consiste en comparar la informacion obtenida por /bin/ps con el resultado de hacer opendir() sobre procfs Esta tecnica solo esta disponible con la version unhide-linux. El test checkproc consiste en comparar la informacion obtenida por /bin/ps con los datos de /proc Esta tecnica solo esta disponible con la version unhide-linux. El test checkquick combina los tests proc, procfs y sys en una forma 'rapida' de ejecucion, es hasta 20 veces mas rapido que otros test pero tambien puede ofrecer mas falsos positivos Esta tecnica solo esta disponible con la version unhide-linux. El test checkreaddir consiste en comparar la informacion obtenida por /bin/ps con el resultado de hacer readdir() en /proc y /proc/pid/task Esta tecnica solo esta disponible con la version unhide-linux. El test checkreverse consiste en verificar que todos los procesos e hilos que son vistos por /bin/ps existen realmente buscandolos en procfs y por system calls. El objetivo es averiguar si se ha modificado /bin/ps para hacer creer que existen en ejecucion algunos programas que realmente no lo estan Esta tecnica solo esta disponible con la version unhide-linux. El test checksysinfo consiste en comparar el numero de procesos contabilizados por /bin/ps contra el numero de procesos que indica la syscall sysinfo() Esta tecnica solo esta disponible con la version unhide-linux. El test checksysinfo2 es una version alternativa de checksysinfo, se presupone que funciona mejor en kernels parcheados para RT, preempt o latency y tambien con kernels que no usen el planificador estandar Este test esta implicito cuando se ejecuta con la opcion -r Esta tecnica solo esta disponible con la version unhide-linux. Valor regresado: 0 si todo OK, 1 si se ha localizado un proceso/hilo oculto o falso EJEMPLOS Un test excepcionalmente rapido : unhide quick Test rapido : unhide quick reverse Estandar test : unhide sys proc Un test completo : unhide -m -d sys procall brute reverse FALLOS Puedes reportar fallos de unhide en el 'bug tracker' de GitHub (https://github.com/YJesus/Unhide/issues) Con las ultimas versiones de kernel de Linux (> 2.6.33), el test sysinfo puede reportar falsos positivos. Puede ser debido a la optimizacion en el scheduler, el uso de cgroup o incluso el uso de systemd. El uso del patch PREEMPT-RT amplifica la probabilidad de que se de ese problema. Esto es actualmente objeto de investigacion. VEASE TAMBIEN unhide-tcp (8). AUTOR Este manual ha sido creado por Francois Marier (francois@debian.org) y Patrick Gouin (patrickg.github@free.fr). Se concede permiso para ser copiado, distribuido y modificado bajo los terminos de la licencia GNU, version 3 o versiones posteriores publicadas por la Free Software Foundation LICENCIA License GPLv3+: GNU GPL version 3 o posterior . Este es software libre, vd es libre de modificar y redistribuir las modificaciones. Este software no provee ninguna garantia . Comandos de administracion Junio 2022 UNHIDE(8)