사전 공격 ( Dictionary Attack ) 실습 ( Burp Suite, DVWA )
- 개인적으로 교육받는 내용으로 적는 글이므로 자료의 정확도나 전문성이 떨어질 수 있음을 서두에 알리고 시작한다.
실습 환경은 VMware 에서 Metaspolitable2와 호스트에서 Burp Suite를 사용한 실습이다.
Metaspolitable2에서 DVWA의 Brute Force로 접속한 후 로그인 시도 후 사전 공격을 진행할 예정이다.
총 준비물은 가상머신에서 메타스폴리터블2 그리고 Dictionary Attack 을 수행할 Burp Suite 총 2가지
1. DVWA 접속
먼저 가상머신에서 Metaspolitable2 를 가동해 주고 호스트로 넘어와 Metaspolitable2의 IP주소를 입력한다.
IP 주소 확인 방법은 ip addr 또는 ifconfig 명령어를 입력한다.
ex) 윈도우 10에서 크롬을 킨후 192.168.5.132으로 접속
Metaspolitable2 화면이 떳다면 DVWA로 접속한 후 로그인한다.
초기 DVWA 계정은 admin 패스워드는 password 를 입력하여 접속하면 된다.
2. DVWA Security Level 설정
기초적인 공격 실습이므로 좌측 하단의 DVWA Security 메뉴에서 Script Security Level을 Low로 설정해 준다.
DVWA Security -> high 에서 low 로 변경 -> Submit 으로 설정 적용
3. Dictionary Attack 실습
3.1 사전 공격 (Dictionary attack)
- 비밀번호로 자주 쓰이는 문자열들을 대입하여 암호를 찾아내는 공격
- 널리 사용되는 단어나 날짜, 전화번호 등과 같이 패턴들을 사전 형태로 만들고 이들을 조합하는 방식으로 공격한다.
이번 실습은 사전 입력된 패스워드가 저장된 딕셔너리로 대입 공격을 해야하므로 딕셔너리 파일이 필요하다.
다운로드를 완료했으면 좌측에서 Brute Force 탭으로 접속한다.
유저의 id와 패스워드를 요구하는 창이 뜨게되는데 이전에 실습한 SQL 인젝션에서 우리는 유저 목록을 기억해본다.
이번 실습은 gordonb 계정에 대한 Dictionary Attack을 진행해 보겠다.
3.2 Burp Suite 실행
윈도우 옵션에서 인터넷 설정에서 프록시 옵션을 켜준다.
프록시 설정이 완료 되었으면 Burp Suite를 실행한다.
인터셉트를 실행시키고 다시 DVWA로 돌아가 Brute Force에서 진행한다.
유저네임은 gordonb 로 고정하고 패스워드는 아무거나 넣은 후 로그인을 시도한다.
인터셉트가 성공하면 위와 같이 결과가 뜨게 되고
빈칸에 우클릭 후 Send to Intruder 옵션을 선택한다.
Send to Intruder가 되었으면 상단의 Intruder 탭에 불이 들어오게되고
Intruder탭에 들어가면 위와 같은 화면이 뜨게된다.
이때 형광펜 같이 블록 설정이 되어있는데 이를 우측 버튼들 중에서 Clear 버튼으로 초기화를 해준다.
이후 임의로 입력했던 패스워드 (필자는 1234) 필드를 드래그로 선택한 후 우측 버튼들 중에서
Add버튼으로 블록 설정을 한다.
블록 설정이 완료 되면 상단의 Payload 탭으로 이동한후Payload Option 에서 Load를 클릭한 후
딕셔너리 파일을 로드한다.
첨부파일의 password.txt을 선택하면 된다.
페이로드 설정이 완료되면 우측 상단의 Start attack으로 사전 공격을 시작한다.
공격이 시작되면 페이로드에 있는 패스워드를 대입하면서 접속 시도를 하게 되는데
Burp Suite는 패스워드가 일치해도 공격을 멈추지 않는다.
그렇다면 패스워드를 어떻게 알수 있는가 하면 맨 오른쪽의 Length를 비교해 본다.
만약 패스워드가 일치하지 않을경우를 생각해 보면
웹에서 보통 "패스워드가 일치하지 않습니다."와 같은 텍스트를 출력할 것이고
패스워드가 일치한다면 "로그인 성공!" 같은 텍스트를 출력할 것이다.
이때 로그인 성공 여부에 따라 텍스트 길이가 다를것이고 이를 Length로 예상한다는 것이다.
위의 결과에서도 8번째 패스워드 'abc123'만 Length가 다른것을 확인할 수 있다.
이것이 바로 gordonb의 패스워드라고 예상할 수 있다.
이제 DVWA로 돌아가 Brute Force에서 gordonb 와 abc123 을 입력하면 로그인이 된다.