Network/DVWA
Exercise 1. Brute Force
dcho
2019. 8. 7. 21:04
SMALL
브루트포스 공격이란?
사용자 패스워드를 알아내기 위한 공격
무식하게 패스워드를 계속 대입해보자!
- 알파벳 순
- 딕션너리 공격
(출처:인프런/화이트해커가-되기위한-8가지)
브루트포스공격 실습
일일이 문자를 지정해 계속 공격하는 방법과
딕셔너리 공격 방법이 있다.
대응하는 방법
실패했을시 슬립 구문을 통해 지연시키거나, 랜덤함수를 통해 해커가 프로그램을 제작하기 힘들어진다.
또, 로그인 잠김기능을 통해 잘 막을수 있다. (악용할수도있음, 웹사이트를 일정시간동안 접속 못하게함)
잘못된 로그인시도가 계속 발생할때 응답을 느리게 하거나 일정시간동안 락킹을 해 딜레이시켜 방지해야한다.
또는, 캡챠를 이용해 사람이 로그인하는것인지 적용하는것.
DVWA 실습
(Low)
처음 접속을 하면 유저네임과 패스워드를 입력하는 폼이 있다. 패스워드가 틀리면 위의 사진처럼 "Username and/or password incorrect"라고 뜬다. 그렇다면 나는 버프스위트를 이용해서 브루트포스 공격을 해보았다.
먼저 Proxy 설정을 해준뒤에 Proxy의 intercept on 으로 'aaaaa'를 입력해준것을 Request 패킷 확인을 해주었다.
여기서 Action버튼을 눌러서 Send to Intruder를 해준다.
Positions에서 공격유형은 Sniper 기본으로 설정 해준뒤 내가 공격할 부분인 password 부분만 하기 위해 Clear 로 다 제거해 준뒤 password 부분만 Add를 해주어 공격을 시도한다.
여기서 공격유형이 4가지가 나오는데
- Sniper : 단일 페이로드로 설정했을시 사용이 되며 매개변수에 위치한 각각의 페이로드 삽입지점에 페이로드 값을 하나씩 대입하여 공격하는 유형
- Battering ram : 모든 페이로드 삽입지점에 동일한 페이로드 값을 대입하여 공격하는 유형 다음 Payloads 탭으로 와서 Payload Set 1에는 미리 준비한 사전파일을 Load을 해준다.
- Pitchfork : 단일 이상의 페이로드 설정 시 사용이 되며 각각의 페이로드 삽입지점에 페이로드값을 각각 대입하여 공격하는 유형
- Cluster bomb : 단일 이상의 페이로드 설정 시 사용이 되며 하나의 페이로드 삽입지점에 각 페이로드값을 하나씩 넣으며 페이로드 조합이 완료될때 까지 공격하는 유형
처음에 무식하게 브루트포스 공격을 해주려고 했지만 조금만 length 가 많아지면 요렇게 count가 unknown이기에 딕션너리 공격을 하기로 했다.
이렇게 가장 취약한 패스워드 20을 모아서 텍스트 파일을 만들어 줬다.
Password를 공격할 리스트를 Load를 해주었다.
공격시작! 다른 것들과 비교를 해본 결과 password가 length가 다른것을 확인해 볼 수 있었다.
다른 값들은 대부분 왼쪽 이미지처럼 틀렸다고 나온다. 하지만 password 값을 넣었을 경우에는 오른쪽 이미지 처럼 나온 거을 보아 이게 admin의 패스워드라고 볼 수 있다.