3.5) Intruder
- 사용자가 정의한 자동화 공격을 수행하기 위한 도구
- 어플리케이션을 테스트할 때 발생하는 모든 종류의 작업을 자동화하는데 사용할 수 있음
- Intercept된 상태에서 우클릭 > Send to Intruder를 선택하거나, Ctrl + I를 누르면 Intruder가 활성화
3.5.1) Positions
- 페이로드 구성 및 공격 유형을 결정하는데 사용
- [캡쳐 1]에서 §,§사이에 페이로드 설정
- Attack type에는 4가지 유형이 있음
① Sniper : 단일 페이로드 집합이 사용되며, 정의된 각 위치에 차례로 페이로드를 삽입
② Battering ram : 단일 페이로드 집합이 사용되며, 정의된 모든 위치에 동일한 페이로드를 삽입
③ Pitchfork : 단일 이상의 페이로드 집합이 사용되어, 각 정의된 위치의 개수(최대 8개)만큼 사용. 각 페이로드가 정의된 위치에 동시에 삽입.
④ Cluster bomb : 단일 이상의 페이로드 집합이 사용되어, 각 정의된 위치의 개수(최대 8개)만큼 사용. 각 페이로드 집합을 순서대로 반복하여 모든 페이로드의 조합을 테스트.
- Payload Positions 영역
① Add § : 페이로드 추가
② Clear § : 모든 페이로드 제거
③ Auto § : 유효한 위치를 추측하여 그에 맞게 페이로드를 배치
④ Refresh : 새로고침
3.5.2) Payloads
- 하나 이상의 페이로드 집합을 구성하는데 사용
- 집합 개수는 Positions 탭에서 설정한 Attack type에 따라 달라짐
① Payload Sets : 하나 이상의 페이로드 집합 정의
② Payload Options : 페이로드로 사용되는 문자열의 단순 목록 구성
③ Payload Processing : 각 페이로드가 사용되기 전 다양한 처리 작업을 수행하는 규칙 정의
④ Payload Encoding : HTTP 요청 내에서 안전한 전송을 위한 URL encoding 설정
3.5.3) Resource Pool
- 리소스 할당량을 공유하는 작업 그룹
- 동시에 수행할 수 있는 요청 또는 요청을 수행할 수 있는 빈도 등을 설정
3.5.4) Options
- 공격에 영향을 미치는 옵션을 구성
① Request Headers : 공격 중에 구성된 request header 업데이트 여부 제어
② Request Engine : 공격 수행 시 HTTP 요청 수행 엔진 제어
③ Attack results : Attack results에 캡처되는 정보 제어
④ Grep - Match : 지정된 표현식이 포함된 결과 항목 플래그 추가 가능
⑤ Grep - Extract : 유용한 정보를 공격 결과 테이블로 추출 가능
⑥ Grep - Payloads : 사용된 페이로드 값이 응답 값에 포함되었는지 여부 결과 항목 플래그 추가
⑦ Redirections : 공격 수행 시 Burp의 Redirection 처리 방법 제어
3.6) Repeater
- HTTP 요청을 재전송하거나 응답을 분석할 때 사용
- Intercept된 상태에서 우클릭 > Send to Repeater를 선택하거나, Ctrl + R을 누르면 Repeater가 활성화
① Send : 요청 전송
② Cancel
③ < / > : 전/후 요청 및 응답 확인
3.7) Sequencer
- 웹 어플리케이션에서 제공하는 값의 임의성을 분석하기 위한 기능
- 분석을 원하는 패킷 우클릭 > Send to Sequencer 선택 시 활성화
3.7.1) Live capture
- 분석을 원하는 패킷 우클릭 > Send to Sequencer 선택 시 Select Live Capture Request에 추가
- Token Location Within Response 영역은 어플리케이션의 응답 내에서 토큰이 나타나는 위치를 선택할 수 있음
① Cookie : 응답으로 쿠키가 설정된 경우, 분석할 쿠키 선택 가능
② Form fields : 응답에 HTML 양식 필드가 있는 경우, 분석할 양식 필드 값 선택 가능
③ Custom location : 사용자의 임의로 항목 정의 가능
- Live Capture Options 영역은 라이브 캡처 수행 시 HTTP 요청 및 토큰 수집에 사용되는 엔진을 제어 설정할 수 있음
① Nuber of threads : 실시간 캡처가 동시에 서버에 보낼 수 있는 요청 수
② Throttle between requests : 모든 요청 전 지연 시간 (과부하 방지 or 은밀한 요청에 유용)
③ Ignore token whose length deviates by _ charaters : 지정한 평균 토큰 길이 벗어나는 토큰 무시 설정
- 설정을 완료한 후 Start live capture를 누르면 라이브 캡처가 시작되며, 라이브 캡처 중에는 토큰 수, requests 수 및 네트워크 오류 수를 progress bar로 보여줌
① Pause/Resume : 캡처 일시 중지/재시작
② Stop : 캡처 중지
③ Copy tokens : 현재 캡처된 토큰 클립보드에 복사
④ Save tokens : 현재 캡처된 토큰 파일에 저장
⑤ Auto analyze : 토큰 자동 분석 수행, 라이브 캡처 중 결과 주기적 업데이트
⑥ Analyze now : 최소 100개의 토큰이 캡처되면 Burp가 현재 샘플을 분석 후 결과 업데이트
3.7.2) Manual load
- 이미 생성된 토큰을 불러와 통계 분석을 수행할 수 있음
3.7.3) Analysis options
- 토큰에 대한 처리 방법과 분석하는 동안 사용하는 테스트 유형을 설정
- Token Handling은 분석 중 토큰 처리 방법을 제어
① Pad short tokens at Start/End : 각 토큰의 시작/끝 패딩 적용 여부 선택
② Pad with : 패딩에 사용될 문자 지정(보통 "0")
③ Base64-decode before analyzing : 토큰이 Base64 인코딩 된 경우 분석 전 디코딩 설정
- Token Analysis는 문자와 비트 레벨의 테스트에서 수행되는 분석 유형을 제어
3.8) Decoder
- 데이터 암/복호화 및 해시 형식으로 변환
- 데이터 우클릭 > Send to Decoder 클릭 시 활성화
- 값 입력 후 우측 Decode as 등을 통해 암/복호화가 가능하며, Smart decode는 인코딩 값을 찾아 자동적으로 디코딩하는 옵션
3.9) Comparer
- 두 데이터 간 비교를 수행
- 복사/붙여넣기, 파일 로드, Send to Comparer를 통해 활성화
- 비교할 데이터 선택 후 Words(단어 수준의 차이), Byte(바이트 레벨에 존재하는 차이) 중 비교 형식을 선택하여 비교
3.10) Logger
- 버프슈트 로그를 기록
3.11) Extender
- 자체 또는 타사 코드를 사용하여 기능 확장 가능
3.11.1) Extensions
- 설치된 모든 확장 기능을 확인할 수 있으며, 추가, 제거, 재정렬(Up/Down) 할 수 있음
① Details탭에서 해당 확장 기능 정보를 확인할 수 있고, Extension loaded를 체크하면 확장을 활성화할지 비활성화할지 선택할 수 있음
② Output탭에서 확장 기능의 표준 출력 스트림 세부 사항을 확인할 수 있음
③ Errors탭에서 표준 오류 스트림 정보를 확인할 수 있음
3.11.2) BApp Store
- Burp Suite 사용자가 작성한 Burp 확장 기능이며, 사용 가능한 BApps를 확인하여, 설치하여 사용할 수 있음
3.11.3) APIs
- Burp 확장 기능을 개발하는 데 사용할 수 있는 API에 대한 세부 정보를 확인 가능
- 실행 중인 Burp 버전에서 사용할 수 있는 API 정보가 표시되어 있음
- Save interface files/Save Javadoc files는 확장 기능을 개발할 때 사용할 수 있도록 코드를 로컬 사본으로 저장하는 기능
3.11.4) Options
- 확장 설정, Java 환경, Python 환경, Ruby 환경에 대한 설정 옵션
① Settings - 시작 시 확장을 어떻게 처리할 것인지 설정
(시작 시 자동으로 재로드할 것인지, BApp 자동으로 업데이트할 것인지)
② Java environment - Java로 작성된 확장 기능 실행을 위한 환경 구성 설정
확장 프로그램에서 라이브러리를 사용하는 경우 라이브러리를 로드할 폴더를 지정할 수 있음
③ Python environment - Python으로 작성된 확장 기능 실행을 위한 환경 구성 설정
Python 확장 기능을 사용하려면 Jython*을 다운로드 받고 경로를 설정해야 함.
Jython* : Java로 구현된 Python 인터프리터
④ Ruby environment - Ruby로 작성된 확장 기능 실행을 위한 환경 구성 설정
Ruby 확장 기능을 사용하려면 JRuby*를 다운로드 받고 경로를 설정해야 함
JRuby* : Java로 구현된 Ruby 인터프리터
참고
'도구 > 네트워크' 카테고리의 다른 글
버프슈트(Burp Suite) (1) | 2022.09.26 |
---|---|
쇼단(Shodan) (1) | 2022.09.25 |
와이어샤크(WireShark) (0) | 2022.07.26 |
스노트(Snort) (0) | 2022.07.19 |