소개
Metasploit Framework 는 침투 테스트 및 보안 연구에 사용되는 강력한 오픈 소스 도구입니다. 특정 작업을 수행하는 상호 교환 가능한 코드 조각인 모듈 (modules) 개념을 중심으로 구축되었습니다. Metasploit 를 효과적으로 사용하려면 다양한 모듈 유형을 이해하는 것이 기본입니다.
이 실험실에서는 Metasploit 의 주요 모듈 유형을 탐색합니다.
- Exploits: 시스템 취약점을 악용하는 코드입니다.
- Auxiliary: 직접적인 익스플로잇이 아닌 스캐닝, 퍼징 (fuzzing) 및 기타 작업을 위한 모듈입니다.
- Post-Exploitation: 대상 시스템에 액세스한 후 사용되는 모듈입니다.
- Payloads: 성공적인 익스플로잇 후 대상 시스템에서 실행되는 코드입니다.
Metasploit 콘솔 (msfconsole) 을 사용하여 이러한 모듈을 나열하고 식별하는 방법을 배우게 됩니다.
사용 가능한 익스플로잇 모듈 나열
이 단계에서는 Metasploit Framework 에서 사용 가능한 모든 익스플로잇 모듈을 나열하는 방법을 배웁니다. 익스플로잇 모듈은 시스템, 서비스 또는 애플리케이션의 특정 결함이나 취약점을 악용하여 무단 액세스를 얻도록 설계되었습니다.
먼저 Metasploit Framework 콘솔을 시작해야 합니다. 더 깔끔한 인터페이스를 위해 시작 배너를 억제하는 -q 플래그를 사용합니다. 콘솔에 들어가면 show exploits 명령을 사용할 수 있습니다.
터미널을 열고 다음 명령을 실행하여 msfconsole을 시작합니다.
msfconsole -q
msfconsole 프롬프트 (msf6 >) 가 나타나면 다음 명령을 입력하여 모든 익스플로잇 모듈을 나열합니다.
show exploits
공개 날짜, 순위 및 간략한 설명과 함께 사용 가능한 익스플로잇 목록이 표시됩니다. 순위는 익스플로잇의 신뢰도를 나타냅니다.
msf6 > show exploits
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/aix/local/ibstat_exec 2009-07-27 excellent No AIX ibstat Command Execution
1 exploit/aix/local/invscout_priv_esc 2012-03-30 excellent Yes AIX invscout Privilege Escalation
2 exploit/aix/rpc_catd 1995-01-01 great No AIX CDE ToolTalk rpc.catd Command Execution
...
2300 exploit/windows/smb/ms17_010_psexec 2017-03-14 excellent Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
...
목록을 검토한 후 exit를 입력하여 Metasploit 콘솔을 종료할 수 있습니다.
exit
사용 가능한 보조 모듈 나열
이 단계에서는 보조 모듈을 나열합니다. 익스플로잇과 달리 보조 모듈은 시스템에 직접 액세스하는 결과를 초래하지 않습니다. 대신 포트 스캔, 서비스 식별, 퍼징 (fuzzing), 서비스 거부 공격 (denial-of-service attacks) 및 정보 수집과 같은 광범위한 작업에 사용됩니다.
이전 단계와 마찬가지로 Metasploit 콘솔을 시작한 다음 show 명령을 사용합니다.
터미널에서 다시 msfconsole을 시작합니다.
msfconsole -q
msf6 > 프롬프트에서 show auxiliary 명령을 사용하여 사용 가능한 모든 보조 모듈을 확인합니다.
show auxiliary
출력에는 정찰 및 기타 비익스플로잇 활동에 사용되는 포괄적인 모듈 목록이 표시됩니다.
msf6 > show auxiliary
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/admin/2wire/xslt_password_reset normal No 2Wire Cross-Site Scripting and Password Reset
1 auxiliary/admin/appletv/appletv_display_image normal No AppleTV Display Image
...
450 auxiliary/scanner/http/http_login normal No HTTP Login Utility
451 auxiliary/scanner/http/http_put normal Yes HTTP PUT File Upload Utility
...
완료되면 콘솔을 종료합니다.
exit
사용 가능한 후속 익스플로잇 모듈 나열
이 단계에서는 후속 익스플로잇 모듈을 살펴봅니다. 이러한 모듈은 대상 시스템을 성공적으로 침해한 후에 사용됩니다. 목적은 액세스 유지, 민감한 정보 수집, 권한 상승 및 네트워크 내의 다른 시스템으로의 피벗 (pivot) 을 돕는 것입니다.
이러한 모듈을 나열하는 과정은 이전 단계와 유사합니다.
Metasploit 콘솔을 실행합니다.
msfconsole -q
프롬프트에서 show post를 입력하여 모든 후속 익스플로잇 모듈을 나열합니다.
show post
대상 운영 체제 (예: Windows, Linux, OSX) 및 수행하는 기능 (예: gather, manage, escalate) 별로 분류된 모듈 목록이 표시됩니다.
msf6 > show post
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/android/capture/screen normal No Android Screen Capture
1 post/android/gather/contacts normal No Android Gather Contacts
...
250 post/linux/gather/enum_configs normal No Linux Gather Configurations
251 post/linux/gather/enum_protections normal No Linux Gather Protection Mechanisms
...
400 post/windows/gather/credentials/total_commander normal No Windows Gather Total Commander FTP Passwords
...
목록 탐색을 마쳤으면 콘솔을 종료하는 것을 잊지 마십시오.
exit
사용 가능한 페이로드 모듈 나열
이 단계에서는 사용 가능한 페이로드 모듈을 나열합니다. 페이로드는 익스플로잇이 대상 시스템에 전달하는 코드입니다. 익스플로잇이 시스템을 성공적으로 침해하면 페이로드가 실행되어 공격자에게 제어권을 부여합니다. 페이로드는 간단한 명령 쉘부터 피해자 시스템에 대한 광범위한 제어를 제공하는 매우 고급스러운 Meterpreter 까지 다양합니다.
msfconsole을 사용하여 나열해 보겠습니다.
Metasploit 콘솔을 시작합니다.
msfconsole -q
msf6 > 프롬프트에서 show payloads 명령을 사용합니다.
show payloads
출력에는 다양한 페이로드가 표시되며, 종종 연결 유형 (예: reverse shell, bind shell) 및 대상 아키텍처별로 분류됩니다.
msf6 > show payloads
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 payload/aix/ppc/shell_bind_tcp normal No AIX PowerPC Command Shell, Bind TCP Inline
1 payload/aix/ppc/shell_find_port normal No AIX PowerPC Command Shell, Find Port Inline
...
500 payload/linux/x86/meterpreter/reverse_tcp normal No Linux Meterpreter, Reverse TCP Stager
...
1000 payload/windows/x64/meterpreter/reverse_tcp normal No Windows Meterpreter (Reflective Injection), Reverse TCP Stager (x64)
...
마지막으로 콘솔을 종료합니다.
exit
익스플로잇과 페이로드 구분하기
이 마지막 단계에서는 익스플로잇과 페이로드의 중요한 차이점에 대한 이해를 공고히 하겠습니다. 둘은 함께 작동하지만, 별개의 목적을 수행합니다.
- 익스플로잇 (Exploit): 이것은 "전달 수단"입니다. 익스플로잇의 유일한 역할은 취약점을 이용하여 페이로드를 대상 시스템에 전달하는 것입니다. 문을 여는 열쇠라고 생각하면 됩니다.
- 페이로드 (Payload): 이것은 "화물"입니다. 익스플로잇이 성공한 후에 실행되는 코드입니다. 침해된 시스템에서 무엇을 할 수 있는지 정의합니다. 문을 열고 안으로 들어간 후에 무엇을 하는지라고 생각하면 됩니다.
익스플로잇은 페이로드 없이는 작동할 수 없으며, 페이로드는 익스플로잇 없이는 전달될 수 없습니다.
이해도를 보여주기 위해 프로젝트 디렉토리에 difference.txt라는 간단한 텍스트 파일을 만들어 이 개념을 요약하십시오.
터미널에서 다음 명령을 실행합니다.
echo "Exploit: Gains access. Payload: Runs after access." > /home/labex/project/difference.txt
cat 명령으로 파일이 올바르게 생성되었는지 확인할 수 있습니다.
cat /home/labex/project/difference.txt
다음과 같은 출력이 표시되어야 합니다.
Exploit: Gains access. Payload: Runs after access.
이 간단한 연습은 이 두 가지 기본적인 Metasploit 구성 요소 간의 핵심 관계를 강화하는 데 도움이 됩니다.
요약
이 실습을 완료하신 것을 축하드립니다! Metasploit Framework 내의 기본적인 모듈 유형을 성공적으로 탐색했습니다.
다음과 같은 내용을 배웠습니다.
- 익스플로잇 모듈 (Exploit modules): 취약점을 이용하여 초기 액세스를 얻는 데 사용됩니다.
- 보조 모듈 (Auxiliary modules): 스캐닝, 정찰 및 기타 익스플로잇이 아닌 작업에 사용됩니다.
- 익스플로잇 후 모듈 (Post-exploitation modules): 시스템이 침해된 후에 실행됩니다.
- 페이로드 모듈 (Payload modules): 대상에서 실행되는 익스플로잇에 의해 전달되는 코드입니다.
가장 중요하게는, 익스플로잇 (진입 방법) 과 페이로드 (진입 후 실행되는 코드) 간의 중요한 차이점을 이해하게 되었습니다. 이 기초 지식은 Metasploit 을 사용하여 효과적인 침투 테스트를 수행하는 데 필수적입니다.


