본문 바로가기

Malware/기술 & 기법

(3)
[Process Hollowing] 프로세스 할로잉 개요 프로세스 할로잉(Process Hollowing)이란, 악성코드가 주로 사용하는 기술로 대상 프로세스의 이미지를 언매핑하고 자신의 이미지를 매핑하는 기술이며 PE 이미지 스위칭(PE Image Switching)으로도 불리기도 한다. 껍질로 사용할 정상적인 프로세스(explorer.exe, notepad.exe, svchost.exe 등)를 하나 생성하고, 생성된 프로세스의 이미지를 언매핑하여 로드된 DLL 이미지만 남겨둔 빈 프로세스로 만들어 버린다. 그리고 자신의 이미지를 빈 프로세스에 매핑 시켜 자신의 이미지를 실행하도록 하는 것이다. 쉽게 비유하자면 도둑이 들어와 집주인을 내쫓고 자신이 그 집의 주인처럼 행세하는 상황이랑 비슷하다. 실제로 코드와 데이터들이 바뀌었고 바뀐 코드를 실행하고 데이..
[Injection] DLL 인젝션 개요 이전 포스트에는 코드 인젝션에 대해 다뤄 보았다. 만약 이전 포스트를 읽지 않았다면 이전 포스트를 먼저 보도록 하자. DLL 인젝션은 인젝션 할 코드 대상 프로세스에 쓰는 것이 아닌 DLL 파일에 인젝션 할 코드를 포함시켜 대상 프로세스가 DLL 파일을 로드하도록 하는 것이다. 스레드 시작 주소를 LoadLibrary() 함수로 설정하고 파라미터는 DLL 파일의 경로를 지정해주는 방법으로 DLL 파일을 주입시킬 수 있다. DLL 인젝션은 코드 인젝션에 비해 난이도는 쉬운 편이고 발견될 확률은 더욱 높은 편이지만 편리성이 뛰어나다는 장점이 있기 때문에 특별한 경우를 제외하고는 대부분의 사람들이 DLL 인젝션을 선호한다. DLL 파일 #include #include BOOL WINAPI DllMain(..
[Injection] 코드 인젝션 개요 악성코드는 보통 악성 실행 파일을 드롭하여 추가적으로 프로세스를 만들어 작동한다. 하지만 몇몇 악성코드는 안티 바이러스 소프트웨어를 우회하기 위해서 또는 감염자에게 쉽게 발견되지 않기 위해서 자기 자신의 코드를 다른 프로세스에 주입시켜 해당 프로세스가 대신하여 악성 행위를 하게 만든다. 인젝션의 방식은 크게 악성코드를 바로 해당 프로세스에 주입시켜 스레드를 만드는 방식과 LoadLibrary() 주소로 스레드를 만들어 해당 프로세스가 악성코드를 포함한 DLL 파일을 로드시키는 방식으로 나눌 수 있다. 스레드를 생성하는 여러 가지 방법들과 DLL 인젝션은 다음에 다루도록 하고 이번 포스트에는 코드 인젝션에 대하여 다뤄 보도록 하겠다. 프로세스 핸들 얻기 /* HANDLE OpenProcess( DWO..