Covenant

본 포스트는 https://www.udemy.com/의 강좌 화이트헤커가 되기 위한 8가지 웹 해킹 기술 강좌를 바탕으로 작성했습니다.



브루트포스 공격이란?

 사용자의 비밀번호를 알아내기 위한 공격이다. 다분히 패스워드를 계속 대입해 보는 것이다. 이때 대입되는 패스워드는 2가지 형태를 있다

 [1]가장 단순한 방법인 알파벳 순으로 입력 

 [2]사람들이 자주 쓰는 패스워드를 중심으로 입력하는 것이다. 이를 딕셔너리 공격이라고 한다

 


자동 브루트포스 공격 실습 방법

DVWA Security level low 맞추고 진행한다.

DVWA 메뉴에서 브르트포스로 들어간다.


버프스위프트 인크루더 공격으로 자동으로 브루트 포스 공격을 해볼 것이다.

Proxy -> 인터셉트 기능 off (실시간으로 요청을 변조할 때 이외에 꺼줘라.)

비밀번호 입력 -> 부르트 포스에서 send to introduer -> 인트루더 -> 포지션 -> 클리어

-> 페이로더 Payloader 옆에 가능한 조합의 개수가 나온다.

character set : 들어갈 문자열 조합이다.

-> attack 클릭


딕셔너리 공격

gedit /usr/share/john/password.lst (gedit으로 확인해 보자) 이 파일이 dictionary 파일이다. 웹 사이트에 많이 사용되는 패스워드로 구성되어 있다. 실제 해커는 이런 파일이 아닌 1천만개가 넘는 파일로 사용한다. 웹에 많은 딕셔너리 파일이 있다

통계적으로 많이 사용하는 비밀번호로 사용한다,

Payload 창에서Payload type에서 Simple list를 선택한다.

Load : 경로 /usr/share/john/password.lst) urs

 

부루트 포스 공격 대응

  • sleep(2); medium단계 :걸어서 공격에 성공할 때까지 시간이 오래 걸린다
  • high 단계 : sleep (rand(0, 3)); 시간을 랜덤하게 준다. 해커입장에서 2초 동안 아무 응답이 없으면 다음 요청을 뺼 수 있다. 따라서 0~3초 처럼 랜덤하게 응답을 주면 그런 프로그램을 제작하기 어렵다
  • impossible 단계 : 너무 로그인 시도를 해서 락되었다. 15분 뒤에 로그인 하라고 한다. 사실상 부루트 포스는 불가능하다. 해커가 이점을 노려서 특정 사용자의 아이디를 노려서 일부러 패스워드를 틀리게 보내 사용자가 일정한 시간동안 사용을 못하게 한다.

그림에 쓰여진 문자를 입력하라는 CAPTCHA 방법을 사용해도 좋다