Burp Intruder 에서 Cluster Bomb 공격 사용하기

Beginner
지금 연습하기

소개

Burp Intruder 는 웹 애플리케이션에 대한 맞춤형 공격 자동화를 위한 Burp Suite 내의 강력한 도구입니다. 매우 구성 가능하며 간단한 무차별 대입 추측부터 복잡한 취약점 스캔까지 광범위한 작업을 수행하는 데 사용할 수 있습니다.

Intruder 의 주요 기능 중 하나는 다양한 공격 유형입니다. "Cluster Bomb" 공격 유형은 공격 시 여러 개의 서로 다른 입력을 조합하여 테스트해야 할 때 특히 유용합니다. 정의된 각 위치에 대해 하나의 페이로드 세트를 사용하며, 페이로드의 가능한 모든 조합을 반복합니다. 이는 잠재적인 사용자 이름 목록과 잠재적인 비밀번호 목록이 별도로 있는 로그인 양식의 무차별 대입과 같은 시나리오에 이상적입니다.

이 랩에서는 Burp Intruder 를 사용하여 Cluster Bomb 공격을 구성하고 실행하여 샘플 로그인 페이지에서 유효한 사용자 이름 및 비밀번호 조합을 찾는 방법을 배우게 됩니다.

Intruder 로 로그인 요청 보내기

이 단계에서는 Burp Suite 와 웹 브라우저를 실행한 다음 로그인 요청을 캡처하여 추가 분석을 위해 Burp Intruder 로 보냅니다.

먼저 Burp Suite 를 시작해야 합니다.

  1. 데스크톱의 왼쪽 상단에 있는 Application 메뉴를 클릭합니다.
  2. Other -> Burp Suite Community Edition으로 이동합니다.

Burp Suite 가 시작됩니다. "Temporary project"를 선택하고 "Next"를 클릭한 다음 "Start Burp"를 클릭합니다.

다음으로 Firefox 웹 브라우저를 열고 Burp Suite 를 프록시로 사용하도록 구성합니다.

  1. Application 메뉴 -> Internet -> Firefox Web Browser를 클릭합니다.
  2. Firefox 에서 Settings -> General -> Network Settings로 이동하여 Settings...를 클릭합니다.
  3. Manual proxy configuration을 선택합니다.
  4. HTTP Proxy127.0.0.1로, Port8080으로 설정합니다.
  5. Also use this proxy for HTTPS 상자를 선택합니다.
  6. OK를 클릭합니다.

이제 대상 로그인 페이지로 이동합니다. Firefox 주소 표시줄에 다음을 입력합니다.

http://127.0.0.1:5000/login

간단한 로그인 양식이 표시되어야 합니다. Burp Suite 에서 Proxy 탭으로 이동한 다음 Intercept 하위 탭으로 이동하여 인터셉트가 켜져 있는지 확인합니다 (버튼에 "Intercept is on"이라고 표시되어야 합니다).

Firefox 로 돌아가서 사용자 이름에 test를, 비밀번호에 test를 입력하고 Login 버튼을 클릭합니다. 요청은 Burp 의 Proxy -> Intercept 탭에서 잡힙니다.

이제 이 캡처된 요청을 Intruder 로 보냅니다.

  1. 요청 패널의 아무 곳이나 마우스 오른쪽 버튼으로 클릭합니다.
  2. 컨텍스트 메뉴에서 Send to Intruder를 선택합니다.
  3. Intruder 탭이 강조 표시되어 요청이 전송되었음을 나타냅니다.

이제 Proxy -> Intercept 탭에서 "Intercept is on" 버튼을 클릭하여 인터셉트를 끌 수 있습니다.

사용자 이름 및 비밀번호 필드에 페이로드 마커 추가

이 단계에서는 Burp Intruder 에서 페이로드 위치를 구성합니다. 페이로드 위치는 Intruder 에게 공격 중에 페이로드를 어디에 배치해야 하는지를 알려줍니다. 로그인 양식에 대한 Cluster Bomb 공격의 경우 사용자 이름 위치와 비밀번호 위치, 두 개의 위치가 필요합니다.

Burp Suite 의 Intruder 탭으로 이동합니다. Target, Positions, Payloads, Options의 네 가지 하위 탭이 표시됩니다. Positions 탭을 클릭합니다.

프록시에서 보낸 요청이 여기에 표시됩니다. Burp Intruder 는 페이로드가 어디로 가야 하는지 자동으로 추측하고 페이로드 마커 (§...§) 를 추가합니다. 더 나은 제어를 위해 이들을 지우고 자체적으로 설정할 것입니다.

  1. 창 오른쪽의 Clear § 버튼을 클릭합니다. 이렇게 하면 자동으로 추가된 모든 페이로드 마커가 제거됩니다.
  2. 요청 편집기에서 사용자 이름 매개변수가 있는 줄 username=test를 찾습니다.
  3. test만 신중하게 강조 표시합니다.
  4. Add § 버튼을 클릭합니다. 이제 줄은 username=§test§와 같이 보여야 합니다.
  5. 다음으로 비밀번호 매개변수가 있는 줄 password=test를 찾습니다.
  6. test만 강조 표시합니다.
  7. Add § 버튼을 다시 클릭합니다. 이제 줄은 password=§test§와 같이 보여야 합니다.

이제 두 개의 페이로드 위치를 정의했습니다. Burp Intruder 는 공격 중에 이러한 표시된 위치에 데이터를 대체합니다.

공격 유형을 'Cluster Bomb'로 설정

이 단계에서는 목표에 맞는 적절한 공격 유형을 선택합니다. Burp Intruder 는 각각 다른 목적을 수행하는 네 가지 공격 유형을 제공합니다.

  • Sniper: 단일 페이로드 세트를 사용하고 한 번에 하나의 위치를 대상으로 합니다.
  • Battering Ram: 단일 페이로드 세트를 사용하고 모든 위치에 동일한 페이로드를 동시에 배치합니다.
  • Pitchfork: 여러 페이로드 세트를 사용하고 각 세트의 페이로드를 해당 위치에 하나씩 배치합니다.
  • Cluster Bomb: 여러 페이로드 세트를 사용하고 모든 페이로드 조합을 시도합니다.

이 시나리오에서는 한 목록의 가능한 모든 사용자 이름에 대해 다른 목록의 가능한 모든 비밀번호를 테스트하려고 합니다. Cluster Bomb 공격 유형이 이에 완벽하게 적합합니다.

Intruder -> Positions 탭에서 화면 상단의 Attack type 드롭다운 메뉴를 찾습니다.

  1. 드롭다운 메뉴를 클릭합니다.
  2. 목록에서 Cluster Bomb를 선택합니다.

Cluster Bomb를 선택한 후 Payloads 탭에서 이전 단계에서 정의한 페이로드 마커 수에 해당하는 여러 페이로드 세트를 구성할 수 있습니다. 이 경우 구성할 페이로드 세트가 두 개가 됩니다.

두 개의 페이로드 목록 (사용자 이름 및 비밀번호) 구성

이 단계에서는 Intruder 가 공격에 사용할 잠재적인 사용자 이름 및 비밀번호 목록을 제공합니다.

Intruder -> Payloads 탭으로 이동합니다.

Cluster Bomb 공격 유형을 선택하고 두 개의 페이로드 위치를 정의했으므로 이제 두 개의 별도 페이로드 목록을 구성할 수 있습니다.

먼저 사용자 이름 목록 (페이로드 세트 1) 을 구성합니다.

  1. Payload set 드롭다운이 1로 설정되어 있는지 확인합니다. 이는 추가한 첫 번째 § 마커 (사용자 이름) 에 해당합니다.
  2. Payload Options 아래에서 Add 버튼을 클릭합니다.
  3. 다음 잠재적 사용자 이름을 한 줄에 하나씩 입력합니다.
    • user
    • guest
    • admin
    • root

다음으로 비밀번호 목록 (페이로드 세트 2) 을 구성합니다.

  1. Payload set 드롭다운을 1에서 2로 변경합니다. 이는 두 번째 § 마커 (비밀번호) 에 해당합니다.
  2. Payload Options 아래에서 Add 버튼을 클릭합니다.
  3. 다음 잠재적 비밀번호를 한 줄에 하나씩 입력합니다.
    • password
    • 123456
    • qwerty
    • password123

이제 Intruder 가 이 두 목록의 모든 조합을 테스트하도록 구성했습니다. 총 4 (사용자 이름) x 4 (비밀번호) = 16 개의 요청을 생성합니다.

페이로드 조합을 테스트하기 위해 공격 실행

이 단계에서는 공격을 시작하고 결과를 분석하여 올바른 로그인 자격 증명을 찾습니다.

  1. Intruder 탭의 오른쪽 상단 모서리에서 Start attack 버튼을 클릭합니다.
  2. "Intruder attack"이라는 제목의 새 창이 열리고 공격이 즉시 시작됩니다.

이 새 창에는 결과 테이블이 표시됩니다. 요청이 전송되는 것을 볼 수 있으며 테이블에 결과가 채워집니다. 주목해야 할 주요 열은 다음과 같습니다.

  • Payload 1: 해당 요청에 사용된 사용자 이름입니다.
  • Payload 2: 해당 요청에 사용된 비밀번호입니다.
  • Status: 응답의 HTTP 상태 코드입니다 (예: OK 는 200, Unauthorized 는 401).
  • Length: 응답 본문의 크기 (바이트) 입니다.

성공적인 로그인은 실패한 로그인과 다른 응답을 초래할 가능성이 높습니다. 이 차이는 Status 코드 또는 Length에서 확인할 수 있습니다.

결과를 살펴보십시오. 다른 요청과 비교하여 LengthStatus가 다른 하나의 요청이 있음을 알 수 있습니다. 대부분의 시도는 401 Unauthorized 상태를 초래하지만 올바른 시도는 200 OK가 될 것입니다. 성공적인 로그인에 대한 응답 Length도 다릅니다.

고유한 응답을 쉽게 찾으려면 Status 또는 Length 열 헤더를 클릭하여 결과를 정렬할 수 있습니다.

성공적인 요청은 다음과 같은 페이로드 조합을 갖습니다.

  • Payload 1: admin
  • Payload 2: password123

테이블에서 이 성공적인 요청을 클릭하면 아래 패널에서 전체 RequestResponse를 볼 수 있습니다. 성공적인 로그인에 대한 응답에는 "Login Successful!" 텍스트가 포함됩니다.

축하합니다! Cluster Bomb 공격을 성공적으로 사용하여 유효한 자격 증명을 찾았습니다!

요약

이 실습에서는 Burp Intruder 를 사용하여 Cluster Bomb 공격을 수행하는 방법을 배웠습니다.

Burp 의 프록시를 사용하여 로그인 요청을 가로채고 Intruder 로 보내는 것부터 시작했습니다. 그런 다음 사용자 이름 및 비밀번호 필드에 대해 두 개의 별도 페이로드 위치를 수동으로 구성했습니다. Cluster Bomb 공격 유형을 선택한 후 사용자 이름 목록과 비밀번호 목록이라는 두 개의 별도 페이로드 목록을 구성했습니다.

마지막으로 공격을 실행하고 결과 테이블을 분석하여 비정상적인 응답 상태 코드 및 길이를 찾아 성공적인 로그인 조합을 식별했습니다. 이 실습은 여러 입력으로 인증 메커니즘을 테스트하기 위한 Cluster Bomb 공격 유형의 강력함과 유용성을 보여줍니다.