이 단계에서는 이전에 구성한 IPv6 주소에서 실행 중인 SSH 서비스에 대한 브루트포스 공격을 수행하기 위해 Hydra 를 사용합니다. Hydra 는 SSH 를 포함한 다양한 프로토콜을 지원하는 강력한 암호 해독 도구입니다.
시작하기 전에 간단한 암호 목록을 생성합니다. 이 목록에는 Hydra 가 SSH 서비스에 인증하기 위해 시도할 암호가 포함됩니다.
-
SSH 서비스 시작:
먼저 시스템에서 SSH 서비스가 실행 중인지 확인해야 합니다. 다음 명령어를 실행하여 SSH 서비스를 시작합니다.
sudo systemctl start ssh
SSH 서비스가 실행 중인지 확인하려면 상태를 확인합니다.
sudo systemctl status ssh
출력에는 서비스가 활성화되고 실행 중임을 나타내야 합니다.
-
SSH 가 IPv6 에서 수신하도록 구성:
기본적으로 SSH 는 IPv4 주소에서만 수신할 수 있습니다. IPv6 에서도 수신하도록 구성해야 합니다. 먼저 SSH 가 현재 어떤 주소에서 수신하고 있는지 확인합니다.
ss -tlnp | grep :22
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*와 같은 출력이 나타나면 SSH 가 IPv4 에서만 수신하고 있음을 의미합니다.
이제 SSH 구성 파일을 편집하여 IPv6 수신을 활성화합니다.
sudo nano /etc/ssh/sshd_config
#AddressFamily any 또는 AddressFamily inet가 포함된 줄을 찾아 다음과 같이 변경합니다.
AddressFamily any
줄이 없으면 추가합니다. 이렇게 하면 SSH 가 IPv4 와 IPv6 주소 모두에서 수신하도록 지정합니다.
Ctrl + X, Y, Enter를 눌러 파일을 저장합니다.
변경 사항을 적용하려면 SSH 서비스를 다시 시작합니다.
sudo systemctl restart ssh
SSH 가 이제 IPv4(0.0.0.0:22) 와 IPv6([::]:22) 모두에서 수신하고 있는지 확인합니다.
ss -tlnp | grep :22
-
암호 목록 생성:
LabEx VM 의 터미널을 열고 현재 ~/project 디렉토리에 있습니다. nano 편집기를 사용하여 이 디렉토리에 passwords.txt라는 파일을 만듭니다.
nano passwords.txt
다음 암호를 파일의 각 줄에 하나씩 추가합니다.
password
123456
qwerty
admin
labex
Ctrl + X, Y, Enter를 눌러 파일을 저장합니다.
-
Hydra 를 사용하여 IPv6 SSH 서비스 공격:
이제 Hydra 를 사용하여 SSH 서비스를 공격합니다. -6 옵션을 사용하여 IPv6 주소를 대상으로 지정합니다. 공격할 사용자 이름 (예: labex), 생성한 암호 목록 (passwords.txt), SSH 서버의 IPv6 주소 (2001:db8:1::1) 를 지정합니다.
다음 명령어를 실행합니다.
hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]
이 명령어를 분석해 보겠습니다.
hydra: Hydra 도구를 실행하는 명령어입니다.
-6: Hydra 가 IPv6 를 사용해야 함을 지정합니다.
-l labex: 공격할 사용자 이름을 지정합니다. 이 경우 labex 사용자를 공격합니다.
-P passwords.txt: 사용할 암호 목록을 지정합니다. 이 경우 현재 ~/project 디렉토리에 생성한 passwords.txt 파일을 사용합니다.
ssh://[2001:db8:1::1]: 대상 SSH 서비스를 지정합니다. ssh:// 접두사는 SSH 서비스를 공격함을 나타내고, [2001:db8:1::1]은 서버의 IPv6 주소입니다 (Hydra 에서 IPv6 주소에 대괄호를 사용해야 합니다).
Hydra 는 이제 passwords.txt 파일에 있는 암호를 SSH 서비스에 대해 시도하기 시작합니다. Hydra 가 유효한 암호를 찾으면 자격 증명을 표시합니다. 암호가 발견되지 않으면 다음과 같은 출력이 나타날 수 있습니다.
(Hydra 출력 생략)
암호가 발견되지 않으면 passwords.txt 파일에 더 많은 일반적인 암호를 추가해 볼 수 있습니다. -V 옵션을 사용하여 각 시도를 보여주는 자세한 출력을 볼 수도 있습니다.
hydra -6 -V -l labex -P passwords.txt ssh://[2001:db8:1::1]
Hydra 가 암호를 성공적으로 찾으면 다음과 같은 출력이 나타납니다.
(Hydra 출력 생략)
이 출력은 Hydra 가 labex 사용자의 암호를 성공적으로 해독했음을 나타냅니다.
중요 참고 사항: 권한 없이 시스템에 대한 암호 브루트포스 공격은 불법적이고 윤리적이지 않습니다. 이 실습은 교육 목적으로만 제공되며, 소유하거나 테스트 허가를 받은 시스템에서만 이러한 기술을 사용해야 합니다.