CAPEv2 es un sandbox de malware. Se derivó de Cuckoo, con el objetivo de agregar el desempaquetado automático de malware y la extracción de configuración, de ahí su acrónimo: «configuración y extracción de carga útil». El desempaquetado automático permite la clasificación basada en las firmas de Yara para complementar las firmas de red (Suricata) y de comportamiento (API).
Hay una instancia de comunidad gratuita en línea que cualquiera puede usar:
https://capesandbox.com
Si bien la configuración y la extracción de la carga útil fueron los objetivos establecidos originalmente, el desarrollo de un depurador en CAPE inspiró primero el proyecto: para extraer la configuración o descomprimir las cargas útiles de familias de malware arbitrarias, sin depender de volcados de procesos (que tarde o temprano se rompen, Guys se detendrá) , es necesaria la vigilancia y el control a nivel de mando. El nuevo depurador en CAPE sigue los principios de maximizar el uso del hardware del procesador y el uso mínimo (casi completamente) de la interfaz de depuración de Windows, lo que permite que el malware se detecte y manipule de forma encubierta desde los puntos de entrada y a través de las firmas de Yara o las API durante la detonación Puntos de interrupción de hardware establecidos mediante programación en llamadas Esto permite capturar seguimientos de instrucciones o realizar operaciones como manipulación de flujo de control o volcados de región de memoria.
El depurador ha permitido que CAPE continúe evolucionando más allá de su funcionalidad original y ahora incluye omisiones dinámicas anti-evasión. Dado que el malware moderno a menudo intenta evadir el análisis dentro de la zona de pruebas, por ejemplo, mediante el uso de trampas de tiempo para la virtualización o la detección de enlaces de API, CAPE permite el desarrollo de contramedidas dinámicas, combinadas con acciones de depuración en las firmas de Yara, para detectar malware evasivo tras la detonación. Y realice manipulaciones de flujo de control para obligar a la muestra a detonar por completo u omitir maniobras evasivas. La lista de desvíos dinámicos en CAPE está creciendo, pero incluye:
- cargador antiguo
- Úsnef
- Deredex
- Cargador
- libro de formularios
- cargador
- pafish
CAPE utiliza una serie de técnicas o comportamientos de malware para permitir la captura de carga útil no empaquetada:
- inyección de proceso
- Inyección de shellcode
- inyección de DLL
- Proceso de vaciado
- avatar de proceso
- Descompresión de módulos ejecutables en memoria
- Extraiga módulos ejecutables o shellcode en la memoria
Estas acciones darán como resultado la captura de cargas útiles inyectadas, extraídas o descomprimidas para su posterior análisis. Además, CAPE crea automáticamente un volcado de proceso o, para DLL, una imagen de módulo DLL en memoria para cada proceso. Esto es útil para muestras empaquetadas con empaquetadores simples, donde los volcados de imágenes de módulos generalmente se desempaquetan por completo.
Use las opciones de punto de interrupción «bp0» a «bp3» para acceder rápidamente al depurador, aceptan un valor RVA o VA para establecer un punto de interrupción y luego generarán un breve seguimiento de instrucciones, determinado por las opciones de «recuento» y «profundidad». (por ejemplo, bp0 = 0x1234, profundidad = 1, recuento = 100). Para establecer un punto de interrupción en el punto de entrada de un módulo, utilice «ep» en lugar de una dirección (p. ej., bp0=ep). Alternativamente, ‘break-on-return’ permite establecer un punto de interrupción en la dirección de retorno de la API de enganche (por ejemplo, break-on-return=NtGetContextThread). El parámetro opcional «base-on-api» permite que una biblioteca de imágenes establezca puntos de interrupción de RVA a través de una llamada API (p. ej., base-on-api=NtReadFile,bp0=0x2345).
Las opciones ‘action0’ – ‘action3’ permiten realizar acciones cuando se encuentra un punto de interrupción, como volcar regiones de memoria (por ejemplo, action0=dumpebx) o cambiar el flujo de control de ejecución (por ejemplo, action1=skip). La documentación de CAPE contiene más ejemplos de tales operaciones.
‘dump-on-api’ permite volcar módulos cuando se llama a una función API específica, que se puede especificar en la interfaz web, útil para desempaquetar/volcar rápidamente nuevas muestras (por ejemplo, dump-on-api=DnsQuery_A).
CAPE también tiene una opción «upx=1» que descomprime dinámicamente las muestras que usan UPX «pirateado» (modificado), que es muy popular entre los autores de malware. Las muestras se ejecutan en el depurador de CAPE hasta su OEP (Punto de entrada original), luego se descargan, reparan y sus importaciones se reconstruyen automáticamente, listas para el análisis.
CAPE continúa creciendo en la cobertura de la familia de malware, pero tiene un analizador de configuración para los siguientes ejemplos:
- emoticonos
- robot acrobático
- cabot
- Hancito
- Úsnef
- Deredex
- cargador de humo
- identificación de hielo
- hojas rojas
- cheques
- navegador
- Enfar
- hiedra venenosa
- grito
- TSCookie
CAPE utiliza las firmas de Yara como método de clasificación principal para detectar cargas útiles desempaquetadas. La lista crece constantemente e incluye:
- Azorult, Formbook, Ryuk, Hermes, Shade, Remcos, Ramnit, Gootkit, QtBot, ZeroT, WanaCry, NetTraveler, Locky, BadRabbit, Magniber, Redsip, Kronos, PetrWrap, Kovter, Azer, Petya, Dreambot, Atlas, NanoLocker, Mole, Codoso, Cryptoshield, Loki, Jaff, IcedID, Scarab, Cutlet, RokRat, OlympicDestroyer, Gandcrab, Fareit, ZeusPanda, AgentTesla, Imminent, Arkei, Sorgu, tRat, T5000, TClient, TreasureHunter.
Hay un repositorio de firmas de la comunidad con cientos de firmas desarrolladas por la comunidad de CAPE: https://github.com/kevoreilly/community
El análisis de configuración se puede realizar mediante el marco de análisis de configuración de CAPE, el marco RATDecoders de malwareconfig.com y DC3-MWCP (Centro para la defensa contra el cibercrimen: analizador de configuración de malware). También incluye muchos analizadores/decodificadores de malwareconfig.com, incluidos: Sakula, DarkComet, PredatorPain y PoisonIvy. Gracias a Kevin Breen/TechAnarchy por este marco y analizador (https://github.com/kevthehermit/RATDecoders), y gracias a DC3 por su marco (https://github.com/Defense-Cyber-Crime- Centro/DC3-MWCP). Un agradecimiento especial a Jason Reaves (@sysopfb) por el analizador TrickBot y Fabien Perigaud por el analizador PlugX.
El repositorio que contiene el código DLL del monitor es un repositorio único: https://github.com/kevoreilly/capemon.
Contribuya a este proyecto ayudando a crear nuevas firmas, analizadores o evitando otras familias de malware. Hay muchas obras actualmente, así que esté atento a este espacio.
Tabla de Contenidos
CAPEv2! – Para no perderte ninguna actualización importante, no pierdas de vista: Changelog
Muchas gracias a @D00m3dR4v3n por migrar CAPE a Python 3 sin ayuda de nadie.
- Python3
- agent.py se prueba con python (3.7.2|3.8) x86. ¡Debería usar la versión de python x86 dentro de la máquina virtual!
- Host probado con las versiones 3.7 y 3.8 de python3, pero las versiones más nuevas también deberían funcionar
Recomendaciones de instalación y scripts para un rendimiento óptimo
- Familiarícese con la documentación para una configuración adecuada
- Para una mejor compatibilidad, recomendamos instalar en Ubuntu 20.04 LTS
- Se recomienda utilizar KVM como hipervisor, reemplazando
al modo real
sudo ./kvm-qemu.sh all
| tee kvm-qemu.log
- Para instalar CAPE, use cape2.sh con todas las optimizaciones
sudo ./cape2.sh base cape | tee cape.log
- servicio del cabo
- servicio del cabo
- Cape-procesador.servicio
- cabo-web.service
- Cape-rooter.servicio
- reiniciar cualquier servicio usando
systemctl restart
- Para depurar cualquier problema, detenga el servicio y ejecute el comando para ejecutar el servicio manualmente para ver más registros, verifique
-h
modo de depuración (-d
) poder ayudar. - Solo el rooter debe ejecutarse como rootel resto son capa usuario.
- Ejecutar como root confunde los permisos
- reiniciar y disfrutar
- Todos los guiones contienen ayuda
-h
pero revisa el script comprender Qué están haciendo.
Cómo crear una máquina virtual usando #virt-manager
Esta será una publicación rápida sobre cómo crear fácil y rápidamente una máquina virtual con algunas correcciones. Antivíricos
-1.Puede conectar a través de local a servidor remoto administrador virtual en tu escritorio
- Presione Archivo -> Nueva conexión -> seleccione la casilla de verificación ssh y especifique el usuario y el servidor.
- o directamente desde la línea de comando:
virt-manager -c «qemu+ssh://SU_USUARIO@SU_SERVIDOR/sistema»
- Debe asegurarse de que el usuario pueda conectarse a libvirtd y agregar su clave de liberación ssh a ese usuario .ssh/claves_autorizadas).
- modusuario -G libvirt -a
- modusuario -G kvm -a
- modusuario -G libvirt -a
0. Cómo agregar interfaz/tipo de red hospitalario
en la prensa de virt-manager editar -> Detalles de conexión -> «Presione +» -> Configure su rango de red y seleccione aislado
- Presiona el ícono de abajo documento
- Elija iso u otras formas de instalación, usaremos iso en este tutorial
- Establecer la memoria RAM y la cantidad de CPU para vm
- Cree un disco duro específico para la máquina virtual, consulte seleccionar o crear una tienda personalizada, de acuerdo a administrarver la siguiente pantalla
- establezca el nombre de vm, el tamaño> 100 GB y el formato qcow2
- Seleccione la imagen recién creada y presione elegir volumen
- escoger Personalizar la configuración antes de la instalacióncapaz de aplicar fármaco antiviral luego presione terminar
- Configuración detallada de VM, en Visión de conjunto escoger XML y Siga las instrucciones en esta publicación de blog Para medicamentos antivirales. importante: Mejor rendimiento con i44fx en <= Windows7, Q35, pero no se admite de fábrica hasta Windows 10
- Tipo de CPU interna deshabilitado Copiar la configuración de la CPU del host Si la CPU del servidor está Xeony luego envíe uno que le guste, esta es la parte difícil, si elige un tipo de CPU (función de CPU) que no es compatible con la CPU de su servidor, su máquina virtual puede ser lenta, así que aquí tendrá que jugar solo, pero Considere los tipos de CPU del mundo real no:
- configurar Opciones de desempeño Como esta foto
- red, falsifique su Dirección MAC Recomiendo encarecidamente usar solo anfitrión reemplazar NAT
- Presione la aplicación en lugar de instalar e instalar el sistema operativo
- Tome una instantánea: presione el último ícono y podrá ver que está seleccionado, como una pantalla con reproducción dentro, luego en la parte inferior +, configure el nombre de su instantánea y presione Listo
Dependencias del núcleo de la máquina virtual
Como actualizar
- capa:
git pull
- Comunidad:
python3 utils/community.py -waf
Mirar-h
antes de asegurarse de que entiende
¿Cómo actualizar con muchas pequeñas modificaciones personalizadas que no se pueden hacer públicas?
usar rebase
git añadir –todos
git cometer -m ‘[STASH]’
git pull –rebase maestro de origen
Solucione los conflictos si es necesario (rebase)
cabeza de reinicio de git ~ 1
fusionarse con
Asegúrese de que el repositorio de kevoreilly se agregue como control remoto (solo hágalo una vez)
git remoto agregar kevoreilly https://github.com/kevoreilly/CAPEv2.git
Asegúrese de que todos sus cambios estén confirmados en la rama en la que se fusionará
git cometer -a -m «
Obtener cambios del repositorio de kevoreilly
git buscar kevoreilly
Combinar la rama principal de kevoreilly en su rama actual
git merge kevoreilly/maestro
Solucione los conflictos de fusión si es necesario
Empuje a su repositorio si es necesario
empujar git