소개
이 랩에서는 다양한 프로토콜을 통해 네트워크 로그인을 무차별 대입 공격 (brute-forcing) 하는 데 사용되는 다재다능한 비밀번호 크래킹 도구인 Hydra 를 설치하고 검증하는 방법을 배우게 됩니다. 이 연습에서는 패키지 설치, 버전 확인, 기본 명령 테스트를 다루어 적절한 기능을 보장합니다.
Hydra 의 버전 확인, 실행 파일 위치 찾기, 명령 옵션 탐색 등 필수적인 Hydra 작업을 연습하게 됩니다. 이러한 실습 단계를 통해 성공적인 설치를 확인하고 이 중요한 보안 도구에 익숙해질 수 있습니다.
시스템에 Hydra 설치
이 단계에서는 네트워크 보안 테스트에 사용되는 강력한 비밀번호 크래킹 도구인 Hydra 를 설치합니다. Hydra 는 로그인 시스템에 대한 무차별 대입 공격 (brute-force attack) 을 수행하며 HTTP, FTP, SSH 등을 포함한 30 개 이상의 프로토콜을 지원합니다. 학습을 위한 안전한 환경을 제공하는 LabEx VM 에 설치합니다.
참고: 무료 사용자는 인터넷에 연결할 수 없으므로 Hydra 는 이미 랩 환경에 사전 설치되어 있습니다. 목록의 항목 4(Hydra 가 설치되었는지 확인) 로 바로 이동할 수 있습니다. 직접 Hydra 설치를 연습하려면 Pro 로 업그레이드하세요.
- 먼저 패키지 목록을 업데이트해야 합니다. 이렇게 하면 Hydra 및 해당 종속성의 최신 버전을 설치할 수 있습니다.
sudo apt update
sudo 명령은 관리자 권한을 부여하고, apt update는 시스템의 사용 가능한 패키지 목록을 새로 고칩니다.
- 이제 apt 패키지 관리자를 사용하여 Hydra 를 설치합니다.
-y플래그는 설치 중 모든 프롬프트를 자동으로 확인합니다.
sudo apt install -y hydra
설치 프로세스는 필요한 모든 종속성을 자동으로 처리합니다. 이는 Hydra 가 제대로 작동하는 데 필요한 추가 소프트웨어 구성 요소입니다. 프로세스가 완료될 때까지 기다리십시오. 완료되면 메시지가 표시됩니다.
설치 후 Hydra 가 제대로 설치되고 액세스 가능한지 확인해 보겠습니다.
which명령은 시스템이 Hydra 실행 파일을 찾는 위치를 보여줍니다.
which hydra

예상 출력:
/usr/bin/hydra
이 출력은 Hydra 가 올바르게 설치되었음을 확인합니다. /usr/bin/ 위치는 도구가 시스템 전체에서 사용 가능하다는 것을 의미하므로 터미널의 모든 디렉토리에서 실행할 수 있습니다. 다음 단계에서는 Hydra 의 강력한 기능을 사용하는 방법을 살펴보겠습니다.
버전 확인을 통한 Hydra 설치 검증
이 단계에서는 버전 번호를 확인하여 Hydra 가 제대로 설치되었는지 확인합니다. 이는 세 가지 중요한 사항을 확인하기 때문에 필수적인 첫 번째 확인 단계입니다. 즉, 소프트웨어가 올바르게 설치되었는지, 시스템이 해당 소프트웨어를 찾을 수 있는지 (PATH 를 통해), 그리고 사용할 준비가 되었는지 확인합니다.
Hydra 와 같은 명령줄 도구로 작업할 때는 항상 버전을 확인하는 것이 좋습니다. 이를 통해 올바른 도구를 사용하고 있는지 확인하고 설치에 대한 기본 정보를 얻을 수 있습니다.
- 기본적인 버전 확인부터 시작해 보겠습니다. 터미널에 다음 명령을 입력합니다.
hydra -v
- 이 명령을 실행하면 다음과 유사한 출력이 표시됩니다.
Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.
이것은 버전 번호 (이 예에서는 v9.2) 와 일부 저작권 정보를 보여줍니다. 튜토리얼이나 문서를 따를 때 버전 번호는 특히 중요합니다. 버전이 다르면 기능이 약간 다를 수 있기 때문입니다.
- Hydra 설치에 대한 자세한 기술적 세부 정보 (컴파일 방법 포함) 를 보려면 대문자
-V옵션을 사용하십시오.
hydra -V
- 이 명령은 문제 해결 또는 문제 보고 시 유용할 수 있는 추가 빌드 정보를 표시합니다.
이러한 간단한 확인은 몇 가지 중요한 작업을 수행합니다.
- Hydra 가 설치되어 작동하는지 확인합니다.
- 시스템이 Hydra 명령을 찾을 수 있는지 확인합니다 (즉, PATH 에 있음).
- 사용 중인 버전에 대한 정보를 제공합니다.
- 설치와 관련된 즉각적인 문제를 식별하는 데 도움이 됩니다.
이러한 명령 중 하나라도 실패하거나 오류가 발생하면 Hydra 가 올바르게 설치되지 않았거나 시스템의 PATH 에 없음을 의미할 수 있으므로 설치 문제를 해결해야 합니다.
Hydra 실행 파일 경로 찾기
이 단계에서는 시스템에 Hydra 가 설치된 위치를 찾는 방법을 배웁니다. Hydra 와 같은 소프트웨어를 설치하면 시스템은 실행 파일을 특정 디렉토리에 배치합니다. 이 경로를 아는 것은 다음과 같은 이유로 필수적입니다.
- 설치가 성공했는지 확인하는 데 도움이 됩니다.
- 스크립트 또는 별칭을 만들 때 이 경로가 필요합니다.
- 시스템 관리자는 보안 감사를 위해 실행 파일 위치를 자주 확인해야 합니다.
Hydra 를 찾기 위한 기본 명령부터 시작해 보겠습니다.
which명령을 사용하여 Hydra 의 실행 파일을 찾습니다. 이 명령은 Hydra 가 설치된 위치를 찾기 위해 시스템의 PATH 환경 변수를 검색합니다.
which hydra
- 출력은 Hydra 의 주요 실행 파일이 있는 전체 경로를 보여줍니다. 일반적인 Linux 시스템은 다음과 같이 표시됩니다.
/usr/bin/hydra
- 이제 이 실행 파일에 대한 자세한 정보를 얻어보겠습니다. 다음 명령은
ls -l(파일 세부 정보를 표시) 과which hydra(경로 가져오기) 를 결합합니다.
ls -l $(which hydra)
- 이 명령은 다음을 포함한 중요한 정보를 제공합니다.
- 파일 권한 (누가 읽기/쓰기/실행할 수 있는지)
- 파일 소유자 (일반적으로 시스템 설치 프로그램의 경우 root)
- 파일 크기 및 수정 날짜
- 실제 경로
예시 출력:
-rwxr-xr-x 1 root root 123456 Jan 1 00:00 /usr/bin/hydra
- 더 자세히 알아보려면 Hydra 실행 파일이 어떤 종류의 파일인지 확인할 수 있습니다. 이는 진정한 바이너리이고 스크립트나 심볼릭 링크가 아닌지 확인해야 할 때 특히 유용합니다.
file $(which hydra)
- 출력은 컴파일된 바이너리 (스크립트 아님) 임을 알려주고 아키텍처 및 링크에 대한 기술적 세부 정보를 보여줍니다.
/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 의 내장 도움말 문서에 액세스하는 방법을 배웁니다. Hydra 의 도움말 시스템은 이 도구를 사용할 때 첫 번째 참조 지점이며, 사용 가능한 모든 명령과 옵션을 자세히 설명합니다.
- 일반적인 명령 구조와 일반적인 옵션을 보여주는 기본 도움말 메뉴를 표시하려면 터미널에서 이 간단한 명령을 실행합니다.
hydra -h
- 출력은 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
...
- 특정 서비스 (예: HTTP 또는 FTP) 에 대한 고급 옵션을 보여주는 프로토콜별 도움말을 보려면 다음 명령 형식을 사용합니다.
hydra -U SERVICE
SERVICE를 http, ftp 또는 ssh와 같이 작업 중인 실제 프로토콜 이름으로 바꿉니다. 그러면 해당 특정 서비스에 대한 특수 옵션이 표시됩니다.
- Hydra 가 사용할 수 있는 모든 사용 가능한 서비스 모듈을 찾으려면 이 명령을 실행합니다 (여기서 'foo'와 'bar'는 자리 표시자일 뿐입니다).
hydra -l foo -p bar -U
- 포괄적인 도움말 출력은 다음을 포함한 중요한 정보를 제공합니다.
- 각 모듈에 대한 필수 매개변수와 선택적 매개변수
- 실제 사용 예시
- 지원되는 프로토콜의 전체 목록
- 테스트 조정을 위한 성능 관련 설정
Hydra 의 도움말 시스템은 상황에 따라 다르다는 점을 기억하십시오. 표시되는 정보는 -h 또는 -U 플래그와 결합하는 옵션에 따라 변경됩니다.
Hydra 더미 명령어 테스트
이 단계에서는 실제 시스템을 공격하지 않고 Hydra 의 기본 기능을 확인하기 위해 안전한 테스트 명령을 실행합니다. 이는 실제 시나리오에서 Hydra 를 사용하기 전에 Hydra 가 작동하는 방식을 이해하는 중요한 첫 번째 단계입니다.
- 먼저, 테스트 암호 목록을 만듭니다. 이 파일에는 Hydra 가 테스트 중에 시도할 샘플 암호가 포함됩니다.
echo -e "password\n123456\nqwerty" > ~/project/test_passwords.txt
- 테스트 사용자 이름 목록을 만듭니다. 마찬가지로 이 파일에는 Hydra 가 사용을 시도할 샘플 사용자 이름이 포함되어 있습니다.
echo -e "admin\ntest\nroot" > ~/project/test_usernames.txt
- 이제 localhost(자신의 컴퓨터) 를 대상으로 테스트 모드에서 Hydra 를 실행합니다. 자신을 대상으로 하고 실제로 작동하지 않는 테스트 자격 증명을 사용하므로 완전히 안전합니다.
hydra -L ~/project/test_usernames.txt -P ~/project/test_passwords.txt 127.0.0.1 ssh -t 1 -vV
- 테스트 시도를 보여주는 출력을 볼 수 있습니다. 이 출력은 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)
- 이 명령은 이해하는 것이 중요한 다음과 같은 안전한 매개변수를 사용합니다.
-L: 생성한 사용자 이름 목록 파일의 경로를 지정합니다.-P: 생성한 암호 목록 파일의 경로를 지정합니다.-t 1: Hydra 를 1 개의 병렬 연결로 제한합니다 (테스트 속도는 느려지지만 더 안전함).-vV: 자세한 출력을 활성화하여 Hydra 가 수행하는 작업을 볼 수 있습니다.ssh: SSH 프로토콜을 대상으로 테스트하고 있음을 지정합니다 (이 테스트는 성공하지 않음).
이 테스트는 위험 없이 Hydra 의 기본 작동 방식을 보여주며, Hydra 가 다양한 사용자 이름/암호 조합을 체계적으로 시도하는 방식을 보여줍니다. 출력은 시도 중인 내용을 보여주지만 로컬 머신에서는 성공하지 않습니다.
요약
이 랩에서는 LabEx VM 시스템에 Hydra 암호 크래킹 도구를 설치하고 확인하는 방법을 배웠습니다. 이 과정에는 패키지 업데이트, apt를 통한 Hydra 설치, /usr/bin/hydra에서 설치 경로 확인이 포함되었습니다. 또한 hydra -v 및 hydra -V 명령을 사용하여 Hydra 의 버전을 확인하여 설치를 확인했습니다.
또한 which hydra와 같은 명령을 사용하여 실행 파일 경로를 찾고 hydra -h와 같은 명령을 테스트하여 Hydra 의 기본 기능을 탐색했습니다. 이러한 단계는 Hydra 가 제대로 설치되어 보안 테스트 시나리오에서 실용적으로 사용할 준비가 되었는지 확인했습니다.


