Hydra 포트 번호 사용자 지정

HydraBeginner
지금 연습하기

소개

이 실습에서는 대상 시스템의 FTP 포트 번호를 사용자 지정하고, Hydra를 사용하여 해당 사용자 지정 포트에서 FTP 서비스에 대한 무차별 대입 공격을 수행하는 방법을 배웁니다. 이는 표준이 아닌 FTP 포트로 구성된 시스템의 보안을 평가해야 하는 모의 해킹 전문가 및 보안 담당자에게 매우 유용한 기술입니다.

이 실습은 vsftpd.conf 파일을 수정하고 FTP 서비스를 재시작하여 LabEx VM의 FTP 서버가 표준이 아닌 포트에서 대기하도록 구성하는 과정을 포함합니다. 그런 다음 netstat 명령을 사용하여 FTP 서버가 새 포트에서 대기 중인지 확인합니다. 마지막으로 -s 옵션과 함께 Hydra를 사용하여 사용자 지정 포트를 지정하고 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"가 포함된 줄만 필터링하여 보여줍니다. vsftpd2121 포트(또는 선택한 포트)에서 대기 중임을 나타내는 줄이 표시되어야 합니다.

출력 예시:

tcp6       0      0 :::2121                 :::*                    LISTEN      1027/vsftpd

check FTP port

출력에 새 포트 번호가 보인다면 FTP 서버가 해당 포트에서 정상적으로 대기 중인 것입니다.

-s 옵션으로 포트 지정

이 단계에서는 ftp 명령을 사용할 때 표준이 아닌 포트를 지정하는 방법을 배웁니다. 이전 단계에서 FTP 서버의 대기 포트를 기본값인 21에서 사용자 지정 포트(예: 2121)로 변경했기 때문에 이는 매우 중요합니다. 이제 서버에 연결할 때 ftp 클라이언트에 사용할 포트를 알려주어야 합니다.

ftp 명령의 경우 ftp localhost 2121과 같이 HOST PORT를 제공하여 표준이 아닌 포트를 지정할 수 있습니다. 그러나 Hydra는 포트를 지정하기 위해 -s 옵션을 사용합니다. 다음 단계에서 Hydra 공격을 준비할 때 이 차이를 이해하는 것이 중요합니다.

연결을 확인하기 위해 ftp 명령의 호스트 및 포트 형식을 사용하여 FTP 서버에 연결해 보겠습니다. localhost를 LabEx VM의 IP 주소로 바꿉니다. 동일한 VM에서 이 실습을 수행 중이라면 localhost 또는 127.0.0.1을 사용할 수 있습니다.

ftp localhost 2121

사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. Ctrl+C를 눌러 종료합니다.

이제 Hydra가 어떻게 포트를 지정하는지 시뮬레이션해 보겠습니다. 아직 실제로 Hydra를 사용하지는 않지만, 이 단계는 구문을 이해하는 데 중요합니다. Hydra는 포트를 지정하기 위해 -s 옵션을 사용합니다.

포트 지정을 위한 Hydra의 구문은 표준 ftp 명령과 다릅니다. Hydra는 -s 뒤에 포트 번호를 사용합니다. 예를 들어, 2121번 포트에서 FTP 서비스를 공격하기 위해 Hydra를 사용한다면 Hydra 명령에 -s 2121을 포함해야 합니다.

이를 보여주기 위해 더미 Hydra 명령을 만들어 보겠습니다. 실제로 실행하지는 않지만 올바른 구문을 보여줄 것입니다.

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

hydra syntax

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

요약하자면, 표준 ftp 명령은 HOST PORT를 사용하여 대상 포트를 지정할 수 있는 반면, 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: 상세 모드(verbose mode)를 활성화하여 실시간으로 로그인 시도를 보여줍니다.

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

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

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

Hydra가 올바른 비밀번호를 찾지 못하면 목록의 모든 비밀번호를 시도한 후 성공적인 로그인 정보를 표시하지 않고 종료됩니다.

중요 보안 참고 사항: 이 실습은 교육 목적으로만 제공됩니다. 명시적인 허가 없이 시스템을 공격하기 위해 Hydra를 사용하지 마십시오. 컴퓨터 시스템에 대한 무단 액세스는 불법이며 비윤리적입니다.

올바른 포트로의 연결 검증

마지막 단계에서는 Hydra 공격 시도 후에도 사용자 지정 포트의 FTP 서버에 여전히 연결할 수 있는지 검증합니다. 이는 FTP 서비스가 예상대로 실행되고 있으며 지정된 포트를 사용하여 액세스할 수 있음을 확인합니다.

호스트와 포트가 포함된 ftp 명령을 사용하여 사용자 지정 포트의 FTP 서버에 연결합니다. localhost를 LabEx VM의 IP 주소로 바꿉니다. 동일한 VM에서 이 실습을 수행 중이라면 localhost 또는 127.0.0.1을 사용할 수 있습니다.

ftp localhost 2121

사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 설정에서 생성한 자격 증명을 사용하십시오:

  • 사용자 이름: ftpuser
  • 비밀번호: password123

연결에 성공하면 FTP 서버에 로그인됩니다.

ftp login

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

  • FTP 서비스가 여전히 실행 중인지 확인하십시오. 첫 번째 단계에서 수행한 것처럼 netstat -tulnp | grep vsftpd 명령을 사용하여 확인할 수 있습니다.
  • /etc/vsftpd.conf 파일에서 FTP 포트가 여전히 2121(또는 선택한 포트)로 설정되어 있는지 확인하십시오.
  • 사용자 지정 포트로의 연결을 차단하는 방화벽 규칙이 없는지 확인하십시오. (참고: LabEx VM 환경은 기본적으로 방화벽이 활성화되어 있지 않지만, 실제 환경에서는 이를 염두에 두는 것이 좋습니다.)
  • 올바른 사용자 이름과 비밀번호를 사용하고 있는지 확인하십시오.

연결 성공은 FTP 서버가 사용자 지정 포트에서 실행 중이며 ftp localhost 2121을 통해 연결할 수 있음을 확인해 줍니다. 또한 이는 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 서버가 새 포트에서 정상적으로 대기 중임을 검증했습니다.