
서버 응답의 실제 내용을 기반으로, 예를 들어 Intruder 실행에서 나온 응답에 대해 텍스트 클러스터링을 수행하여 이상치/그룹을 식별하는 Java Burp 플러그인입니다.
HTTP 응답을 클러스터링하여 이상치를 찾기 위한 Burp Suite 확장 기능.
이것은 내가 수년 동안 만들려고 생각해 온 플러그인입니다. 단순히 Burp intruder에서 퍼징 공격 결과를 분석하는 방식에 다소 짜증이 났기 때문입니다. 우리는 일반적으로 퍼징 공격에서 서버 응답의 변화를 찾습니다. 그리고 상태 코드, 응답 시간, 응답 크기를 보고 그러한 차이를 찾습니다. 이 모든 것은 응답 내용에 대한 간접적인 측정치입니다. 물론 펜테스터로서 우리는 응답 내용의 차이를 찾기 위해 수천 개의 서버 내용을 읽을 시간이 없습니다. 하지만 분명히 알고리즘이 우리를 대신해 이 작업을 할 수 있습니다.
여기서 이 플러그인이 등장합니다. 이 플러그인은 텍스트 클러스터링 기법을 사용하여 응답 내용을 분석하고 유사성에 따라 클러스터로 묶습니다. 이는 intruder 퍼징 공격 결과를 보는 또 다른 방법을 제공하며, 다른 서버 응답을 빠르게 식별할 수 있게 해줍니다.
Colonel Clustered는 응답 클러스터링을 수행하기 위해 두 가지 서로 다른 알고리즘을 제공합니다. 기본 알고리즘은 비교적 빠르며, 이상치를 찾는 데 뛰어나지만 확장성이 좋지 않은 선택적 심층 분석 알고리즘이 있습니다. 음, 둘 다 확장성이 좋지는 않습니다. 이 플러그인에 5만 개의 응답을 던지는 것은 망설여질 것입니다. 더 빠른 기본 알고리즘은 복잡도가 O(n^2)인 반면, 심층 분석 알고리즘은 O(n^3)입니다. 따라서 intruder 결과를 이 플러그인으로 보내 처리할 때 이 점을 염두에 두십시오.
콘텐츠 인식 토큰화: 이 확장 기능은 먼저 각 응답의 Content-Type 헤더를 검사하여 가장 지능적인 토큰화 전략을 적용합니다:
사전 그룹화: 수천 개의 응답에서도 빠르게 유지하기 위해, 이 확장 기능은 완전히 동일한 응답을 그룹화하는 단일 패스를 수행합니다. 각 응답의 토큰 집합에 대한 해시를 계산하고 동일한 해시를 공유하는 모든 항목을 그룹화합니다. 이는 비용이 많이 드는 클러스터링 알고리즘이 훨씬 더 작은 고유 응답 본문 집합에만 실행되면 된다는 것을 의미합니다.
이중 클러스터링 알고리즘: Colonel Clustered는 두 가지 서로 다른 클러스터링 알고리즘을 제공합니다:
Fast Scan (기본): 고성능 DBSCAN 기반 알고리즘이 여러 요청/응답을 확장 기능으로 보낼 때 자동으로 실행됩니다.
Deep Analysis (수동 트리거): 원래의 더 계산 집약적인 계층적 클러스터링 알고리즘은 "Deep Analysis" 버튼을 통해 사용할 수 있습니다. 이 옵션은 더 세분화되고 잠재적으로 다른 클러스터링 관점이 필요한 시나리오를 위해 설계되었으며, 향상된 클러스터 응집력을 위해 Average Linkage를 활용합니다.
이상치 통합: 클러스터링 후, 단일 고유 멤버만 포함하는 결과 그룹은 이상치로 간주됩니다. 이러한 모든 이상치는 UI에서 하나의 편리한 "Outliers" 그룹으로 통합됩니다.
이 두 알고리즘은 응답 크기가 응답 차이의 신뢰할 수 없는 척도일 때에도 내용이 다른 서버 응답을 자동으로 식별하는 쉬운 방법을 제공해야 합니다.
확장 기능 로드:
분석할 응답 보내기:
Deep Analysis 수행 (선택 사항):
Quad-Pane UI에서 결과 분석:
Request/Response Pair: 항목의 원래 인덱스입니다.Status Code: HTTP 응답 상태 코드입니다.Length: 응답 본문의 길이(바이트)입니다.Content-Type: 응답의 Content-Type 헤더입니다.
이 프로젝트는 Gradle을 사용합니다. 플러그인을 빌드하려면 JDK 버전 17이 설치되어 있어야 합니다.
git clone <repository-url>
cd ColonelClustered
./gradlew build
build/libs/ColonelClustered.jar에 위치합니다.Drew Kirkpatrick
@hoodoer
[email protected]
Blackthorne Consulting에서 저를 찾을 수 있습니다.
이 프로젝트는 Unlicense에 따라 퍼블릭 도메인으로 공개됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.