본문 바로가기

해킹과 보안/DVWA

dvwa. 브루트포스 공격 #1-1[low]

728x90

브루트 포스 공격이란?

 : [브루트 포스 공격 = 무차별 암호 대입 공격] 패스워드를 뚫을 만한 모든 경우의 수를 시도해 해킹을 하는 공격이다.

 

 - 0000부터 9999까지 입력이 가능하며 0001 ~ 9999까지 전부 패스워드에 대입한다.

 - 무식하게 모두 대입하기 때문에 패스워드가 짧으면 금방 풀 수 있지만 8자리 알파벳, 대소문자와 숫자를 섞으면 약 62^8 (약 218,340,105,584,896) 가지를 시도해야 하기 때문에 몇 년까지 걸린다.

 

 패스워드 크래킹 공격 종류

  1. 사전 공격(dictionary attack) : 사전에 있는 단어 목록을 사용하여 패스워드 해킹을 시도하는 방법으로 비밀번호로 자주 쓰이는 문자열들을 대입하기도 한다. ex) 0000, 1234, qwerty 등..
  2. 키로거 : 키보드에 타이핑된 모든 키를 기록하는 소프트웨어로 악용해서 패스워드를 해킹한다.
  3. 레인보우 테이블 공격(=해시 테이블) : 해시 함수를 사용하여 만들어낼 수 있는 값들을 저장한 표로 패스워드를 해시 처리한 값과 비교하여 패스워드를 해킹한다. (용량은 크지만 브루트포스 공격보다 빨리 찾을 수 있다.)
  4. 컴퓨터 클러스터 : 여러 대의 컴퓨터를 연결하여 하나의 클러스터를 구성하고 이용 이용하여 브루트포스 공격을 실행하는 방법으로 일반 컴퓨터 보다 빠르다.
  5. 사이드 채널 공격 : 컴퓨터의 전력 소비, 처리 속도, 노이즈 등을 분석하여 패스워드를 추측하는 방법으로 보안 취약점을 이용하여 패스워드를 공격하는 것은 아니다.

 

 브루트 포스 공격 도구

  1. 히드라(Hydra) : 다양한 프로토콜(FTP,SSH, Telnet, HTTP ..)과 서비스에 대한 브루트포스 공격을 수행한다.
  2. 존더리퍼(Johm the Ripper) : 암호 해독으로 유명한 패스워드 크래킹 도구고 사전공격, 레인보우 테이블 등도 수행한다.
  3. 메두사(Medusa) : 브루트포스 공격과 사전 공격을 지원하는 패스워드 크래킹 도구다.
  4. Hashcat : 고속 암호 해시 크래킹 도구로 다양한 해시 알고리즘과 암호화된 데이터 형식을 지원한다.
  5. Aircrack-ng : Wi-Fi 네트워크의 WPA/WPA2-PSK 키를 크래킹하기 위한 도구로 널리 사용된다.
  6. 이외 Hash-Identifier, THC-Hydra, Cain & Abel, Metasploit 등..

 

공격 실습)

1. 버프스위트 brute force공격

- 계정은 admin으로 나와있고 패스워드를 찾아야 한다.

 - 버프스위트 Intruder를 이용한다.[intruder기능은 사용자가 정의한 공격을 자동화하는 도구다.]

먼저 버프스위트에 dvwa로그인 시도 후 proxy -> http history에 로그를 남긴다.

이 로그를 클릭하여 send to intruder로 보내면 다음과 같은 화면이 나오고 빨간색으로 된 글씨가 마킹되어있는 것을 확인할 수 있다.

비밀번호에 자동화를 할 거기 때문에 오른쪽에 clear를 누르고 qwer부분만 add한다.

 

 - payloads에서 type을 brute force로 바꾸고 payload settings에서 설정을 바꾼다.

payload count는 걸리는 시간이며 세팅에서 min이나 max가 길어질수록 늘어난다.

 - start attack을 누르면 공격이 시작되고 다음과 같이 순서대로 자동화 공격을 수행한다.

 

2. 버프스위트 사전공격

 - 브루트 포스 공격은 시간이 오래 걸리기 때문에 비교적 시간이 덜 걸리는 사전공격을 수행한다.

칼리 리눅스 john파일에 자주 사용되는 패스워드 리스트가 있다.

password.lst로 변경

 - 버퍼스위트 intruder기능에서 타입을 simple list로 변경하고 세팅load에 위의 password.lst를 추가한다.

 - start attack 버튼으로 공격을 수행하면 특정 패스워드만 다른 것을 볼 수 있다.

 

 

 

 

 

3. Hydra 툴

 

 

 

 - 패스워드 공격 대응책

  • 솔트(salt)

 : 해시 대상 문자에 소금(랜덤한 데이터)을 쳐서 복잡도를 높이는 방법이다. [레인보우 테이블 공격으로부터 보호]

솔트 값은 랜덤으로 생성되며 비밀번호와 합쳐진 다른 해시된 값이 만들어진다.

  • 2단계 인증

 : 아이디와 비밀번호를 입력 후 추가적인 인증을 한 번 더 거치는 방법으로 보통 휴대폰, 이메일, OTP  인증이 있다. ex)새로운 환경에서 로그인 할 때 네이버의 2차 인증)

  • 복잡한 비밀번호 생성

 : 개인정보의 기술적 관리적 보호조치 기준 최소 8자리 이상인 경우, 두 종류 이상의 문자(알파벳 대소문자, 특수문자, 숫자)를 이용하여 구성하고 10자리 이상인 경우, 하나의 문자종류(알파벳 대소문자, 특수문자, 숫자)로 생성.[단 숫자로만 구성할 경우 취약할수 있음]

  • 주기적으로 비밀번호 변경 및 암호 횟수 제한

 : 브루트 포스 공격은 무수히 많은 비밀번호 공격을 시도하기 때문에 암호 실패 횟수를 정해서 대응할 수 있다.

  • 서비스마다 다른 비밀번호 설정 - 크레덴셜 스터핑 위험

 : 크레덴셜 스터핑은 사용자의 로그인 정보를 불법적으로 사용하여 다른 온라인 계정에 접근하는 공격 방법이다.

  • vpn 사용

 

 - 3줄 요약

생각외로 사람들은 유추하기 쉽고 간단한 암호로 설정한다. [2021 : owasp top10 2위가 암호화 실패다]

패스워드 공격을 막기 위해 개인도 신경써야 한다.

크레덴셜 스터핑 공격 위험이 크다.

 

 

 - 참고

https://nordvpn.com/ko/blog/brute-force-attacks/

나무위키

chatGPT

https://h1ggs.tistory.com/m/2

https://nordvpn.com/ko/blog/brute-force-attacks/