소개
Burp Intruder 는 웹 애플리케이션에 대한 맞춤형 공격 자동화를 위한 Burp Suite 내의 강력한 도구입니다. 매우 구성 가능하며 간단한 무차별 대입 추측부터 복잡한 취약점 스캔까지 광범위한 작업을 수행하는 데 사용할 수 있습니다.
Intruder 의 주요 기능 중 하나는 다양한 공격 유형입니다. "Cluster Bomb" 공격 유형은 공격 시 여러 개의 서로 다른 입력을 조합하여 테스트해야 할 때 특히 유용합니다. 정의된 각 위치에 대해 하나의 페이로드 세트를 사용하며, 페이로드의 가능한 모든 조합을 반복합니다. 이는 잠재적인 사용자 이름 목록과 잠재적인 비밀번호 목록이 별도로 있는 로그인 양식의 무차별 대입과 같은 시나리오에 이상적입니다.
이 랩에서는 Burp Intruder 를 사용하여 Cluster Bomb 공격을 구성하고 실행하여 샘플 로그인 페이지에서 유효한 사용자 이름 및 비밀번호 조합을 찾는 방법을 배우게 됩니다.
Intruder 로 로그인 요청 보내기
이 단계에서는 Burp Suite 와 웹 브라우저를 실행한 다음 로그인 요청을 캡처하여 추가 분석을 위해 Burp Intruder 로 보냅니다.
먼저 Burp Suite 를 시작해야 합니다.
- 데스크톱의 왼쪽 상단에 있는 Application 메뉴를 클릭합니다.
Other->Burp Suite Community Edition으로 이동합니다.
Burp Suite 가 시작됩니다. "Temporary project"를 선택하고 "Next"를 클릭한 다음 "Start Burp"를 클릭합니다.
다음으로 Firefox 웹 브라우저를 열고 Burp Suite 를 프록시로 사용하도록 구성합니다.
- Application 메뉴 ->
Internet->Firefox Web Browser를 클릭합니다. - Firefox 에서
Settings->General->Network Settings로 이동하여Settings...를 클릭합니다. Manual proxy configuration을 선택합니다.HTTP Proxy를127.0.0.1로,Port를8080으로 설정합니다.Also use this proxy for HTTPS상자를 선택합니다.OK를 클릭합니다.
이제 대상 로그인 페이지로 이동합니다. Firefox 주소 표시줄에 다음을 입력합니다.
http://127.0.0.1:5000/login
간단한 로그인 양식이 표시되어야 합니다. Burp Suite 에서 Proxy 탭으로 이동한 다음 Intercept 하위 탭으로 이동하여 인터셉트가 켜져 있는지 확인합니다 (버튼에 "Intercept is on"이라고 표시되어야 합니다).
Firefox 로 돌아가서 사용자 이름에 test를, 비밀번호에 test를 입력하고 Login 버튼을 클릭합니다. 요청은 Burp 의 Proxy -> Intercept 탭에서 잡힙니다.
이제 이 캡처된 요청을 Intruder 로 보냅니다.
- 요청 패널의 아무 곳이나 마우스 오른쪽 버튼으로 클릭합니다.
- 컨텍스트 메뉴에서
Send to Intruder를 선택합니다. Intruder탭이 강조 표시되어 요청이 전송되었음을 나타냅니다.
이제 Proxy -> Intercept 탭에서 "Intercept is on" 버튼을 클릭하여 인터셉트를 끌 수 있습니다.
사용자 이름 및 비밀번호 필드에 페이로드 마커 추가
이 단계에서는 Burp Intruder 에서 페이로드 위치를 구성합니다. 페이로드 위치는 Intruder 에게 공격 중에 페이로드를 어디에 배치해야 하는지를 알려줍니다. 로그인 양식에 대한 Cluster Bomb 공격의 경우 사용자 이름 위치와 비밀번호 위치, 두 개의 위치가 필요합니다.
Burp Suite 의 Intruder 탭으로 이동합니다. Target, Positions, Payloads, Options의 네 가지 하위 탭이 표시됩니다. Positions 탭을 클릭합니다.
프록시에서 보낸 요청이 여기에 표시됩니다. Burp Intruder 는 페이로드가 어디로 가야 하는지 자동으로 추측하고 페이로드 마커 (§...§) 를 추가합니다. 더 나은 제어를 위해 이들을 지우고 자체적으로 설정할 것입니다.
- 창 오른쪽의
Clear §버튼을 클릭합니다. 이렇게 하면 자동으로 추가된 모든 페이로드 마커가 제거됩니다. - 요청 편집기에서 사용자 이름 매개변수가 있는 줄
username=test를 찾습니다. - 값
test만 신중하게 강조 표시합니다. Add §버튼을 클릭합니다. 이제 줄은username=§test§와 같이 보여야 합니다.- 다음으로 비밀번호 매개변수가 있는 줄
password=test를 찾습니다. - 값
test만 강조 표시합니다. Add §버튼을 다시 클릭합니다. 이제 줄은password=§test§와 같이 보여야 합니다.
이제 두 개의 페이로드 위치를 정의했습니다. Burp Intruder 는 공격 중에 이러한 표시된 위치에 데이터를 대체합니다.
공격 유형을 'Cluster Bomb'로 설정
이 단계에서는 목표에 맞는 적절한 공격 유형을 선택합니다. Burp Intruder 는 각각 다른 목적을 수행하는 네 가지 공격 유형을 제공합니다.
- Sniper: 단일 페이로드 세트를 사용하고 한 번에 하나의 위치를 대상으로 합니다.
- Battering Ram: 단일 페이로드 세트를 사용하고 모든 위치에 동일한 페이로드를 동시에 배치합니다.
- Pitchfork: 여러 페이로드 세트를 사용하고 각 세트의 페이로드를 해당 위치에 하나씩 배치합니다.
- Cluster Bomb: 여러 페이로드 세트를 사용하고 모든 페이로드 조합을 시도합니다.
이 시나리오에서는 한 목록의 가능한 모든 사용자 이름에 대해 다른 목록의 가능한 모든 비밀번호를 테스트하려고 합니다. Cluster Bomb 공격 유형이 이에 완벽하게 적합합니다.
Intruder -> Positions 탭에서 화면 상단의 Attack type 드롭다운 메뉴를 찾습니다.
- 드롭다운 메뉴를 클릭합니다.
- 목록에서
Cluster Bomb를 선택합니다.
Cluster Bomb를 선택한 후 Payloads 탭에서 이전 단계에서 정의한 페이로드 마커 수에 해당하는 여러 페이로드 세트를 구성할 수 있습니다. 이 경우 구성할 페이로드 세트가 두 개가 됩니다.
두 개의 페이로드 목록 (사용자 이름 및 비밀번호) 구성
이 단계에서는 Intruder 가 공격에 사용할 잠재적인 사용자 이름 및 비밀번호 목록을 제공합니다.
Intruder -> Payloads 탭으로 이동합니다.
Cluster Bomb 공격 유형을 선택하고 두 개의 페이로드 위치를 정의했으므로 이제 두 개의 별도 페이로드 목록을 구성할 수 있습니다.
먼저 사용자 이름 목록 (페이로드 세트 1) 을 구성합니다.
Payload set드롭다운이1로 설정되어 있는지 확인합니다. 이는 추가한 첫 번째§마커 (사용자 이름) 에 해당합니다.Payload Options아래에서Add버튼을 클릭합니다.- 다음 잠재적 사용자 이름을 한 줄에 하나씩 입력합니다.
userguestadminroot
다음으로 비밀번호 목록 (페이로드 세트 2) 을 구성합니다.
Payload set드롭다운을1에서2로 변경합니다. 이는 두 번째§마커 (비밀번호) 에 해당합니다.Payload Options아래에서Add버튼을 클릭합니다.- 다음 잠재적 비밀번호를 한 줄에 하나씩 입력합니다.
password123456qwertypassword123
이제 Intruder 가 이 두 목록의 모든 조합을 테스트하도록 구성했습니다. 총 4 (사용자 이름) x 4 (비밀번호) = 16 개의 요청을 생성합니다.
페이로드 조합을 테스트하기 위해 공격 실행
이 단계에서는 공격을 시작하고 결과를 분석하여 올바른 로그인 자격 증명을 찾습니다.
Intruder탭의 오른쪽 상단 모서리에서Start attack버튼을 클릭합니다.- "Intruder attack"이라는 제목의 새 창이 열리고 공격이 즉시 시작됩니다.
이 새 창에는 결과 테이블이 표시됩니다. 요청이 전송되는 것을 볼 수 있으며 테이블에 결과가 채워집니다. 주목해야 할 주요 열은 다음과 같습니다.
Payload 1: 해당 요청에 사용된 사용자 이름입니다.Payload 2: 해당 요청에 사용된 비밀번호입니다.Status: 응답의 HTTP 상태 코드입니다 (예: OK 는 200, Unauthorized 는 401).Length: 응답 본문의 크기 (바이트) 입니다.
성공적인 로그인은 실패한 로그인과 다른 응답을 초래할 가능성이 높습니다. 이 차이는 Status 코드 또는 Length에서 확인할 수 있습니다.
결과를 살펴보십시오. 다른 요청과 비교하여 Length 및 Status가 다른 하나의 요청이 있음을 알 수 있습니다. 대부분의 시도는 401 Unauthorized 상태를 초래하지만 올바른 시도는 200 OK가 될 것입니다. 성공적인 로그인에 대한 응답 Length도 다릅니다.
고유한 응답을 쉽게 찾으려면 Status 또는 Length 열 헤더를 클릭하여 결과를 정렬할 수 있습니다.
성공적인 요청은 다음과 같은 페이로드 조합을 갖습니다.
- Payload 1:
admin - Payload 2:
password123
테이블에서 이 성공적인 요청을 클릭하면 아래 패널에서 전체 Request 및 Response를 볼 수 있습니다. 성공적인 로그인에 대한 응답에는 "Login Successful!" 텍스트가 포함됩니다.
축하합니다! Cluster Bomb 공격을 성공적으로 사용하여 유효한 자격 증명을 찾았습니다!
요약
이 실습에서는 Burp Intruder 를 사용하여 Cluster Bomb 공격을 수행하는 방법을 배웠습니다.
Burp 의 프록시를 사용하여 로그인 요청을 가로채고 Intruder 로 보내는 것부터 시작했습니다. 그런 다음 사용자 이름 및 비밀번호 필드에 대해 두 개의 별도 페이로드 위치를 수동으로 구성했습니다. Cluster Bomb 공격 유형을 선택한 후 사용자 이름 목록과 비밀번호 목록이라는 두 개의 별도 페이로드 목록을 구성했습니다.
마지막으로 공격을 실행하고 결과 테이블을 분석하여 비정상적인 응답 상태 코드 및 길이를 찾아 성공적인 로그인 조합을 식별했습니다. 이 실습은 여러 입력으로 인증 메커니즘을 테스트하기 위한 Cluster Bomb 공격 유형의 강력함과 유용성을 보여줍니다.



