Los jardineros saben que los gusanos son buenos. Los profesionales de la ciberseguridad saben que los gusanos son malo. Muy mal. De hecho, los gusanos son literalmente la fuerza más devastadora del mal conocida en el mundo de la computación. los mi destino El gusano ocupa la dudosa posición del malware informático más costoso alguna vez – responsable de algunos $ 52 mil millones en daño En segundo lugar… Tan grandeotro gusano.
Resulta, sin embargo, que hay excepciones a cada regla. Algunos gusanos biológicos son en realidad no son bienvenidas en la mayoría de los jardines. Y algunos gusanos cibernéticos, al parecer, pueden usar sus poderes para hacer el bien…
Conoce a Hopper, el gusano bueno
Las herramientas de detección no son buenas para capturando la propagación no basada en exploits, que es lo que mejor hacen los gusanos. La mayoría de las soluciones de ciberseguridad son menos resistentes a los métodos de ataque de gusanos como la suplantación de tokens y otros que aprovechan configuraciones internas deficientes: PAM, segmentación, almacenamiento de credenciales inseguro y más.
Entonces, ¿qué mejor manera de vencer a un gusano sigiloso que con… otro gusano sigiloso?
¡Y así nació Hopper! Hopper es un gusano real, con comando y control, escalada de privilegios integrada y muchas más de las capacidades más tortuosas de los gusanos. Pero al contrario de la mayoría de los gusanos, Hopper fue construido para hacer el bien. En lugar de causar daño, Hopper les dice a sus operadores White Hat dónde y cómo logró infiltrarse en una red. Informa hasta dónde llegó, qué encontró en el camino y cómo mejorar las defensas.
De cerca y en persona con Hopper
El equipo de desarrollo de Cymulate basó a Hopper en un programa de malware común: un pequeño ejecutable que sirve como carga útil inicial, con el objetivo principal de preparar una carga útil más grande. Nuestro stager también sirve como empaquetador de PE, un programa que carga y ejecuta programas indirectamente, generalmente desde un paquete.
El escenario de Hopper se escribió de tal manera que la carga útil inicial no tiene que cambiarse si hacemos una actualización de Hopper. Esto significa que la exclusión de hashes en cada actualización se convirtió en historial, y los usuarios de Hopper solo necesitan excluir el hash del stager una vez. Escribir el escenario de esta manera también abrió el camino para ejecutar otras herramientas que necesita Hopper.
Para maximizar la flexibilidad de Hopper, nuestro equipo agregó diferentes métodos de ejecución inicial, métodos de comunicación adicionales, varias formas de obtener la carga útil de la primera etapa, diferentes métodos de inyección y más. Y, para crear un gusano muy sigiloso, debemos permitir la máxima personalización de las funciones sigilosas, por lo que realizamos configuraciones controladas casi en su totalidad por el operador:
- Configuración inicial de la carga útil – métodos de ejecución totalmente configurables que incluyen ejecutables, bibliotecas, scripts de python, shellcodes, scripts de PowerShell y más
- Configuración de la carga útil de la primera etapa – métodos personalizables de obtención de paquetes y métodos de inyección de paquetes (por ejemplo, inyección reflectante)
- Configuración de baliza de segunda etapa – canales de comunicación personalizados, mantener vivo el tiempo y el tiempo de espera, y el jitter
- API – Adición por aire de nuevas capacidades para permitir una expansión futura más fácil de capacidades, incluidos métodos de comunicación, métodos de propagación y exploits.
Ejecución, gestión de credenciales y difusión
Ejecución inicial de Hopper es in-mem y en etapas. La primera etapa es un trozo pequeño con capacidad limitada. Este stub sabe cómo ejecutar un código más importante en lugar de contener el código dentro de sí mismo, lo que hace que sea más difícil marcarlo como un archivo malicioso. Para la escalada de privilegios, elegimos diferentes métodos de omisión de UAC, explotando servicios vulnerables como Spooler y usando servicios mal configurados o ejecuciones automáticas para obtener elevación de privilegios o persistencia. La idea aquí es que Hopper use los privilegios mínimos necesarios para lograr sus objetivos. Por ejemplo, si una máquina proporciona acceso de usuario a nuestra máquina de destino, es posible que Hopper no necesite elevar los privilegios para propagarse a esa máquina de destino.
Hopper cuenta con administración centralizada de credenciales, lo que le permite distribuir credenciales entre instancias de Hopper según sea necesario, lo que significa que todos los Hopper tienen acceso a las credenciales recopiladas, lo que elimina la necesidad de duplicar la base de datos de credenciales confidenciales en otras máquinas.
Para propagarse, Hopper prefiere configuraciones erróneas a exploits. ¿La razón? Los exploits pueden colapsar potencialmente los sistemas, se destacan más y son fácilmente identificados por los productos de monitoreo de red/IPS y los productos EDR. Las configuraciones incorrectas, por otro lado, no se detectan fácilmente como actividad maliciosa. Por ejemplo, las configuraciones incorrectas de Active Directory pueden hacer que un usuario obtenga acceso a un recurso al que no debería haber tenido acceso y, por lo tanto, provocar la propagación. Del mismo modo, las configuraciones incorrectas del software pueden permitir que un usuario ejecute código de forma remota y, por lo tanto, provoque la propagación.
Comunicaciones Stealth y C&C
El equipo de Cymulate eligió la ejecución en memoria para Hopper, ya que cifrar el código de malware en la memoria una vez que ya no está en uso puede interrumpir la capacidad de los productos EDR para tomar huellas digitales del contenido en memoria. Además, la ejecución en memoria utiliza llamadas directas al sistema en lugar de llamadas API, que pueden ser monitoreadas por productos EDR. Si Hopper necesita usar las funciones de la API, detecta y descarga los ganchos EDR antes de hacerlo.
Para mantener el sigilo, Hopper se comunica con Command and Control durante las horas de trabajo enmascarando la actividad con la actividad normal de las horas de trabajo en patrones de tiempo aleatorios. También se comunica solo con servidores incluidos en la lista de permitidos o servidores que no se consideran maliciosos, como canales de Slack, Hojas de cálculo de Google u otros servicios públicos.
La línea de fondo
Para adelantarse a los ataques de gusanos, un Hopper similar a un gusano White Hat es una solución ideal. Al ver la red desde la perspectiva de un gusano, por así decirlo, Hopper convierte la mayor ventaja del gusano en el la mayor ventaja del defensor.
Nota: este artículo está escrito y contribuido por Yoni Oren, líder del equipo, investigador y desarrollador sénior de seguridad en Cymulate.