Hydra 공격을 위한 파일 준비

HydraBeginner
지금 연습하기

소개

이 랩에서는 Hydra (브루트 포스 공격) 을 위한 필수 파일을 준비하기 위해 사용자 이름 및 비밀번호 목록을 생성하고 수정하는 방법을 배우게 됩니다. 일반적인 자격 증명을 포함하는 텍스트 파일을 생성하고, 테스트 효율성을 높이기 위해 추가 변형을 사용하여 사용자 정의할 것입니다.

이 연습에서는 usernames.txtpasswords.txt 파일을 생성하고, 더 많은 항목으로 확장하며, Hydra 가 이러한 파일을 제대로 로드할 수 있는지 확인하는 방법을 다룹니다. 이렇게 준비된 목록은 이후 인증 크래킹 시도의 기반이 될 것입니다.

사용자 이름 목록 파일 생성

이 단계에서는 인증 시스템 테스트에 사용할 수 있는 일반적인 사용자 이름 목록이 포함된 텍스트 파일을 생성합니다. 이 사용자 이름 목록은 Hydra 공격에 필수적입니다. 이는 브루트 포스 (brute-force) 또는 사전 공격 (dictionary attack) 중에 시도할 수 있는 잠재적인 계정 이름을 도구에 제공하기 때문입니다.

  1. 먼저, 올바른 작업 디렉토리에 있는지 확인합니다. cd 명령은 현재 디렉토리를 변경하며, 이 랩에서는 ~/project를 작업 디렉토리로 사용합니다.
cd ~/project
  1. 간단한 명령줄 텍스트 편집기인 nano 를 사용하여 usernames.txt라는 새 텍스트 파일을 생성합니다. 아래 명령은 새 파일을 생성하거나 기존 파일을 엽니다.
nano usernames.txt
  1. 이제 다양한 시스템에서 기본 자격 증명으로 자주 사용되는 일반적인 사용자 이름을 추가합니다. 각 사용자 이름을 별도의 줄에 입력하거나 붙여넣습니다.
admin
root
user
test
guest
administrator
  1. nano 에서 변경 사항을 저장하려면:
  • Ctrl+O (Write Out) 를 눌러 저장합니다.
  • Enter를 눌러 파일 이름 (usernames.txt) 을 확인합니다.
  • Ctrl+X를 눌러 편집기를 종료합니다.
  1. cat 명령을 사용하여 파일의 내용을 표시하여 파일이 올바르게 생성되었는지 확인합니다. 이렇게 하면 파일에 저장된 내용을 정확히 볼 수 있습니다.
cat usernames.txt

입력한 사용자 이름 목록이 각 줄에 하나씩 표시되어야 합니다. 이 파일은 이후 단계에서 Hydra 의 입력으로 사용되며, 도구는 인증 시스템을 테스트하기 위해 각 사용자 이름 (다른 파일의 비밀번호와 결합) 을 체계적으로 시도합니다.

비밀번호 목록 파일 생성

이 단계에서는 Hydra 를 사용하여 인증 시스템을 테스트하기 위해 1 단계의 사용자 이름 목록과 함께 사용할 일반적인 비밀번호가 포함된 텍스트 파일을 생성합니다. 비밀번호 목록은 시스템이 취약할 수 있는 일반적으로 사용되는 자격 증명을 포함하므로 브루트 포스 공격에 필수적입니다.

  1. 먼저, 올바른 작업 디렉토리에 있는지 확인합니다 (아직 없는 경우). ~/project 디렉토리는 모든 공격 파일을 저장하여 정리할 곳입니다.
cd ~/project
  1. nano 를 사용하여 passwords.txt라는 새 텍스트 파일을 생성합니다. Nano 는 대부분의 Linux 배포판에 사전 설치된 간단한 텍스트 편집기이며, 초보자에게 적합합니다.
nano passwords.txt
  1. 다음 일반적인 비밀번호를 파일에 추가합니다 (각 줄에 하나씩). 이는 보안 연구에 따르면 가장 자주 사용되는 약한 비밀번호 중 하나입니다.
password
123456
admin
12345678
qwerty
123456789
  1. 다음을 눌러 파일을 저장합니다.
  • Ctrl+O (Write Out) - 변경 사항을 저장합니다.
  • Enter를 눌러 파일 이름을 확인합니다.
  • Ctrl+X를 눌러 nano 를 종료하고 터미널로 돌아갑니다.
  1. 파일의 내용을 표시하여 파일이 올바르게 생성되었는지 확인합니다. cat 명령은 편집기를 열지 않고 파일 내용을 확인하는 빠른 방법입니다.
cat passwords.txt

입력한 비밀번호 목록이 각 줄에 하나씩 표시되어야 합니다. 이 비밀번호 목록은 이후 단계에서 Hydra 를 실행할 때 1 단계의 사용자 이름 목록과 결합됩니다. 두 파일의 형식이 올바르게 지정되면 Hydra 가 공격 중에 가능한 모든 사용자 이름 - 비밀번호 조합을 체계적으로 테스트할 수 있습니다.

일반 자격 증명으로 목록 편집

이 단계에서는 이전 단계에서 생성한 사용자 이름 및 비밀번호 목록에 인증 시스템에서 자주 사용되는 더 많은 일반 자격 증명을 추가하여 향상시킵니다. 이러한 추가는 실제 시스템에 브루트 포스 공격에 취약할 수 있는 기본 또는 일반적으로 사용되는 자격 증명이 있는 경우가 많기 때문에 중요합니다.

  1. 먼저, 자격 증명 파일이 저장된 올바른 작업 디렉토리에 있는지 확인합니다. 이렇게 하면 모든 편집이 올바른 위치에서 수행됩니다.
cd ~/project
  1. nano 텍스트 편집기를 사용하여 편집할 사용자 이름 목록을 엽니다. Nano 는 초보자에게 완벽한 간단한 명령줄 편집기입니다.
nano usernames.txt
  1. 기존 목록에 이러한 추가적인 일반 사용자 이름을 추가합니다. 이는 많은 시스템에서 사용하는 일반적인 기본 계정으로, 테스트에 적합합니다.
sysadmin
webmaster
support
backup
oracle
mysql
  1. Ctrl+O (write out) 를 누른 다음 Enter를 눌러 확인하고 마지막으로 Ctrl+X를 눌러 nano 를 종료하여 파일을 저장합니다. 이러한 키보드 단축키는 명령줄 편집기 작업에 필수적입니다.

  2. 이제 동일한 프로세스를 사용하여 비밀번호 목록을 편집할 수 있습니다.

nano passwords.txt
  1. 기존 목록에 이러한 추가적인 일반 비밀번호를 추가합니다. 이는 사용자가 자주 선택하는 약한 비밀번호이므로 테스트에 포함하는 것이 중요합니다.
letmein
welcome
password1
123123
12345
111111
  1. 동일한 방법으로 비밀번호 파일을 저장합니다: Ctrl+O, Enter, 그리고 Ctrl+X.

  2. 두 파일의 내용을 표시하여 업데이트된 자격 증명이 포함되어 있는지 확인합니다. && echo "---" 부분은 표시될 때 두 파일 사이에 시각적 구분 기호를 추가합니다.

cat usernames.txt && echo "---" && cat passwords.txt

이제 두 목록 모두 더 포괄적인 자격 증명 세트를 포함해야 합니다. 이러한 향상된 목록은 Hydra 로 인증 시스템을 테스트할 때 더 나은 범위를 제공합니다. 이는 실제 시나리오에서 자주 발견되는 기본 시스템 계정과 일반적으로 사용되는 약한 비밀번호를 모두 포함하기 때문입니다.

접근 가능한 디렉토리에 목록 저장

이 단계에서는 전용 디렉토리를 생성하고 올바른 파일 권한을 설정하여 Hydra 공격을 위해 자격 증명 목록을 적절하게 구성하는 방법을 배웁니다. 이는 Hydra 가 비밀번호 크래킹 (password cracking) 시도 중에 이러한 파일에 액세스할 수 있어야 하기 때문에 중요합니다.

  1. 먼저, 아직 없는 경우 프로젝트 디렉토리로 이동합니다. 이렇게 하면 모든 파일이 한 곳에 정리됩니다.
cd ~/project
  1. 자격 증명 파일을 저장하기 위해 특별히 hydra_lists라는 새 디렉토리를 생성합니다. 별도의 디렉토리를 사용하면 작업 공간을 깨끗하게 유지하고 파일을 더 쉽게 찾을 수 있습니다.
mkdir hydra_lists
  1. 사용자 이름과 비밀번호 파일을 모두 이 새 디렉토리로 이동합니다. mv 명령은 파일을 현재 위치에서 새 디렉토리로 물리적으로 이동합니다.
mv usernames.txt passwords.txt hydra_lists/
  1. 디렉토리 내용을 나열하여 파일이 성공적으로 이동되었는지 확인합니다. -l 플래그는 파일 권한을 포함한 자세한 정보를 표시합니다.
ls -l hydra_lists/

usernames.txtpasswords.txt가 모두 권한과 함께 나열되어야 합니다.

  1. Hydra 가 이러한 파일을 읽을 수 있도록 적절한 권한을 설정합니다. 644 권한은 소유자가 읽기/쓰기를 할 수 있고 다른 사용자는 읽기만 할 수 있음을 의미합니다.
chmod 644 hydra_lists/*
  1. 디렉토리를 다시 확인하여 권한이 올바른지 확인합니다. -rw-r--r-- 권한 문자열은 파일이 올바르게 구성되었음을 나타냅니다.
ls -l hydra_lists/

출력은 두 파일 모두 -rw-r--r--를 표시해야 합니다. 즉, 모든 사용자가 읽을 수 있지만 소유자만 쓸 수 있습니다. 이는 Hydra 공격에 사용되는 자격 증명 파일에 대한 이상적인 권한 설정입니다.

Hydra 에서 파일 로드 확인

이 마지막 단계에서는 이전 단계에서 생성한 자격 증명 파일을 Hydra 가 제대로 읽고 처리할 수 있는지 확인합니다. 이는 실제 공격을 시작하기 전에 중요한 확인 사항입니다. 사용자 이름 및 비밀번호 목록이 올바르게 형식화되어 있고 Hydra 에서 액세스할 수 있는지 확인하기 때문입니다.

  1. 먼저, 자격 증명 파일이 저장된 올바른 작업 디렉토리에 있는지 확인합니다. Hydra 가 사용자 이름 및 비밀번호 목록을 어디에서 찾아야 하는지 알아야 하므로 이는 매우 중요합니다.
cd ~/project
  1. 이제 자세한 출력을 위해 -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
  1. 명령이 성공적으로 실행되면 다음과 유사한 출력이 표시됩니다. 여기에서 중요한 정보는 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
  1. 출력을 확인한 후 Ctrl+C를 눌러 테스트를 중지합니다. 파일 로드만 테스트하므로 완료할 필요가 없습니다.

  2. 두 파일이 제대로 읽혔는지 확인하려면 출력에 표시된 로그인 시도 횟수를 확인합니다. 이 숫자는 목록에 있는 사용자 이름 수에 비밀번호 수를 곱한 값과 같아야 합니다. 예를 들어, 사용자 이름이 6 개이고 비밀번호가 7 개인 경우 42 번의 로그인 시도 (6×7=42) 가 표시되어야 합니다. 이 곱셈은 Hydra 가 파일에서 가능한 모든 자격 증명 쌍을 올바르게 결합하고 있음을 확인합니다.

요약

이 랩에서는 Linux 에서 텍스트 파일을 생성하고 관리하여 Hydra 공격을 위한 사용자 이름 및 비밀번호 목록을 준비하는 방법을 배웠습니다. 연습에서는 nano 를 사용하여 usernames.txtpasswords.txt를 생성하고, 일반적인 자격 증명으로 채우고, cat 명령으로 내용을 확인하는 방법을 다루었습니다.

또한 디렉토리 탐색, 텍스트 편집 및 파일 유효성 검사를 포함한 필수 Linux 파일 작업을 연습했습니다. 이러한 기술은 효과적인 무차별 대입 공격 (brute-force attacks) 을 설정하기 위한 기반을 형성합니다. 올바르게 형식화된 자격 증명 목록은 Hydra 의 보안 테스트 기능에 매우 중요하기 때문입니다.