브루트 포스 공격이란?
: [브루트 포스 공격 = 무차별 암호 대입 공격] 패스워드를 뚫을 만한 모든 경우의 수를 시도해 해킹을 하는 공격이다.
- 0000부터 9999까지 입력이 가능하며 0001 ~ 9999까지 전부 패스워드에 대입한다.
- 무식하게 모두 대입하기 때문에 패스워드가 짧으면 금방 풀 수 있지만 8자리 알파벳, 대소문자와 숫자를 섞으면 약 62^8 (약 218,340,105,584,896) 가지를 시도해야 하기 때문에 몇 년까지 걸린다.
패스워드 크래킹 공격 종류
- 사전 공격(dictionary attack) : 사전에 있는 단어 목록을 사용하여 패스워드 해킹을 시도하는 방법으로 비밀번호로 자주 쓰이는 문자열들을 대입하기도 한다. ex) 0000, 1234, qwerty 등..
- 키로거 : 키보드에 타이핑된 모든 키를 기록하는 소프트웨어로 악용해서 패스워드를 해킹한다.
- 레인보우 테이블 공격(=해시 테이블) : 해시 함수를 사용하여 만들어낼 수 있는 값들을 저장한 표로 패스워드를 해시 처리한 값과 비교하여 패스워드를 해킹한다. (용량은 크지만 브루트포스 공격보다 빨리 찾을 수 있다.)
- 컴퓨터 클러스터 : 여러 대의 컴퓨터를 연결하여 하나의 클러스터를 구성하고 이용 이용하여 브루트포스 공격을 실행하는 방법으로 일반 컴퓨터 보다 빠르다.
- 사이드 채널 공격 : 컴퓨터의 전력 소비, 처리 속도, 노이즈 등을 분석하여 패스워드를 추측하는 방법으로 보안 취약점을 이용하여 패스워드를 공격하는 것은 아니다.
브루트 포스 공격 도구
- 히드라(Hydra) : 다양한 프로토콜(FTP,SSH, Telnet, HTTP ..)과 서비스에 대한 브루트포스 공격을 수행한다.
- 존더리퍼(Johm the Ripper) : 암호 해독으로 유명한 패스워드 크래킹 도구고 사전공격, 레인보우 테이블 등도 수행한다.
- 메두사(Medusa) : 브루트포스 공격과 사전 공격을 지원하는 패스워드 크래킹 도구다.
- Hashcat : 고속 암호 해시 크래킹 도구로 다양한 해시 알고리즘과 암호화된 데이터 형식을 지원한다.
- Aircrack-ng : Wi-Fi 네트워크의 WPA/WPA2-PSK 키를 크래킹하기 위한 도구로 널리 사용된다.
- 이외 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파일에 자주 사용되는 패스워드 리스트가 있다.
- 버퍼스위트 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://nordvpn.com/ko/blog/brute-force-attacks/
'해킹과 보안 > DVWA' 카테고리의 다른 글
dvwa. CSRF #3-1(low) (0) | 2023.05.23 |
---|---|
dvwa. 커맨드 인젝션 #2-2(medium, high, impossible코드 분석) (0) | 2023.05.23 |
dvwa. 브루트 포스 공격 #1-1(medium) (0) | 2023.05.23 |
dvwa. 커맨드인젝션 공격#2-1(low) (0) | 2023.05.23 |
dvwa 구축 (0) | 2023.05.10 |