Mística es una herramienta que permite incrustar datos en campos de protocolo de capa de aplicación, con el objetivo de establecer un canal bidireccional para comunicaciones arbitrarias. Actualmente, encapsulación en HTTP, DNS y ICMP protocolos se ha implementado, pero se espera que más protocolos a ser introducido en un futuro próximo.

Mística tiene un diseño modular, construido alrededor de un protocolo de transporte personalizado, llamado SOTP: Protocolo de transporte de superposición simple. Los datos se cifran, se fragmentan y se colocan en paquetes SOTP. Los paquetes SOTP se codifican e incrustan en el campo deseado del protocolo de aplicación, y se envían al otro extremo.

El objetivo de la capa SOTP es ofrecer un protocolo de transporte binario genérico, con una sobrecarga mínima. Los paquetes SOTP se pueden ocultar o incrustar fácilmente en protocolos de aplicación legítimos. Además, SOTP se asegura de que los paquetes sean recibidos por el otro extremo, encripta los datos usando RC4 (esto puede cambiar en el futuro) y se asegura de que la información pueda fluir de ambas formas de manera transparente, mediante un mecanismo de sondeo.

Los módulos interactúan con la capa SOTP para diferentes propósitos:

  • Módulos de envoltura o envolturas: estos módulos codifican / decodifican paquetes SOTP desde / hacia protocolos de capa de aplicación
  • Módulos superpuestos: estos módulos se comunican a través del canal SOTP. Los ejemplos son: redirección io (como netcat), shell (ejecución de comandos), reenvío de puertos ...

Los módulos de envoltura y superposición funcionan juntos para crear aplicaciones personalizadas, por ejemplo, redirección de entrada a través de DNS o reenvío de puerto remoto a través de HTTP.
El diseño modular de Mística permite un fácil desarrollo de nuevos módulos. Además, el usuario puede bifurcar fácilmente los módulos actuales para utilizar algún campo personalizado o codificación o modificar el comportamiento de un módulo superpuesto.

Hay dos piezas principales de software:


  • Servidor Mística ( ms.py): utiliza módulos que actúan como el servidor del protocolo de capa de aplicación deseado (HTTP, DNS, ICMP ...). También está diseñado de una manera que permitirá ejecutar múltiples servidores, envoltorios y superposiciones al mismo tiempo, con solo una instancia de ms.py, aunque esta característica aún no se ha implementado por completo.
  • Cliente Mística ( mc.py): utiliza módulos que actúan como el cliente del protocolo de capa de aplicación deseado (HTTP, DNS, ICMP ...). Solo puede usar una superposición y una envoltura al mismo tiempo.

Módulos actuales Módulos

  • io: Lee desde stdin, envía a través de la conexión SOTP. Lee desde la conexión SOTP, imprime en stdout
  • shell: Ejecuta comandos recibidos a través de la conexión SOTP y devuelve la salida. Compatible con el módulo io.
  • tcpconnect: Se conecta al puerto TCP. Lee desde el socket, envía a través de la conexión SOTP. Lee desde la conexión SOTP, envía a través del socket.
  • tcplisten: Se une al puerto TCP. Lee desde el socket, envía a través de la conexión SOTP. Lee desde la conexión SOTP, envía a través del socket.
Uso
ms.py : Servidor Mística

Hay dos modos principales en Mística Server:

  • Modo de controlador único : cuando ms.pyse inicia con parámetros, permite que un solo módulo de superposición interactúe con un único módulo contenedor.
  • Modo manejador múltiple: (aún no publicado) Cuando ms.pyse ejecuta sin parámetros, el usuario ingresa a una consola interactiva, donde se pueden iniciar múltiples módulos de superposición y envoltura. Estos módulos podrán interactuar entre sí, con pocas restricciones.
mc.py: Cliente Mística

Así es como se ve el mensaje de ayuda:

usage: mc.py [-h] [-k KEY] [-l LIST] [-m MODULES] [-w WRAPPER_ARGS]