
Bella é uma ferramenta de mineração de dados pós-exploração e administração remota para macOS, escrita em Python puro. 🍎💻
Bella é uma ferramenta de mineração de dados pós-exploração e de administração remota para macOS, em Python puro. 🍎 💻
Bella é uma ferramenta robusta, puramente Python, de pós-exploração e administração remota para macOS.
Bella, também conhecida como servidor, é um shell reverso criptografado SSL/TLS que pode ser implantado em qualquer sistema com macOS >= 10.6. Bella oferece os seguintes recursos:
Pseudo-TTY que emula uma instância SSH [suporte a CTRL-C para a maioria das funções, saída em streaming, suporte completo a scripts bash inline, autocompletar por tab, histórico de comandos, etc].
Auto instalador! Basta executar o binário, e a Bella cuida do resto - um shell reverso persistente em um local oculto no disco rígido, indetectável por antivírus.
Upload / Download de qualquer arquivo[s]
Conexão VNC reversa.
Transmitir e salvar a entrada do microfone do computador.
Phishing de senha de login / keychain através do prompt do sistema.
Phishing de senha do Apple ID através do prompt do iTunes.
Extração de Token do iCloud.
Acesso a todos os serviços iCloud do usuário através de tokens ou senhas extraídos.
Isso inclui: Contatos do iCloud, Buscar Meu iPhone, Buscar Meus Amigos, Backups do iOS.
Extração de Senhas do Google Chrome.
Extração de Histórico do Chrome e do Safari.
Descriptografia automática do Keychain ao descobrir a senha do kc.
Histórico de Conversas do macOS.
Enumeração de Backups do iOS do iTunes.
Log extensivo de toda a atividade da Bella e dos arquivos baixados.
Armazenamento de dados MUITO abrangente. Todas as informações que a Bella descobre [tokens, senhas, etc] são armazenadas em um banco de dados SQL criptografado no computador que executa a Bella. Essas informações são usadas para uma execução mais rápida de funções e um shell reverso "mais inteligente".
Muitos outros ótimos recursos! Brinque com ela para vê-la em ação.
Esses são alguns dos recursos disponíveis quando estamos no userland. Este shell é acessível a qualquer momento em que o usuário tem uma conexão com a internet, o que ocorre quando está logado e o computador não está dormindo.
Se obtivermos root, as capacidades da Bella se expandem muito.
Semelhante à função getsystem em um shell meterpreter, a Bella tem uma função get_root que tentará obter acesso root através de vários meios, incluindo uma senha de usuário obtida por phishing e/ou exploits locais de escalonamento de privilégios se o sistema for vulnerável.
Ao obter acesso root, a Bella migrará para um diretório oculto em /Library e se carregará como um LaunchDaemon. Isso agora fornece acesso remoto à instância da Bella a qualquer momento, desde que o computador tenha uma conexão de rede. Assim que obtivermos root, podemos fazer o seguinte:
SUPORTE MULTIUSUÁRIO! A Bella manterá registro de todas as informações de qualquer usuário ativo no computador em um banco de dados abrangente e alternará automaticamente para o usuário ativo do computador. Todas as técnicas de extração de dados mencionadas acima agora estão disponíveis para todos os usuários da máquina.
Descriptografar TODO o tráfego TLS/SSL e redirecioná-lo através do Control Center! [um ataque MITM ativo e interessante]
Desativar/Ativar o Teclado e/ou Mouse.
Carregar um KEXT do Insomnia para manter uma conexão aberta se o usuário fechar o laptop.
Despejo automático de Tokens do iCloud e senhas do Chrome [utiliza keychaindump e chainbreaker se o SIP estiver desativado]
Muita automação nos bastidores.
O poder da Bella está no seu alto nível de automação da maioria das tarefas trabalhosas que alguém enfrenta em um cenário de pós-exploração. É incrivelmente fácil de configurar e usar, não requer pré-configuração no alvo e exige muito pouca configuração no Control Center. Ela aproveita o incrível poder nos bastidores do macOS e do Python para uma experiência fluida de pós-exploração.
Baixe / clone este repositório.
Execute ./BUILDER e insira as informações apropriadas.
É isso! Bella está pronta para funcionar. Basta enviar e executar Bella no seu alvo macOS.
Agora execute Control Center.py no seu Control Center macOS. Ela não requer dependências [exceto mitmproxy se você quiser fazer MITM]. Ela fará alguma configuração automática, e você verá algo assim depois de alguns segundos.
O Control Center atualizará constantemente essa seleção, para até 128 computadores separados.
Pressione Ctrl-C para escolher na seleção e, em seguida, digite o número do computador desejado. Você verá então uma tela como esta.
Comece a executar comandos! bella_info é um ótimo comando. Execute manual para obter um manual completo de todos os comandos. Além disso, você pode pressionar tab duas vezes para ver uma lista de comandos disponíveis.
Pequena nota: Bella funciona através da internet, se você fizer alguma configuração. Configure seu firewall para encaminhar a porta da Bella para o seu Control Center. Outras portas importantes para encaminhar: 1) VNC - 5500. 2) Microfone - 2897. 3) MITM - 8081
Este projeto está sendo ativamente mantido. Envie todos os relatórios de bug, dúvidas, solicitações de recursos ou informações relacionadas.
A Bella utiliza keychaindump, VNC, streaming de microfone, etc., enviando binários C codificados em base64 para o servidor/alvo da Bella. Incluí arquivos pré-compilados e codificados no arquivo Payloads/payloads.txt. Se você deseja compilar sua própria versão desses payloads, aqui está o que fazer depois de compilá-los:
Codifique-os em base64 e coloque-os no payloads.txt na seguinte ordem, cada um separado por uma nova linha.
vnc, keychaindump, microphone, rootshell, insomnia, lock_icon, chainbreaker.
O payload_generator no diretório Payloads deve ajudar com isso.
Por favor, me avise se tiver qualquer 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
Suporte ao Control Center para Linux [não deve exigir muitos ajustes]
Proxy SOCKS reverso para tunelar nosso tráfego através do servidor.
Descriptografia / extração de senhas do Firefox
Registro de teclas digitadas (keylogging) com saída legível [80% concluído]
Detectar TODOS os programas que causam bloqueio e matá-los [85% concluído]
O comando interactive_shell, que fornece um tty totalmente interativo através do módulo ptty. A única desvantagem deste recurso no momento é que ele não pode executar as funções pré-programadas. [95% concluído, apenas trabalhando na integração para funções pré-programadas]
Como dito anteriormente, Bella é um pseudo-TTY. Com isso, o socket base e o tratamento de execução remota de código da Bella são uma versão bastante abstraída de um socket de requisição-resposta muito simples. Bella recebe um comando do servidor. Se o comando corresponder a uma função pré-programada (isto é, despejo de histórico do Chrome), ela executará essa função e enviará a resposta de volta ao cliente. O cliente então tratará a resposta da mesma forma. Após processar a resposta, ele solicitará ao cliente outro comando para enviar.
Os problemas com um socket de baixo nível são numerosos, e não se limitam a: 3. Execução de programas que bloqueiam e travam o pipe, esperando por uma saída que nunca chega (sudo, nano, ftp) 4. Não saber quantos dados esperar na chamada socket.recv(). 5. Não ser capaz de enviar ctrl-C, ctrl-Z e comandos semelhantes. 6. Sem histórico de comandos 7. Um programa que falha pode matar um shell. 8. Resposta e requisição um-a-um.
A Bella resolve os problemas acima por meio de: 4. Funções recv() e send() que serializam o comprimento da mensagem e percorrem as respostas/requisições de acordo. 5. Integração com Readline para dar uma sensação mais parecida com 'tty', incluindo suporte a ctrl-C, histórico de comandos e autocompletar por tab. 6. Detectar programas que bloqueiam e matá-los beta 7. Permitir que múltiplas mensagens sejam enviadas de uma vez sem que o cliente solicite mais entrada (ótimo para comandos como ping, tree e outros comandos com atualizações em tempo real).
Para informações completas sobre as funções pré-programadas, execute o comando manual quando estiver conectado ao servidor.
--