인공지능 개발일지

[네트워크 해킹 2] 칼리리눅스로 와이파이 패스워드 크랙 본문

보안/네트워크 해킹

[네트워크 해킹 2] 칼리리눅스로 와이파이 패스워드 크랙

Prcnsi 2021. 9. 5. 17:36
728x90

최근 네트워크 해킹 시리즈가 많은 관심을 받으며 짧막한 공지를 드립니다.

 

※본 해킹은 보안 안정성 검사를 위해, 허가 받은 기관 혹은 랜선에만 실습하는 것을 권장하며, 악의적 용도로 사용하지 않길 바라고, 악의적 용도로 사용시 모든 책임은 실습자에게 있음을 밝힙니다※

 

 


 

 

이 해킹의 준비과정은 아래 포스의 하단 부분에서 확인할 수 있습니다.

https://perconsi.tistory.com/43

 

[공유기 해킹_1] 칼리리눅스 Deauth 패킷으로 WiFi 연결 끊기 실습

네트워크 해킹 관련 실습이 무엇이 있는지 찾아보았다. 그 결과 아래와 같이 크게 4가지 정도의 실습이 있었다! (1) 와이파이 연결 끊기 - DOS 공격 (2) 와이파이 패스워드 크랙 (3) Fake 와이파이 (AP)

perconsi.tistory.com

 

 

네트워크 해킹의 본질적인 목적은 "네트워크를 통해서" 정보를 탈취하거나 권한을 얻는 것이다.

따라서 이번 실습(공유기 비밀번호 해킹)은 아래 전체 큰 그림 중에서 Step 0에 해당한다고 할 수 있다.

 

 

 

 

 

다시 본론으로 돌아와서 먼저 와이파이 비밀번호를 해킹하는 방법은 두 가지가 있다.

  • 사전 공격(Dictionary Attack) : 오픈소스 다운로드 rockyou.txt
  • 무차별 대입 공격(Brute-Force Attack) :직접 생성 Gpu를 사용하여 직접 크랙(자릿 수 문자, 숫자, 하나하나)

결론부터 말하자면 사전 파일을 이용해서 하는 해킹은 빠르지만 해당 리스트에 비밀번호가 없을 수도 있고.

무차별 대입 공격은 매우 느리지만 결국엔 찾아낸다는 특징이 있다.

 

이번 포스트에서는 두 주제를 모두 다뤄보았다.

 

 

 

 

 

 

1. 사전 공격(Dictionary Attack)

우선 사전 공격은 딕셔너리 공격이라고도 한다. 
따라서 미리 준비된 파일이 있어야 한다. 이번 실습에서는 rockyou.txt라는 오픈소스 리스트를 사용하였다.

https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt

이는 터미널에서 아래 명령어로 다운로드할 수 있다.

 curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt

rockyou.txt 다운로드

다음으로는 aircrack-ng [패킷 캡처 파일] -w [사전 파일 리스트]

(저희 실습에서 해당 파일로 적용하면 아래와 같은 명령어를 통해 크랙을 시도할 수 있습니다.

aircrack-ng packet-02.cap -w rockyou.txt

그러면 아래와 같이 사전 파일의 리스트를 하나하나 대입하는 연산을 수행합니다.

 

crack

 

근데 보면 위의 Time left에 1시간 48분이 걸린다고 나와있다.

만약 리스트 안에 우리 공유기의 패스워드가 있다면 KEY FOUND! 하고 키가 뜰 것이다.

 

그런데 결과적으로 깃허브에서 다운로드한 rockyou.txt 안에는 우리 패스워드가 존재하지 않는다.

 

따라서 아래와 같이 직접 추가해 주는 방법을 쓸 수 있다.

(비밀번호를 미리 안다고 가정할 때)

그러면 아래와 같이 KEY FOUND라고 뜬다.

 

이를 통해 다시 한번 알 수 있는 것은 사전 파일에 비밀번호가 있으면 비교적 빠르게 찾아지지만

없다면 못 찾을 수도 있다는 것을 확인할 수 있다.

 

 

 

 

 

 

2. 무차별 대입 공격(Brute-Force Attack) 

  • 암호화된 패킷을 복호화하기 위한 키를 찾기 위하여 공유기와 기기 간의 인증이 일어날 때(4-way handshake) 서로 교환되는 패킷이 암호화됨
  • 이때 공유기와 기기는 와이파이의 패스워드와 essid 값이 결합된 해시 값을 교환하게 되는데, 공격자는 이 해시 값을 탈취

요약: 패킷 교환시 인증과정에서 해쉬 값으로 암호화된 패스워드도 있음

    -> 패킷 캡처해서 파일을 만들면 그 안에 공유기 패스워드도 관련 정보 있음

(저는 대충 위와 같이 이해했습니다. 혹시 틀린 부분이 있다면 댓글 부탁드릴게요!!)

 

 

무차별 대입 공격은 hashcat으로 캡처 파일을 인자로 주어서 공격을 수행한다.

그런데 이때 비밀번호의 자릿수 구성 조합 등에 대한 힌트를 줄 수 있다.

이러한 힌트를 준다면 소요시간이 매우 단축된다.


따라서 이러한 암호 조합을 정하는 규칙은 아래와 같다.

그냥 크게 U, L, D로 자료형을 정해줄 수 있다.

 

  • U: 대문자(Upper)
  • L: 소문자(Lower)
  • D: 숫자(Decimal)

이외에도 아래와 같은 문자로 자료형을 지정해줄 수 있다.

이것은 아래와 같은 형식으로 사용할 수 있다.

? 문자? 문자? 문자~

이때 위 명령에서 문자의 개수로는 비밀번호의 자릿수를 지정하는 것이고

문자로는 자료형을 지정하는 것이다.

 

예를 들어 아래와 같은 조합이 있을 때,

? U? L? L? L? L? D? D? D? D

이것이 의미하는 것은 비밀번호는 9자리로 이루어져 있고 첫 번째 자리는 대문자 2번째에서 5번째 자리까지는

소문자로 나머지는 모두 숫자로 이루어져 있다고 알려주는 것이다.

 

그래서 그냥 위와 같은 형식으로 힌트를 hashcat의 인자로 줄 수 있다.힌트를 주지 않는다면 말 그대로 1자리 2자리부터 n자리까지 자릿수와 모든 자료형을 하나씩 대입해서맞추는 방식이기 때문에 가능은 하지만 매우 오래 걸린다.

 

여기까지 간단히 암호 조합을 설정하는 법을 알아봤고 

 

이제 hashcat을 다운로드하는다. hashcat은 아래 주소에서 다운 받을 수 있다.

https://github.com/hashcat/hashcat-utils/archive/master.zip 

 

다운 받는 명령어는 아래와 같다.

https://github.com/hashcat/hashcat-utils/archive/master.zip

 

다운로드

 

압축해제

 

다운로드 확인 후 실행 파일 생성
경로 조정

위 파일에는 cap2 hccapx.bin도 포함되어 있는데 이는./cap2 hccapx.bin으로 사용한다.

그리고 아래 사진과 같이 확장자를 변경해준다.

확장자 변경

 

이제 여기까지 했으면 hashcat으로 암호 조합과 자료형의 힌트를 주는 아래 명령으로 

브루트 포스 크랙을 시도한다.

hashcat -m 2500 -a 3 --force packet-02.hccapx? u? u? d? d? d? d? d? d? d? d

(이때 암호 조합으로 비밀번호는 10자리에 1~2번째 자리는 대문자 나머지는 모두 숫자라고 알려줌)

 

그런데 이렇게 하면 위와 같이 269일에 18시간이 걸린다고 나온다.

이것이 의미하는 것은 가능은 한데 매우 매우 오래 걸린다는 것이다.

 

여기서는 원활한 실습을 위해 힌트를 더 주었다.   

위와 같이 말이다.

그러면 아래 사진에서 두 번째 네모와 같이 비밀번호가 잘 나온다.

 

시간도 6분 10초로 아까보다 훨씬 단축된 것이 보인다.

 

 

이것으로 브루트 포스와 사전 파일 대입 공격을 실습해 보았다.

포스트 초반에 적었듯이 결론은 사전 파일을 이용해서 하는 해킹은 빠르지만 해당 리스트에 비밀번호가 없을 수도 있고.

무차별 대입 공격은 매우 느리지만 결국엔 찾아낸다는 특징이 있다.

 

그래서 양자택일의 문제라기보단 각각 이런 특징이 있다는 점만 확인해 보면 될 것 같다.

 

다음 실습은 와이파이 랜더링이 준비되어 있다.

728x90