소개
이 랩에서는 중단 후 이전 Hydra 세션을 복원하는 방법을 배우겠습니다. 이는 간단한 비밀번호 목록을 사용하여 localhost의 ssh 서비스에 대한 중단된 Hydra 공격을 시뮬레이션하여 수행됩니다. 그런 다음 -R 옵션을 사용하여 세션을 복원하고 공격이 마지막 지점부터 재개되는지 확인합니다.
이 랩에서는 비밀번호 목록을 생성하고, ssh 서비스를 공격하는 Hydra 명령을 구성하고, Ctrl+C로 공격을 중단한 다음, -R 옵션을 사용하여 세션을 복원하는 과정을 포함합니다. 마지막으로, 복원된 세션을 새로운 옵션으로 수정하는 방법을 살펴보겠습니다.
중단된 Hydra 공격 시뮬레이션
이 단계에서는 중단된 Hydra 공격을 시뮬레이션합니다. 이는 -R 옵션을 사용하여 세션을 복원하는 방법을 이해하는 데 중요한 단계입니다. Hydra 공격을 시작한 다음 수동으로 중단하여 네트워크 문제 또는 기타 예기치 않은 상황으로 인해 공격이 중단될 수 있는 실제 시나리오를 모방합니다.
먼저, 간단한 비밀번호 목록을 미리 보겠습니다. 이 목록에는 Hydra 가 사용을 시도할 몇 가지 일반적인 비밀번호가 포함됩니다.
cd ~/project
head -n 5 passwords.txt
다음 비밀번호를 파일에 추가합니다.
password
123456
qwerty
admin
1234567890
다음으로, 공격할 대상이 필요합니다. 시연 목적으로 localhost의 ssh 서비스를 사용합니다. LabEx VM 에서 ssh가 실행 중인지 확인하십시오. 실행 중이지 않은 경우 일반적으로 sudo service ssh start로 시작할 수 있습니다. 그러나 이것은 Docker 컨테이너이므로 systemctl 또는 service를 사용할 수 없을 수 있습니다. 이 경우 실제 공격을 건너뛰고 명령을 생성하고 중단하는 데 집중할 수 있습니다. 이 연습을 위해 ssh가 실행 중이라고 가정하겠습니다.
sudo service ssh start
sudo service ssh status
이제 Hydra 명령을 구성해 보겠습니다. ssh 모듈을 사용하고, 사용자 이름 labex를 지정하고, passwords.txt 파일을 사용하고, localhost를 대상으로 합니다. 또한 동시 작업 수를 1 로 제한하여 중단을 더 쉽게 관찰할 수 있도록 -t 1 옵션을 추가합니다.
hydra -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost
이 명령은 localhost의 ssh 서비스에 대한 Hydra 공격을 시작하여 ~/project/passwords.txt의 비밀번호를 사용하여 사용자 labex로 로그인하려고 시도합니다.
공격을 몇 초 동안 실행합니다 (예: 5-10 초). 실행 중일 때 Ctrl+C를 눌러 공격을 중단합니다.
다음과 유사한 출력을 볼 수 있습니다 (정확한 출력은 시스템 속도와 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-04-02 13:56:44
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[ATTEMPT] target localhost - login "labex" - pass "password" - 1 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "123456" - 2 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.

^C는 Ctrl+C를 눌러 프로세스를 중단했음을 나타냅니다. Hydra 는 비밀번호 시도를 중단합니다.
이 중단은 공격이 예기치 않게 중단되는 시나리오를 시뮬레이션합니다. 다음 단계에서는 -R 옵션을 사용하여 이 중단된 세션을 재개하는 방법을 배우겠습니다.
-R 옵션으로 세션 복원
이전 단계에서는 중단된 Hydra 공격을 시뮬레이션했습니다. 이제 -R 옵션을 사용하여 중단된 지점부터 세션을 복원합니다. Hydra 는 자동으로 진행 상황을 현재 디렉토리에 있는 .restore 파일에 저장합니다. -R 옵션은 Hydra 에게 이 파일을 읽고 공격을 계속하도록 지시합니다.
세션을 복원하려면 이전과 동일한 Hydra 명령을 실행하되 -R 옵션을 추가하기만 하면 됩니다.
hydra -R -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost
이제 Hydra 는 hydra.restore 파일 (자동으로 생성됨) 을 읽고 중단 전에 도달한 마지막 지점부터 공격을 재개합니다. Hydra 가 ~/project/passwords.txt 파일에서 비밀번호를 계속 시도하는 것을 볼 수 있습니다.
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
[WARNING] options after -R are now honored (since v8.6)
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:57:58
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[RE-ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "admin" - 4 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "1234567890" - 5 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.

공격을 몇 초 더 실행합니다. Hydra 가 이전 단계에서 이미 시도한 비밀번호를 건너뛰는 것을 볼 수 있습니다.
-R 옵션은 대규모 비밀번호 목록이나 느린 네트워크 연결이 있는 상황에서 매우 유용합니다. 처음부터 시작하지 않고도 공격을 재개할 수 있으므로 시간과 리소스를 절약할 수 있습니다.
hydra.restore 파일은 Hydra 가 진행됨에 따라 자동으로 업데이트된다는 점에 유의하는 것이 중요합니다. 공격을 다시 중단하면 동일한 -R 명령을 사용하여 새로운 중단 지점부터 재개할 수 있습니다.
요약
이 랩에서는 세션을 복원하는 방법을 이해하기 위해 localhost 의 SSH 서비스에 대한 중단된 Hydra 공격을 시뮬레이션했습니다. 비밀번호 목록을 만들고 'labex' 사용자를 대상으로 하는 Hydra 공격을 시작한 다음 Ctrl+C 를 사용하여 수동으로 프로세스를 중단했습니다.
이 중단을 통해 중단된 세션을 복원하고 중단된 지점부터 공격을 계속하는 방법과 복원된 세션을 새로운 옵션으로 수정하는 방법을 배우는 다음 단계를 준비할 수 있었습니다.


