HOWTOs

Persistencia y encriptación USB en Kali Linux

Partimos de un pendrive en el que hemos instalado Kali linux live, y arrancamos en modo Live. Ha de quedar espacio libre en el pendrive para crear una patición adicional. Arrancado el sistema en Live, creamos una partición en el espacio libre (parted, cparted, etc.), supongamos de aquí ena delante que la nueva partición es "sdb3".

$ cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3
$ cryptsetup luksOpen /dev/sdb3 my_usb
$ mkfs.ext3 /dev/mapper/my_usb
$ e2label /dev/mapper/my_usb persistence
$ mkdir -p /mnt/my_usb
$ mount /dev/mapper/my_usb /mnt/my_usb
$ echo "/ union" > /mnt/my_usb/persistence.conf
$ umount /dev/mapper/my_usb
$ cryptsetup luksClose /dev/mapper/my_usb

Documentación original: USB Persistence & Encrypted Persistence


Instalación módulo para RTL8812BU en Kali Linux

$ sudo apt install dkms bc
$ git clone https://github.com/cilynx/rtl88x2bu
$ cd rtl88x2bu
$ VER=$(sed -n 's/\PACKAGE_VERSION="\(.*\)"/\1/p' dkms.conf)
$ sudo rsync -rvhP ./ /usr/src/rtl88x2bu-${VER}
$ sudo dkms add -m rtl88x2bu -v ${VER}
$ sudo dkms build -m rtl88x2bu -v ${VER}
$ sudo dkms install -m rtl88x2bu -v ${VER}
$ sudo modprobe 88x2bu

Documentación original: Driver for rtl88x2bu wifi adaptors


Montar USB exfat en Kali Linux

Supongamos que disponemos de un pendrive formateado con exfat (propietario) en "sdb1".

$ sudo apt install exfat-fuse exfat-utils

Esto no es suficiente, ya que al intentar montarlo nos da un error de permisos. La solución es montar a mano:

$ sudo mkdir /media/kali/Flash
$ sudo mount.exfat-fuse /dev/sdb1 /media/kali/Flash

Documentación original: Cannot mount exFAT even installed exfat-fuse, exfat-utils in kali linux


Escribir con Kanji en Kali Linux

$ sudo apt install ibus-mozc anthy
$ ibus-setup

Es necesario reiniciar, y tendremos en la barra un panel de idioma

Documentación original: Kali Linux - Help Me Enable Japanese IME with Mozc or Anthy


Buscar redes y obtener el PMKID con AirCrack-NG

El primer paso es poner la tarjeta Wifi en modo monitor, y aconsejable cambiarle la MAC. Este proceso desconectará nuestra Wifi del AP donde esté conectada.

$ sudo airmon-ng
$ sudo ifconfig wlan1 down
$ sudo macchanger -r wlan1
$ sudo ifconfig wlan1 up
$ sudo airmon-ng check kill
$ sudo airmon-ng start wlan1
$ sudo iwconfig

Una opción menos agresiva y directa, sobre todo si disponemos de dos tarjetas Wifi y queremos mantener la conexión de una de ellas sería esta:

$ sudo airmon-ng
$ sudo ifconfig wlan1 down
$ sudo macchanger -r wlan1
$ sudo iwconfig wlan1 mode monitor
$ sudo ifconfig wlan1 up

Una vez la tenemos en modo monitor, buscamos el AP de la red que nos interesa. Nos interesa el BSSID y el canal.

$ sudo airodump-ng wlan1

Primero intentamos obtener el PMKID en modo pasivo. Tendremos que esperar hasta que un dispositivo de la Wifi objetivo se conecte o renueve su conexión. En el ejemplo, el BSSID de la red es XX:XX:XX:XX:XX:XX, el canal es el 00 y generamos un archivo pcapfile.cap.

$ sudo airodump-ng -c 00 --bssid XX:XX:XX:XX:XX:XX -w pcapfile wlan1

También podemos poner a escuchar "a lo bruto", incluso en 5GHz, abrir el archivo pcap que se está generado con aircrack-ng para ver si encontramos algún BSSID interesante y luego usando tshark filtrar el archivo generado por airodump y generar un archivo pcap específico. En el ejemplo, el BSSID de la red es XX:XX:XX:XX:XX:XX, el canal es el 00 y generamos un archivo XX-XX-XX-XX-XX-XX.pcap.

$ sudo sudo airodump-ng -b abg --manufacturer --uptime --wps -f 2000 -w /tmp/wps wlan1 &
$ tshark -r /tmp/wps-1.cap -Y "wlan.addr==XX:XX:XX:XX:XX:XX" -w XX-XX-XX-XX-XX-XX.pcap -F pcap

Si no queremos esperar, podemos forzar la captura inyectando paquetes y desconectando un cliente de la red. Para ello, hemos de abrir otra terminal mientras mantenemos la anterior escuchando y ha de haberse visualizado un cliente conectado a la red Wifi objetivo. En el ejemplo, la MAC del dispositivo cliente es YY:YY:YY:YY:YY:YY.

$ sudo aireplay-ng -0 1 -a XX:XX:XX:XX:XX:XX -c YY:YY:YY:YY:YY:YY wlan1

Cuando aircrack-ng haya obtenido el paquete PMKID lo marcará en la columna Notes. Una vez conseguido, ya podemos cerrar ^C la ventana de airodump-ng y recuperar nuestra Wifi.

$ sudo airmon-ng stop wlan1
$ sudo systemctl start NetworkManager

Por último, solo falta obtener la contraseña. Esto lo podemos hacer usando aircrack-ng u otro software, como por ejemplo hascat (en este caso, habría que transformar el archivo pcap generado a hccapx usando cap2hccapx) Lo mas normal es probar un ataque de diccionario, antes de realizar uno de fuerza bruta. En el ejemplo, usamos el diccionario rockyou, disponible por defecto en Kali Linux en /usr/share/wordlists, solo hay que descomprimirlo.

$ sudo aircrack-ng -w /usr/share/wordlists/rockyou.txt -b XX:XX:XX:XX:XX:XX pcapfile*.cap

Documentación original:
How to Use Aircrack-ng
Cracking de WPA/WPA2 con aircrack-ng
Tutorial: Simple WEP Crack
Crack WPA/WPA2 Wi-Fi Routers with Aircrack-ng and Hashcat
Scanning For Wireless Access Point Information Using Airodump-ng Kali Linux Tutorial


Navegación anónima: Tor browser

Existen varias formas de asegurarnos que navegamos de forma anónima, una de ellas es Tor Browser.

$ sudo apt update
$ sudo apt install -y torbrowser-launcher

Ahora disponemos de una navegador basado en Firefox que podemos usar para conectar con la red Tor. Lo ejecutamos de la siguiente forma:

$ torbrowser-launcher

Documentación original: Installing Tor Browser on Kali Linux


Navegación anónima: red proxy Tor en Kali.

Aunque la manera más fácil de navegar por internet es usar Tor-Browser, podemos instalar el servicio Tor para ir más allá.

$ sudo apt update
$ sudo apt install -y tor

Comprobamos que todo está bien instalado. Con ss hemos de comprobar que tenemos el puerto 9050 abierto:

$ systemctl status tor
$ tor --version
$ ss -lt

Personalmente, no me gusta que el servicio de tor se arranque en el inicio. Para evitar que esto ocurra:

$ sudo systemctl disable tor

Para iniciar el servicio de forma manual, y comprobar que el servicio ha arrancado correctamente:

$ sudo systemctl start tor
$ ss -lt

Para navegar, solo hemos de configurar nuestro navegador favorito para que use el puerto 9050 como SOCKS proxy V5.
OJO! A nivel de privacidad, no es lo mismo usar Tor-browser que nuestro navegador favorito con el servicio Tor. Tor-browser es una versión modificada de Firefox y adaptada específicamente para la navegación por la red Tor, por lo que su uso es aconsejado.

Documentación original: Installing Tor Browser on Kali Linux


Activar Tor control port. Tor Nyx

El Tor control port es interesante tenerlo activado ya que, entre otras cosas, permite recopilar información sobre el estado de la red Tor y controlar maualmente los circuitos Tor. También permite usar librerias como Stem de Python para crear scripts y automatizar tareas. Para activar el control port hacemos lo siguiente:

$ torpass=$(tor --hash-password "mypass")
$ printf "HashedControlPassword $torpass\nControlPort 9051\n" | sudo tee -a /etc/tor/torrc
$ tail -2 /etc/tor/torrc
$ sudo systemctl restart tor

Ahora, para comprobar, podemos ver que el comando ss nos devuelve un nuevo puerto, el 9051 en este caso.

$ ss -lt

Para usar este puerto, lo primero que hemos de hacer es autenticarnos con la contraseña que hemos escogido, y luego enviar el comando deseado, todo esto por Telnet o similar. Por ejemplo, podemos probar a solicitar un nuevo circuito Tor de forma manual con el comando SIGNAL NEWNYM:

$ telnet 127.0.0.1 9051
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
AUTHENTICATE "mypass"
250 OK
SIGNAL NEWNYM
250 OK
quit
250 closing connection
Connection closed by foreign host.

Pero esto es muy tedioso. Existe una herramienta propia para esto, tor-prompt que se instala con el paquete tor. Es una herramienta que de forma automática usa la librería Stem usando un intérprete Python y puede se usar de forma interactiva o pasarle argumentos. Por ejemplo, para extraer un listado de los circuitos que existen en este momento (Ojo con el tabulador de la segunda linea, y el salto de linea de la última):

$ tor-prompt --interface 9051
>>> for circuito in controller.get_circuits():
... print ("circuito %s, estado: %s" % (circuito.id, circuito.status))
...
circuito 21, estado: BUILT
circuito 18, estado: BUILT
circuito 17, estado: BUILT
circuito 16, estado: BUILT
circuito 15, estado: BUILT
circuito 14, estado: BUILT
circuito 20, estado: BUILT
circuito 19, estado: BUILT
circuito 22, estado: BUILT
circuito 23, estado: BUILT

También podemos usar la herramienta Nyx para monitorizar el tráfico de la red Tor en nuestra máquina en tiempo real.

$ sudo apt install nyx

La herramienta Nyx nos permite también comprobar los valores del archivo de configuración de Tor y usar un intérprete para el puerto de control de Tor (interface de tor-prompt), entre otras opciones.

Documentación original:
Beginner’s Guide to Tor on Ubuntu
TC: A Tor control protocol (Version 1)
Down the Rabbit Hole
Tor Nyx


Navegación anónima: kali-anonstealth

El objetivo es que todo el tráfico generado pase por la red Tor.

$ git clone https://github.com/Und3rf10w/kali-anonsurf.git
$ cd kali-anonsurf
$ sudo bash ./installer.sh

Se ha instalado un servicio que al iniciarlo, y usando IPTables, redirigirá el tráfico de cualquier navegador por la red Tor, incluido el DNS (DNS del proveedor VPN Private Internet Access):

$ sudo anonsurf start

Para detener el servicio:

$ sudo anonsurf stop

Documentación original: kali-anonstealth


Navegación anónima: red I2P

I2P (Invisible Internet Project) es una red que añade una capa de red con encriptación que nos proporciona también privacidad.

$ sudo apt-get install apt-transport-https curl
$ sudo apt install i2p

Ahora disponemos de un servicio que nos proporcionará acceso a la red I2P:

$ i2prouter start

Disponemos del puerto 4444 en localhost como proxy para navegar por la red I2P, por lo que hemos de configurar en el navegador la dirección 127.0.0.1:4444 como proxy. Para detener el servicio:

$ i2prouter stop

Documentación original:
Setting up I2P for anonymity
Web Browser Configuration


Ocultar Kali como Windows: kali-undercover

Podemos ocultar nuestra Kali de ojos curiosos, y hacer que parezca un Windows.

$ sudo apt install kali-undercover

Para activarlo o desactivarlo:

$ kali-undercover

Documentación original: Kali Undercover


Firefox Fingerprinting tips

Ademas de las acciones que tomemos en relaci&ooacute;n con la IP o MAC que mostramos, hemos de prestarle atenci&ooacute;n a los datos que nuestro navegador proporciona sin que nosotros lo queramos.
En funci&ooacute;n de los datos que no nos importe compartir y la funcionalidad del navegador que queramos mantener, podemos activar/desactivar caracteristicas o instalar o no diferentes extensiones.
Podemos comprobar que información proporciona nuestro navegador consultando Cover Your Tracks o Am I Unique o Browser Leaks.

Configuración de Firefox

  • Idioma para mostrar: English (US) (Menu > Options > General > Languages > Choose the languages used to display menus, messages, and notifications from Firefox)
  • Idioma por defecto: English (US) (Menu > Options > General > Languages > Choose your preferred language for displaying pages)
  • Buscador por defecto: DuckDuckGo (Menu > Options > Search > Default Search Engine)
  • Deshabilitar telemetria (Menu > Options > Privacy & Security > Firefox Data Collection and Use)
  • Bloqueo de contenido: Strict (Menu > Options > Privacy and Security > Content Blocking)
  • Do not Track: always (Menu > Options > Privacy and Security > Content Blocking)
  • Cookies and site data: Delete cookies and site data when Firefox is closed (Menu > Options > Privacy and Security > Content Blocking)
  • Logins and Passwords: Deshabilitado "Ask to save logins and passwords for websites" (Menu > Options > Privacy and Security > Content Blocking)

Extensiones de Firefox

  • Privacy Badger
  • Language Switch (EN default)
  • Spoof Timezone (GMT0)
  • User-Agent switcher
  • uBlock origin
  • NoScript

Configuración avanzada de Firefox "About:Config"

  • privacy.resistFingerprinting : true
  • webgl.disabled : true
  • media.peerconnection.enabled : false
  • geo.enabled : false
  • privacy.firstparty.isolate: true
  • media.navigator.enabled : false
  • dom.event.clipboardevents.enabled : false
  • network.cookie.lifetimePolicy : 2 (0-3)

Documentación original:
Firefox Privacy
Browser Fingerprinting
New fingerprinting techniques identify users across different browsers on the same PC


Recopilación pasiva de información: Google Dorks

Operadores de búsqueda de Google. Google Dorks.

  • Comillas " ". Busca las palabras exactas.
  • Guión -. Excluye una palabra de la búsqueda.
  • OR (ó |). Busca páginas que contengan un término.
  • +. Permite incluir palabras que Google por defecto no tiene en cuenta al ser muy comunes.
  • *. Comodín.
  • define:valor. Se muestran definiciones para el valor buscado.
  • filetype:valor. Se busca tipos de ficheros según el valor proporcionado.
  • site:sitio/dominio. La búsqueda se circunscribe al sitio/dominio proporcionado.
  • link:url. Busca las páginas que apuntan a dicha url.
  • cache:url. Se busca en la cache de Google.
  • info:url. Muestra información de la url.
  • related:url. Se buscan páginas similares a la url.
  • allinanchor:valores. Se muestra aquellas páginas apuntadas por enlaces donde el texto contiene el valor/es.
  • inanchor:valor. Se muestra aquellas páginas apuntadas por enlaces donde el texto contiene el valor/es, pudiéndose combinar con la búsqueda habitual.
  • allintext:valores. La búsqueda proporciona resultados que contienen los valores en el texto de la página.
  • intext:valor. La búsqueda proporciona resultados que contienen los valores en el texto de la página, pudiéndose combinar con la búsqueda habitual.
  • allinurl:valores. Sólo se presentan los resultados que contienen los valores buscados en la url.
  • inurl:valor. Sólo se presentan los resultados que contienen los valores buscados en la url, pudiéndose combinar con la búsqueda habitual.
  • allintitle:valores. Muestra los resultados que contienen los valores en el título.
  • intitle:valor. Muestra los resultados que contienen los valores en el título, pudiéndose combinar con la búsqueda habitual.

Documentación original: Complete Google Dorks List in 2020 For Ethical Hacking and Penetration Testing


Recopilación pasiva de información: filtros Shodan

Lista de filtros Shodan relevantes

  • after. Solo muestra los resultados después de la fecha proporcionada (dd/mm/yyyy)
  • asn. Cadena ASN (Autonomous System Number)
  • before. Solo muestra los resultados antes de la fecha proporcionada (dd/mm/yyyy
  • category. Categorias disponibles: ics, malwarestring
  • city. Nombre de ciudad
  • country. Código de país de 2 caracteres
  • geo. Acepta de 2 a 4 valores. 2 valores: latitud, longitud. 3 valores: latitud, longitud, rango. 4 valores: latitud superior izquierda, longitud superior izquierda, latitud inferior derecha, longitud inferior derecha.
  • hash. Hash del entero de la propiedad de la fecha.
  • has_ipv6. True/False
  • has_screenshot. True/False
  • server. Dispositivos o sevidores con un identificador de cabecera determinado
  • hostname. Host name completo
  • ip. Alias para el filtro de red
  • isp. ISP
  • net. Rango de red en formato CIDR (ex.199.4.1.0/24)
  • org. Organización
  • os. Sistema operativo
  • port. Puerto
  • postal. Código postal (solo USA)
  • product. Nombre del producto en el banner
  • region. Región
  • state. Estado
  • version. Version
  • vuln. ID del CVE para la vulnerabilidad

Documentación original: Shodan Search Filter Reference