Use MTLS para conexão com API - Postman e Burpsuite

mTLS, ou Mutual TLS (Transport Layer Security), é uma tipo de autenticação onde o cliente e o servidor se autenticam mutuamente usando o protocolo TLS. Isso significa que ambas as partes — cliente e servidor — apresentam certificados digitais para estabelecer a conexão.

O uso de autenticação baseada em mTLS para consumir os dados de uma API é cada vez mais comum. No pentest de API com esse tipo de autenticação, é necessário configurar o certificado no proxy onde a comunicação será interceptada. 

A configuração que será abordada neste artigo usa o Postman e o Burp Suite para o teste na API, usando o certificado como parte da autorização para o consumo da API. O Postman vai usar o Burp Suite como proxy, e ambos deverão ter o certificado configurado. 

Arquivos necessários para a configuração: "client-certificate" e "private key".

Importação do certificado-cliente no Postman

Acesse File > Settings > Certificates > Add Certificate





Adicione o arquivo do "certificado de cliente", que pode ter as seguintes extensões .crt, .pem ou .cer, e o arquivo com a chave privada que pode ser .key ou .pem. Configure nessa etapa a url principal e a porta de conexão com a API. 

Observação: quando o Postman é usado em um host linux (sem o proxy), é necessário gerenciar as permissões dos arquivos "certificado de cliente" e "chave-privada" pois pode ocorrer falha de permissão de acesso do Postman a esses arquivos. 

Configure o certificado de cliente no Burp Suite

Ao usar o Burp Suite como proxy para interceptar as requisições da API feitas com o Postman, é necessário gerar um arquivo .pfx e importa-lo no Burp Suite. 

Usamos o Openssl para gerar o certificado no formato PKCS12, e esse formato usa o certificado de chave pública, a sua chave privada correspondente e, em alguns casos, usa o certificado intermediário para gerar um único certificado .pfx ou .p12. O comando para gerar o certificado .pfx é o seguinte: 

openssl pkcs12 -export -in certificate.crt -inkey private.key -out cert.pfx

É obrigatório gerar o arquivo com uma senha pois na configuração do Burp Suite somente é aceito o upload do certificado com senha. 

Acesse Burp > Settings > Network > TLS > Client TLS certificates > Add > Escolha a opção File (PKCS#12) > Selecione o arquivo e finalize a importação. A partir dessa etapa, o certificado da API está configurado no Burp Suite e será usado para autenticação da API. 

Configure o proxy no Postman 

No Postman, acesse File > Settings > Proxy > configure o endereço IP e porta do Burp Suite. 


Agora é possível iniciar o pentest importando a configuração da API no Postman e usar o Burp Suite para manipular as requisições. 


#hackingBR


Comentários

Postagens mais visitadas