Burp Intruder 에서 Battering Ram 공격 사용하기

Beginner
지금 연습하기

소개

이 실습에서는 Burp Suite Intruder 의 공격 유형 중 하나인 Battering Ram 을 탐색합니다. Burp Intruder 는 웹 애플리케이션에 대한 사용자 정의 공격을 자동화하는 강력한 도구입니다. Battering Ram 공격 유형은 동일한 페이로드 (payload) 를 HTTP 요청 내 여러 위치에 삽입해야 하는 상황에 특화되어 있습니다.

이 공격의 일반적인 사용 사례는 사용자 이름과 비밀번호가 동일할 수 있는 (예: admin/admin) 약한 자격 증명에 대한 로그인 양식을 테스트하는 것입니다. 이 실습을 통해 로그인 요청을 캡처하고, 페이로드 마커를 구성하고, Battering Ram 공격 유형을 선택하고, 페이로드 목록을 설정한 다음, 마지막으로 공격을 실행하여 결과를 분석하는 방법을 배우게 됩니다.

이 실습이 끝나면 웹 애플리케이션 보안 테스트 워크플로우에서 Battering Ram 공격을 사용하고 언제 사용해야 하는지에 대한 실질적인 이해를 갖게 될 것입니다.

Intruder 로 로그인 요청 보내기

이 단계에서는 필요한 도구를 실행하고 Burp Intruder 로 보내 공격 구성을 위한 샘플 로그인 요청을 캡처합니다.

먼저 터미널을 열어 Burp Suite 를 실행합니다. 일반적으로 애플리케이션 메뉴에서 찾거나 명령줄에서 실행할 수 있습니다. 이 실습에서는 실행 준비가 되었다고 가정합니다.

다음으로, 실습 환경에서 제공되는 Firefox 웹 브라우저를 엽니다.

이제 Burp Suite 가 웹 트래픽을 가로챌 수 있도록 구성해 보겠습니다.

  1. Burp Suite 에서 Proxy 탭으로 이동한 다음 Intercept 하위 탭으로 이동합니다. 가로채기가 켜져 있는지 확인합니다 ("Intercept is on" 버튼이 표시되어야 합니다).
  2. Firefox 에서 Burp 의 프록시를 사용하도록 브라우저를 구성합니다. Settings -> Network Settings 로 이동하여 수동 프록시 구성 (Manual proxy configuration) 을 HTTP Proxy 로 127.0.0.1, Port 로 8080을 사용하도록 설정합니다.
  3. Firefox 주소 표시줄에서 테스트 애플리케이션의 로그인 페이지로 이동합니다: http://127.0.0.1:5000/login.
  4. 사용자 이름에 test를, 비밀번호에 test를 입력한 다음 "Login" 버튼을 클릭합니다.

요청은 Burp Suite 의 Proxy -> Intercept 탭에 캡처됩니다. 화면에 원시 HTTP 요청이 표시됩니다.

마지막으로 이 캡처된 요청을 Intruder 로 보냅니다. 요청 창의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Send to Intruder를 선택합니다. 키보드 단축키 Ctrl+I를 사용할 수도 있습니다.

이제 Intruder 탭으로 이동하면 요청이 로드되어 구성 준비가 된 것을 볼 수 있습니다.

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

이 단계에서는 Burp Intruder 가 페이로드를 삽입할 HTTP 요청 내 위치를 정의합니다. Battering Ram 공격의 경우 사용자 이름과 비밀번호 필드 모두에 표시할 것입니다.

Intruder 탭으로 이동한 다음 Positions 하위 탭으로 이동합니다. Proxy 탭에서 보낸 요청을 볼 수 있습니다. Burp Suite 는 요청의 흥미로운 부분이라고 생각하는 곳에 자동으로 페이로드 마커 ( § 기호로 강조 표시됨) 를 추가합니다.

이 특정 공격에서는 페이로드 위치를 정확하게 제어해야 합니다.

  1. 먼저 오른쪽의 Clear § 버튼을 클릭합니다. 이렇게 하면 자동으로 생성된 모든 페이로드 마커가 제거됩니다.
  2. 이제 요청 본문에서 사용자 이름과 비밀번호를 포함하는 줄을 찾습니다. username=test&password=test와 같이 표시되어야 합니다.
  3. username 매개변수의 test 값을 마우스로 강조 표시합니다.
  4. Add § 버튼을 클릭합니다. 이제 줄이 username=§test§&password=test와 같이 표시되어야 합니다.
  5. 다음으로 password 매개변수의 test 값을 강조 표시합니다.
  6. Add § 버튼을 다시 클릭합니다.

이 단계를 완료하면 요청 본문에 사용자 이름과 비밀번호 값 모두에 페이로드 마커가 다음과 같이 표시됩니다.

username=§test§&password=§test§

이 구성은 Intruder 에게 이 두 특정 위치에 페이로드를 삽입하도록 지시합니다.

공격 유형을 'Battering Ram'으로 설정

이 단계에서는 시나리오에 적합한 공격 유형을 선택합니다. Burp Intruder 는 각각 고유한 목적을 가진 네 가지 다른 공격 유형을 제공합니다.

  • Sniper: 단일 페이로드 세트를 사용하여 한 번에 하나의 위치를 대상으로 합니다.
  • Battering ram: 단일 페이로드 세트를 사용하여 동일한 페이로드를 모든 표시된 위치에 동시에 배치합니다.
  • Pitchfork: 여러 페이로드 세트를 사용하여 각 세트의 페이로드 하나를 해당 위치에 배치합니다.
  • Cluster bomb: 여러 페이로드 세트를 사용하여 가능한 모든 페이로드 조합을 테스트합니다.

사용자 이름과 비밀번호가 동일한지 테스트하는 목표를 위해 Battering ram 공격이 완벽한 선택입니다. 단일 잠재적 자격 증명 목록을 가져와 동일한 요청에서 사용자 이름과 비밀번호 모두에 대해 각 자격 증명을 시도합니다.

Intruder -> Positions 탭에서 화면 상단의 Attack type 드롭다운 메뉴를 찾습니다. 기본적으로 "Sniper"로 설정되어 있습니다. 드롭다운 메뉴를 클릭하고 Battering ram을 선택합니다.

선택하면 Burp Intruder 가 Battering Ram 공격 로직을 사용하도록 구성됩니다.

간단한 페이로드 목록 구성 (예: test, guest)

이 단계에서는 Intruder 가 공격에 사용할 페이로드 목록을 제공합니다. Battering Ram 공격 유형을 사용하므로 페이로드 세트를 하나만 구성하면 됩니다.

  1. Intruder -> Payloads 탭으로 이동합니다.
  2. "Payload Sets" 섹션에 "Payload set: 1" 및 "Payload type: Simple list"가 표시되어야 합니다. 이것이 기본값이며 우리의 요구에 맞습니다.
  3. 아래의 "Payload Options" 섹션에는 페이로드를 추가할 수 있는 텍스트 상자가 있습니다. 페이로드를 하나씩 입력하고 Add 버튼을 클릭하여 추가하거나 목록을 텍스트 상자에 직접 붙여넣을 수 있습니다.

이 실습에서는 몇 가지 일반적인 기본 또는 약한 자격 증명을 추가해 보겠습니다. 목록에 있는 기존 페이로드를 모두 지우고 다음을 추가합니다.

  • test
  • guest
  • admin
  • password
  • user

이제 "Payload Options" 목록은 다음과 같이 표시됩니다.

test
guest
admin
password
user

이 구성을 사용하면 Intruder 는 이 목록을 반복합니다. 각 항목에 대해 해당 값을 2 단계에서 표시한 usernamepassword 필드 모두에 배치합니다.

공격 실행 및 동일한 페이로드가 두 위치 모두에서 사용되는 방식 분석

이 마지막 단계에서는 공격을 시작하고 결과를 분석하여 Battering Ram 공격이 작동하는 방식을 이해합니다.

  1. Positions 및 Payloads 탭의 모든 구성이 올바른지 확인합니다.
  2. Intruder 창의 오른쪽 상단 모서리에 있는 Start attack 버튼을 클릭합니다.

새로운 "Intruder attack" 창이 열리고 공격이 즉시 시작됩니다. 각 요청이 전송될 때 채워지는 결과 테이블이 표시됩니다.

결과를 분석해 보겠습니다.

  • Results Table: "Payload", "Status", "Length" 열을 확인합니다. "Payload" 열은 해당 특정 요청에 사용된 페이로드 목록의 값을 보여줍니다.
  • Request/Response Tabs: 결과 테이블의 아무 행이나 클릭합니다 (예: 페이로드 guest가 있는 행). 창 하단에서 해당 시도의 RequestResponse를 검사할 수 있습니다.
    • Request 탭에서 페이로드 guestusernamepassword 매개변수 모두에 삽입되었음을 확인할 수 있습니다: username=guest&password=guest. 이는 Battering Ram 동작을 확인합니다.
    • Response 탭에서 서버의 응답을 볼 수 있습니다.

결과에서 이상 징후를 찾으십시오. 성공적인 로그인은 다른 상태 코드 또는 응답 길이를 가질 가능성이 높습니다. 이 경우 test 페이로드는 성공적인 로그인으로 이어져야 합니다. 응답 본문에서 "Login successful!" 메시지를 찾거나 "Length"별로 결과를 정렬하여 어떤 응답이 다른지 확인하여 식별할 수 있습니다.

이 분석은 Battering Ram 공격이 단일 입력이 여러 매개변수에 사용되는 경우 (자격 증명 테스트에서 일반적인 시나리오) 를 어떻게 효율적으로 테스트하는지 보여줍니다.

요약

이 실습에서는 Burp Suite Intruder 를 사용하여 Battering Ram 공격을 성공적으로 구성하고 실행했습니다.

다음과 같은 내용을 배웠습니다.

  • Burp Proxy 를 사용하여 HTTP 요청을 캡처하고 Intruder 로 보내는 방법.
  • 기본 페이로드 마커를 지우고 사용자 지정 페이로드 위치를 정확하게 정의하는 방법.
  • Battering Ram 공격 유형을 선택하고 특정 사용 사례를 이해하는 방법.
  • 공격을 위한 간단한 페이로드 목록을 구성하는 방법.
  • 공격을 시작하고 결과를 분석하여 각 요청에 대해 지정된 모든 위치에 동일한 페이로드가 사용되었는지 확인하는 방법.

Battering Ram 은 침투 테스터의 도구 상자에서 귀중한 도구이며, 특히 로그인 양식 및 단일 데이터 조각이 여러 매개변수로 사용될 수 있는 기타 기능을 테스트할 때 유용합니다. 이 기술을 숙달하면 웹 애플리케이션 보안 평가의 효율성과 효과를 높일 수 있습니다.