About process hollowing

서우혁·2020년 9월 3일
0

process hollowing (프로세스 할로윙)은, 악성코드가 탐지를 회피하기 위해 사용하는 방법으로,

탐지 솔루션이 well known process는 검사를 하지 않는 점을 이용한다.

탐지 솔루션은 다음과 같은 구조로 설계 되었다고 추측한다.
실제 탐지 솔루션의 코드를 볼 수는 없었기 때문에, 순수히 추측을 통해서 만든 자료임을 참고 해 주었으면 한다.

Well known은 explorer, winlogon같은 process가 존재하고
Unknown은 DB에 없는 process나, cmd와 같이 악용 가능한 process가 검사목록에 존재한다고 가정한다

process hollowing 기법을 실행하려면, 다음의 과정을 거쳐야한다.

  1. create process at suspended condition
  2. get base address of created process
  3. unmap
  4. reallocation
  5. write
  6. context setting
  7. resume

다음 과정중 필요한 WINAPI 이다.

  1. CreateProcess
  2. CreateFile
  3. NtQueryInformationProcess (get remote PEB)
  4. VirtualAllocEx
  5. WriteProcessMemory
  6. GetThreadContext & SetThreadContext
  7. ResumeThread

::해당 기법의 구현 성공::

::추가 정보::
(2020-09-02) 기준 Avast라는 솔루션은 이미 해당 기법에 필요한 WINAPI를 후킹하여 감시하고있었다.
따라서 해당 기법을 실제로 악용하려면 해당 WINAPI에 대한 언후킹이 필요하다.
필자는 언후킹이후 실제 솔루션을 우회하여 실습하였다.

profile
reverser

0개의 댓글