Hydra 포트 번호 사용자 정의

HydraBeginner
지금 연습하기

소개

이 랩에서는 대상 시스템에서 FTP 포트 번호를 사용자 정의하는 방법과 Hydra 를 사용하여 해당 사용자 정의 포트에서 FTP 서비스에 대한 무차별 대입 공격을 수행하는 방법을 배우게 됩니다. 이는 표준이 아닌 FTP 포트로 구성된 시스템의 보안을 평가해야 하는 침투 테스터 및 보안 전문가에게 유용한 기술입니다.

이 랩에서는 vsftpd.conf 파일을 수정하고 FTP 서비스를 다시 시작하여 LabEx VM 에서 FTP 서버가 표준이 아닌 포트에서 수신 대기하도록 구성하는 과정을 다룹니다. 그런 다음 netstat 명령을 사용하여 FTP 서버가 새 포트에서 수신 대기하고 있는지 확인합니다. 마지막으로, Hydra 를 -s 옵션과 함께 사용하여 사용자 정의 포트를 지정하고 FTP 공격을 실행하여 Hydra 가 구성된 포트에서 FTP 서비스에 성공적으로 연결할 수 있는지 확인합니다.

비표준 포트에서 FTP 구성

이 단계에서는 LabEx VM 에서 FTP 서버가 표준이 아닌 포트에서 수신 대기하도록 구성합니다. 기본적으로 FTP 는 포트 21 을 사용합니다. FTP 포트를 변경하면 기본 포트를 대상으로 하는 자동화된 공격의 위험을 줄이는 데 도움이 될 수 있습니다.

먼저, FTP 구성 파일을 편집해 보겠습니다. LabEx VM 에 사전 설치된 nano 편집기를 사용합니다.

sudo nano /etc/vsftpd.conf

이 명령은 nano 편집기에서 vsftpd.conf 파일을 엽니다.

다음 줄을 파일에 추가합니다.

listen_port=2121

add listen_port

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

check FTP port

출력에 새 포트 번호가 표시되면 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 -l ftpuser -P ~/project/password.txt localhost ftp -s 2121

hydra syntax

여기서 핵심은 -s 2121 부분입니다. 이 부분은 Hydra 에게 포트 2121 에서 FTP 서비스에 연결하도록 지시합니다.

요약하면, 표준 ftp 명령은 -p를 사용하여 포트를 지정하는 반면, Hydra 는 -s를 사용합니다. 이 차이점을 이해하는 것은 다음 단계에서 Hydra 를 사용하여 FTP 공격을 실행할 때 매우 중요합니다.

사용자 지정 포트에서 FTP 공격 실행

이 단계에서는 Hydra 를 사용하여 첫 번째 단계에서 구성한 표준이 아닌 포트에서 실행되는 FTP 서비스에 대해 무차별 대입 공격을 수행합니다. 설정 단계에서 생성된 비밀번호 목록을 사용합니다.

이제 Hydra 공격을 시작할 준비가 되었습니다. localhost를 LabEx VM 의 IP 주소로 바꿉니다. 이 랩을 동일한 VM 에서 실행하는 경우 localhost 또는 127.0.0.1을 사용할 수 있습니다.

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121 -vV

이 명령을 분석해 보겠습니다.

  • hydra: Hydra 도구를 실행하는 명령입니다.
  • -l ftpuser: 공격할 사용자 이름을 지정합니다.
  • -P ~/project/password.txt: 설정 중에 생성된 비밀번호 목록 파일의 경로를 지정합니다.
  • localhost: 대상 IP 주소를 지정합니다. localhost를 실제 IP 주소로 바꿉니다.
  • ftp: 공격할 서비스를 지정합니다 (이 경우 FTP).
  • -s 2121: 포트 번호를 지정합니다. 첫 번째 단계에서 FTP 포트를 2121 로 변경했기 때문에 이는 매우 중요합니다.
  • -vV: 자세한 모드를 활성화하여 로그인 시도를 실시간으로 표시합니다.

명령을 실행합니다. Hydra 는 지정된 포트에서 ~/project/password.txt 파일의 서로 다른 비밀번호를 FTP 서비스에 대해 시도하기 시작합니다.

Hydra 가 올바른 비밀번호를 찾으면 성공적인 로그인 정보를 표시합니다. 예를 들면 다음과 같습니다.

[ATTACKER] attacking ftp://localhost:2121/
[2121][ftp] host: localhost   login: ftpuser   password: password123

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 login

연결할 수 없는 경우 다음 사항을 다시 확인하십시오.

  • 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 서버가 실제로 새 포트에서 수신 대기하고 있는지 확인했습니다.