
Bella es una herramienta de minería de datos post-explotación y administración remota para macOS, escrita en Python puro. 🍎💻
Bella es una herramienta de minería de datos post-explotación y administración remota para macOS, escrita en Python puro. 🍎 💻
Bella es una herramienta robusta de post-explotación y administración remota para macOS, escrita en Python puro.
Bella, también conocida como el servidor, es una reverse shell cifrada con SSL/TLS que puede instalarse en cualquier sistema con macOS >= 10.6. Bella ofrece las siguientes funciones:
Pseudo-TTY que emula una instancia SSH [soporte de CTRL-C para la mayoría de las funciones, salida en streaming, soporte completo para scripting bash en línea, autocompletado con tabulador, historial de comandos, etc].
¡Autoinstalador! Solo ejecuta el binario, y Bella se encarga del resto: una reverse shell persistente en una ubicación oculta del disco duro, indetectable por los antivirus.
Subir / Descargar cualquier archivo[s]
Conexión VNC inversa.
Transmitir y guardar la entrada del micrófono del equipo.
Phishing de contraseñas de inicio de sesión / llavero mediante el prompt del sistema.
Phishing de contraseñas de Apple ID mediante el prompt de iTunes.
Extracción de tokens de iCloud.
Acceso a todos los servicios de iCloud del usuario mediante tokens o contraseñas extraídos.
Esto incluye: Contactos de iCloud, Buscar mi iPhone, Buscar mis Amigos, Copias de seguridad de iOS.
Extracción de contraseñas de Google Chrome.
Extracción del historial de Chrome y Safari.
Descifrado automático del llavero al descubrir la contraseña de kc.
Historial de chat de macOS.
Enumeración de copias de seguridad de iOS en iTunes.
Registro extenso de toda la actividad de Bella y de los archivos descargados.
Almacenamiento de datos MUY completo. Toda la información que Bella descubre [tokens, contraseñas, etc] se almacena en una base de datos SQL cifrada en el equipo que ejecuta Bella. Esta información se utiliza para una ejecución más rápida de las funciones y una reverse shell "más inteligente".
¡Muchas otras funciones geniales! Experimenta con ella para verla en acción.
Estas son algunas de las funciones disponibles cuando estamos en el espacio de usuario (userland). Esta shell es accesible en cualquier momento en que el usuario tenga conexión a internet, lo cual ocurre cuando ha iniciado sesión y el equipo no está en reposo.
Si obtenemos root, las capacidades de Bella se expanden enormemente.
De forma similar a la función getsystem de una shell meterpreter, Bella tiene una función get_root que intentará obtener acceso root mediante diversos medios, incluyendo una contraseña de usuario obtenida por phishing y/o exploits locales de escalada de privilegios si el sistema es vulnerable.
Al obtener acceso root, Bella migrará a un directorio oculto en /Library y se cargará a sí misma como un LaunchDaemon. Esto proporciona ahora acceso remoto a la instancia de Bella en todo momento, siempre que el equipo tenga conexión de red. Una vez que obtenemos root, podemos hacer lo siguiente:
¡SOPORTE MULTIUSUARIO! Bella realizará un seguimiento de toda la información de los usuarios activos en el equipo en una base de datos completa, y cambiará automáticamente al usuario activo del equipo. Todas las técnicas de extracción de datos mencionadas anteriormente están ahora disponibles para cada usuario de la máquina.
¡Descifrar TODO el tráfico TLS/SSL y redirigirlo a través del centro de control! [un bonito ataque MITM activo]
Deshabilitar/Habilitar el teclado y/o el ratón.
Cargar un KEXT de Insomnia para mantener una conexión abierta si el usuario cierra su portátil.
Volcado automático de tokens de iCloud y contraseñas de Chrome [utiliza keychaindump y chainbreaker si SIP está deshabilitado]
Mucha automatización entre bastidores.
El poder de Bella reside en su alto nivel de automatización de la mayoría de las tareas tediosas a las que uno se enfrenta en un escenario de post-explotación. Es increíblemente fácil de configurar y usar, no requiere preconfiguración en el objetivo y muy poca configuración en el Control Center. Aprovecha el increíble poder entre bastidores de macOS y Python para una experiencia de post-explotación fluida.
Descarga / clona este repositorio.
Ejecuta ./BUILDER e introduce la información adecuada.
¡Eso es todo! Bella está lista para funcionar. Solo sube y ejecuta Bella en tu objetivo macOS.
Ahora ejecuta Control Center.py en tu centro de control macOS. No requiere dependencias [excepto mitmproxy si quieres hacer MITM]. Hará algo de autoconfiguración, y verás algo como esto después de unos segundos.
El Control Center actualizará constantemente esta selección, para un máximo de 128 equipos distintos.
Pulsa Ctrl-C para elegir de la selección, y luego escribe el número del equipo que quieras. A continuación se te mostrará una pantalla como esta.
¡Empieza a ejecutar comandos! bella_info es uno excelente. Ejecuta manual para obtener un manual completo de todos los comandos. Además, puedes pulsar tab dos veces para ver una lista de los comandos disponibles.
Pequeña nota: Bella funciona a través de internet, si haces algo de configuración. Configura tu firewall para reenviar el puerto de Bella a tu Control Center. Otros puertos importantes para reenviar: 1) VNC - 5500. 2) Micrófono - 2897. 3) MITM - 8081
Este proyecto se mantiene activamente. Por favor, envía cualquier informe de errores, preguntas, solicitudes de funciones o información relacionada.
Bella utiliza keychaindump, VNC, streaming de micrófono, etc., enviando binarios C codificados en base64 al servidor / objetivo de Bella. He incluido archivos precompilados y codificados en el archivo Payloads/payloads.txt. Si deseas compilar tu propia versión de estos payloads, esto es lo que debes hacer después de compilarlos:
Codifícalos en base64 y ponlos en payloads.txt en el siguiente orden, cada uno separado por una nueva línea.
vnc, keychaindump, microphone, rootshell, insomnia, lock_icon, chainbreaker.
payload_generator en el directorio Payloads debería ayudarte con esto.
Por favor, házmelo saber si tienes algún problema.
https://github.com/juuso/keychaindump
https://github.com/n0fate/chainbreaker
https://github.com/richardkiss/speakerpipe-osx
https://github.com/semaja2/InsomniaX
https://github.com/stweil/OSXvnc
Soporte de Control Center para Linux [no debería requerir demasiados ajustes]
Proxy SOCKS inverso para tunelizar nuestro tráfico a través del servidor.
Descifrado / extracción de contraseñas de Firefox
Registro de pulsaciones de teclado con salida legible [80% completado]
Detectar TODOS los programas que causan un bloqueo y eliminarlos [85% completado]
El comando interactive_shell, que proporciona una tty totalmente interactiva a través del módulo ptty. El único inconveniente de esta función por ahora es que no puede ejecutar las funciones preprogramadas. [95% completado, solo trabajando en la integración de las funciones preprogramadas]
Como se dijo anteriormente, Bella es una pseudo-TTY. Con esto, el socket base y el manejo de ejecución remota de código de Bella son una versión bastante abstraída de un socket de solicitud-respuesta muy simple. Bella recibe un comando del servidor. Si el comando coincide con una función preprogramada (p. ej., volcado del historial de Chrome), entonces realizará esa función y enviará la respuesta de vuelta al cliente. El cliente manejará la respuesta de la misma manera. Después de procesar la respuesta, solicitará al cliente otro comando para enviar.
Los problemas con un socket de bajo nivel son numerosos, y no se limitan a: 3. Ejecución de programas que bloquean y cuelgan el pipe, esperando una salida que nunca llega (sudo, nano, ftp) 4. No saber cuántos datos esperar en la llamada socket.recv(). 5. No poder enviar ctrl-C, ctrl-Z y comandos similares. 6. Sin historial de comandos 7. Un programa que se bloquea puede matar una shell. 8. Respuesta y solicitud uno a uno.
Bella soluciona lo anterior mediante: 4. Funciones recv() y send() que serializan la longitud del mensaje y recorren las respuestas/solicitudes en consecuencia. 5. Integración de readline para dar una sensación más parecida a 'tty', incluyendo soporte de ctrl-C, historial de comandos y autocompletado con tabulador. 6. Detectar programas que bloquean y eliminarlos beta 7. Permitir que se envíen múltiples mensajes a la vez sin que el cliente solicite más entrada (ideal para comandos como ping, tree y otros comandos con actualizaciones en vivo).
Para obtener información completa sobre las funciones preprogramadas, ejecuta el comando manual cuando estés conectado al servidor.
--