Los sistemas operativos basados en Linux y Unix han estado en el centro de los campos de la seguridad de la información, la seguridad de la red, la criptografía, etc. Vienen con una amplia variedad de herramientas destinadas a fines de seguridad cibernética.
Echemos un vistazo a tres de estas herramientas: Aircrack-ng, Jack The Ripper y Radare2.
Suite Aircrack-ng
La suite Aircrack-ng es quizás el conjunto de herramientas de rastreo de redes WiFi y captura de contraseñas más utilizado. Está destinado a descifrar las contraseñas de red inalámbrica del protocolo IEEE 802.11, que en su mayoría están protegidas por los estándares Wifi Protected Access (WPA) o Wifi Protected Access 2 (WPA2) y autenticadas mediante el método de autenticación de clave precompartida (PSK).
Ofrece programas separados para monitorear el estado de los dispositivos de red, capturar paquetes y volcar archivos, descifrar contraseñas, etc.
Tenga en cuenta que los investigadores han descubierto que descifrar WPA / WPA2 utilizando algoritmos criptográficos es casi imposible. Por lo tanto, la forma de descifrar WPA / WPA2 mediante programas como aircrack-ng es Brute Force y requiere un diccionario de contraseñas para descifrarlo. Eso significa que solo puede descifrar la contraseña si la contraseña es una palabra del diccionario.
Puede instalar fácilmente Aircrack-ng en su sistema utilizando el script de instalación proporcionado por packagecloud.io. Abra la terminal y ejecute los siguientes comandos según su tipo de sistema operativo Linux.
En distribuciones basadas en Debian, ejecuta el siguiente comando:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash
Para el Administrador de paquetes de Red-hat (RPM), ejecuta el siguiente comando:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash
Ahora intentemos descifrar la contraseña de una red Wi-Fi local usando Aircrack-ng.
Primero de todos, ejecutar el comando iwconfig
para encontrar el nombre de su interfaz de red inalámbrica.
iwconfig
Aquí, wlp2s0
es el nombre de mi interfaz inalámbrica. ESSID, es decir, el nombre de la red es "tmp", que es el nombre de la red Wifi a la que estoy conectado.
Usaremos el airmon-ng
comando para iniciar una interfaz de monitor de red en wlp2s0
.
sudo airmon-ng start wlp2s0
Busque la línea al final para encontrar la interfaz del modo de monitor. En el ejemplo anterior, es mon0
. Ahora comenzaremos a capturar paquetes de red ejecutando el airodump-ng
sobre mon0
.
sudo airodump-ng mon0 -w registro
Muestra un monitor de paquetes de red capturados de diferentes redes. El -w registro
parte es para guardar los paquetes de red en archivos de registro. El prefijo de los archivos de registro será la parte especificada después de -w, en este caso "log".
Para que el programa capte la clave hash de la frase de contraseña, se debe realizar un protocolo de enlace WPA en la red, es decir, un usuario debe intentar conectarse a ella. El usuario puede desconectar él mismo su Wifi y volver a conectarse. En la esquina superior derecha ahora, notifica que se ha detectado un apretón de manos WPA.
Ahora presiona Ctrl + C
para terminar el volcado. Puede ver los archivos de registro generados en la carpeta actual.
El siguiente y último paso es ejecutar aircrack-ng con un diccionario para ver qué palabra coincide con la clave hash interceptada del apretón de manos.
aircrack-ng log-01.cap -w tmpdict.txt
Aquí log-01.cap es el archivo de registro generado por airodump-ng
comando y tmpdict.txt es el archivo de diccionario. Hay varios diccionarios de gran tamaño disponibles en línea que se pueden descargar y utilizar aquí.
Para seleccionar una red de destino, ingrese el número de índice de la red de la lista de redes que se muestra en la pantalla.
Si una clave coincide con el diccionario, se detendrá y mostrará el siguiente mensaje.
Es obvio que en el caso de archivos de diccionario más grandes, el programa tardará más en ejecutarse, ya que verifica todas las entradas del diccionario.
Como se mencionó anteriormente, la contraseña solo se puede descifrar si está presente en el archivo del diccionario. La seguridad WPA es lo suficientemente fuerte como para que el uso de cualquier algoritmo criptográfico no permita descifrar la contraseña. Por lo tanto, es una buena práctica tener una contraseña larga y segura con varios caracteres especiales en su dispositivo Wifi, para que cualquier tipo de actividad de descifrado de contraseñas nunca tenga éxito.
Juan el destripador
John the Ripper es una herramienta que se utiliza para descifrar contraseñas débiles de Unix. Es una herramienta muy fácil de usar que se invoca en archivos de contraseña. Funciona en tres modos.
Modo singular
Comprueba todos los campos de GECOS para la contraseña, es decir, comprueba la contraseña en la información de la cuenta de usuario; nombre de usuario, nombre, apellido, etc.
sudo john --single / etc / shadow
Modo de lista de palabras
Comprueba la contraseña con cada entrada de un archivo de lista de palabras (diccionario).
sudo john --wordlist = passlist.txt / etc / shadow
Aquí, la contraseña del usuario "user3" es "admin". John pudo descifrarlo porque la frase "admin" estaba presente en el archivo passlist.txt.
Modo incremental
Verifique todas las combinaciones posibles para un rango configurado. De forma predeterminada, considera todos los caracteres del conjunto de caracteres ASCII y todas las longitudes de 0 a 13. No hace falta decir que, según el rango configurado, este modo puede tardar una gran cantidad de tiempo en ejecutarse.
La configuración para esto se puede cambiar en /etc/john/john.conf
Archivo.
sudo john --incremental / etc / shadow
Radare2
Radare2 (alias r2) es una herramienta de ingeniería inversa para Linux. Puede desmontar, depurar un archivo binario ejecutable, con una enorme lista de opciones para manipular datos en tiempo de ejecución.
Veamos cómo desensamblar un programa en C muy pequeño usando r2. Tenga en cuenta que se requiere un conocimiento básico del lenguaje ensamblador para utilizar la herramienta.
Primero, cree un pequeño programa en C en vim o en cualquier editor de su elección.
/*test.c*/ #include int main () {int i = 0; printf ("% d \ n", i); return 0; }
Como puede ver, todo lo que hace este programa es almacenar el dígito 0 en una variable y acceder a la variable para imprimirla.
Ahora compilaremos el programa.
gcc test.c -o test
Se crea un archivo ejecutable en el directorio actual con el nombre "prueba". Ejecútelo para ver la salida "0".
./prueba
Instalemos r2 ahora. El nombre del paquete en Ubuntu y distribuciones similares es radare2.
sudo apt install radare2
Nota: Para versiones anteriores de Ubuntu (versión 14.04 y anteriores), debe usar apt-get
debe usarse en lugar de apto
.
Ahora iniciaremos el símbolo del sistema r2 con nuestro archivo ejecutable, "prueba".
prueba r2
Para obtener la lista de subcomandos, ingrese ?
. P.ej. para obtener una lista de subcomandos para el comando a
, ingresar ¿a?
¿a?
Ejecutaremos el subcomando Automóvil club británico
, que analizará el archivo binario completo. No generará nada. Pero después de analizar el binario, podemos usar el ¿pags?
subcomandos para desmontar el código.
A continuación, pasamos al principal
función del programa. Cada programa C ejecutable tiene el principal
funcionar como su punto de partida.
s principal
Puede ver que el prefijo del indicador ha cambiado la dirección de memoria actual, es decir, el programa ahora se busca en la dirección de la función principal
.
Luego usamos el subcomando pdf
, que imprimirá el desmontaje de una función. Lo llamamos con sym.main
, que es el nombre de la función principal en lenguaje ensamblador.
pdf sym.main
Como podemos ver en la captura de pantalla anterior, tenemos el desmontaje completo de nuestro programa C. Ahora podemos analizar lo que está haciendo el programa leyendo el ensamblaje.
Por ejemplo, mov dword [rbp-0x4], 0x0
es la asignación de un valor (0) a una ubicación de memoria rbp - puntero base, 0x4 - Tamaño de memoria requerido para un entero.
Tenemos llamar sym.imp.printf
, que imprimirá el contenido del registro eax
, es decir, el valor 0.
Hay muchas más opciones para manipular y depurar el flujo de un programa en r2. Puede probar otras opciones que se muestran con el ?
mando. Para guardar cualquier registro o salida de desmontaje en un archivo, puede canalizar la salida de la siguiente manera:
pdf main> main.s
Esta fue la descripción general de algunas de las herramientas de piratería más utilizadas en Linux. Si esta página le resultó útil, asegúrese de compartirla en sus comunidades en línea favoritas.