- Password Crack (Brute Force Attack, Dictionary Attack, DVWA)2024년 10월 02일
- SiJun-Park
- 작성자
- 2024.10.02.:05
Password Crack의 종류 및 개념을 이해하고, Brute Force Attack과 Dictionary Attack의 공격원리와 실습을 통하여 이러한 공격을 예방하기 위 한 대책에 대해 생각해본다.
■환경
○공격자 IP : 10.0.2.15
OS : Kali Linux
○희생자 FTP Server(vsftpd)
IP : 10.0.2.15
OS : Kali Linux
가장 먼저 FTP서버에 접속을 하여 아이디와 패스워드를 입력 후 연결에 성공 하였는지 확인을 하여 성공을 하였다는 메세지를 확인.
/etc/pam.d/common-password파일에서 비밀번호 최소길이를 설정을 해줍니다.(minlen=1 옵션추 가)
Kali의 비밀번호를 passwd를 이용하여 “aabb”로 변경을 해주었습니다. 이렇게 하여 실습의 사전준비를 하였습니다.
●Brute Force Attack(BFA)
공격자 pc에서 새로운 터미널을 열어 hydra tool을 실행을 합니다.
이때 옵션으로는
-t(한번에 사용할 Thread 수)
-w(thread를 실행하는데 걸리는 대기시간)
-I (로그인을 시도할 ID) : 여기서는 아이디를 kali를 사용 합니다.
-V(공격 시도하는 ID+PW 조합을 보여줌)
-f(ID + PW 조합을 성공하면 공격을 종료합니다)
-x(PW의 조합 포맷, MIN:MAX:CHARSET의 구조) : 여기서는 4~6길이의 알파벳 소문자 비밀번호를 생성 합니다.
그래서 공격을 시도를 하면, 아까전에 설정해둔 4~6길이를 문자열로 넣어주는데 가장 처음으로 aaaa부터 시작을 합니다.
그렇게 하여 하나 하나씩 늘려가 무작위로 넣어줍니다.
희생자 FTP서버에서 로그를 확인을 합니다.
로그를 확인한 결과, 공격시각과 공격 아이피가 보입니다. 로그인을 시도하였고, 실패하였다는 로그가 확인이 됩니다
다시 공격자의 터미널로 보면 희생자 IP와, 성공한 ID + PW조합을 보여줍니다.
그래서 가장 처음 설정을 할 때 설정한 kali의 비밀번호 “aabb”가 정확하게 맞추었습니다.
●Dictionary Attack
Dictionary attack은 사전 대입 공격이며, 미리 작성한 패스워드 리스트에 있는 패스워드를 하나씩 대입하는 공격입니다.
그러니 패스워드 리스트를 작성을 해줍니다.(pw.lst)
사용할 만한 비밀번호를 적어주고 pw.lst를 저장합니다.
공격자 pc에서 hydra tool을 실행시켜줍니다.
이때 옵션으로는
-I(로그인할 ID) : 여기서는 kali 아이디를 사용합니다
-V(공격 시도하는 ID+PW 조합을 보여줌)
-f(ID+PW 조합을 성공하면 공격 종료)
-P(Dictionary file 사용옵션) : 여기서는 pw.lst를 사용합니다.
패스워드 리스트에 적힌 순서대로 읽어 나갑니다.
여기선 target 즉 희생자 아이피와 로그인 시도한 ID + PW 조합이 보입니다.
명령어를 사용해 희생자 FTP 서버에서 로그를 확인합니다.
공격자 IP와 공격시간이 보입니다. 공격자가 로그인을 하였고, 실패하였다는 로그가 확인이 됩니다.
다시 공격자 터미널을 확인해보면 결과적으로 희생자 IP와 성공한 ID+PW 조합이 확인이 됩니다.
그럼 설정하였던 kali의 비밀번호 “aabb”가 맞추어졌다는 것이 확인이 가능합니다
●DVWA
가장 먼저 터미널에 위와 같은 명령어를 쳐줍니다.
그리고 localhost/dvwa에 접속을 하여줍니다. 접속을 한 뒤, 좌측 메뉴에 밑과 같은 버튼을 클릭 해줍니다.
Security level을 Impossible에서 Low로 변경을 해줍니다.
그리고 좌측 메뉴에서 Brute Force을 클릭하여 줍니다.
Cookie값을 알아내기 위해 Username과 Password에 아무 단어나 입력 후 Login을 해줍니다.
개발자 콘솔 모드로 전환 후 (F12), network란에서 reload를 해주면 HTTP request와 Response에 대한 기록이 남아있습니다.
그걸 클릭을 해주어 Cookie값을 복사 해줍니다
ID
PASS
터미널을 실행 후에 id.txt와 pass.txt를 작성합니다
Hydra를 이용해 공격을 실행합니다 여기서 옵션은
-L (id 사전파일) : 아까 생성해둔 id.txt를 사용합니다
-P (패스워드 사전파일) : 아까 생성해둔 pass.txt를 사용합니다.
-V(공격 시도하는 ID+PW 조합을 보여줌) -f(ID+PW 조합을 성공하면 공격 종료)
-피해자 IP or 웹주소를 적어줍니다.
-http get form으로 path정보, 지정된 user 파라미터명, 지정된 pass 파라미터명, 추가적인 파라미 터명, 추가적인 파라미터값, 로그인 실패시 문구, 쿠키정보등을 적어줍니다.
그러면 생성해둔 파일 기반으로 아이디와 패스워드를 쭉 대입을 합니다
그리고 마지막에는 공격 대상과 성공한 ID + PW 조합이 확인이 가능합니다.
그러면 결과적으로 localhost/dvwa의 admin 비밀번호인 “password”을 맞추어 줍니다.
■고찰 및 해당 공격을 방어하기 위한 대책
Brute Force attack 같은 경우는 암호 공간의 크기가 클수록 공격 시간이 기하 급수적으로 증가를
할 수 있습니다. 그렇기 때문에 길이가 적절하고 복잡한 암호를 사용하거나 즉 대소문자 특수문
자 조합의 암호를 사용하거나, 암호를 주기적으로 변경을 하거나, 로그인 시도 횟수제한을 걸어버
리면 방어대책이 될 수 있을 것 같습니다.
Dictionary attack 같은 경우는 미리 정의된 암호 사전을 사용하여 암호를 찾는 방법입니다. 일반
적으로 많은 사람들이 사용하는 생일, 휴대폰번호 등 예측이 가능한 암호를 사용하면 쉽게 공격
이 가능합니다. 그러니 대책으로는 Brute force attack과 마찬가지로 취약하고 쉬운 암호는 피하고
복잡한 암호를 사용을 하고, 로그인 시도 횟수 제한을 걸어버려 계속해서 로그인 시도를 못하게
하는 방법이 대책이 될 수 있을 것 같습니다.
다음글이전글이전 글이 없습니다.댓글