숨겨진 서비스의 암호 해독

HydraBeginner
지금 연습하기

소개

이번 챌린지에서는 Hydra 를 사용하여 원격 서버에서 실행 중인 숨겨진 서비스의 자격 증명을 해독하는 실습을 진행합니다. 해당 서비스는 HTTP 기본 인증 (HTTP Basic Authentication) 으로 보호되고 있습니다. 여러분의 목표는 숨겨진 데이터에 접근하기 위해 올바른 사용자 이름과 비밀번호를 찾아내는 것입니다.

이를 위해 먼저 필요한 디렉터리를 생성하고 잠재적인 사용자 이름과 비밀번호가 포함된 워드리스트를 만들어 환경을 설정합니다. 그런 다음 파이썬을 사용하여 기본 인증 기능이 있는 간단한 HTTP 서버를 구축합니다. 마지막으로, 생성한 워드리스트와 Hydra 를 활용하여 자격 증명에 대한 무차별 대입 (Brute-force) 공격을 수행하고 비밀 데이터에 대한 접근 권한을 획득하게 됩니다.

이 콘텐츠는 챌린지 형식으로, 가이드가 제공되는 일반 실습과 달리 학습자가 스스로 과제를 해결해야 합니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 논의하거나 모범 답안을 확인해 보세요. 통계 데이터에 따르면 이 챌린지는 초급 수준이며, 통과율은 94%, 학습자 만족도는 98%입니다.

숨겨진 서비스의 암호 해독

원격 서버에서 HTTP 기본 인증으로 보호된 비밀 서비스가 실행 중입니다. Hydra 를 사용하여 숨겨진 데이터에 접근할 수 있는 올바른 사용자 이름과 비밀번호를 찾아낼 수 있습니까?

과제

  • 제공된 사용자 이름 및 비밀번호 목록을 사용하여 localhost8000번 포트에서 실행 중인 HTTP 서비스에 대해 Hydra 로 무차별 대입 공격을 수행하세요.
  • Hydra 의 출력 결과에서 올바른 자격 증명을 식별하고, 찾아낸 비밀번호를 found_password.txt 파일에 저장하세요.

요구 사항

  1. 반드시 /home/labex/project/wordlists 디렉터리에서 hydra 명령어를 실행해야 합니다.
  2. 사용자 이름 목록 파일 이름은 usernames.txt, 비밀번호 목록 파일 이름은 passwords.txt를 사용하세요.
  3. 공격 대상은 localhost8000번 포트에서 실행 중인 HTTP 서비스입니다.
  4. 공격을 수행할 때 Hydra 의 http-get / 모듈을 사용하세요.
  5. 찾아낸 올바른 비밀번호를 /home/labex/project/found_password.txt 경로에 저장하세요.

예시

성공적인 Hydra 출력 결과 예시:

[DATA] attacking http-get://localhost:8000/
[8000][http-get] host: localhost   login: [USERNAME]   password: [PASSWORD]
1 of 1 target successfully completed, 1 valid password found

[USERNAME][PASSWORD] 부분은 Hydra 가 실제로 찾아낸 자격 증명으로 대체됩니다.

힌트

  • -s 플래그를 사용하여 올바른 포트 번호를 지정하는 것을 잊지 마세요.
  • 올바른 비밀번호가 처음에 제공된 passwords.txt 파일에 없을 수도 있습니다. 이 경우 비밀번호를 해독하기 위한 다른 방법을 찾아야 합니다.
  • 흔히 사용되는 비밀번호들을 포함하는 자신만의 비밀번호 목록을 직접 만들어 보는 것도 고려해 보세요.
✨ 솔루션 확인 및 연습

요약

이 챌린지의 목표는 원격 서버에서 실행 중인 숨겨진 서비스의 HTTP 기본 인증을 해독하는 것이었습니다. Hydra 를 활용하여 서비스에 접근하는 데 필요한 사용자 이름과 비밀번호를 성공적으로 찾아냈습니다.

이 과정에서 워드리스트를 위한 디렉터리 생성, 사용자 이름 및 비밀번호 목록 작성, 인증이 필요한 파이썬 기반 HTTP 서버 구축 등 시뮬레이션 환경을 직접 구성해 보았습니다. 최종적으로 8000 번 포트에서 작동 중인 HTTP 서버를 대상으로 Hydra 를 사용해 자격 증명에 대한 무차별 대입 공격을 수행하는 실무적인 기술을 익혔습니다.