소개
이 랩에서는 Hydra (브루트 포스 공격) 을 위한 필수 파일을 준비하기 위해 사용자 이름 및 비밀번호 목록을 생성하고 수정하는 방법을 배우게 됩니다. 일반적인 자격 증명을 포함하는 텍스트 파일을 생성하고, 테스트 효율성을 높이기 위해 추가 변형을 사용하여 사용자 정의할 것입니다.
이 연습에서는 usernames.txt 및 passwords.txt 파일을 생성하고, 더 많은 항목으로 확장하며, Hydra 가 이러한 파일을 제대로 로드할 수 있는지 확인하는 방법을 다룹니다. 이렇게 준비된 목록은 이후 인증 크래킹 시도의 기반이 될 것입니다.
사용자 이름 목록 파일 생성
이 단계에서는 인증 시스템 테스트에 사용할 수 있는 일반적인 사용자 이름 목록이 포함된 텍스트 파일을 생성합니다. 이 사용자 이름 목록은 Hydra 공격에 필수적입니다. 이는 브루트 포스 (brute-force) 또는 사전 공격 (dictionary attack) 중에 시도할 수 있는 잠재적인 계정 이름을 도구에 제공하기 때문입니다.
- 먼저, 올바른 작업 디렉토리에 있는지 확인합니다.
cd명령은 현재 디렉토리를 변경하며, 이 랩에서는~/project를 작업 디렉토리로 사용합니다.
cd ~/project
- 간단한 명령줄 텍스트 편집기인 nano 를 사용하여
usernames.txt라는 새 텍스트 파일을 생성합니다. 아래 명령은 새 파일을 생성하거나 기존 파일을 엽니다.
nano usernames.txt
- 이제 다양한 시스템에서 기본 자격 증명으로 자주 사용되는 일반적인 사용자 이름을 추가합니다. 각 사용자 이름을 별도의 줄에 입력하거나 붙여넣습니다.
admin
root
user
test
guest
administrator
- nano 에서 변경 사항을 저장하려면:
Ctrl+O(Write Out) 를 눌러 저장합니다.Enter를 눌러 파일 이름 (usernames.txt) 을 확인합니다.Ctrl+X를 눌러 편집기를 종료합니다.
cat명령을 사용하여 파일의 내용을 표시하여 파일이 올바르게 생성되었는지 확인합니다. 이렇게 하면 파일에 저장된 내용을 정확히 볼 수 있습니다.
cat usernames.txt
입력한 사용자 이름 목록이 각 줄에 하나씩 표시되어야 합니다. 이 파일은 이후 단계에서 Hydra 의 입력으로 사용되며, 도구는 인증 시스템을 테스트하기 위해 각 사용자 이름 (다른 파일의 비밀번호와 결합) 을 체계적으로 시도합니다.
비밀번호 목록 파일 생성
이 단계에서는 Hydra 를 사용하여 인증 시스템을 테스트하기 위해 1 단계의 사용자 이름 목록과 함께 사용할 일반적인 비밀번호가 포함된 텍스트 파일을 생성합니다. 비밀번호 목록은 시스템이 취약할 수 있는 일반적으로 사용되는 자격 증명을 포함하므로 브루트 포스 공격에 필수적입니다.
- 먼저, 올바른 작업 디렉토리에 있는지 확인합니다 (아직 없는 경우).
~/project디렉토리는 모든 공격 파일을 저장하여 정리할 곳입니다.
cd ~/project
- nano 를 사용하여
passwords.txt라는 새 텍스트 파일을 생성합니다. Nano 는 대부분의 Linux 배포판에 사전 설치된 간단한 텍스트 편집기이며, 초보자에게 적합합니다.
nano passwords.txt
- 다음 일반적인 비밀번호를 파일에 추가합니다 (각 줄에 하나씩). 이는 보안 연구에 따르면 가장 자주 사용되는 약한 비밀번호 중 하나입니다.
password
123456
admin
12345678
qwerty
123456789
- 다음을 눌러 파일을 저장합니다.
Ctrl+O(Write Out) - 변경 사항을 저장합니다.Enter를 눌러 파일 이름을 확인합니다.Ctrl+X를 눌러 nano 를 종료하고 터미널로 돌아갑니다.
- 파일의 내용을 표시하여 파일이 올바르게 생성되었는지 확인합니다.
cat명령은 편집기를 열지 않고 파일 내용을 확인하는 빠른 방법입니다.
cat passwords.txt
입력한 비밀번호 목록이 각 줄에 하나씩 표시되어야 합니다. 이 비밀번호 목록은 이후 단계에서 Hydra 를 실행할 때 1 단계의 사용자 이름 목록과 결합됩니다. 두 파일의 형식이 올바르게 지정되면 Hydra 가 공격 중에 가능한 모든 사용자 이름 - 비밀번호 조합을 체계적으로 테스트할 수 있습니다.
일반 자격 증명으로 목록 편집
이 단계에서는 이전 단계에서 생성한 사용자 이름 및 비밀번호 목록에 인증 시스템에서 자주 사용되는 더 많은 일반 자격 증명을 추가하여 향상시킵니다. 이러한 추가는 실제 시스템에 브루트 포스 공격에 취약할 수 있는 기본 또는 일반적으로 사용되는 자격 증명이 있는 경우가 많기 때문에 중요합니다.
- 먼저, 자격 증명 파일이 저장된 올바른 작업 디렉토리에 있는지 확인합니다. 이렇게 하면 모든 편집이 올바른 위치에서 수행됩니다.
cd ~/project
- nano 텍스트 편집기를 사용하여 편집할 사용자 이름 목록을 엽니다. Nano 는 초보자에게 완벽한 간단한 명령줄 편집기입니다.
nano usernames.txt
- 기존 목록에 이러한 추가적인 일반 사용자 이름을 추가합니다. 이는 많은 시스템에서 사용하는 일반적인 기본 계정으로, 테스트에 적합합니다.
sysadmin
webmaster
support
backup
oracle
mysql
Ctrl+O(write out) 를 누른 다음Enter를 눌러 확인하고 마지막으로Ctrl+X를 눌러 nano 를 종료하여 파일을 저장합니다. 이러한 키보드 단축키는 명령줄 편집기 작업에 필수적입니다.이제 동일한 프로세스를 사용하여 비밀번호 목록을 편집할 수 있습니다.
nano passwords.txt
- 기존 목록에 이러한 추가적인 일반 비밀번호를 추가합니다. 이는 사용자가 자주 선택하는 약한 비밀번호이므로 테스트에 포함하는 것이 중요합니다.
letmein
welcome
password1
123123
12345
111111
동일한 방법으로 비밀번호 파일을 저장합니다:
Ctrl+O,Enter, 그리고Ctrl+X.두 파일의 내용을 표시하여 업데이트된 자격 증명이 포함되어 있는지 확인합니다.
&& echo "---"부분은 표시될 때 두 파일 사이에 시각적 구분 기호를 추가합니다.
cat usernames.txt && echo "---" && cat passwords.txt
이제 두 목록 모두 더 포괄적인 자격 증명 세트를 포함해야 합니다. 이러한 향상된 목록은 Hydra 로 인증 시스템을 테스트할 때 더 나은 범위를 제공합니다. 이는 실제 시나리오에서 자주 발견되는 기본 시스템 계정과 일반적으로 사용되는 약한 비밀번호를 모두 포함하기 때문입니다.
접근 가능한 디렉토리에 목록 저장
이 단계에서는 전용 디렉토리를 생성하고 올바른 파일 권한을 설정하여 Hydra 공격을 위해 자격 증명 목록을 적절하게 구성하는 방법을 배웁니다. 이는 Hydra 가 비밀번호 크래킹 (password cracking) 시도 중에 이러한 파일에 액세스할 수 있어야 하기 때문에 중요합니다.
- 먼저, 아직 없는 경우 프로젝트 디렉토리로 이동합니다. 이렇게 하면 모든 파일이 한 곳에 정리됩니다.
cd ~/project
- 자격 증명 파일을 저장하기 위해 특별히
hydra_lists라는 새 디렉토리를 생성합니다. 별도의 디렉토리를 사용하면 작업 공간을 깨끗하게 유지하고 파일을 더 쉽게 찾을 수 있습니다.
mkdir hydra_lists
- 사용자 이름과 비밀번호 파일을 모두 이 새 디렉토리로 이동합니다.
mv명령은 파일을 현재 위치에서 새 디렉토리로 물리적으로 이동합니다.
mv usernames.txt passwords.txt hydra_lists/
- 디렉토리 내용을 나열하여 파일이 성공적으로 이동되었는지 확인합니다.
-l플래그는 파일 권한을 포함한 자세한 정보를 표시합니다.
ls -l hydra_lists/
usernames.txt와 passwords.txt가 모두 권한과 함께 나열되어야 합니다.
- Hydra 가 이러한 파일을 읽을 수 있도록 적절한 권한을 설정합니다.
644권한은 소유자가 읽기/쓰기를 할 수 있고 다른 사용자는 읽기만 할 수 있음을 의미합니다.
chmod 644 hydra_lists/*
- 디렉토리를 다시 확인하여 권한이 올바른지 확인합니다.
-rw-r--r--권한 문자열은 파일이 올바르게 구성되었음을 나타냅니다.
ls -l hydra_lists/
출력은 두 파일 모두 -rw-r--r--를 표시해야 합니다. 즉, 모든 사용자가 읽을 수 있지만 소유자만 쓸 수 있습니다. 이는 Hydra 공격에 사용되는 자격 증명 파일에 대한 이상적인 권한 설정입니다.
Hydra 에서 파일 로드 확인
이 마지막 단계에서는 이전 단계에서 생성한 자격 증명 파일을 Hydra 가 제대로 읽고 처리할 수 있는지 확인합니다. 이는 실제 공격을 시작하기 전에 중요한 확인 사항입니다. 사용자 이름 및 비밀번호 목록이 올바르게 형식화되어 있고 Hydra 에서 액세스할 수 있는지 확인하기 때문입니다.
- 먼저, 자격 증명 파일이 저장된 올바른 작업 디렉토리에 있는지 확인합니다. Hydra 가 사용자 이름 및 비밀번호 목록을 어디에서 찾아야 하는지 알아야 하므로 이는 매우 중요합니다.
cd ~/project
- 이제 자세한 출력을 위해
-V플래그를 사용하여 테스트 모드에서 Hydra 를 실행합니다. 이 명령은 Hydra 에게 다음을 지시합니다.- 사용자 이름 목록 사용 (
-L hydra_lists/usernames.txt) - 비밀번호 목록 사용 (
-P hydra_lists/passwords.txt) - localhost 의 SSH 서비스에 대해 테스트
- 테스트 목적으로 스레드 1 개만 사용 (
-t 1)
- 사용자 이름 목록 사용 (
hydra -L hydra_lists/usernames.txt -P hydra_lists/passwords.txt -V -t 1 localhost ssh
- 명령이 성공적으로 실행되면 다음과 유사한 출력이 표시됩니다. 여기에서 중요한 정보는 Hydra 가 두 파일을 모두 읽었음을 확인하는 "login tries" 횟수입니다.
Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak
[DATA] max 1 task per 1 server, overall 1 task, 42 login tries (l:6/p:7), ~42 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... done
출력을 확인한 후
Ctrl+C를 눌러 테스트를 중지합니다. 파일 로드만 테스트하므로 완료할 필요가 없습니다.두 파일이 제대로 읽혔는지 확인하려면 출력에 표시된 로그인 시도 횟수를 확인합니다. 이 숫자는 목록에 있는 사용자 이름 수에 비밀번호 수를 곱한 값과 같아야 합니다. 예를 들어, 사용자 이름이 6 개이고 비밀번호가 7 개인 경우 42 번의 로그인 시도 (6×7=42) 가 표시되어야 합니다. 이 곱셈은 Hydra 가 파일에서 가능한 모든 자격 증명 쌍을 올바르게 결합하고 있음을 확인합니다.
요약
이 랩에서는 Linux 에서 텍스트 파일을 생성하고 관리하여 Hydra 공격을 위한 사용자 이름 및 비밀번호 목록을 준비하는 방법을 배웠습니다. 연습에서는 nano 를 사용하여 usernames.txt 및 passwords.txt를 생성하고, 일반적인 자격 증명으로 채우고, cat 명령으로 내용을 확인하는 방법을 다루었습니다.
또한 디렉토리 탐색, 텍스트 편집 및 파일 유효성 검사를 포함한 필수 Linux 파일 작업을 연습했습니다. 이러한 기술은 효과적인 무차별 대입 공격 (brute-force attacks) 을 설정하기 위한 기반을 형성합니다. 올바르게 형식화된 자격 증명 목록은 Hydra 의 보안 테스트 기능에 매우 중요하기 때문입니다.


