Install Burp Certificate
Em uma Máquina Virtual
Primeiramente, você precisa baixar o certificado Der do Burp. Você pode fazer isso em Proxy --> Opções --> Importar / Exportar certificado CA
Exporte o certificado no formato Der e vamos transformá-lo em uma forma que o Android será capaz de entender. Note que para configurar o certificado burp na máquina Android no AVD você precisa executar esta máquina com a opção -writable-system
.
Por exemplo, você pode executá-lo assim:
Em seguida, para configurar o certificado do burp, faça o seguinte:
Uma vez que a máquina terminar de reiniciar, o certificado do burp estará em uso por ela!
Usando Magisc
Se você rootou seu dispositivo com Magisc (talvez um emulador), e você não consegue seguir os passos anteriores para instalar o certificado Burp porque o sistema de arquivos é somente leitura e você não pode remontá-lo como gravável, há outra maneira.
Explicado neste vídeo você precisa:
Instalar um certificado CA: Apenas arraste e solte o certificado Burp DER alterando a extensão para
.crt
no celular para que seja armazenado na pasta Downloads e vá paraInstalar um certificado
->Certificado CA
Verifique se o certificado foi armazenado corretamente indo para
Credenciais confiáveis
->USUÁRIO
Torná-lo confiável pelo sistema: Baixe o módulo Magisc MagiskTrustUserCerts (um arquivo .zip), arraste e solte no telefone, vá para o aplicativo Magics no telefone para a seção
Módulos
, clique emInstalar do armazenamento
, selecione o módulo.zip
e uma vez instalado reinicie o telefone:
Após reiniciar, vá para
Credenciais confiáveis
->SISTEMA
e verifique se o certificado Postswigger está lá
Pós Android 14
No último lançamento do Android 14, observou-se uma mudança significativa no tratamento dos certificados de Autoridade de Certificação (CA) confiáveis pelo sistema. Anteriormente, esses certificados estavam localizados em /system/etc/security/cacerts/
, acessíveis e modificáveis por usuários com privilégios de root, o que permitia a aplicação imediata em todo o sistema. No entanto, com o Android 14, o local de armazenamento foi movido para /apex/com.android.conscrypt/cacerts
, um diretório dentro do caminho /apex
, que é imutável por natureza.
Tentativas de remontar o caminho APEX cacerts como gravável são frustradas, pois o sistema não permite tais operações. Mesmo tentativas de desmontar ou sobrepor o diretório com um sistema de arquivos temporário (tmpfs) não contornam a imutabilidade; aplicativos continuam acessando os dados do certificado original, independentemente de alterações no nível do sistema de arquivos. Essa resiliência se deve à montagem /apex
ser configurada com propagação PRIVADA, garantindo que quaisquer modificações dentro do diretório /apex
não afetem outros processos.
A inicialização do Android envolve o processo init
, que, ao iniciar o sistema operacional, também inicia o processo Zygote. Esse processo é responsável por iniciar processos de aplicativos com um novo espaço de montagem que inclui uma montagem privada /apex
, isolando assim as alterações neste diretório de outros processos.
No entanto, existe uma solução alternativa para aqueles que precisam modificar os certificados CA confiáveis pelo sistema dentro do diretório /apex
. Isso envolve remontar manualmente o /apex
para remover a propagação PRIVADA, tornando-o gravável. O processo inclui copiar o conteúdo de /apex/com.android.conscrypt
para outra localização, desmontar o diretório /apex/com.android.conscrypt
para eliminar a restrição somente leitura e, em seguida, restaurar o conteúdo para sua localização original dentro de /apex
. Esta abordagem requer ação rápida para evitar falhas no sistema. Para garantir a aplicação dessas alterações em todo o sistema, é recomendável reiniciar o system_server
, o que efetivamente reinicia todos os aplicativos e coloca o sistema em um estado consistente.
Montagem de ligação através do NSEnter
Configurar um Diretório Gravável: Inicialmente, um diretório gravável é estabelecido montando um
tmpfs
sobre o diretório existente de certificados do sistema não APEX. Isso é alcançado com o seguinte comando:
Preparando Certificados CA: Após a configuração do diretório gravável, os certificados CA que se pretende usar devem ser copiados para este diretório. Isso pode envolver copiar os certificados padrão de
/apex/com.android.conscrypt/cacerts/
. É essencial ajustar as permissões e rótulos SELinux desses certificados adequadamente.Montagem de Bind para Zygote: Utilizando
nsenter
, entra-se no namespace de montagem do Zygote. O Zygote, sendo o processo responsável por iniciar aplicativos Android, requer este passo para garantir que todos os aplicativos iniciados doravante utilizem os certificados CA recém-configurados. O comando usado é:
Isso garante que todo novo aplicativo iniciado seguirá a configuração atualizada de certificados CA.
Aplicando Alterações aos Aplicativos em Execução: Para aplicar as alterações aos aplicativos que já estão em execução,
nsenter
é novamente usado para entrar individualmente no namespace de cada aplicativo e realizar uma montagem de bind semelhante. O comando necessário é:
Abordagem Alternativa - Reinicialização Suave: Um método alternativo envolve realizar a montagem de ligação no processo
init
(PID 1) seguido por uma reinicialização suave do sistema operacional com os comandosstop && start
. Esta abordagem propagaria as alterações em todos os namespaces, evitando a necessidade de abordar individualmente cada aplicativo em execução. No entanto, este método geralmente é menos preferido devido ao inconveniente de reinicialização.
Referências
Last updated