1. Burp Suite 설치
Burpsuite는 웹 프록시 툴이다.
2. 프록시 설정 (Firefox FoxyProxy Standard 확장 프로그램)
Burp를 깔았으면 프록시가 설정된 브라우저에 접속한다. Burp tool내의 open browser를 이용하거나 웹 브라우저에서 확장 프로그램을 추가하여 쉽게 라우팅하거나 트래픽을 보낼 수 있다.
Burp 프록시는 하나의 인터페이스(127.0.0.1:8080)에서만 수신 대기한다. 127.0.0.1을 프록시 ip로 추가해준다.
저장한 다음 확장 프로그램을 클릭하여 burp를 체크해주면 이제부터 firefox 브라우저에서 모든 url 요청을 127.0.0.1로 가로챌 수 있다.
127.0.0.1:8080으로 접속하면 아래와 같이 나온다. 여기서 인증서(CA Certification)를 다운 받는다.
Firefox 설정에 들어가서 인증서 보기 > 가져오기 > 체크박스 2개 체크 > 확인 하면 인증서 설치가 끝난다.
3. 기능
Burp는 아래와 같은 기능들로 구성되어있다.
Target
site map에서 target address를 add to scope
이렇게 하면 Burp가 scope를 벗어난 항목을 사이트 맵으로 보내는 것을 막을 수 있다. 일반적으로 이것은 가장 낮은 권한의 계정(인증되지 않은 액세스 포함)에서 위로 올라가 일반 사용자처럼 사이트를 탐색하는 계층적 접근 방식으로 수행된다. 사이트의 전체 범위를 발견하기 위해 이와 같이 탐색하는 것을 일반적으로 'happy path'라고 한다. happy path 탐색을 통해 사이트 맵을 만든 후 범위에서 다양한 항목을 제거하고 시작할 수 있다. 제거해야할 항목은 일반적으로 다음과 같다.
- 항목(페이지, 양식 등)이 클라이언트에서 제공한 문서의 범위를 벗어난 것으로 지정되었을 경우
- 항목의 자동화된 악용(특히 자격 증명 방식)이 엄청난 혼란을 야기(예: 수백 개의 비밀번호 재설정 이메일 전송)
- 항목의 자동화된 악용(특히 자격 증명 방식)이 웹 앱을 손상시키고 잠재적으로 충돌을 일으킬 경우
타겟 설정을 하고 site map을 열어보면 하위 디렉토리 리소스를 볼 수 있다.
issue definition은 Burp Suite가 보고 내에서 문제를 정의하는 방법이다. 시작하는 동안 이러한 문제 정의는 우리가 가질 수 있는 다양한 결과를 이해하고 분류하는 데 특히 도움이 될 수 있다.
Proxy
프록시 서버를 사용하면 인터넷에 대한 대체 경로를 통해 트래픽을 릴레이할 수 있다. 이는 교육 필터링(제한된 콘텐츠를 차단해야 하는 학교에서 일반적)에서 지역 잠금 또는 금지로 인해 사용할 수 없는 콘텐츠 액세스에 이르기까지 다양한 이유로 수행될 수 있다. 그러나 웹 애플리케이션 테스트에 프록시를 사용하면 트래픽 인라인을 세부적인 수준에서 보고 수정할 수 있다. 이 작업을 통해 가로채기, 요청 기록 및 액세스할 수 있는 다양한 구성 옵션을 포함하여 Burp 프록시의 주요 구성 요소를 탐색할 수 있다.
기본적으로 Burp는 트래픽을 '차단'하도록 설정된다. 이것은 몇 가지를 의미한다.
1. 기본적으로 요청을 보내려면 승인이 필요하다.
2. 메시지 가로채기 공격에서 볼 수 있는 것과 유사하게 요청을 인라인으로 수정한 다음 보낼 수 있다.
3. 원하지 않는 요청을 삭제할 수도 있다. 이는 버튼을 클릭하거나 웹사이트에서 다른 작업을 수행한 후 요청 시도를 확인하는 데 유용할 수 있다.
4. 마지막으로 취약점을 유도하기 위한 수정 및 조작을 위해 Repeater 및 Intruder와 같은 다른 도구에 이러한 요청을 보낼 수 있다.
Repeater
이름에서 알 수 있듯이 Repeater를 사용하면 이미 한 요청을 반복할 수 있다. 이러한 요청은 있는 그대로 또는 수정하여 재발행할 수 있다. Intruder와 달리 Repeater는 일반적으로 자동화가 바람직하지 않을 수 있는 실험 또는 더 미세 조정된 악용의 목적으로 사용된다.
로그인에 실패한후 http history tab에서 실패한 요청을 repeater에 보낸다. 그리면 repeater 탭에서 요청 필드를 수정해서 보낼 수 있다.
Intruder
Burp에서 가장 강력한 도구인 Intruder는 퍼징에서 무차별 대입에 이르기까지 다양한 작업에 사용할 수 있다. Intruder의 핵심은 자동화이다.
Repeater는 실험 또는 일회성 테스트를 가장 잘 처리하지만 Intruder는 개념 증명이 설정되면 반복 테스트를 위한 것이다. 몇 가지 일반적인 용도는 다음과 같다
- 사용자 이름과 같은 식별자 열거, 예측 가능한 세션/비밀번호 복구 토큰 순환, 간단한 비밀번호 추측 시도
- 응답 grepping을 통해 사용자 프로필 또는 기타 관심 페이지에서 유용한 데이터 수집
- SQL 주입, 사이트 간 스크립팅과 같은 취약점 퍼징 (XSS) 및 파일 경로 순회
이러한 다양한 사용 사례를 달성하기 위해 Intruder에는 4가지 공격 유형이 있다.
1. Sniper - 가장 인기 있는 공격 유형으로, 선택한 위치를 순환하여 다음 사용 가능한 페이로드(단어 목록의 항목)를 각 위치에 차례로 넣는다. 하나의 페이로드 세트(하나의 단어 목록)만 사용한다.
2. Battering Ram - Sniper와 유사하게 한 세트의 페이로드만 사용한다. Sniper와 달리 모든 페이로드를 선택한 모든 위치에 배치한다.
포터링 램이 단일 표면으로 넓은 표면을 가로질러 접촉하는 방식에 대해 생각해 보면 된다. 이 공격 유형을 포터링 램이라고도 부른다.
3. Pitchfork - 여러 페이로드 세트(선택한 위치당 하나씩)를 사용하고 두 페이로드 세트를 동시에 반복할 수 있다.
예를 들어 두 위치(예: 사용자 이름 필드와 암호 필드)를 선택한 경우 사용자 이름과 암호 페이로드 목록을 제공할 수 있다. 그런 다음 Intruder는 사용자 이름과 암호 조합을 순환하여 제공된 최소 페이로드 세트와 동일한 총 조합 수를 생성한다.
4. Cluster Bomb - 여러 페이로드 세트 (선택한 위치당 하나씩)를 사용하고 우리가 제공하는 페이로드 목록의 모든 조합을 반복할 수 있다.
예를 들어 두 위치(예: 사용자 이름 필드와 암호 필드)를 선택한 경우 사용자 이름과 암호 페이로드 목록을 제공할 수 있다. 그런 다음 Intruder는 사용자 이름과 비밀번호의 조합을 순환하여 사용자 이름 x 비밀번호와 동일한 총 조합 수를 생성한다.
'네트워크 보안 > 보안' 카테고리의 다른 글
[Pentesting] Metasploit (01) (0) | 2021.12.28 |
---|---|
[Pentesting] MetaSploit (00) (0) | 2021.12.27 |
[Contents] Google Dorking (0) | 2021.12.27 |
[Linux🐧] Shell Scripting (0) | 2021.09.20 |
[Linux🐧] Virtual Machine 설치 (0) | 2021.09.20 |