사용자 정의 워드리스트를 활용한 FTP 비밀번호 크래킹

HydraBeginner
지금 연습하기

소개

이번 챌린지에서는 Hydra 와 직접 만든 워드리스트를 사용하여 사내 네트워크에 임의로 설치된 FTP 서버의 비밀번호를 크래킹하는 임무를 수행합니다. 시나리오는 보안이 취약한 FTP 서버가 기업 네트워크 내에서 실행되고 있는 상황을 가정하며, 여러분의 목표는 해당 서버의 비밀번호를 찾아내어 보안 취약점을 증명하는 것입니다.

이 챌린지에서는 vsftpd를 사용하여 취약한 FTP 서버를 설정하고, 특정 비밀번호를 가진 configuser라는 사용자를 생성한 뒤, "config1", "config123", "password"와 같은 잠재적 비밀번호가 포함된 passwords.txt라는 이름의 맞춤형 비밀번호 목록 파일을 만듭니다. 마지막으로 Hydra 를 사용하여 localhost에서 실행 중인 configuser 계정에 대해 무차별 대입 공격을 수행하고, 올바른 비밀번호를 찾아내어 시스템의 취약성을 확인하게 됩니다.

이 콘텐츠는 챌린지 형식으로 제공됩니다. 가이드가 제공되는 일반 실습과 달리, 학습한 내용을 바탕으로 스스로 과제를 해결해야 합니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 상담하거나 모범 답안을 확인해 보세요. 통계에 따르면 이 챌린지는 초급 수준이며, 85%의 통과율과 99%의 긍정적인 평가를 기록하고 있습니다.

사용자 정의 워드리스트를 활용한 FTP 비밀번호 크래킹

사내 네트워크의 한 직원이 취약한 비밀번호를 사용하는 개인용 FTP 서버를 구축했습니다. 여러분의 임무는 Hydra 를 사용하여 이 비밀번호를 식별하고 서버 보안을 확보하는 것입니다.

과제

  • ~/project 디렉토리에 "config1", "config123", "password"라는 비밀번호가 포함된 passwords.txt 파일을 생성하세요.
  • 생성한 사용자 정의 비밀번호 목록을 사용하여 localhost에서 실행 중인 configuser 계정의 FTP 비밀번호를 Hydra 로 크래킹하세요.

요구 사항

  1. 비밀번호 목록 파일의 이름은 반드시 passwords.txt여야 하며 ~/project 디렉토리에 위치해야 합니다.
  2. Hydra 명령은 localhost에서 실행 중인 FTP 서비스를 대상으로 해야 합니다.
  3. Hydra 명령에 사용자 이름으로 configuser를 지정해야 합니다.
  4. Hydra 명령 실행 시 직접 생성한 비밀번호 목록 파일을 사용해야 합니다.
  5. 비밀번호 목록 파일에는 "config1", "config123", "password"가 각각 새로운 줄에 포함되어야 합니다.
  6. 공격 결과를 ~/project 디렉토리의 results.txt 파일에 저장하세요.

예시

Hydra 가 비밀번호 크래킹에 성공하면 다음과 유사한 출력을 확인할 수 있습니다.

cat ~/project/results.txt

출력 결과는 다음과 같아야 합니다.

[21][ftp] host: localhost   login: configuser   password: [placeholder]
hydra attack

힌트

  • echo -e 명령어를 사용하거나 텍스트 에디터를 직접 열어 비밀번호 목록 파일을 만드세요.
  • 정확한 Hydra 명령어 구문은 이전 실습 문서를 참고하세요.
✨ 솔루션 확인 및 연습

요약

이 챌린지에서는 Hydra 와 사용자 정의 워드리스트를 사용하여 FTP 비밀번호를 크래킹하는 과정을 실습했습니다. 전체 과정은 vsftpdhydra를 설치 및 설정하고, 취약한 비밀번호를 가진 테스트 사용자 (configuser) 를 생성한 뒤 FTP 서비스를 구동하는 것으로 구성되었습니다.

잠재적인 비밀번호가 담긴 passwords.txt 파일을 생성하고, Hydra 의 무차별 대입 공격을 통해 localhostconfiguser 계정 비밀번호를 성공적으로 찾아냈습니다. 이 연습을 통해 FTP 서비스에서 취약한 비밀번호를 식별하는 Hydra 의 활용법을 익히고, 강력한 비밀번호 정책 수립의 중요성을 다시 한번 확인했습니다.