elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad (Moderador: r32)
| | |-+  Encapsular datos en paquetes DNS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Encapsular datos en paquetes DNS  (Leído 4,529 veces)
Paniic

Desconectado Desconectado

Mensajes: 32


\x90\x90\x90


Ver Perfil WWW
Encapsular datos en paquetes DNS
« en: 28 Octubre 2015, 19:51 pm »

Suponiendo que el resto de puertos están cerrados, mi idea es, mediante un programa y con conexión inversa, encapsular paquetes de datos en paquetes DNS (en el payload, supongo,)

Luego los recibirá el cliente que los interpretará.

PD: No he tocado con anterioridad esto y no veo una información descriptiva. Mi idea es hacerlo en C# pero lo posteo aquí para conocer primero el funcionamiento, ya cuando sepa como hacerlo, lo aplicaré a C#.

Perdonad si mi pregunta es atrevida, es únicamente didáctico.


En línea

\x31\xc9\x83\xe9\xee\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x5e\x10\xdb\x16\x83\xeb\xfc\xe2\xf4\x6f\xcb\x88\x55\x0d\x7a\xd9\x7c\x38\x48\x52\xf7\x93\x90\x48\x4f\xee\x2f\x16\x96\x17\x69\x22\x4d\x04\x78\xd1\x16\x5e\x89\xbd\x7e\x79\x1f\x98\x70\x0d\x99\x3a\xa6\x38\x40\x8a\x45\xd7\xf1\x98\xdb\xde\x42\xb3\x39\x71\x63\xb3\x7e\x71\x72\xb2\x78\xd7\xf3\x89\x45\xd7\xf1\x6b\x1d\x93\x90\xdb\x16
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Encapsular datos en paquetes DNS
« Respuesta #1 en: 28 Octubre 2015, 19:53 pm »

explica en detalle el caso, suena interesante, pero puede no ser lo que esperas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Paniic

Desconectado Desconectado

Mensajes: 32


\x90\x90\x90


Ver Perfil WWW
Re: Encapsular datos en paquetes DNS
« Respuesta #2 en: 28 Octubre 2015, 20:01 pm »

explica en detalle el caso, suena interesante, pero puede no ser lo que esperas

Te cuento el caso que intento reproducir.

Suponiendo que un equipo tenga unicamente abierto el puerto 53, programaría un troyano cortito de conexión inversa que encapsule paquetes para ser enviados por el único puerto abierto, osea, por DNS.

Esto llegaría a mi equipo y podría establecer conexión.

Mi problema es en la falta de información tan grande que tengo acerca del encapsulamiento de paquetes.

Como curiosidad: Hasta los equipos más protegidos en España tienen este puerto abierto, y el error está en no utilizar un IDS(snort) que detecte estas anomalías (paquetes demasiado grandes y con contenido cifrado ilegible).
En línea

\x31\xc9\x83\xe9\xee\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x5e\x10\xdb\x16\x83\xeb\xfc\xe2\xf4\x6f\xcb\x88\x55\x0d\x7a\xd9\x7c\x38\x48\x52\xf7\x93\x90\x48\x4f\xee\x2f\x16\x96\x17\x69\x22\x4d\x04\x78\xd1\x16\x5e\x89\xbd\x7e\x79\x1f\x98\x70\x0d\x99\x3a\xa6\x38\x40\x8a\x45\xd7\xf1\x98\xdb\xde\x42\xb3\x39\x71\x63\xb3\x7e\x71\x72\xb2\x78\xd7\xf3\x89\x45\xd7\xf1\x6b\x1d\x93\x90\xdb\x16
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Encapsular datos en paquetes DNS
« Respuesta #3 en: 28 Octubre 2015, 20:04 pm »

si tienes un troyano de conexión inversa, no importa cual puerto uses, así que deberías usar uno entre 1024 y menor a 40000, esto es porque son los puertos comunes de salida, si intentas conectarte por debajo de 1024 es sospechoso, por otro lado, si el puerto se ve "abierto" quiere decir que un programa lo está usando, en ese caso tu programa no podrá usarlo
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Paniic

Desconectado Desconectado

Mensajes: 32


\x90\x90\x90


Ver Perfil WWW
Re: Encapsular datos en paquetes DNS
« Respuesta #4 en: 28 Octubre 2015, 20:19 pm »

si tienes un troyano de conexión inversa, no importa cual puerto uses, así que deberías usar uno entre 1024 y menor a 40000, esto es porque son los puertos comunes de salida, si intentas conectarte por debajo de 1024 es sospechoso, por otro lado, si el puerto se ve "abierto" quiere decir que un programa lo está usando, en ese caso tu programa no podrá usarlo

Engel, no te lo tomes mal, pero no estoy pidiendo la información encontrada en un manual para kiddies, estoy yendo más a lo hondo, a lo técnico, te cuento.

Un troyano puede usar cualquier puerto entre el 1 y 65000 y pico, siempre y cuando dicho socket no lo tenga ocupado otro programa.
Por un lado, un puerto puede estar abierto y no haber ningún programa escuchando, y por otro un puerto solo está ocupado cuando un programa lo tiene asignado.

En caso de DNS no hay un programa que tenga asignado dicho puerto, simplemente son consultas (paquetes) que se envían y los servidores DNS resuelven. Lo que yo quiero hacer es que mi programa encapsule información en paquetes DNS (Ejemplo de lo que quiero).



¿Que quiero hacer realmente? ─ Por si no ha quedado muy claro, me explico mejor.

Quiero cargar en la máquina remota mi "servidor troyano", que encapsule toda la información que envíe en paquetes DNS (por tcp o udp) y las envíe a mi "cliente troyano".  Básicamente, encapsular tráfico en paquetes DNS. También conocido como "tunel"
« Última modificación: 28 Octubre 2015, 20:24 pm por Paniic » En línea

\x31\xc9\x83\xe9\xee\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x5e\x10\xdb\x16\x83\xeb\xfc\xe2\xf4\x6f\xcb\x88\x55\x0d\x7a\xd9\x7c\x38\x48\x52\xf7\x93\x90\x48\x4f\xee\x2f\x16\x96\x17\x69\x22\x4d\x04\x78\xd1\x16\x5e\x89\xbd\x7e\x79\x1f\x98\x70\x0d\x99\x3a\xa6\x38\x40\x8a\x45\xd7\xf1\x98\xdb\xde\x42\xb3\x39\x71\x63\xb3\x7e\x71\x72\xb2\x78\xd7\xf3\x89\x45\xd7\xf1\x6b\x1d\x93\x90\xdb\x16
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Encapsular datos en paquetes DNS
« Respuesta #5 en: 28 Octubre 2015, 20:53 pm »

lo que pasa es que estás cayendo en el caso que cae mucha gente, que es creer que los puertos son compuertas fisicas o similar...

un puerto es simplemente un numero asignado a un programa en una tabla... si el puerto se ve "abierto", significa que se envió un paquete tcp de conexión y respondió... que significa esto? que hay un programa tras el intentando hacer el handshake tcp... un puerto incluso no filtrado puede mostrarse como "cerrado" si no hay un programa activo para que intente establecer el handshake...

a que lleva esto?
que es un encapsulado DNS? es simplemente un paquete cuya cabecera contiene 53 como numero de origen o destino... como mucho un sistema de seguridad puede comprobar que tenga una cabecera bien formada (12 bytes, que puedes escribir a mano)

muchos sistemas ni si quiera comprueban eso... y si lo comprueban será un dolor de cabeza para ti, ya que solo podrás enviar unos pocos bytes por vez estableciendo una conexión hiperlenta y a la vez consumiéndote los recursos de red... (perderías más datos solo en cabeceras que en datos reales)

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Paniic

Desconectado Desconectado

Mensajes: 32


\x90\x90\x90


Ver Perfil WWW
Re: Encapsular datos en paquetes DNS
« Respuesta #6 en: 28 Octubre 2015, 23:19 pm »

Empezamos a entendernos.

En primer lugar comentarte que tengo experiencia, conozco lo que es un puerto, y he trabajado bastante con puertos, sockets, bind connections, shellcodes en payload... Un puerto puede estar abierto y no tener programa detrás, otra cosa es que una conexión externa sepa reconocer si está abierto (permitido por el firewall o TMG) o cerrado (o filtrado). Agradezco que me des la información masticada, pero vayamos un poco más allá.

Respecto al tema que tratamos:
Respecto al DNS, la velocidad se ralentiza pero muy poco (en caso de usar UDP), en caso de usar TCP se ralentiza más, pero yo no voy a usar Poison, voy a usar un troyano que únicamente hace 3 Handshake y envía comandos. Por lo tanto la velocidad no es un problema, ya que tanto por TCP como UDP irá fluido.

Lo que yo voy a hacer es encapsular en el payload del paquete UDP como DNS. En otras palabras, disfrazar a un paquete IPV4 como DNS, y luego el que reciba este paquete tendrá que saber utilizarlo.

Seguiré buscando a ver si encuentro información, y si algún compañero por aquí puede prestar ayuda se lo agradeceré.

Os dejo algunos documentos que he encontrado de como hacerlo, pero a mi sigue sin quedarme claro de como se hace a nivel de programación [DNS request]... Si encuentro algo lo postearé aquí.
Encapsular HTTP sobre DNS

Gracias Engel.
En línea

\x31\xc9\x83\xe9\xee\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x5e\x10\xdb\x16\x83\xeb\xfc\xe2\xf4\x6f\xcb\x88\x55\x0d\x7a\xd9\x7c\x38\x48\x52\xf7\x93\x90\x48\x4f\xee\x2f\x16\x96\x17\x69\x22\x4d\x04\x78\xd1\x16\x5e\x89\xbd\x7e\x79\x1f\x98\x70\x0d\x99\x3a\xa6\x38\x40\x8a\x45\xd7\xf1\x98\xdb\xde\x42\xb3\x39\x71\x63\xb3\x7e\x71\x72\xb2\x78\xd7\xf3\x89\x45\xd7\xf1\x6b\x1d\x93\x90\xdb\x16
Paniic

Desconectado Desconectado

Mensajes: 32


\x90\x90\x90


Ver Perfil WWW
Re: Encapsular datos en paquetes DNS
« Respuesta #7 en: 28 Octubre 2015, 23:25 pm »

Lo encontré y en BlackHat !!:

https://www.blackhat.com/presentations/bh-usa-08/Miller/BH_US_08_Ty_Miller_Reverse_DNS_Tunneling_Shellcode.pdf

Es justo lo que busco. Solo me faltaría ahora implementarlo en C#. Si alguien sabe algo... es de agradecer.
En línea

\x31\xc9\x83\xe9\xee\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x5e\x10\xdb\x16\x83\xeb\xfc\xe2\xf4\x6f\xcb\x88\x55\x0d\x7a\xd9\x7c\x38\x48\x52\xf7\x93\x90\x48\x4f\xee\x2f\x16\x96\x17\x69\x22\x4d\x04\x78\xd1\x16\x5e\x89\xbd\x7e\x79\x1f\x98\x70\x0d\x99\x3a\xa6\x38\x40\x8a\x45\xd7\xf1\x98\xdb\xde\x42\xb3\x39\x71\x63\xb3\x7e\x71\x72\xb2\x78\xd7\xf3\x89\x45\xd7\xf1\x6b\x1d\x93\x90\xdb\x16
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
capturar paquetes de datos en adsl
Materiales y equipos
pejanofa 0 2,441 Último mensaje 9 Diciembre 2009, 17:51 pm
por pejanofa
no puedo capturar paquetes de datos
Dudas Generales
robby 0 2,185 Último mensaje 22 Julio 2010, 12:42 pm
por robby
Enviar paquetes de datos
Redes
Leinad5991 1 5,693 Último mensaje 31 Diciembre 2010, 17:43 pm
por madpitbull_99
Capas de seguridad y encapsular VPN's, anonimato.
Seguridad
darg94 3 2,571 Último mensaje 20 Enero 2014, 17:36 pm
por Platanito Mx
paquetes de datos
Redes
inma55 6 2,768 Último mensaje 14 Julio 2021, 17:00 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines