viernes, 9 de octubre de 2009

Reto. Parchear error en Programa.

Hola todo internauta visitante y perteneciente a este blog, he colgado un reto en http://www.hackeame.net/ espero y os guste, a todos. Pondré un enlace redireccionado a el post original del reto.

http://hackeame.org/foro/index.php?topic=333.0

domingo, 30 de agosto de 2009

Manual para instrucción de cuellos de botellas.

Amigos e aquí un manual practico hecho por mí subido a el servidor de descarga www.hackeame.org para ustedes, deven estar registrados en el foro "www.hackeame.net o .org" para optar por el manual de lo contrario los privilegios no le alcanzaran:

http://hackeame.org/foro/index.php/topic,315.0.html

martes, 28 de julio de 2009

Deshabilitando protección "STACK" (Pila).

Cuando tratamos de descubril alguna vulnerabilidad o forma de explotarla, hay dos obstaculos que nos no permiten hacerlo. En linux existen algunos tipos de protcciones una de ellas es: "exec-shield" o "Virtual Addres Space Randomization".

esta a su vez lo que hace es crear memorias virtuales en proceso de ejecución de un programa u aplicación aleatorio/a. Para que vallan cambiando en cada ejecución su dirección de retorno y todo exploit para dicha vurnerabilidad quede obsoleto.

Pero aquí voy a explicar un metodo para deshabilitar esta protección.



#include


unsigned long esp(void){
__asm__("movl %esp, %eax");
}

int main(int argc, char *argv[]){
printf("0x%08x\n",esp());
return 0;
}


Probemos este código a ver que nos dise, primero compillamos "gcc -o vuln vuln.c"

Luego ejecutamos "./vuln"

Aver que nos dice "0x9aee9600"

Otra vez "0x1f59dcb0"
Otra vez "0x180e1800".

Si se fijan hay está la protección contra el Stack Överflow, porque nos cambia la dirección en cada ejecución del programa osea vería la dirección.

Para poder obtener direcciones constantes o sea que no varíen tenemos que deshabilitar la protección, para esto hacemos lo siguiente: "echo 0 > /proc/sys/kernel/randomize_va_space". Probemos a ver que nos dice "cat echo > /proc/sys/kernel/randomize_va_space". Vemos que nos da "0", antes nos daba "1", porque se controla mediante 1 true & 0 false.

Ahora como ya hemos deshabilitado la protección, entonces nos queda probar a ver, como ya saben en la primera prueba varíaban las direcciones en cada ejecución del programa, ahora veremos que pasa.

Ejecutemos el programa a ver: "./vuln"
Nos pasa lo siguiente "0xffffe710
root@F1R3544:/home/no/Escritorio# ./esp
0xffffe710
root@F1R3544:/home/no/Escritorio# ./esp
0xffffe710.

Como ven aquí no nos varía la dirección, pero esto es porque hemos deshabilitado la protección.

Amigo esto es todo bye hasta luego.

martes, 21 de julio de 2009

IP Spoofing

Requizitos necesitados para entender el tema Spoofing:


---->Conosimientos previos o básicos de Hping2.
---->Tener Conosimientos básicos sobre redes.

Bueno aqui comienzo:

ejemplo que queramos intercatuar como administradores o root de algun sistema o tener algun otro privilegio o establecer una conexión con dicha maquina, pero esta esta detraz de un Firewall y necesitamos engañar o saltarnos ese Firewall para poder penetrar.

Lo que necesitamos es Spooferanos (Susplantar identidad) o hacernos pasar por otra maquina de confianza o (Turested host). pero para ello usare de ejemplo de DNS, osea usaré las ip de cualquier DNS para llevar a cabo esta tecnica.

Lo que aré es mandar un paquete a un equipo destino con la IP susplantada de confianza DNS para que pueda engañar a el Firewall, el dns tiene que ser el de la victima. Pero para ello necesitamos conromper o desactivar la victima de confianza para que el Firewall o maquina no se delate de dicha intrusión a la maquina destino victima, entonces una vez obtenidas las IP de las maquinas o host, bamos a sacar los INS (Number Secuence Internet) o numeros secuencial de internet. para ellos utilizamos Hping para poder llebar a cabo solicitudes ECO o paquetes ICMP y haci poder obtener los ISN. pero ¿qué es HPING?.

Hping: Es una Tool o herramienta de red, para trabajar con protocolos TCP,UDP,ICMP,etc ,etc. en ella podemos trabajar con banderas o flags para poder llebar a cabo nuestro objetivo que son los (Numbre Secuence Internet). pero no entrare en detalles con Hping.

Por qué sacar numeros sencuenciales de internet ? Bueno con el fín de poder establecer la conexión con dicha maquina, y haci el host de victima piense que los ISN que emos emitidos a él sean de el equipo de confianza.

Aquién le sacamos los ISN: A a él host de confianza.

Cómo: bueno si saben usar Hping que es poreso que les pongo los requisitos arriba antes de comenzar a leer todo esto, es para que entiendan mejor todo este rollo, miren para sacar los (ISN) tienen que mandar Flags banderas SYN a dichos puertos que esten escuchando en la maquina de confianza y luego la maquina de confianza le enviara un SYN/ACK, a el atacante o intruso con los números secuenciales que seriá así EJ: hping2 -c 1 -S -Q -P 80 ip victima

Q: Le dise a hping que busque numeros secuenciales en la IP objetiva o en el host.

Él número secuencial puede ser haci: 1208065

Para desactivar la maquina o el host victima tenemos que llebar a cabo un DDoS, Flood SYN. para romper la pila TCP y que reciba tantas peticiones SYN que en X tiempo deje de responder a ellas y hasí lograr colapsar la pila TCP/IP.

Cómo conrompemos la pila o desactivamos el host de confianza: bueno con HPING enviando un simnumeros de paquetes o datagramas adicho puerto.

Podriamos utilizar las IP de los DNS para engañar a el Firewall de dicha maquina o host objetivo.

Seguimos, cuando terminemos de descativar a la victima de confianza y de obtener los ISN, el siguiente paso es Spoofearnos osea introducirnos en el host destino victima, pero en representación de otro osea camuflajeados para hacerle creer que somos el equipo de confianza.

Pero como: Bueno con los ISN obtenidos y las IP de confianza.

para susplantar la identidad con la IP, podriamos utilizar algunas o varias herramientas como: netcat,hping,crypcat, entre otras.

Solo tenemos que dar saltos hasta llegar a dicha victima y luego hay escondernos detraz de un paquete camuflajeado.

enfoquen la imagen siguiente es un ejemplo para que vean......como se lleba a cabo esto en forma grafica...



Si no entienden las tramas o la imagen enfocada me avisan y le explico no se queden callados.

Nota: Para mandar los números ISN y confundir a la victima tenemos que pingear la maquina u host victima mandando los ISN pero más uno así mira EJ: 1208065 +1.

Bueno señores les dejo con este post interesante y sencillo, claro para el que conose, hasta luego amigos espero les guste el post bye.

Obtener números secuenciales con hping2. Aquí les hice un video para mejor entendimiento.

http://www.youtube.com/watch?v=pexHVbk9UN4


Envenenar caché ARP. ARP "Poisoning".


Hola qué tal todos, Les traigo sabiduría intelectual xD.

Envenenamiento arp: Se trata de agregar una entrada falsa en la tabla arp de la maquina receptora o nodo receptor, para hacerles creer a esta/e que nosotros somos el router/gateway de pasarela.

Primero tenemos que tener en cuenta que el ataque esta pensado para una red local, osea esta orientado a cables y maquinas interconectadas en un switch, si es para una red wireless tendrías que modificar algunos metodos diferentes con otros recursos.

Bueno básicamente utilizaremos una plataforma linux basada en debian cualquier distro, y un caprutador de paquetes para ver el tráfico entre maquina receptora (victima) y el router/gateway.

Nota: Para llevar este ataque con exito tendremos que poner las mac que queremos infectar o envenenar en modo promiscuo pero ¿ Cómo ? Bueno tendremos que ver las direcciones mac que tenemos en nuestra tabla ARP para eso hacemos arp -a entonces se despliega algo como esto router.lan (10.0.0.1) en 00:90:D0:00:AE:A0 [ether] en eth0 hay vemos que solo tenemos la dirección mac que pertenece a la dirección ip 10.0.0.1, pero queremos también agregar una entrada con la dirección mac de la máquina receptora (victima), esto lo hacemos de la siguiente manera suponiendo que sabes cuál es la dirección mac de tu victima. arp -i eth0 -s ip victima dirección mac. EJ: arp -i eth0 -s 192.168.1.3 00:05:04:03:02:FF. detalles: i espesifica la interfaz en este caso eth0 -s espesifica que quieres agregar la entrada de la dirección ip victima, la dirección en hexadecimal tiene que ser de la victima. espongo esto aquí porque aveces no tenemos las entradas ARP que necesitamos para llevar acabo nuestro ataque, pero cuando se esta en una red local con varios equipos interconectados siempre aparecen las entradas ARP en tu caché.

Bueno ahora que ya sabemos como encontrar nuestra victima, entonces ahora a ver como poner en modo promiscuo, bueno ahora tenemos que instalar algunas cositas.

Para ello utilizamos la suit Dsniff que es muy completa, no entraré en detalle de como instalar pero ahora hacemos lo siguiente.

Poner en modo promiscuo:
dnsniff -i eth0

detalles: i es la interfaz por donde queremos escuchar el tráfico
-t agregar nueva tabla a la ip victima un espacio y la ip de el router en este caso nosotros mismos o la ip por donde queremos que pasen los paquetes.

EJ: arpspoof -i eth0 -t 192.168.1.3 192.168.0.15

Nota: La ip del router tiene que ser la nuestra, para que podamos capturar los paquetes de ip victima.

Ahora ya tenemos la mac en modo promiscuo, ahora tenemos que capturar todos estos paquetes, ¿ Cómo ? existe una herramienta llamada Wieshark.

Wireshark: Es una herramienta para capturar tráfico tcp/ip, entre otros protocolos como ARP, ICMP etc, etc.

No entraré en detalles para ver su instalación quí le va el comando a utilizar.

Sintexis: sudo wireshark

Sencillo no xD.

Ahora tenemos que solo ír a configuración y dar la recomendada por usted o nose ustedes sabrán.

Nota: tiene que estar con privilegios de root para poder iniciar la captura en Wireshark.

miren que bello:

Inundación de paquetes TCP/IP. Jugar con la seguridad "Web".

Qué es inundación tcp flooding? Bueno básicamente es inundar (llenar/rebosar), de paquetes los servicios de un server (servidor), con el objetivo de denegar servicios (DDoS), conrromper procesos de trasferencias etc, etc. Pero lo explicado y expuesto aquí aproximadamente será con el objetivo de infiltrar paquetes SYN a dicha maquina o server remoto/a, y así poder observar que puertos tiene este abierto, con el fín de engañar a el router o firewall que corte los paquetes.

Escenario: Supongamos que queremos scanear un servidor web, pero en el momento que recivimos resultados de nuestro scanner lo que vemos es lo siguiente: AR ACK/RST o PA PUSH/ACK, Aquí vemos que hubo errores en la intersección de paquetes de la maquina origen a destino. En este caso los puertos están cerrados.

Por qué? Bueno si el servidor se encuentra detras de un firewall o router, entonces de hay es que la cuestión de rechazar paquetes de nuestra maquina (intruso o maquina emisora). ¿ Entonces qué hacemos en este caso ?

Aquí es donde entra en acción hping2 u otra versión. Hping como ya havía explicado anteriormente en otro post. Es una herramienta generadora de paquetes. ¿ Pero qué aremos con hping ? Ps, inundar la pila tcp a el puerto 80 de el servidor, como ya saben es un servidor web por eso eligo 80 porque apesar de estar detras de un firewall este acepta peticiones, de lo contrario nadie visitaría su web, porque no podríamos ingresar a él.

Nota: No todo router/gateway tiene la misma configuración y de tener una buena configuración entones refazaría un simnumero de técnicas, o ataques.

No entraré en detalles con hping tampoco con sus opciones ni nada, cualquier duda posteenla aquí.

Escenario: Enviaremos paquetes a el puerto 80 de el servidor para verificar si está abierto el servidor como ejemplo será www.anonimo.com pero este nos rechaza los paquetes.

Solución: Desactivar el la pila TCP para vorverla loca, y esta a su vez no entienda ningún paquete entonces pueda devolver flags SA: SYN/ACK. Que es lo que se quiere es el objetivo.

Nota: Recuerden que anteriormente cuando escaneamos nos devolvio RA: RST/ACK.

Aquí es donde biene el ataque: hping2 -c 1000 -i 1 -S -p 80 www.anonimo.com

ponemos lo mismo en varías ventanas shell, y entonces luego esperamos un momento, y bamos a otra nueva shell o ventana shell, y ejecutamos lo siguiente:

hping2 -c 1 -i 1 -S -p 80 www.anonimo.com.

Ahora tiene que resultarnos como planeamos antes, osea tenemos que tener en pantalla los flags, SA: SYN/ACK.

Bueno aquí les dejo un video que e creado para ustedes, y entender más los ejemplos, este ataque es real. No intento crear esto para fines destructivos menos delictivos, lo hago con fines educativos. Bueno bye hasta la proxima.

http://www.youtube.com/watch?v=vjGwTZWjzTc

VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED)

Problemas con tu maquina virtual ? aquí está la solución. Primeramente el problema está porque al instalar tu maquina virtual faltan algunos paquetes y versiones compiladas para el kernel de tu sistema linux.

Solución: Instala los modulos de versión que requiere virtualbox para iniciar correctamente, para esto vete a Sistema, Gestor de paquetes synaptic, Buscar y hay pones lo siguiente "
virtualbox-ose-modules" y enter. Con esto ya tendrás ubicados las versiones compiladas del kernel que tengas disponible, pero para saber cuál de ellos instalar primero tienes que saver la versión de tu sistema para ello vete al shell de linux y pones esto " uname -r" para que te muestre la versión actual de tu sistema. Luego que la observes entonces te bas a synaptic y seleccionas la requerida e instalas. Luego que instales la versión del kernel apropiado entonces verifica que a sí sea con el siguiente comando "/etc/init.d/vboxdrv start" .

Si nos da un ok, entonces sí es nuestra versión, pero de lo contrario un failed. Entonces no será la apropiada.

Listo con esto ya tienes la salvación, si no tienes en vista la versión que necesitas entonces vete a reiniciar e inicia en la pantalla de arranque del sistema si es que la tienes activada, con la versión que necesites.

Pero hay otro obstáculo aveces nos topamos con otro error como este " VBox status code 1908 VERR_VM_DRIVER_NOT_ACCESIBLE" , algo así pero este lo que dice es que no hay permisos para la maquina virtual.

Solución: Poner lo siguiente en una shell con privilegios de root " sudo chmod 666 /dev/vboxdrv " .

Bye esto es todo gracias.