Hydra 복구 파일 무시하기

HydraBeginner
지금 연습하기

소개

이 실습에서는 Hydra 가 중단된 공격을 어떻게 처리하고 효과적으로 재개하는지 배우게 됩니다. 로컬호스트의 SSH 서비스에 대한 중단된 Hydra 공격을 시뮬레이션하여 간단한 사용자 이름과 비밀번호 목록을 생성하고, 공격을 시작한 후 Ctrl+C를 사용하여 수동으로 중단합니다.

이 실습에서는 -R 옵션을 사용하여 공격을 다시 시작하고 Hydra 가 복구 파일을 어떻게 처리하는지 관찰하는 방법을 안내합니다. 이어서 -I 옵션을 -R과 함께 사용하여 복구 파일을 무시하고 새로 시작하는 방법을 배웁니다. 완료된 공격과 중단된 공격의 차이점을 복구 파일 생성 측면에서 이해하게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 94%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

테스트 파일 생성 및 초기 공격 실행

이 단계에서는 필요한 테스트 파일을 생성하고 초기 Hydra 공격을 실행하여 기본 동작을 이해합니다. 이를 통해 Hydra 가 공격이 정상적으로 완료될 때와 중단될 때 어떻게 작동하는지 이해하는 데 도움이 됩니다.

먼저 프로젝트 디렉토리로 이동합니다.

cd ~/project

이제 간단한 비밀번호 목록을 생성합니다. nano를 사용하여 현재 디렉토리에 passwords.txt 파일을 생성합니다.

nano passwords.txt

파일에는 각 줄에 하나씩 몇 가지 일반적인 비밀번호를 추가합니다. 예를 들어:

password
123456
qwerty

Ctrl+X, Y, Enter 키 순서로 파일을 저장하고 파일 이름을 확인합니다.

다음으로 간단한 사용자 이름 파일을 생성합니다. nano를 사용하여 같은 디렉토리에 users.txt 파일을 생성합니다.

nano users.txt

파일에 단일 사용자 이름을 추가합니다.

root

파일을 저장하고 이전 단계와 같은 방법으로 nano를 종료합니다.

이제 정상적인 동작을 확인하기 위해 완전한 Hydra 공격을 실행합니다.

hydra -V -L users.txt -P passwords.txt localhost ssh

이 명령어를 자세히 살펴보겠습니다.

  • -V: 자세한 공격 시도를 보여주는 상세 모드를 활성화합니다.
  • -L users.txt: Hydra 가 users.txt 파일을 사용자 이름에 사용하도록 지시합니다.
  • -P passwords.txt: Hydra 가 passwords.txt 파일을 비밀번호에 사용하도록 지시합니다.
  • localhost: 대상 호스트를 localhost로 지정합니다.
  • ssh: 공격할 서비스를 SSH 로 지정합니다.

다음과 유사한 출력을 볼 수 있습니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 09:56:06
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 3 tasks per 1 server, overall 3 tasks, 3 login tries (l:1/p:3), ~1 try per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 3 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 3 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "qwerty" - 3 of 3 [child 0] (0/0)
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-05-30 09:56:09

공격이 정상적으로 완료되면 Hydra 는 복구 파일을 생성하지 않습니다. 복구 파일은 공격이 중단될 때만 생성됩니다.

중단된 공격 시뮬레이션

이 단계에서는 복구 파일을 생성하기 위해 중단된 Hydra 공격을 시뮬레이션합니다. Hydra 는 공격이 정상적으로 완료될 때가 아니라 중단될 때만 복구 파일을 생성하기 때문입니다.

중단 가능한 더 오래 실행되는 공격을 생성하기 위해 비밀번호 목록을 확장해 보겠습니다. passwords.txt 파일을 다시 엽니다.

nano passwords.txt

공격 시간을 늘리기 위해 더 많은 비밀번호를 추가합니다.

password
123456
qwerty
admin
root
test
guest
user
login
pass
secret

파일을 저장하고 nano를 종료합니다.

이제 Hydra 공격을 실행하여 중단하기 쉽도록 속도를 늦춥니다.

hydra -V -L users.txt -P passwords.txt -t 1 -W 2 localhost ssh

추가 옵션은 다음과 같습니다.

  • -V: 자세한 공격 시도를 보여주는 상세 모드를 활성화합니다.
  • -t 1: 1 개의 작업만 사용 (실행 속도 느림)
  • -W 2: 연결 시도 간 2 초 대기

중요: 공격이 실행 중일 때 (Hydra 가 서로 다른 사용자 이름/비밀번호 조합을 시도하는 것을 볼 수 있습니다), 몇 번의 시도 후 Ctrl+C를 눌러 중단합니다.

다음과 유사한 출력을 볼 수 있습니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:00:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 1 task per 1 server, overall 1 tasks, 11 login tries (l:1/p:11), ~11 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 11 [child 0] (0/0)
^C
[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written, you can resume with: hydra -R

^C는 프로세스를 중단했음을 나타내며, 중요하게도 복구 파일이 생성되었음을 나타내는 메시지를 볼 수 있습니다.

-R 옵션으로 Hydra 재시작 및 동작 관찰

이 단계에서는 이전 단계에서 중단된 Hydra 공격을 -R 옵션을 사용하여 다시 시작합니다. 이 옵션은 Hydra 가 복구 파일을 사용하여 공격을 중단했던 지점에서 다시 시작하도록 지시합니다.

공격을 다시 시작하려면 터미널에서 다음 명령어를 실행합니다.

hydra -R

이 명령어는 -R 옵션만 사용합니다.

  • -R: 복구 파일을 사용하여 이전에 중단되거나 충돌한 세션을 다시 시작합니다.

출력을 관찰합니다. Hydra 가 복구 파일을 읽고 중단했던 지점에서 계속 진행하는 것을 볼 수 있습니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:05:00
[DATA] max 1 task per 1 server, overall 1 tasks, 9 login tries (l:1/p:9), ~9 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "qwerty" - 3 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "admin" - 4 of 11 [child 0] (0/0)
...

Hydra 가 중단되었던 지점 (이 예에서는 "qwerty"를 3 번째 시도로 시작) 에서 다시 시작하고 처음부터 시작하지 않는 것을 확인하십시오.

-I 옵션으로 복구 파일 무시하기

이 단계에서는 -I 옵션을 사용하여 기존 복구 파일을 무시하고 새 공격을 시작합니다. 이는 이전 세션 데이터에 관계없이 공격을 처음부터 다시 시작하려는 경우 유용합니다.

먼저 복구 파일이 없는 경우 -R을 사용했을 때 발생하는 오류를 확인해 보겠습니다.

rm -f hydra.restore
hydra -V -R -L users.txt -P passwords.txt localhost ssh

오류 메시지가 표시됩니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
[ERROR] restore file (./hydra.restore) not found - No such file or directory

이제 공격을 중단하여 다시 복구 파일을 생성해 보겠습니다.

hydra -V -L users.txt -P passwords.txt -t 1 -W 2 localhost ssh

몇 번의 시도 후 Ctrl+C를 눌러 공격을 중단하여 복구 파일을 생성합니다.

이제 복구 파일을 무시하기 위해 다음 명령어를 실행합니다.

hydra -V -I -L users.txt -P passwords.txt localhost ssh

이 명령어에는 -I 옵션이 포함되어 있습니다.

  • -I: Hydra 가 기존 복구 파일을 무시하고 새 복구 파일을 생성하지 않도록 지시합니다.

출력을 관찰합니다. Hydra 가 기존 복구 파일을 무시하고 처음부터 시작하는 것을 볼 수 있습니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:10:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 3 tasks per 1 server, overall 3 tasks, 11 login tries (l:1/p:11), ~4 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 11 [child 0] (0/0)
...

기존 복구 파일과 상관없이 공격이 첫 번째 비밀번호 ("password") 부터 시작하는 것을 확인하십시오.

-I 및 -R 옵션 함께 사용하기

이 단계에서는 -I-R 옵션을 결합했을 때 발생하는 상황을 이해합니다. 이 결합은 Hydra 가 상충되는 지시를 어떻게 처리하는지 보여줍니다.

다음 명령어를 실행합니다.

hydra -V -I -R -L users.txt -P passwords.txt localhost ssh

이 명령어에는 다음과 같은 옵션이 포함되어 있습니다.

  • -V: 자세한 공격 시도를 보여주는 상세 모드를 활성화합니다.
  • -I: 기존 복구 파일을 무시합니다.
  • -R: 복구 파일에서 재개합니다.

다음과 유사한 오류 메시지가 표시됩니다.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
[ERROR] restore file (./hydra.restore) not found - No such file or directory

이러한 현상은 다음과 같습니다.

  1. -R 옵션은 Hydra 가 복구 파일을 찾도록 지시합니다.
  2. -I 옵션은 Hydra 가 복구 파일을 무시하도록 지시합니다.
  3. 두 옵션을 함께 사용하면 Hydra 는 -R 때문에 복구 파일을 읽으려고 시도하지만, 파일이 존재하지 않거나 -I 때문에 무시되면 오류가 발생합니다.

이는 -I-R이 상충되는 옵션이며 함께 사용해서는 안 된다는 것을 보여줍니다. 대신 다음과 같이 사용해야 합니다.

  • 복구 파일에서 재개하려면 -R만 사용합니다.
  • 복구 파일을 무시하고 새로 시작하려면 -I만 사용합니다.
  • 일반 공격을 실행하려면 두 옵션을 모두 사용하지 않습니다.

요약

이 실습에서는 Hydra 가 중단된 공격과 복구 파일을 어떻게 처리하는지 배웠습니다. 주요 내용은 다음과 같습니다.

  1. 복구 파일은 공격이 중단될 때만 생성됩니다. - 정상적으로 완료된 공격은 복구 파일을 생성하지 않습니다.
  2. -R 옵션은 중단된 공격을 재개합니다. - hydra.restore 파일을 읽어 공격이 중단된 지점에서 계속합니다.
  3. -I 옵션은 복구 파일을 무시합니다. - 기존 세션 데이터를 무시하고 Hydra 가 새 공격을 시작하도록 강제합니다.
  4. -I-R을 결합하면 충돌이 발생합니다. - 이러한 옵션은 서로 반대되는 목적을 가지고 있으며 함께 사용해서는 안 됩니다.
  5. 적절한 중단이 중요합니다. - 복구 기능을 테스트하려면 Ctrl+C를 사용하여 공격을 실제로 중단해야 합니다. 정상적으로 완료되도록 두지 마십시오.

이러한 이해는 실제 상황에서 장기간 실행되는 Hydra 공격을 관리하는 데 필수적입니다. 공격을 일시 중지하고 다시 시작하거나 필요에 따라 새로 시작해야 할 수도 있습니다.