
Ferramenta Blackbox para desativar a validação de certificados SSL — incluindo certificate pinning — em aplicações iOS e macOS.
Ferramenta blackbox para desabilitar a validação de certificados SSL/TLS - incluindo o certificate pinning - em aplicativos iOS e macOS. Segunda iteração de https://github.com/iSECPartners/ios-ssl-kill-switch .
Uma vez carregado em um aplicativo iOS ou macOS, o SSL Kill Switch 2 corrige funções de baixo nível responsáveis por lidar com conexões SSL/TLS, a fim de sobrepor e desabilitar a validação de certificados padrão do sistema, bem como qualquer tipo de validação personalizada de certificados (como o certificate pinning).
Ele foi testado com sucesso contra diversos aplicativos que implementam o certificate pinning, incluindo a Apple App Store. A primeira versão do SSL Kill Switch foi lançada na Black Hat Vegas 2012.
A versão mais recente do iOS com suporte conhecido é a 14.2.
No iOS, o SSL Kill Switch 2 pode ser instalado como um tweak do Cydia Subtrate em um dispositivo com jailbreak.
Instalar o SSL Kill Switch 2 permite que qualquer pessoa na mesma rede que o dispositivo realize facilmente ataques man-in-the-middle contra qualquer conexão SSL ou HTTPS. Isso significa que é trivial obter acesso a e-mails, sites visualizados no Safari e quaisquer outros dados baixados por qualquer App em execução no dispositivo.
As seguintes dependências devem ser instaladas usando o Cydia:
Em seguida, baixe o pacote pré-compilado mais recente disponível na aba de releases da página do GitHub do SSL Kill Switch 2. Copie-o para o dispositivo, instale-o e faça respring no dispositivo:
dpkg -i <package>.deb
killall -HUP SpringBoard
Deve haver um novo menu nas Configurações do dispositivo onde você pode ativar a extensão. Por fim, encerre e reinicie o App que deseja testar.
O tweak pode ser desinstalado posteriormente usando:
dpkg -r com.nablac0d3.SSLKillSwitch2
Muitas pessoas perguntaram como interceptar o tráfego da App Store usando o SSL Kill Switch 2. Escrevi algumas instruções aqui, mas elas estão desatualizadas: http://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/
Por padrão, o SSL Kill Switch interromperá o app Charles Proxy para iOS e você não conseguirá fazer proxy de nenhum tráfego de rede com ele. Para corrigir isso, adicione o app Charles Proxy (com.xk72.Charles) à lista de IDs de bundle excluídos na configuração do SSL Kill Switch:

A compilação requer a suíte Theos instalada, disponível em http://www.iphonedevwiki.net/index.php/Theos/Getting_Started .
Em seguida, dentro da pasta raiz do SSL Kill Switch 2, crie um symlink para a sua instalação do theos:
ln -s /<path_to_your_theos_folder> theos
Certifique-se de que o dpkg está instalado. Se você tiver o Homebrew, use:
brew install dpkg
Então, o pacote Debian do SSL Kill Switch 2 pode ser compilado usando:
make package
O SSL Kill Switch 2 pode ser usado em aplicativos macOS como uma biblioteca dinâmica a ser injetada em processos.
No macOS, a biblioteca SSLKillSwitch precisa ser injetada manualmente no processo em que o SSL pinning precisa ser desabilitado. Uma vez injetada, ela substituirá e desabilitará automaticamente a validação SSL.
Existem várias maneiras de fazer isso, incluindo:
Iniciar o processo com LLDB ou, no Xcode, em Debug->Attach to Process, então pausar e carregar o SSLKillSwitch usando dlopen():
(lldb) expr (void*)dlopen("/path/to/build/SSLKillSwitch.framework/Versions/A/SSLKillSwitch", 1)
O resultado esperado é um ponteiro não nulo:
(void *) $1 = 0x00007f92e74d10c0
Se você receber um ponteiro nulo, talvez seja necessário habilitar a assinatura de código e compilar para profiling, então usar o binário da pasta de release, e talvez até seja necessário copiar o binário para a pasta de recursos do app. Nesse caso, você teria visto uma violação de leitura do sandbox no console. Para testar uma nova versão do binário, você precisa encerrar o app e carregá-lo novamente.
Usar DYLD_INSERT_LIBRARIES para injetar o SSLKillSwitch e iniciar o processo.
TBD
Use o projeto Xcode para compilar o SSL Kill Switch 2 para macOS. A biblioteca compilada estará disponível em Products/SSLKillSwitch.framework/Versions/A/SSLKillSwitch. Este é o binário que você precisa injetar no processo em que deseja desabilitar o SSL pinning.
MIT - Consulte ./LICENSE.
Alban Diquet - @nabla_c0d3