Hydra 설치 및 확인

HydraBeginner
지금 연습하기

소개

이 실습에서는 다양한 프로토콜에서 네트워크 로그인에 대한 무차별 대입 공격을 수행할 수 있는 다목적 비밀번호 크래킹 도구인 Hydra를 설치하고 확인하는 방법을 배웁니다. 패키지 설치, 버전 확인, 기본 명령 테스트를 진행하여 Hydra가 정상적으로 작동하는지 확인합니다.

버전 확인, 실행 파일 위치 찾기, 명령 옵션 살펴보기 등 Hydra를 사용하는 데 필요한 기본 작업을 직접 수행합니다. 이러한 실습을 통해 설치가 제대로 완료되었는지 확인하는 동시에, 중요한 보안 도구인 Hydra의 사용법을 익힐 수 있습니다.

시스템에 Hydra 설치

이 단계에서는 네트워크 보안 테스트에 사용되는 강력한 비밀번호 크래킹 도구인 Hydra를 설치합니다. Hydra는 로그인 시스템을 대상으로 무차별 대입 공격을 수행하며 HTTP, FTP, SSH를 비롯해 30개 이상의 프로토콜을 지원합니다. 안전한 학습 환경을 제공하는 LabEx VM에 Hydra를 설치합니다.

참고: 무료 사용자는 인터넷에 연결할 수 없으므로 Hydra가 실습 환경에 이미 설치되어 있습니다. 목록의 4번 항목(Hydra 설치 여부 확인)으로 바로 이동할 수 있습니다. 프로 사용자로 업그레이드하면 직접 Hydra를 설치해 볼 수 있습니다.

  1. 먼저 패키지 목록을 업데이트해야 합니다. 이렇게 하면 Hydra와 필요한 종속 항목의 최신 버전을 설치할 수 있습니다.
sudo apt update

sudo 명령은 관리자 권한으로 명령을 실행하게 하며, apt update는 시스템에서 사용할 수 있는 패키지 목록을 새로 고칩니다.

  1. 이제 apt 패키지 관리자를 사용해 Hydra를 설치합니다. -y 옵션을 사용하면 설치 중 표시되는 확인 메시지에 자동으로 동의합니다.
sudo apt install -y hydra
  1. 설치 과정에서 필요한 모든 종속 항목이 자동으로 처리됩니다. 종속 항목은 Hydra가 정상적으로 작동하는 데 필요한 추가 소프트웨어 구성 요소입니다. 설치가 완료될 때까지 기다리면 완료 메시지가 표시됩니다.

  2. 설치가 끝나면 Hydra가 정상적으로 설치되어 접근 가능한지 확인합니다. which 명령은 시스템이 Hydra 실행 파일을 찾는 위치를 보여 줍니다.

which hydra

which hydra

예상 출력:

/usr/bin/hydra

이 출력은 Hydra가 올바르게 설치되었음을 의미합니다. /usr/bin/ 경로에 있다는 것은 시스템 전체에서 도구를 사용할 수 있다는 뜻이므로 터미널의 어느 디렉터리에서든 실행할 수 있습니다. 다음 단계에서는 Hydra의 강력한 기능을 사용하는 방법을 살펴봅니다.

설치된 Hydra 버전 확인

이 단계에서는 Hydra가 정상적으로 시작되는지 확인하고 설치된 버전을 알아봅니다. Hydra에는 버전만 표시하는 전용 옵션이 없습니다. 대신 도움말 출력의 첫 줄에 버전 번호가 포함된 배너가 표시됩니다.

Hydra의 도움말 명령을 실행하고 첫 번째 줄만 출력합니다.

hydra -h 2>&1 | head -n 1

다음과 비슷한 출력이 표시됩니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak ...

정확한 버전과 저작권 연도는 다를 수 있습니다. Hydra v... 배너가 표시되면 셸이 설치된 실행 파일을 찾고 시작할 수 있다는 뜻입니다.

버전 확인에 hydra -v 또는 hydra -V를 사용하지 마세요. Hydra에서 -v는 상세 출력 모드를 활성화하고, -V는 시도하는 각 로그인 정보와 비밀번호를 표시합니다. 두 옵션 모두 실제 대상과 함께 사용해야 합니다. 대상 없이 단독으로 실행하면 배너가 표시된 후 대상이 제공되지 않았다는 오류로 종료됩니다.

Hydra 실행 파일 경로 찾기

이 단계에서는 시스템에 Hydra가 설치된 위치를 찾는 방법을 배웁니다. Hydra와 같은 소프트웨어를 설치하면 시스템은 실행 파일을 특정 디렉터리에 배치합니다. 이 경로를 알고 있어야 하는 이유는 다음과 같습니다.

  1. 설치가 성공적으로 완료되었는지 확인할 수 있습니다.
  2. 스크립트나 별칭을 만들 때 이 경로가 필요합니다.
  3. 시스템 관리자는 보안 감사를 위해 실행 파일의 위치를 확인해야 하는 경우가 많습니다.

먼저 Hydra의 위치를 찾는 기본 명령을 실행해 보겠습니다.

  1. which 명령을 사용해 Hydra 실행 파일의 위치를 찾습니다. 이 명령은 시스템의 PATH 환경 변수를 검색하여 Hydra가 설치된 위치를 확인합니다.
which hydra
  1. 출력에는 Hydra의 기본 실행 파일이 있는 전체 경로가 표시됩니다. 일반적인 Linux 시스템에서는 다음과 비슷한 결과가 나타납니다.
/usr/bin/hydra
  1. 이제 이 실행 파일에 대한 자세한 정보를 확인합니다. 다음 명령은 파일 세부 정보를 보여 주는 ls -l과 경로를 가져오는 which hydra를 결합한 것입니다.
ls -l $(which hydra)
  1. 다음과 같은 중요한 정보를 확인할 수 있습니다.
    • 파일 권한(파일을 읽고, 쓰고, 실행할 수 있는 사용자)
    • 파일 소유자(시스템에 설치된 프로그램은 일반적으로 root)
    • 파일 크기와 수정 날짜
    • 실제 경로

예시 출력:

-rwxr-xr-x 1 root root 123456 Jan 1 00:00 /usr/bin/hydra
  1. 더 자세히 살펴보기 위해 Hydra 실행 파일의 파일 형식도 확인할 수 있습니다. 실행 파일이 스크립트나 심볼릭 링크가 아닌 실제 바이너리인지 검증할 때 특히 유용합니다.
file $(which hydra)
  1. 출력에는 해당 파일이 컴파일된 바이너리라는 사실과 아키텍처, 링크 방식 등의 기술 정보가 표시됩니다.
/usr/bin/hydra: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=abcdef1234567890, for GNU/Linux 3.2.0, stripped

이 명령들을 사용하면 Hydra가 설치된 위치와 실행 파일의 종류를 종합적으로 파악할 수 있습니다. 이는 모든 명령줄 도구를 다룰 때 필요한 기본 지식입니다.

Hydra 도움말 명령 실행

이 단계에서는 Hydra에 내장된 도움말 문서에 접근하여 기본 사용법과 명령 구문을 이해하는 방법을 배웁니다. Hydra의 도움말은 이 도구를 사용할 때 가장 먼저 참고할 자료입니다. 사용 가능한 명령과 옵션을 자세히 설명해 주기 때문입니다.

  1. 일반적인 명령 구조와 자주 사용하는 옵션을 보여 주는 기본 도움말 메뉴를 표시하려면 터미널에서 다음 명령을 실행합니다.
hydra -h
  1. 출력에는 Hydra의 버전 정보와 기본 명령 구문이 표시됩니다. 여기에는 다음 내용이 포함됩니다.
  • 필수 매개변수 형식

  • 일반 옵션 플래그

  • 기본 사용 예시

    일반적으로 다음과 같은 내용이 표시됩니다.

Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]

Options:
  -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
  ...
  1. HTTP나 FTP처럼 특정 서비스에 대한 고급 옵션을 보여 주는 프로토콜별 도움말을 보려면 다음 형식을 사용합니다.
hydra -U SERVICE

SERVICE를 실제로 사용할 프로토콜 이름으로 바꾸세요. 예를 들어 http, ftp, ssh 등을 입력할 수 있습니다. 그러면 해당 서비스에 특화된 옵션이 표시됩니다.

  1. Hydra에서 사용할 수 있는 모든 서비스 모듈을 확인하려면 다음 명령을 실행합니다. 여기서 foobar는 단순한 자리 표시자입니다.
hydra -l foo -p bar -U
  1. 자세한 도움말에는 다음과 같은 중요한 정보가 포함됩니다.
  • 각 모듈의 필수 매개변수와 선택적 매개변수
  • 실제 사용 예시
  • 지원되는 프로토콜 전체 목록
  • 테스트 성능을 조정하기 위한 설정

Hydra의 도움말 시스템은 상황에 따라 내용이 달라집니다. -h 또는 -U 플래그와 함께 어떤 옵션을 조합하느냐에 따라 표시되는 정보가 달라진다는 점을 기억하세요.

더미 명령으로 Hydra 테스트

이 단계에서는 실제 시스템을 공격하지 않고 Hydra의 기본 기능을 확인하기 위해 안전한 테스트 명령을 실행합니다. 실제 환경에서 사용하기 전에 Hydra가 어떻게 작동하는지 이해하는 데 중요한 첫 단계입니다.

  1. 먼저 테스트용 비밀번호 목록을 만듭니다. 이 파일에는 테스트 중 Hydra가 시도할 샘플 비밀번호가 들어갑니다.
echo -e "password\n123456\nqwerty" > ~/project/test_passwords.txt
  1. 테스트용 사용자 이름 목록을 만듭니다. 마찬가지로 이 파일에는 Hydra가 시도할 샘플 사용자 이름이 들어갑니다.
echo -e "admin\ntest\nroot" > ~/project/test_usernames.txt
  1. 이제 로컬 호스트(현재 사용 중인 컴퓨터)를 대상으로 Hydra를 테스트 모드로 실행합니다. 자기 자신을 대상으로 하며 실제로 작동하지 않는 테스트 자격 증명을 사용하므로 안전합니다.
hydra -L ~/project/test_usernames.txt -P ~/project/test_passwords.txt 127.0.0.1 ssh -t 1 -vV
  1. 테스트 시도 과정을 보여 주는 출력이 표시됩니다. 이 출력은 Hydra가 비밀번호 조합을 순서대로 시도하는 방식을 보여 주지만, 실제 로그인에는 성공하지 않습니다.
[DATA] attacking ssh://127.0.0.1:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://127.0.0.1:22
[22][ssh] host: 127.0.0.1   login: admin   password: password
[22][ssh] host: 127.0.0.1   login: admin   password: 123456
[22][ssh] host: 127.0.0.1   login: admin   password: qwerty
...
[STATUS] attack finished for 127.0.0.1 (waiting for children to complete tests)
  1. 이 명령은 다음과 같은 안전한 매개변수를 사용합니다.
  • -L: 생성한 사용자 이름 목록 파일의 경로를 지정합니다.
  • -P: 생성한 비밀번호 목록 파일의 경로를 지정합니다.
  • -t 1: Hydra가 동시에 사용하는 연결을 1개로 제한합니다(테스트 속도는 느려지지만 더 안전합니다).
  • -vV: 상세 출력을 활성화하여 Hydra의 동작을 확인할 수 있게 합니다.
  • ssh: SSH 프로토콜을 대상으로 테스트하도록 지정합니다(단, 이 테스트는 성공하지 않습니다).

이 테스트는 위험 없이 Hydra의 기본 동작을 보여 줍니다. 사용자 이름과 비밀번호의 다양한 조합을 체계적으로 시도하는 과정을 확인할 수 있으며, 로컬 컴퓨터를 대상으로 하므로 어떤 시도도 성공하지 않습니다.

요약

이 실습에서는 LabEx VM 시스템에 Hydra 비밀번호 크래킹 도구를 설치하고 확인하는 방법을 배웠습니다. 패키지 목록을 업데이트하고, apt를 사용해 Hydra를 설치한 다음, /usr/bin/hydra에 있는 설치 경로를 확인했습니다. 또한 hydra -vhydra -V 명령을 사용해 설치 상태를 확인했습니다.

이와 함께 which hydra로 Hydra 실행 파일의 위치를 찾고 hydra -h와 같은 명령을 테스트하여 Hydra의 기본 기능도 살펴보았습니다. 이러한 과정을 통해 Hydra가 올바르게 설치되어 보안 테스트에 사용할 준비가 되었는지 확인할 수 있었습니다.