Skip to content

Commit

Permalink
Initial Commit : version 20130526
Browse files Browse the repository at this point in the history
  • Loading branch information
patrick-g2 committed Jan 23, 2021
1 parent 2967a8d commit ef9f993
Show file tree
Hide file tree
Showing 31 changed files with 8,054 additions and 0 deletions.
674 changes: 674 additions & 0 deletions COPYING

Large diffs are not rendered by default.

170 changes: 170 additions & 0 deletions LEEME.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
**-Unhide-**
http://www.unhide-forensics.info

Unhide es una herramienta forense que permite descubrir procesos y puertos TCP/UDP ocultos
por rootkits / LKMs o cualquier otra tecnica de ocultacion.


// Unhide (unhide-linux o unhide-posix)
// -------------------------------------

Permite identificar procesos que hayan sido ocultados. Implementa seis tecnicas:

1- Comparacion de la informacion obtenida por /bin/ps frente a los directorios en /proc

2- Comparacion de la informacin obtenida de /bin/ps contra la estructura de directorios de /proc
SOLO para la versión "unhide-linux"

3- Comparacion de la informacion visible por /bin/ps frente a la que se puede obtener
utilizando diversas sycalls del sistema (syscall scanning).

4- Busqueda de incoherencias entre el resultado de /bin/ps y la informacion obtenida en /proc y syscall scanning (Reverse scanning)
SOLO para la versión "unhide-linux"

5- Ocupacion por fuerta bruta del espacio de PIDs disponibles en el sistema (PIDs bruteforcing)
SOLO para la versión "unhide-linux"

6- Escaneo 'rapido' de informacion usando /proc procfs y syscalls
SOLO para la versión "unhide-linux". Es un test notablemente más rápido que usar de forma independiente los test 1/2/3 pero
mas propenso a dar falsos positivos

// Unhide_rb
// ---------

Es un port en el lenguaje de programación C de unhide.rb, proyecto alternativo a Unhide
Como el original, es tan solo una aproximación ligera de Unhide

- El hace solo tres test (kill, opendir y chdir)
- Tan solo ejecuta /bin/ps al iniciar el escaneo y para el check doble
- Los tests realizados son mucho menos fiables (por ejemplo usar los valores de retorno en vez de errno)
- Los procesos son identificados tan solo por su ejecutable (unhide-linux también usa cmdline y 'sleeping kernel process')
- No obstante, incorpora unos pocos métodos anti-fallos, (fallos al usar popen por ejemplo)
- No tiene capacidad de logging

Es bastante rápido, unas 80 veces más rápido que usar 'unhide-linux quick reverse'

// Unhide-TCP

Permite identificar puertos TCP/UDP que esten a la escucha pero no aparezcan listados
en /bin/netstat o sbin/ss, usa dos métodos:
- Fuerza bruta sobre todo el rango de puertos TCP/UDP disponibles y comparándolos con la salida de los comandos SS/netstat
- Probando todos los puertos TCP/UDP que no lista netstat

// Ficheros

unhide-linux.c --> Procesos ocultos, Linux 2.6.x
unhide-linux.h

unhide-tcp.c --> Puertos tcp/udp ocultos
unhide-tcp-fast.c
unhide-tcp.h

unhide-output.c --> Rutinas de uso para Unhide
unhide-output.h



unhide_rb.c --> un port en C de unhide.rb (una versión muy simplificada de unhide-linux en Ruby)

unhide-posix.c --> Procesos ocultos, Sistemas Unix (*BSD, solaris, linux 2.2, linux 2.4) No incorpora
PIDs bruteforcing, Necesita mas testing. Atención: Esta es una versión desactualizada de Unhide solo para sistemas antiguos

changelog -- El log de cambios de Unhide

COPYING -- Fichero de licencia, GNU GPL V3

LISEZ-MOI.TXT -- Versión francesa de este fichero

NEWS -- Novedades relacionadas con las versiones

README.txt -- Versión inglesa de este fichero

sanity.sh -- Fichero para realizar tests de funcionamiento

TODO -- Cosas pendientes de hacer (¿Algún voluntario?)

man/unhide.8 -- Página man en inglés

man/unhide-tcp.8 -- Página man de unhide-tcp en inglés

man/fr/unhide.8 -- Página man en Francés de unhide

man/fr/unhide-tcp.8 -- Página man en Francés de unhide-tcp

man/es/unhide.8 -- Página man de unhide en Español

man/es/unhide-tcp.8 --Página man de unhide-tcp en Español


// Compilación

Para compilar Unhide es necesario:
glibc-devel
glibc-static-devel

Y las siguientes dependencias:
- unhide-tcp para linux :
iproute2
net-tools (para netstat)
lsof
psmisc (para fuser)
- unhide-tcp para freeBSD :
sockstat
lsof
netstat

unhide-linux, unhide-posix, unhide_rb :
procps

Si estás usando un kernel de Linux > = 2.6
gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux
gcc -Wall -O2 --static unhide_rb.c -o unhide_rb
gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c -o unhide-tcp
ln -s unhide unhide-linux

Si no,(Linux < 2.6, *BSD, Solaris and other Unix)
gcc --static unhide-posix.c -o unhide-posix
ln -s unhide unhide-posix

// Utilización

TIENE QUE SER root para usar unhide


Ejemplos:

# ./unhide-linux -vo quick reverse
# ./unhide-linux -vom procall sys
# ./unhide_rb

# ./unhide-tcp -flov
# ./unhide-tcp -flovs


// Licencia

GPL V.3 (http://www.gnu.org/licenses/gpl-3.0.html)

// Agradecimientos

A. Ramos ([email protected]) Por aportar algunas expresiones regulares

unspawn ([email protected]) Soporte en CentOS

Martin Bowers ([email protected]) Soporte en CentOS

Lorenzo Martinez ([email protected]) Por aportar varias ideas y betatesting

Francois Marier ([email protected]) Por crear las paginas man y dar soporte en Debian

Johan Walles ([email protected]) Por encontrar y solucionar un importante fallo del tipo "condicion de carrera"

Jan Iven ([email protected]) Por sus magníficas mejoras, nuevos tests y bugfixing

P. Gouin ([email protected]) Por su increible trabajo 'fixeando' bugs y mejorando el rendimiento

François Boisson por su idea de un doble control en el test 'brute'

Leandro Lucarella ([email protected]) por el modo de escaneo rápido y la re-escritura de unhide-tcp

Nikos Ntarmos ([email protected]) Por su inestimable labor ayudando a portar Unhide a FreeBSD y por hacer el empaquetado para FreeBSD.
184 changes: 184 additions & 0 deletions LISEZ-MOI.TXT
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
**-Unhide-**
http://www.unhide-forensics.info

Unhide est un outil d'investigation dont le rôle est de détecter les processus et les
flux TCP/UDP cachés par les rootkits / LKM ou par d''autres techniques de masquage.

Le paquet comprend quatre utilitaires : unhide-posix, unhide-linux, unhide_rb et unhide-tcp.

// unhide (unhide-posix, unhide-linux)
// -----------------------------------

Détection de processus cachés. Il met en œuvre six techniques principales

1 - Comparaison de /proc avec la sortie de /bin/ps.

2 - Comparaison des informations recueillies par le parcours de l'arborescence du
système de fichiers procfs avec les informations issues de /bin/ps .
Cette technique n'est disponible qu'avec la version unhide-linux.

3 - Comparaison des informations collectées depuis des appels système avec les
informations issues de /bin/ps(syscall scanning).

4 - Scan complet de l'espace des ID de processus par force brute (PIDs bruteforcing).
Cette technique n'est disponible qu'avec la version unhide-linux.

5 - Comparaison de la sortie de /bin/ps avec /proc, le parcours de procfs et les
appels systèmes.
Recherche inverse afin vérifiez que tous les processus affichés par /bin/ps
existent réellement.
Cette technique n'est disponible qu'avec la version unhide-linux.

6 - Comparaison rapide des informations recueillies dans /proc, par le parcours
de procfs et par lesappels systèmes avec la sortie de /bin/ps.
cette technique est environ 20 fois plus rapide que les 3 premières réunies
mais peut éventuellement donner davantage de faux positifs.
Cette technique n'est disponible qu'avec la version unhide-linux.

// Unhide_rb
// ---------

C'est un portage en langage C de l'utilitaire unhide_rb.
Comme l'original, il est grossièrement équivalent à "unhide-linux quick reverse" :
- il effectue trois tests de moins (kill, opendir and chdir),
- il lance /bin/ps seulement un fois au démarrage et une fois pour la double vérification,
- ses tests sont moins précis (P.ex. : test de la valeur de retour au lieu de errno),
- les processus sont uniquement identifiés par le lien sur leur exécutable (unhide-linux utilise
aussi la copie de la ligne de commande et le nom des "processus noyau dormant"),
- il y a peu de protection contre les erreurs (échec de fopen ou popen par exemple),
- il ne sait pas générer un fichier journal.
Il est très rapide, environ 80 fois plus que "unhide-linux quick reverse"

// unhide-TCP
// ----------

Sert à identifier les ports TCP ou UDP qui sont en écoute mais qui ne sont pas
visibles par la commande /sbin/ss (ou /bin/netstat).
Deux techniques sont employées :
- Celle de la force brute (passage en revue de tous les ports TCP/UDP possibles)
et comparaison avec la sortie de SS/netstat.
- Test de tous les ports TCP/UDP non listés par netstat.

// Fichiers
// --------

unhide-linux.c -- Recherche des processus cachés, pour les systèmes Linux >= 2.6
unhide-linux.h -- Header pour unhide-linux

unhide-tcp.c -- Recherche des ports TCP/UDP cachés (ss ou netstat)
unhide-tcp-fast.c -- Recherche des ports TCP/UDP cachés (recherche rapide)
unhide-tcp.h -- Header pour unhide-tcp

unhide_rb.c -- Portage en C de unhide.rb (une version très allégée de unhide-linux en ruby)

unhide-posix.c -- Recherche des processus cachés, pour les systèmes Unix génériques (*BSD,
Solaris, Linux 2.2 / 2.4)
Il ne met en œuvre que les techniques 1 et 3. Besoin de plus de tests
Avertissement: Cette version est quelque peu obsolète, et peut générer
des faux positifs. Utilisez unhide-linux.c si c'est possible'.

unhide-output.c -- Routines de sortie utilisés par les autres modules de unhide
unhide-output.h -- Header de unhide-output

changelog -- liste des évolutions apportées à unhide

COPYING -- Fichier de Licence, GNU GPL V3

LEEME.txt -- Version espagnole de ce fichier

LISEZ-MOI.TXT -- Ce fichier

NEWS -- Notes de version

README.txt -- Version anglaise de ce fichier

sanity.sh -- Fichier de test de unhide-linux

TODO -- Liste des évolutions envisagées (des volontaires ?)

man/unhide.8 -- man page en anglais de unhide

man/unhide-tcp.8 -- man page en anglais de unhide-tcp

man/es/unhide.8 -- man page en espagnol de unhide

man/es/unhide-tcp.8 -- man page en espagnol de unhide-tcp

man/fr/unhide.8 -- man page en français de unhide

man/fr/unhide-tcp.8 -- man page en français de unhide-tcp


// Compilation
// -----------

Prérequis de build
glibc-devel
glibc-static-devel

Prérequis d'utilisation
- unhide-tcp under linux :
iproute2
net-tools (for netstat)
lsof
psmisc (for fuser)
- unhide-tcp under freeBSD :
sockstat
lsof
netstat
unhide-linux, unhide-posix, unhide_rb :
procps



Si vous utilisez un noyau Linux >= 2.6
gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux
gcc -Wall -O2 --static unhide_rb.c -o unhide_rb
gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c -o unhide-tcp
ln -s unhide unhide-linux

Sinon (Linux < 2.6, *BSD, Solaris, etc.)
gcc --static unhide-posix.c -o unhide-posix
ln -s unhide unhide-posix

// Utilisation
// -----------
Vous DEVEZ être root pour utiliser unhide

Exemples:
# ./unhide-linux -vo quick reverse
# ./unhide-linux -vom procall sys
# ./unhide_rb

# ./unhide-tcp -flov
# ./unhide-tcp -flovs

// Licence

GPL V.3 (http://www.gnu.org/licenses/gpl-3.0.html)


// Remerciement
// ------------

A. Ramos ([email protected]) pour certaines expressions rationnelles

unspawn ([email protected]) support CentOS

Martin Bowers ([email protected]) soutien CentOS

Lorenzo Martinez ([email protected]) pour ses idées d'amélioration et le betatesting

François Marier ([email protected]) Auteur des pages de manuel et le support Debian

Johan Walles ([email protected]) Identification et correction d'un bug très désagréable de concurrence critique (race condition)

Jan Iven ([email protected]) En raison de ses grandes améliorations, de nouveaux tests et de corrections de bugs

P. Gouin ([email protected]) En raison de son travail incroyable correction des bugs et d'amélioration des performances

François Boisson pour l'idée de la double vérification dans le test "brute".

Leandro Lucarella ([email protected]) pour la méthode rapide de balayage et son travail de factorisation de unhide-tcp

Nikos Ntarmos ([email protected]) pour son aide inestimable pour le portage de unhide-tcp sur FreeBSD.
Loading

0 comments on commit ef9f993

Please sign in to comment.