Copy Link
Add to Bookmark
Report

SET 029 0x0b

  

-[ 0x0B ]--------------------------------------------------------------------
-[ Rootkits ]----------------------------------------------------------------
-[ by blackngel ]----------------------------------------------------SET-29--


blackngel_hack@hotmail.com

ROOTKITS

"Bienvenidos al mundo de lo real..."

&&&&&&--------&
&&01&& INDICE &
&&&&&&&&&&&&&&&



//////////////////////////////////////////
// 01.-->> INDICE //
// //
// 02.-->> PROLOGO //
// //
// 03.-->> INTRODUCCION //
// //
// 04.-->> FUNCIONALIDAD //
// 04.1 -->> MANTENER ACCESO //
// 04.2 -->> EXPANSION TERRITORIAL //
// 04.3 -->> OCULTA EVIDENCIAS //
// //
// 05.-->> TIPOS //
// 05.1 -->> BINARY ROOTKITS //
// 05.2 -->> KERNEL ROOTKITS //
// 05.3 -->> LIBRARY KITS //
// //
// 06.-->> SEGURIDAD //
// 06.1 -->> DETECCION //
// 06.2 -->> PROTECCION //
// //
// 07.-->> USO NORMAL (REGLAS) //
// //
// 08.-->> ROOTKITS EN WINDOWS //
// 08.1 -->> INTRODUCCION //
// 08.2 -->> DETECCION //
// 08.2.1 -> ROOTKIT DETECTOR //
// 08.3 -->> LOGS GENERADOS //
// //
// 09.-->> DESPEDIDA //
//////////////////////////////////////////



&&&&&&---------&
&&02&& PROLOGO &
&&&&&&&&&&&&&&&&


Como no... Otra vez mas me encuentro aqui con vosotr@s aportando algo
mas de mis conocimientos, espero que valga la pena.

Cual es el plato del dia? mmmmm, pues hoy toca "rootkits" con tomate,
tendreis que tragarme un rato pero tranquilos, este rollo de pasta no
se hara muy largo.

Porque tengo que leer esto? Pues muy simple por lo mismo que aguanto
yo todos los dias la frase de un muy buen amigo en el messenger:

--Porque solo el poder del conocimiento nos hace libres by |_Tr0mP4s.

};.D





&&&&&&--------------&
&&03&& INTRODUCCION &
&&&&&&&&&&&&&&&&&&&&&


Nuestras queridas rootkits tan conocidas actualmente no son tan
nuevas como parecen, segun parece datan de los aÏos 90 cuando aun
se estaban desarrolando muchos de los proyectos que ahora conocemos.

Estas herramientas son instalaciones que sustituyen a la mayoria
de las utilidades cruciales del sistema operativo y dejan
comprometida la maquina para futuras entradas, normalmente.

Uno ejemplo muy bueno de todo esto, es la tipica sustitucion del
binario "login" que se carga al inicio de cada sesion de un usuario
para autentificarlo como legitimo. El nuevo "login" que se instala
hace creer al usuario normal que la contraseÏa introducida es
incorrecta mientras la envia via e-mail al dueÏo de la rootkit el
cual a modificado dicho login para que contenga la direccion correcta.

Comencemos...





&&&&&&---------------&
&&04&& FUNCIONALIDAD &
&&&&&&&&&&&&&&&&&&&&&&


|=========="04.1-MANTENER ACCESO"==========|

Esto esta tipicamente muy relacionado con las backdoors (puertas
traseras), estas se encargan por ejemplo de ocultar aplicaciones
de acceso remoto.

Lista de metodos:

--> Manejo del archivo inetd.conf para abrir conexiones.

--> Ssh remote login, es un software utilizado por algunos
atacantes amateurs.

--> CGI Shell. Una rootkit que deja un script cgi hostil en el
servidor web.

--> Telnet Inverso. Me lo reservo para otro articulo.

--> Magin packet-activated. Es una backdoor que abre un puerto
en la maquina, ejecuta un simple comando e inicializa una
sesion en el sistema.

--> SUID /bin/bash. Tipico... dejar escondida una copia de una
shell en otro directorio con permisos para cualquier usuario.

--> Muchos mas (Quiza en una actualizacion...)

El acceso local se mantiene con rootkits que tienen las herramientas
troyanizadas y necesarias que nos proporcionan un acceso con
privilegios de root (administrador).

Cabe destacar que mientras hay algunas rootkits que requieren de
nivel root para ser instaladas, hay otras que nos proporcionan un
metodo de escalada de privilegios.



|=========="04.2-EXPANSION TERRITORIAL"===========|

Simplemente decir que estas herramientas nos sirven para conseguir
acceso a otros sitemas, a esto se le suele llamar "ampliar el
territorio".

Estas contienen un sniffer que puede ser colocado en diversas
conexiones con protocolos en texto claro como pueden ser: telnet,
pop3, imap, ftp y algunos otros. Con esto conseguimos aparte
de muchos datos basura (o no tan basura), nombre de usuario y
passwords, que nos permiten acceso a la misma maquina o a otras
que son pertenecientes normalmente a la misma red (LAN).

Como todos sabemos los sniffers ponen un bit de la tarjeta de red
en "modo promiscuo", pues si mal no me acuerdo exite un modulo
cargable (LKM) que esconde tambien el estado de este bit. Solo
decir que esto lo consiguen desviando la syscall "sys_ioctl()" por
una alterada.
Cuando este metodo es implementado nos sirve de escondite para
cuando el administrador del sistema compruebe el estado de su
tarjeta red, ya sea mediante "ifconfig" u otras herramientas...
Mas adelante ya se hablara de los LKM.

Otro ejemplo de este tipo de herramientas es el SSH Syscall Sniffer
que actua interceptando llamadas al sistema como read() y write()
las cuales pueden contener datos beneficiosos para el atacante
(usernames y passwords).

Y ya para terminar este apartado tenemos tambien a keylogers
que tambien interceptan syscalls para controlar cada tecla pulsada
y reenviarla primero a un archivo determinado y permitir despues
su ejecucion normal para que el usuario continue con su trabajo
sin percibir ninguna anomalia en su sistema.



|=========="04.3-OCULTA EVIDENCIAS"========|

El tercer elemento crucial en la funcionalidad de una rootkit es
la eliminacion de evidencias. Esto se podria resumir en el borrado
de las huellas del ataque y la prevencion de nuevas huellas que
puedan quedar logeadas.

Todo esto se hace facil (hasta cierto punto) con el paso de zappers
para cada archivo de log como: utmp, wtmp, acct, messages, syslog,
lastlog, loginlog.

Y tambien la modificacion del demonio syslogd que se encarga de
todas las tareas de almacenamiento de informacion del usuario.





&&&&&&-------&
&&05&& TIPOS &
&&&&&&&&&&&&&&


|=========="05.1-BINARY ROOTKITS"==========|

Este es el primer tipo de rootkits y los mas utilizados como se
comento en la introduccion son los encargados de sustituir los
binarios (ejecutables) mas importantes y ganar facilmente un
acceso remoto o tambien local.

Los nuevos ejecutables estan especialmente troyanizados por el
mismo programador y algunos se encargan de ocultar muchos de los
procesos maliciosos a la vista del administrador o cualquier
otro usuario.

Este tipo de rootkits suelen venir acompaÏadas de un script que
se encarga de la instalacion (colocacion de cada binario en su
correcto directorio). Todo esto siempre depende del SO al que
estamos intentando comprometer, sobre todo porque suele variar
la situacion de los archivos. No confundir con el sistema de
archivos que por defecto siempre es "ext2" en las distribuciones
linux.

Los binarios estan precompilados para cierta arquitectura como:
-Linux en un i386 INTEL
-Solaris en un Sparc

Aqui expongo una lista de los archivos que generalmente son los
mas sustituidos por estas herramientas:

@==============================================================@
| amd ftpd netstat |
| asp fusers ntpd |
| basename gpm passwd |
| biff grep pidof |
| chfn hdparm pop2d |
| ch0sh ident pop3d |
| cron ifconfig ps |
| date inetd pstree |
| dirname killall rexed |
| du login rlogind |
| echo ls rcpinfo |
| egrep lsof rshd |
| env mail sendmail |
| find mingetty slogin |
| fingerd named sshd |
| su telnetd w |
| syslogd timed write |
| tar top wted |
| tcpd traceroute xinetd |
@==============================================================@

Y aqui pongo las funcionalidades para las cuales se suelen
utilizar este tipo de paquetes:

* Acceso remoto (Troyanizar "login" ...)
* Acceso local (Troyanizar "login" ...)
* Conexion ocuta (desapercivida) (Troyanizar "netstat")
* Ocultacion de ficheros (Troyanizar "ls", "dir", etc)
* Ocultacion de procesos (Troyanear "ps")
* Ocultacion de las actividades del atacante (Troyanizar "syslogd")

Nota: Si quereis una explicacion mas detallada de cada uno de estos
puntos, mail-me y estare encantado de explicarlo personalmente
o realizar una actualizacion del articulo.



|=========="05.2-KERNEL ROOTKITS"==========|

Este segundo tipo de rootkits ya no son tan conocidos por este nombre
sino mas bien como Loadable Kernel Module (LKM, Modulos del Kernel Cargables),
pues si son modulos maliciosos que se pueden insertar en nuestro kernel
para que aporten nuevas funcionalidades (no muy amigables xD).

Estes modulos maliciosos normalmente se encargan de modificar las syscall
(system call, llamadas al sistema) que ya todos deberiamos de conocer.
Esto es un gran compromiso para el mismo sistema. Ya que intercepta cada
una de estas syscalls y produce una accion indebida, por ejemplo podria
capturar la syscall de la funcion read() (para leer un fichero) y realizar
otra operacion sobre el.

Si quieres la lista de las distintas "llamadas al sistema" las puedes
encontrar en "/usr/include/sys/syscall.h" o "/usr/include/syscall.h", el
codigo para cada call es parte del kernel.

Tambien cabe destacar que para que un LKM sea realmente bueno debe ser
capaz de esconderse hasta el mismo. Esto lo realiza con la alteracion de
la llamada al sistema "query_module()", para que cuando se ejecute el
comando "lsmod" el mismo no aparezca.

Bueno como esto ya escapa a las necesidades y aportaciones del articulo os
dejo unos buenos links para que continueis en este tema si os interesa:

--> http://www.giac.org/practical/gsec/Andrew_Jones_GSEC.pdf
--> http://rr.sans.org/threats/rootkits.php
--> http://hispakernel.rondanegocio.com/docs/intro_prog_drivers_linux.php
--> http://www.iespana.es/eMc2H/files/openbsd-lkm.txt (OpenBSD)

Nota: Buscar por "SucKit" un buen paquete sin duda alguna...



|=========="05.3-LIBRARY KITS"=============|

Los Library Troyan Kits, de los cuales T0rn 8 is el mas famoso, usan
diferentes metodos para eludir su deteccion. Por ejemplo, este kit, usa
una libreria de sistema especial llamada "libproc.a" que remplaza a una
libreria estandar la cual se encarga de la informacion de procesos
(sistema de archivos /proc).

Con esto conseguimos la ocultacion de ciertos procesos que a nosotros nos
interesen segun su nombre.
Estas rootkits solo suelen ser utilizadas para la ocultacion de procesos
y diversos archivos.

Nota: Mis conocimientos en este apartado son muy escasos tratare de
buscar mas informacion y ampliar este articulo. Os tendre
informados.





&&&&&&-----------&
&&06&& SEGURIDAD &
&&&&&&&&&&&&&&&&&&


|=========="06.1-DETECCION"============|

Existen algoritomos de "chequeo de suma" que nos sirven para
identificar ficheros legitimos de otros que no lo son.

Como ejemplo tenemos el MD5 que produce una cadena asegurandonos
de que la unica forma de que la cadena sea igual para los dos
ejecutables es que estos dos sean perfectamente identicos.
Un buen administrador deberia de guardar dichas cadenas de cada
ejecutable original en una fuente exterior, como puede ser en un
cd, una cinta magnetica, etc... Asi, podria utilizarlas despues
para asegurarse de la normalidad en su sistema.

Una gran utilidad que cumple todas estas funciones es "TripWire"
que controla la integridad de cada archivo del SO. Esta
herramienta se encuentra disponible para sistemas Unix/Linux en:
http://www.tripwire.org.

Tampoco nos podemos olvidar de realizar escaneos desde otras
maquinas a la nuestra con el objetivo de encontrar puertos abiertos
utilizados por backdoors. Puertos que normalmente deberian de
estar cerrados segun nuestro criterio.

Tambien tenemos a "Chkrootkit" que funciona en busca de patrones
de rootkits conocidas. Esto lo realiza buscando archivos
caracteristicos o cadenas dentro de ejecutables que son sabidas
de antemano.

Y por ultimo tenemos demonios como rkdet, que se encargan de
detectar cualquier intento de instalacion de una rootkit, y si
es posible, evitarlo y avisar de alguna manera al mismo administrador.



|=========="06.2-PROTECCION"===========|

Para que se consiga instalar un rootkit en nuestro sistema,
evidentemente es logico que primero haya que penetrarlo, entonces
no tenemos mas solucion que proteger nuestro equipo, tanto fisicamente
como todo el entorno de red en el que trabaje.

Ya saben, cierren servicios no utilizados o por defecto, instalense
un antivurus actualizado, un firewall perfectamente configurado, si
hace falta que lo haga una persona con mas conocimientos mejor y por
ultimo miren haber a quien dejan tocar su ordenador y que tipo de
software ejectuan en el.





&&&&&&------------&
&&07&& USO NORMAL &
&&&&&&&&&&&&&&&&&&&


Bueno, pues ya para terminar, aqui explicare el uso normal que se suele
dar a estas herramientas tan utiles.
Solo seran unos pasos generales que la mayoria ya deberiais de saber
pero que no viene mal recordar...


**PASOS PRINCIPALES:
--------------------

1.--> Busca un host vulnerable, ayudate de un scanner automatico
de alguna vulneravilidad conocida. (Simplemente arreglatelas).

2.--> Explota el sistema, curratelo y conviertete en root.

3.--> Descargate una "Rootkit" (Segun tu preferencia). Asegurate de
que sea compatible con el sistema irrumpido.

4.--> Instala la herramienta en el sistema, suelten traer un script
que hara todo el trabajo por ti.


**BORRAR HUELLAS:
-----------------

5.--> Deshabilita el Shell History (unset HISTFILE;
export HISTFILE=/dev/null).

6.--> Mata el daemon syslog y libera los logs del sistema. (Kill).

7.--> No te olvides de pasar algun zapper. (Cloak, Zap2, etc).

8.--> Elimina cualquier otra evidencia o rastro que haya podido
quedar por la instalacion del rootkit u otros ficheros.





&&&&&&---------------------&
&&08&& ROOTKITS EN WINDOWS &
&&&&&&&&&&&&&&&&&&&&&&&&&&&&


|=========="08.1-INTRODUCCION"==========|

Si bien ya estamos hartos de ver rootkits para nuestros queridos SOs
"Unix/Linux", pues, en 1999, tambien se diseÏo uno para que trabajara en la
plataforma NT de Windows.

Este se basaba en una tecnica llamada "enganche de funciones" que en lenguaje
tecnico se trata de apoderarse de las llamadas al API que como muchos ya
sabremos (Los crackers y viruckers mas...) son el motor principal de nuestro
software ya que en ultima instancia siempre estan dependiendo de ellas.

Con todo esto conseguimos mas o menos los mismos objetivos que en nuestras
plataformas *nix. Ocultacion de archivos, procesos y redireccion de
ejecutables.


|=========="08.2-DETECCION"=============|

Si el rootkit esta desarrollado realmente a conciencia sera casi imposible el
detectarlo en nuestro propio sistema, ya que como dije antes, el sistema
siempre esta dependiendo del API y las llamadas a esta estarian troyanizadas
(cambiadas por otras con diferentes intenciones ;)).

Nuestro punto mas fuerte de deteccion sera la busqueda de backdoors que haya
dejado o servicios prestados al exterior de cuya utilidad desconocemos.
Como no, tendremos que hacer un escaneo de puertos desde fuera y si es posible
(siempre) realizar una auditoria del sistema que haria de por si el portscan y
buscaria mas vulneravilidades o errores desconocidos.

Desde el interior deberiamos buscar tambien cambios en las entradas del
registro del sistema.


||||||=08.2.1=||||||=Rootkit Detector=||||||
--------------------------------------------

Esta es una herramienta estupenda que se encarga de la deteccion de los rootkits
mas conocidos hasta el momento, se vasa en la busqueda de patrones. Funciona
bajo entornos NT. (En XP tambien xD)

Aqui os pongo una salida del programa en mi sistema (no encontro ninguna por
supuesto ;D):

________________________________________________________________________
. .. ...: Hax0rcitos Rootkit Detector v0.3b :... .. . |
Rkd v0.3b - Rootkit Detector |
Programmed by aT4r@3wdesign.es |
Copyright (c) 2003 3W Design, Security |
http://www.3WDesign.es |
|
|
-Gathering Service list Information... ( Found: 248 services ) |
-Gathering process List Information... ( Found: 27 process ) |
-Searching for Hidden process Handles. ( Found: 0 Hidden Process ) |
-Searching again for Hidden Services.. ( Found: 0 Hidden Services) |
-Searching for wrong Service Paths.... ( Found: 0 wrong Services ) |
-Searching for Rootkit Modules........ ( Found: 0 Suspicious modules ) |
________________________________________________________________________|

* Con el Panda Antivirus instalado, "Titanium" segun mis pruebas, marca
otra salida, en este caso saldria 1 en wrong Service Paths y una
mencion sobre un archivo llamado "pavsrv.exe", no se que funcion
realiza este programa situado en 'system32' tratare de averiguarlo
pero en tal caso deberia ser un proceso oculto. Si alguien sabe algo
o quiere ayudarme a saber algo sobre esto lo agradeceria mucho.
O sera que no deberian ejecutarse servicios desde este directorio?

Algunas de las rootkits detectadas:

* AFX Rootkit 2003
* Hacker Defender.
* He4HookInv.
* Rkit (Backdoor.W32/ASW)
* NT Rootkit _root_

Como otra caracteristica, cabe destacar que RKD almacena una base de datos
interna con las firmas MD5 de algunas rootkits, exploits y programas de hack
conocidos, esto reducira aun mas los posibles problemas de penetracion.

USO:

rkd.exe [parametros]
-v - Muestra informacion extra.
-m - Muestra el md5 de un fichero.

*Realmente dificil eh! ;)



|=========="08.3-LOGS GENERADOS"========|

Realmente solo se generaran logs de importancia si el rootkit contiene un fallo
en su programacion, sino, unicamente nos podremos encontrar como mucho, errores
en la incapacidad de arrancar algun servicio del sistema que se veran reflejados
en los archivos de logs habituales de nuestro SO.




&&&&&&-----------&
&&09&& DESPEDIDA &
&&&&&&&&&&&&&&&&&&


Chic@s esto ha sido todo por hoy, creo que basta para tener una idea de los mas
generalizada sobre lo que pueden y son capaces de hacer estas grandes
herramientas.

Mas informacion sigue esperando ahi fuera para ser leida por vosotros, ya no
tendriais que estar leyendo esta despedida y si tendriais que estar aprendiendo
nuevos contenidos del mundo informatico.

Como consejo os diria que buscaseis textos sobre programacion de LKM's que
realmente los hay muy buenos. Me gustan las traducciones de la "phrack" y
mucho ha sido escrito ya. Es un tema muy bonito y se pueden llegar a hacer
maravillas, hay que tener en cuenta que estamos trabajando a nivel del kernel,
el maximo privilegio!! alguien da mas?

Opinion: Creo que es lo mas inteligente que podemos hacer despues de
comprometer un sistema. Hoy por hoy, aquellos trucos antiguos que
todos tanto conocemos nos meterian en el trullo.

Importante: Me han comentado que andan por ahi sueltos unos cuantos IDS, tener
cuidado con ellos que son unos chivatos xD.

Cualquier duda, opinion, complemento a este articulo o insulto (que valga
la pena) ya sabeis donde encontrarme: blackngel_hack@hotmail.com.



by blackngel


*EOF*

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT