이 랩에서는 다재다능한 비밀번호 크래킹 도구인 Hydra 를 사용하여 FTP 서비스에 대한 무차별 대입 공격을 수행하는 방법을 배우게 됩니다. vsftpd 를 사용하여 로컬 FTP 서버를 설정하고 보안 취약점을 시연하기 위해 약한 비밀번호를 가진 테스트 계정을 생성합니다.
이 랩은 Hydra 공격 실행, 결과 분석, 약한 인증이 FTP 서비스를 어떻게 손상시킬 수 있는지 이해하는 과정을 안내합니다. 이 실습은 제어된 환경에서 서버 구성, 공격 시뮬레이션 및 보안 평가를 다룹니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 80%입니다.학습자들로부터 94%의 긍정적인 리뷰율을 받았습니다.
로컬 FTP 서버 설정
이 단계에서는 LabEx VM 환경에서 vsftpd (Very Secure FTP Daemon) 를 사용하여 로컬 FTP 서버를 설정합니다. FTP (File Transfer Protocol) 는 네트워크를 통해 클라이언트와 서버 간에 파일을 전송하는 데 사용되는 표준 네트워크 프로토콜입니다. 컴퓨터 간에 파일 전달을 처리하는 디지털 우체국과 같다고 생각하면 됩니다.
먼저 vsftpd 패키지를 설치해야 합니다. 이 명령은 패키지 목록을 업데이트하고 FTP 서버 소프트웨어를 설치합니다.
마지막으로 FTP 서버가 제대로 실행되고 있는지 확인해야 합니다. 이 명령은 vsftpd 서비스의 상태를 확인합니다.
sudo service vsftpd status
서비스가 활성 상태 (실행 중) 임을 나타내는 출력이 표시되어야 합니다. 오류가 표시되면 구성 단계를 검토해야 할 수 있습니다.
테스트 사용자로 FTP 서버 구성
이 단계에서는 의도적으로 약한 비밀번호를 가진 테스트 계정을 생성하여 보안 테스트를 위해 FTP 서버를 준비합니다. 이 설정은 사용자가 종종 간단한 비밀번호를 선택하는 실제 시스템에서 발견되는 일반적인 보안 취약점을 모방합니다. 세 개의 테스트 사용자를 생성하고, 홈 디렉토리를 설정하고, 나중에 Hydra 가 사용할 비밀번호 목록을 생성합니다.
먼저, 약한 비밀번호를 가진 세 개의 테스트 사용자를 생성해 보겠습니다 (시연 목적으로만). 이러한 명령은 홈 디렉토리가 있는 새 시스템 사용자를 생성하고 비밀번호를 설정합니다.
각 사용자의 디렉토리에 테스트 파일을 채워 넣겠습니다. 이러한 파일은 나중에 FTP 액세스가 성공했는지 확인하는 데 도움이 됩니다.
echo "This is ftpuser1's test file" | sudo tee /home/ftpuser1/ftp_files/test1.txt
echo "This is ftpuser2's test file" | sudo tee /home/ftpuser2/ftp_files/test2.txt
echo "This is ftpuser3's test file" | sudo tee /home/ftpuser3/ftp_files/test3.txt
진행하기 전에 테스트 사용자 중 한 명에 대한 FTP 액세스가 작동하는지 확인해 보겠습니다. 이 curl 명령은 FTP 자격 증명을 사용하여 파일을 다운로드하려고 시도합니다.
이 단계에서는 Hydra 가 FTP 서버에 로그인을 시도하는 데 사용할 단어 목록을 준비합니다. 이러한 목록에는 Hydra 가 무차별 대입 공격 중에 체계적으로 시도할 잠재적인 사용자 이름과 비밀번호가 포함되어 있습니다. 효과적인 단어 목록을 만드는 방법을 이해하는 것은 침투 테스트에 매우 중요합니다.
먼저, 일반적인 FTP 사용자 이름을 포함하는 기본 사용자 이름 목록을 생성합니다. 이는 관리자가 변경하는 것을 잊어버리는 경우가 있는 기본 또는 자주 사용되는 계정 이름입니다.
생성한 비밀번호 항목 수를 확인합니다. 이는 무차별 대입 공격에 얼마나 걸릴지 추정하는 데 도움이 됩니다.
wc -l ~/project/combined_passwords.txt
마지막으로, 시연 목적으로 더 작은 테스트 비밀번호 파일을 생성합니다. 하위 집합을 사용하면 전체 공격을 실행하기 전에 설정이 작동하는지 확인할 수 있습니다.
head -n 50 ~/project/combined_passwords.txt > ~/project/test_passwords.txt
FTP 서비스에 대한 Hydra 공격 실행
이 단계에서는 Hydra 를 사용하여 앞서 구성한 로컬 FTP 서버에 대한 무차별 대입 공격을 수행합니다. Hydra 는 FTP 를 포함한 많은 프로토콜을 지원하는 인기 있는 비밀번호 크래킹 도구입니다. 무차별 대입 공격은 올바른 비밀번호가 발견될 때까지 가능한 모든 비밀번호 조합을 체계적으로 시도합니다. 이는 약한 비밀번호가 이러한 공격에 취약한 이유를 보여줍니다.
먼저, Hydra 의 도움말 메뉴를 확인하여 설치되었는지 확인합니다. 이렇게 하면 도구를 사용할 준비가 되었는지 확인하고 사용 가능한 옵션을 표시합니다.
hydra -h
생성한 사용자 이름 및 비밀번호 목록을 사용하여 기본 Hydra 공격을 실행합니다. -L은 사용자 이름 목록을 지정하고 -P는 비밀번호 목록을 지정합니다. Hydra 는 localhost 에서 실행 중인 FTP 서비스에 대해 각 조합을 시도합니다.
결과를 확인하여 자격 증명이 발견되었는지 확인합니다. 이를 통해 공격이 완료된 후 결과를 검토할 수 있습니다.
cat ~/project/hydra_results.txt
요약
이 랩에서는 vsftpd 를 사용하여 로컬 FTP 서버를 구성하는 방법을 배웠습니다. 여기에는 패키지 설치, 로컬 사용자 액세스를 위한 구성 조정, 약한 비밀번호를 가진 테스트 계정 생성이 포함됩니다. 이 과정에는 vsftpd.conf 설정 수정, 적절한 디렉토리 권한 설정, 서비스 기능 확인이 포함되었습니다.
또한 예측 가능한 자격 증명을 가진 여러 계정을 생성하여 Hydra 공격을 위한 테스트 환경을 준비했습니다. 이 설정은 현실적인 보안 테스트 조건을 유지하면서 무차별 대입 기술을 연습할 수 있는 제어된 시나리오를 제공합니다.