본문 바로가기

High Level Technique/Shellcoding

Insertion Encoder

Insertion Encoder


이번에는 Insertion Encode에 대해서 알아보도록 하겠습니다.


Insertion이라는 뜻은 삽입이라는 뜻입니다. 즉, 인코딩을 하는데 임의의 값을 삽입하여 인코딩을 한다는 것이죠.

임의의 쉘 코드에 임의의 값을 사이사이에 넣어서 인코딩하는 방식입니다.


마찬가지로 execve 소스코드를 가지고 해보도록 하겠습니다.





objdump를 이용해서 셀 코드를 만듭니다.


해당 셀 코드를 Insertion Encoding을 하도록 하겠습니다.





해당 python 소스코드를 이용해서 쉘 코드 사이사이에 0xAA라는 값을 넣는 프로그램입니다.





해당 python을 실행하면 헥스값 사이사이에 0xaa값이 들어갔습니다.












디코더 만들기





컴파일 후 objdump를 이용해 쉘 코드를 만듭니다.







쉘 코드를 테스트 하기 위해 다음과 같이 작성합니다.






쉘이 정상적으로 실행되는 것을 확인할 수 있습니다.

'High Level Technique > Shellcoding' 카테고리의 다른 글

NOT Encoder  (0) 2016.03.14
XOR Encoder  (0) 2016.03.14
execve shellcode  (0) 2016.03.13
RIP 상대주소 이용하기  (0) 2016.03.13
JMP-CALL-POP 기술  (0) 2016.03.13