Kali Linux - DVWA실습 (Brute Force)

Kim Dae Hyun·2021년 5월 10일
2

Security

목록 보기
1/7
post-thumbnail

DVWA??

  • Damn Vulnerable Web App
  • 취약한 웹 애플리케이션 상에서 모의해킹을 학습하기 위해 제공되는 툴이다.

DVWA를 이용한 Brute Force공격 및 대응방안

Password를 알아내기 위한 Brute Force공격

1. 임의 PW를 입력

2. 잘못된 PW입력 후 BurpSuit를 통해 Request를 확인
(BurpSuit-Proxy-HTTP History)

3. 해당 Request를 Intruder로 전송
(해당 Request 오른쪽 클릭-Send to Intruder)

4. Intruder에서 값을 바꾸며 공격을 시도할 변수를 설정
(Intruder - Positions)
4-1 Clear로 설정 초기화 (초기에 요청 값이 들어오는 모든 곳이 변수처리 되어 있음)
4-2 값을 바꾸며 시도할 값(asdf)를 블럭으로 잡고 Add &

5. Payloads 설정
5-1 Payload type을 Brute Forcer로 설정
5-2 Character set: 사용될 수 있는 문자 집합 설정
5-3 비밀번호의 최소, 최대 길이 설정
(4~5자리 특수문자가 허용되지 않는 경우에도 62,145,792개의 경우의 수를 가진다)

6. Start Attack
aaaa부터 공격이 시작되는 것을 확인할 수 있다.
부합하는 PW의 payload를 갖는 경우 Length가 다르다.
이를 통해 PW를 찾게 된다.

Dictionary Attack (사전 공격)

  • Kali Linux에서 제공하는 Dictionary 파일이 있기 때문에 이를 사용한다.
    1. 터미널 입력 : gedit /usr/share/john/password.lst

이후 Intruder로 요청을 보내고 Position을 설정하는 것까지는 Brute Force와 동일

2. Payloads 설정
2-1 Payload type은 Simple list로 설정
2-2 Payload Options-Load... 클릭 /usr/share/john/password.lst 딕셔너리 파일 로드
2-3 로드 후 상단의 주석라인은 Remove를 통해 삭제

3. Start Attack
초기 설정된 비밀번호는 password
password를 찾아보면 Length가 다른 것을 확인할 수 있다.

DVWA의 Medium Level Security

  • 하단의 else부분(로그인에 실패한 경우)에서 sleep(2)를 두어 강제로 시스템이 sleep되도록 하였다.
  • Brute Force 공격은 모든 값을 모두 대입해야 하기 때문에 엄청난 시간이 소요 되는 공격이다. 위와 같이 요청의 실패마다 sleep을 둔다면 평범한 Brute Force공격으로는 너무나 오랜 시간이 걸릴 것이다.

DVWA의 High Level Security

  • medium과 다른 점은 sleep하는 시간을 난수화 했다는 점이다.
  • sleep하는 시간을 고정된 상수로 지정한다면 공격자는 그 시간을 알아채고 일정 시간만큼 응답이 오지 않는다면 틀린 것으로 간주하고 빠르게 다시 공격을 시도할 수 있다.
  • sleep하는 시간을 난수화하여 공격자가 대기시간에 대한 대처를 어렵게 하기 위함이다.

DVWA의 Impossible Level Security

  • please try again in 15 minutes.
  • 일정 횟수 이상의 잘못된 PW 요청이 있을 때, 임의 시간 동안 계정에 Lock을 거는 방식이다. Brute Force공격은 거의 불가능하게 된다.
  • 하지만, 공격자의 악의적 의도로 계속해서 잘못된 PW를 요청한다면 계정은 계속해서 Lock상태일 것이다. 이런 부분이 취약점으로 있는 대응 방법이다.
profile
좀 더 천천히 까먹기 위해 기록합니다. 🧐

1개의 댓글

comment-user-thumbnail
2021년 5월 15일

컴공생 멋있네요!

답글 달기