여러 자격 증명으로 FTP 설정
이 단계에서는 FTP 서버를 설정하고 여러 사용자 자격 증명으로 구성합니다. 이를 통해 Hydra 가 여러 계정을 동시에 해킹하는 능력을 테스트할 수 있습니다. vsftpd (Very Secure FTP Daemon) 를 FTP 서버로 사용합니다.
먼저 vsftpd를 설치합니다. 터미널을 열고 다음 명령어를 실행합니다.
sudo apt update
sudo apt install vsftpd -y
다음으로 vsftpd를 구성해야 합니다. 먼저 원본 구성 파일의 백업을 생성합니다. 시스템 구성 파일을 변경하기 전에 이 작업을 수행하는 것이 좋습니다.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
이제 nano를 사용하여 구성 파일 /etc/vsftpd.conf를 편집합니다. 이 파일은 FTP 서버의 동작을 제어합니다.
sudo nano /etc/vsftpd.conf
nano 편집기 내에서 다음 줄을 추가하거나 수정합니다. 이 설정은 익명 접근을 비활성화하고 로컬 사용자 로그인을 활성화하며 쓰기 접근을 허용하고 보안을 위해 로컬 사용자를 해당 사용자 홈 디렉터리로 chroot합니다.
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
listen=YES
listen_ipv6=NO
nano에서 파일을 저장하려면 다음을 수행합니다.
Ctrl + X를 눌러 종료합니다.
Y를 눌러 저장을 확인합니다.
Enter를 눌러 파일 이름을 확인합니다.
파일 저장 후 다음 명령어를 사용하여 구성 파일의 변경 사항이 올바르게 적용되었는지 확인합니다.
sudo cat /etc/vsftpd.conf | grep -E "^(anonymous_enable|local_enable|write_enable|chroot_local_user|listen)"
출력 결과가 추가한 구성과 동일한지 확인합니다.
이제 여러 사용자 계정을 생성합니다. testuser1과 testuser2 두 사용자를 생성하고 비밀번호를 설정합니다. Hydra 는 이 사용자를 사용하여 로그인 시도를 수행합니다.
testuser1을 홈 디렉터리와 함께 생성합니다.
sudo useradd -m testuser1
비대화식 명령을 사용하여 testuser1의 비밀번호를 설정합니다.
echo 'testuser1:password123' | sudo chpasswd
testuser2를 홈 디렉터리와 함께 생성합니다.
sudo useradd -m testuser2
비대화식 명령을 사용하여 testuser2의 비밀번호를 설정합니다.
echo 'testuser2:password456' | sudo chpasswd
이 명령어는 비대화식이며 자동화된 환경에서 더욱 신뢰할 수 있도록 입력을 묻지 않고 사용자를 직접 생성합니다.
이제 chroot_local_user=YES가 활성화된 경우 보안상의 이유로 사용자의 홈 디렉터리가 해당 사용자가 쓰기 권한을 갖지 않도록 홈 디렉터리 권한을 수정해야 합니다.
sudo chmod 755 /home/testuser1
sudo chmod 755 /home/testuser2
각 사용자가 파일을 업로드할 수 있는 쓰기 가능한 하위 디렉터리를 생성합니다.
sudo mkdir /home/testuser1/files
sudo mkdir /home/testuser2/files
sudo chown testuser1:testuser1 /home/testuser1/files
sudo chown testuser2:testuser2 /home/testuser2/files
다음으로, 구성 파일에 적용한 변경 사항과 새 사용자를 인식하도록 vsftpd 서비스를 다시 시작합니다.
sudo service vsftpd restart
이제 FTP 서버가 올바르게 실행되고 새 사용자가 로그인할 수 있는지 테스트합니다. ftp 명령줄 클라이언트를 사용하여 서버에 연결할 수 있습니다. 로컬에서 서버를 실행하고 있으므로 localhost에 연결할 수 있습니다.
ftp localhost
사용자 이름을 입력하라는 메시지가 표시됩니다. testuser1을 입력하고 password123 비밀번호를 입력합니다. 모든 구성이 올바르면 로그인되었음을 나타내는 메시지가 표시됩니다.
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:labex): testuser1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
FTP 클라이언트를 종료하려면 bye를 입력합니다.
ftp> bye
221 Goodbye.
이제 Hydra 가 공격에 사용할 파일을 준비합니다. 기본 작업 디렉터리인 ~/project 디렉터리로 이동합니다.
cd ~/project
~/project 디렉터리에 users.txt라는 파일을 만듭니다. 이 파일에는 Hydra 가 사용할 사용자 이름이 포함됩니다.
nano users.txt
users.txt에 다음 사용자 이름을 추가합니다.
testuser1
testuser2
파일을 저장하고 nano를 종료합니다.
다음으로 ~/project 디렉터리에 passwords.txt라는 파일을 만듭니다. 이 파일에는 테스트 사용자의 올바른 비밀번호를 포함하여 일반적인 잘못된 비밀번호도 포함된 비밀번호 목록이 포함됩니다.
nano passwords.txt
passwords.txt에 다음 비밀번호를 추가합니다.
password123
password456
password
123456
qwerty
파일을 저장하고 nano를 종료합니다.
이제 여러 사용자 계정이 있는 FTP 서버와 계정 해킹 시도에 사용할 수 있는 사용자 이름 및 비밀번호 목록이 준비되었습니다.