Security/system hacking

DLL vs Reflected Injection

KimKwangWoon 2025. 7. 23. 23:19

개요

DLL Injection과 Reflected Injection의 개념이 서로 비슷한 부분도 존재하고 명확하게 구분이 잘 안가는 부분이 존재하여 개인적으로 정리하고자 포스팅을 진행함

 

DLL Injection?

디스크에 존재하는 DLL을 사용하여 타겟 프로세스에 Injection 후 Execution 시키는 공격으로 타겟 프로세스에 Handle 획득이 선행되며, 타겟 프로세스의 메모리 영역 생성 및 RWX 권한 할당을 할당하여 디스크에 저장된 DLL 경로를 기입 및 실행시키는 기법임

타겟 프로세스의 Handle 획득 및 메모리 생성과 권한 할당에 있어서는 Reflected DLL Injection과 동일하지만 DLL 경로를 기입한다는 점에서 Reflected DLL Injection과 다르다고 볼수 있음

 

Reflected DLL Injection?

DLL 혹은 Shell Code를 사용하여 타겟 프로세스의 메모리 영역에 바이트 코드를 Injection한 후 타겟 프로세스의 메모리 상에 존재하는 바이트 코드를 로드하여 Execution 시키는 공격으로 인메모리 공격 형식을 띔

타겟 프로세스의 핸들 획득, Injection은 DLL Injection과 동일하다고 볼수 있지만, 바이트 코드로 변환한 DLL 혹은 Shell Code를 타겟 프로세스에 삽입한 후 메모리 내부에서 로드 및 매핑하여 실행하는 방법에서 DLL Injection과 다르다고 볼수 있음

 

결론

  DLL Injection Reflected DLL Injection
DLL 파일 저장 디스크에 저장 필요 인메모리로 디스크 저장 불필요
메모리 로드 OS DLL 로더가 처리 인메모리에서 공격자가 삽입한 코드를 직접 매핑
분석 난이도 디스크에 DLL 내용이 남으므로 분석이 용이 인메모리 형식으로 처리되므로 분석이 어려움