
Lançado como código aberto pela NCC Group Plc - http://www.nccgroup.com/
Desenvolvido por Corey Arthur, [email protected]
http://www.github.com/nccgroup/CollaboratorPlusPlus
Este projeto é lançado sob a AGPL; consulte o LICENSE para mais informações.
Baixe os releases aqui.
Esta ferramenta visa estender a funcionalidade existente do Collaborator fornecida pelo Burp Suite, oferecendo uma série de recursos de qualidade de vida e a implementação de um mecanismo de autenticação para proteger implantações privadas do Collaborator, mantendo-se ao mesmo tempo compatível com todas as extensões existentes que geram e consultam contextos do Collaborator.
O CollaboratorPlusPlus atua como um proxy entre o Burp e o servidor Collaborator configurado, permitindo a captura dos contextos do Collaborator que estão sendo usados pelo cliente. O CollaboratorPlusPlus pode então armazenar e exibir os contextos observados e suas interações recuperadas em uma interface central. Além disso, contextos antigos podem ser consultados manualmente, permitindo que as interações sejam recuperadas mesmo depois que a janela do cliente do Collaborator tenha sido fechada.

Além da Extensão do Burp, o projeto Collaborator++ também inclui um componente opcional de autenticação no lado do servidor para autenticar solicitações de polling recebidas antes de passá-las ao servidor Collaborator. Ele pode ser implantado por proprietários de servidores privados do Burp Collaborator para restringir a consulta (polling) apenas àqueles que conhecem o segredo compartilhado.
Quando o Burp solicita a lista de interações recebidas pelo servidor Collaborator, a extensão criptografa as solicitações de polling com o esquema de criptografia AES256-CBC, usando o segredo compartilhado para gerar a chave de criptografia. Desde que o segredo compartilhado esteja correto, o servidor de autenticação consegue descriptografar a solicitação e encaminhá-la ao servidor Collaborator para recuperar as interações da instância do Collaborator em questão. A resposta é então criptografada com o segredo compartilhado antes de ser enviada de volta ao cliente do Burp.
Ao usar o segredo compartilhado para criptografar a transmissão entre o cliente Burp e o servidor de autenticação, não é necessário transmitir o segredo compartilhado junto com a solicitação, permitindo que a confidencialidade seja mantida mesmo nos casos em que a comunicação HTTP precise ser usada entre o cliente e o servidor.
Algumas configurações adicionais foram adicionadas ao Collaborator Auth para conveniência.
Usar SSL: Ativa ou desativa o uso de SSL entre o cliente e o servidor. Certifique-se de que seu servidor também esteja configurado para usar SSL na porta de destino.
Ignorar Erros de Certificado: Desativa as verificações de validade do certificado. Permite o uso de certificados autoassinados / expirados.
Ativar Verificação de Hostname SSL: Não verifica se o hostname do certificado corresponde ao domínio de destino.
Bloquear Servidor Collaborator Público: Evita o uso acidental do servidor público do Burp Collaborator. Adiciona uma entrada DNS para "burpcollaborator.net" apontando para 127.0.0.1 na configuração de resolução de nomes do Burp.
java -jar CollaboratorPlusPlus.jar para gerar a configuração padrão.
java -jar CollaboratorPlusPlus.jar YOURCONFIGFILE.propertiesNota: Para permitir solicitações HTTP e HTTPS ao servidor de autenticação do Collaborator++, crie duas cópias do arquivo de configuração, configurando uma para HTTP e outra para HTTPS e execute duas instâncias do servidor de autenticação do Collaborator++.
Para habilitar o uso de SSL, gere um certificado para o servidor e use um dos métodos abaixo para configurá-lo.
Para ambos os métodos, certifique-se de que enable_ssl seja true no arquivo de configuração.
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemssl_private_key_path para o caminho da sua chave privada.ssl_certificate_path para o caminho do seu certificado.ssl_intermediate_certificate_path para o caminho do seu certificado intermediário.Este método foi adicionado puramente por motivos de compatibilidade. Recomendo fortemente usar a configuração simples, a menos que haja um motivo em contrário.
ssl_private_key_path como uma string vazia "".
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemopenssl pkcs12 -export -in certificate.pem -inkey privatekey.pem -out polling.p12 -name pollingkeytool -importkeystore -deststorepass NEW_PASSWORD_FOR_KEYSTORE -destkeypass NEW_PASSWORD_FOR_PRIVATE_KEY \
-destkeystore polling.jks -srckeystore polling.p12 -srcstoretype PKCS12 \
-srcstorepass PASS_FROM_PREVIOUS_STEP -alias pollingPara evitar consultas (polling) ao servidor Collaborator sem o uso do Collaborator Auth, o local de polling do Burp Collaborator deve ser restrito.
Isso pode ser feito usando seu firewall ou modificando a interface de escuta dos eventos de polling.
Opção 1 - Exigir sempre o uso do Collaborator Auth.
Se você desejar forçar os usuários da sua instância do Burp Collaborator a se autenticarem independentemente da rede, o Burp Collaborator pode ser configurado para escutar eventos de polling apenas na máquina local (ou seja, do Collaborator Auth).
Isso pode ser feito alterando o endereço de escuta do Burp Collaborator para eventos de polling para a interface de loopback (127.0.0.1) ou usando algo como iptables para descartar solicitações recebidas.
Opção 2 - Exigir o uso do Collaborator Auth apenas em redes externas.
Para permitir que o Burp Collaborator seja usado normalmente quando estiver na mesma rede do servidor, mas exigir o uso do Collaborator Auth quando estiver em uma rede externa, o Burp Collaborator pode ser configurado para escutar eventos de polling de endereços internos.
Isso pode ser feito alterando o endereço de escuta do Burp Collaborator para eventos de polling para o endereço interno do servidor (192.168.x.x, 10.x.x.x, etc.).
Para garantir que eventos de polling externos não sejam processados pelo Burp Collaborator, a porta de polling deve ser bloqueada no firewall voltado para a internet. Alternativamente, use iptables para descartar o tráfego recebido de redes externas.
java -jar CollaboratorAuth-SERVER.jar CollaboratorServer.properties