pbkdf2 해쉬 크랙킹

pbkdf2 해쉬 크랙킹 하는 방법

By Hong

pbkdf2

pbkdf2는 무차별 대입 공격을 방어하는 수단으로 만든 암호화 방식이다.

암호화 할 때 salt값도 같이 필요로 하기 때문에 단순한 무차별 대입 공격으로는 거의 해독이 어렵다.

hashcat에도 해쉬 모드가 나와있지 않기 때문에 실제로 마주쳤을 때 어떻게 크랙해야 할지 막막할 수 있다.

이번엔 hack the box 머신을 풀면서 크랙킹했던 방법에 대해 적어보겠다.

pbkdf2를 다른 포맷으로 변환

해쉬캣으로 해독을 하려고해도 해쉬캣이 지원하는 모드가 지금 글을 쓰는 시점(2025/03/26)에는 아직 없기 때문에 해쉬캣이 지원하는 포맷으로 변환시켜줘야 한다.

이번에 인터넷을 찾아보다 알게 된 깃허브 리포지토리가 있었다.

여기서 파일을 클론 한 후 사용하면 포맷을 바꿔줄 수가 있는데, 사용법은 아래와 같다.

깃허브 페이지에도 설명이 나와있다.

sqlite3 gitea.db 'select salt,passwd from user where name="developer";' | python3 gitea2hashcat.py
[+] Run the output hashes through hashcat mode 10900 (PBKDF2-HMAC-SHA256)

sha256:50000:i/PjRSt4VE+L7pQA1pNtNA==:5THTmJRhN7rqcO1qaApUOF7P8TEwnAvY8iXyhEBrfLyO/F2+8wvxaCYZJjRE6llM+1Y=

인수로 필요한게 해쉬화 된 패스워드와 salt값 두 가지이다.

파일을 실행하면 결과값에 변환된 해쉬 값이 나오게 된다.

해쉬값이 나오면 해쉬캣의 10900 모드를 사용하여 크랙킹을 시도한다.

10900 PBKDF2-HMAC-SHA256 sha256:1000:MTc3MTA0MTQwMjQxNzY=:PYjCU215Mi57AYPKva9j7mvF4Rc5bCnt

크랙킹에 성공하면 비밀번호가 나오게 된다.

참고사이트

https://www.unix-ninja.com/p/cracking_giteas_pbkdf2_password_hashes

Share: X (Twitter) Facebook LinkedIn