티스토리 뷰

Process Injection 는 악성코드에 의해서 사용되며 용도는 다음과 같다.

 

1. malware 가 더 강력한 은폐 능력을 얻기 위해서

2. AV 같은 보안 제품을 우회하기 위해(예를 들어 네트워크 접속에 대한 권한이 허용된 프로세스에 Injection을 한다면 우회가능)

 

이 문서의 타겟은 'Windows 10 x64 1803+ 64bit processes' / medium integrity process
(즉 권한 상승이필요한 경우는 제외함)

CFG 그리고 CIG 를 적용한 상태 그리고 적용하지 않은 상태에서 테크닉을 사용해보았음

 

Injection 기술의 분류

1. Process spawning

이 방식은 정상적인 실행 파일의 프로세스를 생성한 후 이 프로세스를 시작(running)하기 전에 변조하는 것이다. 이러한 방식은 많은 행위 정보를 많이 남길 것이고 이에 따라 은폐력은 별로 좋지 못하다.

 

2. process 초기화 단계에서 Injection

대표적으로 AppInit DLLs 이 있는데 프로세스가 실행되면서 공격자가 원하는 코드를 로드하게끔 한다. 이 방식은 보통 UAC elevation 이 필요하다. 또한 Extension Point Disable Policy 라는 mitigation에 의해서 차단된다. 

 

3. 실행(running) 중인 프로세스에 Injection 하는 방식

가장 흥미로운 기술로 이 문서에서 다룰 내용

 

Windows 10 의 등장과 이로인한 지각변동

Windows 10 의 점유율이 높아짐에 따라 process Injection 기술에 큰 영향이 있었다.

 

x64으로 인한 영향

x86 에서 fastcall 이 아니라면 모든 argument 들은 stack 에 위치했다. 하지만 x64에서는 최초 4개의 인자 값은 레지스터(RCX, RDX, R8 그리고 R9) 에 존재한다. 이 때문에 x64 에서는 페이로드를 만드는 것이 더 힘들다. 함수 실행을 위해서 레지스터를 매번 바꿔줘야한다니 번거롭다!  게다가 POPA instruction 도 없다. 

 

새로운 보안 기능

Win 10 은 새로운 Process Exploit 막는 기술을 소개했다(SetProcessMitigationPolicy API로 컨트롤)

 

1. CFG(Control Flow Guard)

MS 에서 제공하는 CFI 이다. call 하는 대상을 검증하기 위해 컴파일러가 Indirect CALL/JMP 을 호출하기 전에 _guard_check_icall 을 호출한다.  검증은 모듈별 16byte 길이의 리스트를 통해 이루어진다. 이 때 호출하는 모듈과 호출의 대상이 되는 모듈 둘다 CFG를 지원하는 상태여야 한다. 

 

2. Dynamic Code prevention

이 기능은 process 가 VirtualAlloc 을 PAGE_EXECUTE 옵션을 사용해서 호출한다던가. MapViewOfFile 을 FILE_MAP_EXECUTE 옵션, VirtualProtect 를 PAGE_EXECUTE 옵션으로 호출하는 Native code를 가져오고자 하는 행위를 막는다. 

 

3. Binary Signature Policy(CIG)

MS, MS Store, WHQL 가 서명한 모듈만을 메모리에 로드할 수 있다. 

 

4. Extension Point Disable Policy

프로세스에 Dll 을 로드하는 AppInit Dlls, Winsock LSP, Global Windows Hooks  를 막는다. 

 

또한 자주 injection 대상으로 사용한 explorer.exe와 몇몇 주요한 Windows 프로세스들은  CFG로 보호되고 있다. 

 

본 글에서 다루는 타겟은 다음과 같다.

 

- Windows 10 x64 at recent build(1803/1809/1903)

- 64bit 프로세스.

- 모든 프로세스는 medium integrity

- 타겟은 이미 실행 중임 위에서 언급했던 '3. 실행(running) 중인 프로세스에 Injection 하는 방식'

privilege elevation이 필요한 것은 논외로함

- 해당 기술에 대해 CFG, CIG 등 보호기법을 적용한 상태 안한 상태로 해볼 것임

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고자료 : Windows Process Injection in 2019 - Amit Klein, Itzik Kotler Safebreach Labs

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함