수업 전 자료 검색해보니 잘 설명된 자료 있어 참고용으로 퍼옴
아래 미친해커님 블로그 보면 트램플린 후킹에 대해 설명이 너무 잘되있다. 진짜 보면 차근차근 원리와 소스 코드 등으로 거의 교과서 수준으로 작성해주셨네....읽어보면 도움 많이 될거다
참고 자료 : https://blog.crazyhacker.kr/m/73
트램펄린(인라인) 후킹이란?
트램펄린 후킹이란 이름처럼 점프(뛴다)라는 이름에 걸맞은 후킹 방법이다.
후킹 할 API 함수의 상위 5 Byte를 jmp 0x00000000 형태로 패치하여 해당 함수가 호출되었을 때 EIP(PC) 레지스터가 다른 함수의 주소로 변경되어 해당 함수로 점프하여 제어권을 가로채는 기술이다.
필자가 트램펄린 후킹을 공부했을 때(2019년도)에는 트램펄린 후킹 기술에 대해 검색을 하여도 x86 기반의 설명밖에 찾지 못하였다. 또 x86과 x64 간의 트램폴린 후킹 기술의 구현 방법이 미세하게 다르다. 하지만 x64 시스템에서의 트램펄린 후킹 기술은 많이 알려지지 않은 것으로 보이며 찾을 수도 없었다. 그렇기에 필자는 독자적으로 방법을 구현하여(아닐 수도 있다) 사용하고 있었다. 그렇기 때문에 트램펄린 후킹에 대한 포스팅은 x86과 x64 2개로 나누기로 했다.
위에서 설명한 방법은 x86과 x64 시스템에서 모두 사용가능한 방법이며 x64 시스템에서는 약간의 제약이 걸린다.
코드 인젝션과 트램펄린 후킹의 조합
코드 인젝션은 Fileless 형식의 임의의 코드 주입 공격이다. 그리고 트램펄린 후킹은 프로세스의 타겟 함수의 상위 5 바이트를 조작하여 특정 API의 제어권을 가로채는 기법이다.
이 두개의 기법을 적절히 활용하면 Fileless 형식의 트램펄린 후킹을 할수 있다.
예제 코드
Code Injector
소스코드는 아래 더보기에 있다.
타겟 프로그램
소스코드는 아래 더보기에 있다.
결과 확인
'수업자료 > 23. 6. 16. GMD 악성코드(디스크) 교육' 카테고리의 다른 글
트램플린 후킹 테스트 (0) | 2023.06.15 |
---|---|
역공학 - 트램펄린(인라인) 후킹 (0) | 2023.06.15 |
역공학 - Shell code(계산기) 인젝션하는 코드 (0) | 2023.06.15 |
dll 인젝션 코드에서 계산기 실행시키기 (0) | 2023.06.15 |
인젝션 2 - EXE 실행되는 프로세스 인젝션 코드 (0) | 2023.06.14 |