
Burp Suite Collaborator를 컨텍스트 캡처, 폴링 기록, 그리고 프라이빗 서버 배포를 위한 선택적 AES 암호화 인증으로 강화하는 Burp Suite 확장 프로그램입니다.
NCC Group Plc가 오픈소스로 공개 - http://www.nccgroup.com/
개발자: Corey Arthur, [email protected]
http://www.github.com/nccgroup/CollaboratorPlusPlus
이 프로젝트는 AGPL 라이선스로 공개됩니다. 자세한 내용은 LICENSE를 참조하세요.
릴리스에서 여기로 다운로드하세요.
이 도구는 Burp Suite에서 제공하는 기존 Collaborator 기능을 확장하여 다양한 편의 기능과 비공개 Collaborator 배포를 보호하기 위한 인증 메커니즘 구현을 제공합니다. 동시에 Collaborator 컨텍스트를 생성하고 폴링하는 모든 기존 확장 기능과 호환성을 유지합니다.
CollaboratorPlusPlus는 Burp와 구성된 Collaborator 서버 사이에서 프록시 역할을 하여 클라이언트가 사용 중인 Collaborator 컨텍스트를 캡처할 수 있게 합니다. 그런 다음 CollaboratorPlusPlus는 관찰된 컨텍스트와 검색된 상호 작용을 중앙 인터페이스에 저장하고 표시할 수 있습니다. 또한 이전 컨텍스트를 수동으로 폴링할 수 있으므로 Collaborator 클라이언트 창이 닫힌 후에도 상호 작용을 검색할 수 있습니다.

Burp 확장 기능 외에도 Collaborator++ 프로젝트에는 들어오는 폴링 요청을 Collaborator 서버로 전달하기 전에 인증하는 선택적 서버측 인증 구성 요소가 포함되어 있습니다. 비공개 Burp Collaborator 서버 소유자는 이 기능을 배포하여 공유 비밀번호를 아는 사람에게만 폴링을 제한할 수 있습니다.
Burp가 Collaborator 서버가 수신한 상호 작용 목록을 요청하면 확장 기능은 공유 비밀번호를 사용하여 암호화 키를 생성하고 AES256-CBC 암호화 방식으로 폴링 요청을 암호화합니다. 공유 비밀번호가 올바르면 인증 서버는 요청을 해독하여 Collaborator 서버로 전달하고 지정된 Collaborator 인스턴스에 대한 상호 작용을 검색할 수 있습니다. 그런 다음 응답은 Burp 클라이언트로 다시 전송되기 전에 공유 비밀번호로 암호화됩니다.
공유 비밀번호를 사용하여 Burp 클라이언트와 인증 서버 간의 전송을 암호화하면 요청과 함께 공유 비밀번호를 전송할 필요가 없으므로 클라이언트와 서버 간에 HTTP 통신을 사용해야 하는 경우에도 기밀성을 유지할 수 있습니다.
편의를 위해 Collaborator Auth에 몇 가지 추가 설정이 추가되었습니다.
SSL 사용: 클라이언트와 서버 간 SSL 사용을 전환합니다. 서버도 대상 포트에서 SSL을 사용하도록 구성되어 있는지 확인하세요.
인증서 오류 무시: 인증서 유효성 검사를 비활성화합니다. 자체 서명/만료된 인증서를 사용할 수 있습니다.
SSL 호스트 이름 검증 활성화: 인증서 호스트 이름이 대상 도메인과 일치하는지 확인하지 않습니다.
공용 Collaborator 서버 차단: 공용 Burp Collaborator 서버를 실수로 사용하는 것을 방지합니다. Burp의 호스트 이름 해석 구성에 *"burpcollaborator.net"*에 대한 DNS 항목을 127.0.0.1로 추가합니다.
java -jar CollaboratorPlusPlus.jar를 실행하여 기본 구성을 생성합니다.
java -jar CollaboratorPlusPlus.jar YOURCONFIGFILE.properties참고: Collaborator++ Auth 서버에 HTTP 및 HTTPS 요청을 모두 허용하려면 구성 파일을 두 개 복사하여 하나는 HTTP용, 다른 하나는 HTTPS용으로 구성하고 Collaborator++ Auth 서버 인스턴스를 두 개 실행하세요.
SSL 사용을 활성화하려면 서버용 인증서를 생성하고 아래 방법 중 하나를 사용하여 서버를 구성하세요.
두 방법 모두 구성 파일에서 enable_ssl이 true인지 확인하세요.
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemssl_private_key_path를 개인 키 경로로 설정합니다.ssl_certificate_path를 인증서 경로로 설정합니다.ssl_intermediate_certificate_path를 중간 인증서 경로로 설정합니다.이 방법은 순전히 호환성 이유로 추가되었습니다. 특별한 이유가 없다면 간단한 구성을 사용하는 것을 적극 권장합니다.
ssl_private_key_path의 serializedValue를 빈 문자열 ""로 설정합니다.
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 pollingjava -jar CollaboratorAuth-SERVER.jar CollaboratorServer.propertiesCollaborator Auth를 사용하지 않고 Collaborator 서버를 폴링하지 못하도록 하려면 Burp Collaborator의 폴링 위치를 제한해야 합니다.
이는 방화벽을 사용하거나 폴링 이벤트의 수신 인터페이스를 수정하여 수행할 수 있습니다.
옵션 1 - 항상 Collaborator Auth 사용을 요구합니다.
사용자의 네트워크에 관계없이 Burp Collaborator 인스턴스 사용자에게 인증을 강제하려면 Burp Collaborator가 로컬 머신(즉, Collaborator Auth)에서만 폴링 이벤트를 수신하도록 구성할 수 있습니다.
이는 Burp Collaborator의 폴링 이벤트 수신 주소를 루프백 인터페이스(127.0.0.1)로 변경하거나 iptables와 같은 것을 사용하여 들어오는 요청을 차단함으로써 수행할 수 있습니다.
옵션 2 - 외부 네트워크에서만 Collaborator Auth 사용을 요구합니다.
서버와 동일한 네트워크에 있을 때는 Burp Collaborator를 정상적으로 사용할 수 있지만 외부 네트워크에 있을 때는 Collaborator Auth를 사용하도록 요구하려면 Burp Collaborator가 내부 주소의 폴링 이벤트를 수신하도록 구성할 수 있습니다.
이는 Burp Collaborator의 폴링 이벤트 수신 주소를 서버의 내부 주소(192.168.x.x, 10.x.x.x 등)로 변경하여 수행할 수 있습니다.
외부 폴링 이벤트가 Burp Collaborator에 의해 처리되지 않도록 하려면 인터넷 연결 방화벽에서 폴링 포트를 차단해야 합니다. 또는 iptables를 사용하여 외부 네트워크에서 들어오는 트래픽을 차단합니다.