Hydra 포트 번호 사용자 정의

HydraBeginner
지금 연습하기

소개

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