브루트포스 공격
: 사용자 패스워드를 알아내기 위한 공격
-> 무식하게 패스워드를 계속 대입(일치할때까지)
- 알파벳 순, 딕셔너리(자주 쓰는 패스워드 위주로, 패스워드로 이루어진 사전을 의미) 공격
해커 -> 웹서버 접근 -> 로그인 페이지에서 비밀번호 알아내고자 함(브루트 포스 공격) -> 일치 시 해당 사용자의 계정 알아냄
버프 스위트 intruder(인터셉트는 끄기)
send to intruder -> intruder -> positions -> query string과 cookie 확인
-> 바꿀 부분만을 선택하여 add (§§로 선택된 영역을 치환하여 테스트) -> payload 탭 -> payloader type = brute forcer
(알파벳순)
-> pw의 길이가 길어질수록 시간이 오래 걸림 -> 길어질수록 찾기 힘듦
(딕셔너리)
칼리 리눅스 cmd창 -> gedit /usr/share/john/password.lst
-> 통계적으로 많이들 쓰는 비밀번호를 이용
-> payloader type = simple list 선택 -> load를 통해 해당 list불러오기 -> 정답일 경우엔 길이가 달라지는 등 변화가 생김
#! 주석라인은 지우기
<브루트 포스 공격 대응>
- 비밀번호가 틀렸을 경우 sleep시킨 후 응답을 보내 느리게 만든다
-> 브루트 포스 공격을 지연시키는 방법(공격 성공 시간이 느려짐)
-> 시간을 랜덤하게 sleep(정해진 값으로 해두면, 해커가 응답이 일정 초 이상 걸리는 경우는 무조건 오답이라고 간주하고 다음 공격을 할 수 있기 때문에 좀 더 낮은 보안)
-> locking(15분 이상 사용 금지 등)을 이용 (브루트포스를 거의 완전 차단할 수 있음, (부작용) 이 점을 노려 특정 사용자의 id를 일부러 틀리게 만들어 사용자가 웹을 사용하지 못하게 만들 수 있음)
-> captcha방법