이 랩에서는 대상 시스템에서 FTP 포트 번호를 사용자 정의하는 방법과 Hydra 를 사용하여 해당 사용자 정의 포트에서 FTP 서비스에 대한 무차별 대입 공격을 수행하는 방법을 배우게 됩니다. 이는 표준이 아닌 FTP 포트로 구성된 시스템의 보안을 평가해야 하는 침투 테스터 및 보안 전문가에게 유용한 기술입니다.
이 랩에서는 vsftpd.conf 파일을 수정하고 FTP 서비스를 다시 시작하여 LabEx VM 에서 FTP 서버가 표준이 아닌 포트에서 수신 대기하도록 구성하는 과정을 다룹니다. 그런 다음 netstat 명령을 사용하여 FTP 서버가 새 포트에서 수신 대기하고 있는지 확인합니다. 마지막으로, Hydra 를 -s 옵션과 함께 사용하여 사용자 정의 포트를 지정하고 FTP 공격을 실행하여 Hydra 가 구성된 포트에서 FTP 서비스에 성공적으로 연결할 수 있는지 확인합니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 97%입니다.학습자들로부터 95%의 긍정적인 리뷰율을 받았습니다.
비표준 포트에서 FTP 구성
이 단계에서는 LabEx VM 에서 FTP 서버가 표준이 아닌 포트에서 수신 대기하도록 구성합니다. 기본적으로 FTP 는 포트 21 을 사용합니다. FTP 포트를 변경하면 기본 포트를 대상으로 하는 자동화된 공격의 위험을 줄이는 데 도움이 될 수 있습니다.
먼저, FTP 구성 파일을 편집해 보겠습니다. LabEx VM 에 사전 설치된 nano 편집기를 사용합니다.
sudo nano /etc/vsftpd.conf
이 명령은 nano 편집기에서 vsftpd.conf 파일을 엽니다.
다음 줄을 파일에 추가합니다.
listen_port=2121
listen_port 줄이 존재하지 않는 경우 파일에 추가합니다. 파일의 맨 위에 추가하는 것이 좋습니다.
변경 사항을 적용한 후 Ctrl+X를 누르고, 확인을 위해 Y를 누른 다음, Enter를 눌러 동일한 파일 이름으로 파일을 저장합니다.
다음으로, 변경 사항을 적용하려면 FTP 서비스를 다시 시작해야 합니다.
sudo service vsftpd restart
이 명령은 FTP 서비스를 다시 시작합니다. 서비스가 다시 시작되었음을 나타내는 출력을 볼 수 있습니다.
마지막으로, FTP 서버가 이제 새 포트에서 수신 대기하고 있는지 확인해 보겠습니다. netstat 명령을 사용하여 수신 대기 포트를 확인할 수 있습니다.
sudo netstat -tulnp | grep vsftpd
이 명령은 모든 TCP, UDP, 수신 대기 및 프로세스 정보를 표시한 다음 "vsftpd"를 포함하는 줄만 표시하도록 출력을 필터링합니다. vsftpd가 포트 2121 (또는 선택한 포트) 에서 수신 대기하고 있음을 나타내는 줄이 표시되어야 합니다.
예시 출력:
tcp6 0 0 :::2121 :::* LISTEN 1027/vsftpd
출력에 새 포트 번호가 표시되면 FTP 서버가 이제 새 포트에서 수신 대기하고 있음을 의미합니다.
-s 옵션으로 포트 지정
이 단계에서는 ftp 명령을 사용할 때 표준이 아닌 포트를 지정하는 방법을 배우게 됩니다. 이전 단계에서 FTP 서버의 수신 대기 포트를 기본 21 에서 사용자 정의 포트 (예: 2121) 로 변경했기 때문에 이는 매우 중요합니다. 이제 서버에 연결할 때 ftp 클라이언트에게 사용할 포트를 알려줘야 합니다.
ftp 명령은 포트 번호를 지정하기 위해 -p 옵션을 제공합니다. 그러나 Hydra 는 포트를 지정하기 위해 -s 옵션을 사용합니다. 다음 단계에서 Hydra 공격을 준비할 때 이 차이점을 이해하는 것이 중요합니다.
ftp 명령과 -p 옵션을 사용하여 FTP 서버에 연결하여 연결을 확인해 보겠습니다. localhost를 LabEx VM 의 IP 주소로 바꿉니다. 이 랩을 동일한 VM 에서 실행하는 경우 localhost 또는 127.0.0.1을 사용할 수 있습니다.
ftp localhost -p 2121
사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. Ctrl+C를 눌러 종료합니다.
이제 Hydra 가 포트를 지정하는 방식을 시뮬레이션해 보겠습니다. 아직 Hydra 를 실제로 사용하지는 않지만, 이 단계는 구문을 이해하는 데 중요합니다. Hydra 는 -s 옵션을 사용하여 포트를 지정합니다.
포트를 지정하기 위한 Hydra 의 구문은 표준 ftp 명령과 다릅니다. Hydra 는 -s 다음에 포트 번호를 사용합니다. 예를 들어, Hydra 를 사용하여 포트 2121 에서 FTP 서비스를 공격하는 경우 Hydra 명령에 -s 2121을 포함합니다.
이를 시연하기 위해 가짜 Hydra 명령을 만들어 보겠습니다. 실행하지는 않지만 올바른 구문을 보여줍니다.
Hydra 가 올바른 비밀번호를 찾지 못하면 목록의 모든 비밀번호를 시도한 다음 성공적인 로그인을 표시하지 않고 종료됩니다.
중요한 보안 참고 사항: 이 랩은 교육 목적으로만 사용됩니다. 명시적인 허가 없이 Hydra 를 사용하여 시스템을 공격하지 마십시오. 컴퓨터 시스템에 무단으로 접근하는 것은 불법이며 비윤리적입니다.
올바른 포트 연결 검증
이 마지막 단계에서는 Hydra 공격 시도 후에도 사용자 정의 포트에서 FTP 서버에 계속 연결할 수 있는지 확인합니다. 이는 FTP 서비스가 예상대로 실행되고 있으며 지정된 포트를 사용하여 액세스할 수 있음을 확인합니다.
-p 옵션과 함께 ftp 명령을 사용하여 사용자 정의 포트에서 FTP 서버에 연결합니다. localhost를 LabEx VM 의 IP 주소로 바꿉니다. 이 랩을 동일한 VM 에서 실행하는 경우 localhost 또는 127.0.0.1을 사용할 수 있습니다.
ftp -p 2121 localhost
사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 설정에서 생성한 자격 증명을 사용합니다.
사용자 이름: ftpuser
비밀번호: password123
연결에 성공하면 FTP 서버에 로그인됩니다.
연결할 수 없는 경우 다음 사항을 다시 확인하십시오.
FTP 서비스가 여전히 실행 중인지 확인합니다. 첫 번째 단계에서 했던 것처럼 netstat -tulnp | grep vsftpd 명령을 사용하여 확인할 수 있습니다.
/etc/vsftpd.conf 파일에서 FTP 포트가 여전히 2121(또는 선택한 포트) 로 설정되어 있는지 확인합니다.
사용자 정의 포트에 대한 연결을 차단하는 방화벽 규칙이 없는지 확인합니다. (참고: LabEx VM 환경은 일반적으로 기본적으로 방화벽이 활성화되어 있지 않지만 실제 시나리오를 위해 이를 염두에 두는 것이 좋습니다.)
올바른 사용자 이름과 비밀번호를 사용하고 있는지 확인합니다.
성공적인 연결은 FTP 서버가 사용자 정의 포트에서 실행 중이며 -p 옵션과 함께 ftp 명령을 사용하여 연결할 수 있음을 확인합니다. 또한 Hydra 공격이 성공하지 못했더라도 FTP 서비스를 방해하지 않았음을 확인합니다.
이것으로 랩이 완료되었습니다. 비표준 포트에서 FTP 를 성공적으로 구성하고, Hydra 에서 -s 옵션을 사용하여 포트를 지정하는 방법을 배우고, 기본적인 Hydra 공격을 실행하고, 올바른 포트에 대한 연결을 확인했습니다.
요약
이 랩에서는 LabEx VM 의 FTP 서버가 기본 포트 21 대신 비표준 포트, 특히 포트 2121 에서 수신 대기하도록 구성했습니다. 여기에는 nano를 사용하여 /etc/vsftpd.conf 파일을 편집하여 listen_port 지시문을 수정하거나 추가하는 작업이 포함되었으며, 그 다음 sudo service vsftpd restart를 사용하여 FTP 서비스를 다시 시작했습니다.
마지막으로, netstat -tulnp | grep vsftpd 명령을 사용하여 수신 대기 포트를 확인하고 vsftpd가 포트 2121 과 연결되어 있는지 확인하여 FTP 서버가 실제로 새 포트에서 수신 대기하고 있는지 확인했습니다.