이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위 입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
테스트 사이트
■ testphp.vulnweb.com
버프스위트 Intruder는 웹 애플리케이션을 대상으로 사용자 정의 공격을 할수 있는 자동화 도구입니다. 간단한 공격부터 복잡한 공격까지 다양한 공격 형태를 지원하는 기능 입니다. 이 기능은 보통 무차별 대입공격(Brute Force) 에 많이 사용이 됩니다.
버프스위트의 기능은 프록시가 설정이 되어 있어야 하므로 프록시가 정상적으로 동작을 하는지 확인하시기 바랍니다.
■ Burp Suite(버프스위트) Proxy 설정 방법
Intrude를 이용하여 공격을 수행할 때 가장 먼저 할 일은 공격 대상을 선택하는 일입니다. 여기서는 테스트 사이트에서 진행을 하도록 하겠습니다.
사이트에 접속후 Signup 버튼을 누르면 로그인 창이 나오실 겁니다.
밑에보시면 username test and the password test 이렇게 다 나와 있지만, 저희는 기능을 알아가기 위해 Username test / Password 1 이렇게 넣고 프록시를 잡도록 하겠습니다.
해당 화면은 프록시를 잡은 모습입니다. Intercetp 탭에 Raw를 보시면 Username / Password 를 넣은 패킷이 잡히시는걸 확인하실 수 있습니다.
그럼 패킷을 잡았으니 Intruder을 해보도록 하겠습니다.
첫번째 방법은 패킷을 잡으신후 Raw탭에서 마우스 오른쪽 버튼 클릭후 Send to Intruder 하는 방법과
두번째 방법은 Proxy -> HTTP history 탭에서 Send to Intruder 하는 방법이 있습니다.
이때 항목에는 매개변수가 포함되어 있어야 하니 이점 확인하시기 바랍니다.
Target - 공격할 대상 서버의 정보를 설정하며, 공격 수행을 위해 필수로 설정되어야 하는 부분입니다.
Intruder로 전송되면 Intruder 탭에는 자동으로 Target 설정이 되고, Position 탭에는 전송시킨 요청이 입력이 됩니다. Intruder는 넘겨받은 요청을 기반으로 Position 탭에서 페이로드의 위치를 선정하여 해당 위치에 페이로드를 지속적으로 대입시켜 공격을 하는 방식 입니다.
Positions - 공격을 위해 전달받은 요청에서 페이로드가 삽입될 위치를 설정하는 기능으로 이부분도 필수로 설정이 되어야 하는 부분입니다.
Position 탭에보시면 uname=§test§&pass=§1§ 보이시는데 § 문자로 둘러 쌓여 있는 부분이 페이로드로 설정된 항목 입니다.
여기서 Attack type을 보시면 총 4가지로 구분이 되어 있고 하나씩 살펴 보도록 하겠습니다.
Sniper - 하나의 Payload Set만 설정하여 공격을 진행하고, 여러 개의 Payload Position이 설정되어 있으면 한 번에 하나의 Position에 Payload Set을 차례대로 삽입하고 해당 Set이 다 삽입되었다면 다음 Position에 다시 Payload Set을 대입하는 방법 입니다.
Battering ram - Payload를 반복하여 사용하며 Payload가 정의된 모든 위치에 동일한 Payload Set을 대입하는 방법 입니다.
Pitchfork - 설정한 Payload Position의 개수만큼 Payload Set을 설정합니다.
Cluster bomb - Pitchfork 방식과 같지만, Cluster bomb은 첫 번째 Payload Set을 반복 삽입하면서 동시에 두번째 Payload Set을 차례대로 반복 삽입한다는 점이 Pitchfork와 다른점 입니다.
그럼 이어서 Clear § 을 누르신후에 pass=1 에서 1만 블럭지정 하신후 Add §를 누르시면 pass=§1§ 같이 1만 Position이 잡힌걸 볼수 있습니다. 그럼 이렇게 잡으셨다면 Payloads 탭으로 이동 하도록 하겠습니다.
Payloads - Payload Position에 삽입할 Payload Set을 설정 하는 부분입니다.
Payload Sets
payload set은 표시된 Position에 삽입 가능한 개수를 표시 합니다.
payload type 종류
1. Simple list - 가장 단순한 형태로, 단순 문자열을 목록화하여 페이로드로 사용하는 방법 입니다.
2. Runtime file - 공격을 수행할 때 파일에서 실시간으로 문자열을 읽어 페이로드로 사용하는 방법 입니다.
3. Custom iterator - 공격 항목에 대한 다중 리스트를 작성하고 이 리스트의 순서를 변경하면서 새로운 페이로드를 생성하는 방법 입니다.
4. Character substitution - 문자열 목록을 작성하고 각 문자열의 일부 문자를 치환하여 새로운 문자열을 생성하는 방법 입니다.
5. Case Modification - 문자열 목록을 다양한 방법으로 수정하여 페이로드를 생성하는 방법 입니다.
6. Recursive grep - 공격을 수행할 때 보낸 요청을 통하여 전달받은 응답 메시지에서 설정한 부분의 값을 추출 하는 방법 입니다.
7. lllegal Unicode - 문자를 유니코드로 변경한 페이로드를 생성하는 방법 입니다.
8. Character blocks - 특정 문자나 문자열 블록을 기반으로 특정 길이의 블록을 생성하여 Position에 삽입하는 방법 입니다.
9. Numbers - 지정된 범위에서 지정된 형식에 맞는 숫자 형태의 페이로드를 생성하는 방법 입니다.
10. Dates - 특정 범위와 형태를 갖는 날짜 페이로드를 생성하는 방법 입니다.
11 Brute forcer - 특정 Character set에서 문자의 조합을 통하여 특정 길이의 문자 페이로드를 생성하는 방법 입니다.
12. Null payloads - 비어 있는 값을 페이로드로 생성하는 방법 입니다.
13. Character frobber - Payload Position이 가진 값이나 사용자에 의해 입력된 값에서 문자의 위치를 변경하거나 문자를 수정하여 페이로드를 생성하는 방법 입니다.
14. Bit flipper - Payload Position이 가진 값이나 사용자에 의해 입력된 값에서 비트 값을 수정하여 페이로드를 생성하는 방법 입니다.
15. Username generator - 사용자가 입력한 목록을 이용하여 사용자 이름이나 이메일 주소와 같은 목록을 생성하는 방법 입니다.
16. ECB block shuffler - ECB로 암호화된 데이터에서 암호문 블록을 섞을수 있는 방법 입니다.
17. Extension-generated - 버프스위트 확장 기능을 이용하여 페이로드를 생성하는 방법 입니다.
18. Copy other payload - 다른 payload Position에 설정된 페이로드의 값을 복사하여 동일한 값으로 공격을 수행하는 방법 입니다.
여기서는 Simple list type 을 사용하도록 하겠습니다. 그림과 같이 txt 파일을 만들어서 Load를 하셔도 되고 입력후 Add를 누르셔도 됩니다. 단 여기서 테스트할 패스워드 test 는 꼭 삽입하시기 바랍니다. 삽입을 하셨다면 Start attack 버튼을 눌러 보도록 하겠습니다.
Start attack 버튼을 누르면 위에 그림과 같은 팝업창이 뜨면서 값을 대입하면서 내려가는 모습이 보이시고 test Status 200 과 같이 성공 메시지를 확인 할수 있습니다.
Options - 다른 도구와 마찬가지로 세부적인 공격 내용을 설정 할 수 있습니다.
Request Headers - 공격을 수행하는 동안 미리 설정된 요청 헤더를 제어 할 수 있습니다.
Request Engine - HTTP 요청을 만들기 위해 사용하는 엔진에 대한 설정을 할 수 있습니다.
Attack Result - 공격 결과에서 캡처되는 정보를 제어 할 수 있습니다.
Grep - March - 요청에 대한 응답에서 특정 표현이 포함된 항목을 표시하도록 설정할 수 있습니다.
Grep - Extract - 공격 결과에 포함된 응답에서 유용한 정보를 추출하도록 설정할 수 있습니다.
Grep - Payloads - 페이지 내에서 정보를 검색할때 유용하게 사용될 수 있습니다.
Redirections - 공격 수행 시 강제이동을 어떻게 처리할지에 대해 설정 할수 있습니다.
'Code::Security > Burp Suite(버프스위트)' 카테고리의 다른 글
Burp Suite(버프스위트) 메뉴 Sequencer (0) | 2018.07.05 |
---|---|
Burp Suite(버프스위트) 메뉴 Repeater (0) | 2018.06.29 |
Burp Suite(버프스위트) 메뉴 Scanner (0) | 2018.06.25 |
Burp Suite(버프스위트) 메뉴 Spider (0) | 2018.06.22 |
Burp Suite(버프스위트) 메뉴 Proxy (0) | 2018.06.21 |