티스토리 뷰

728x90
반응형

[Malware analysis] CVE-2017-8291, 고스트스크립트 취약점 ②


[Malware analysis] CVE-2017-8291, 고스트스크립트 취약점 ①


계속 진행해서 HimTratIcon.exe 살펴보자.


1. Injection 상세분석(HimTratIcon.exe)

alloc 할당을 진행 후 반복을 통해 메모리에 PE파일을 쌓는 걸 확인할 수 있었다



진행 시 System 폴더 경로를 얻은 후 해시 값을 통해 “userinit.exe”을 얻는 것을 확인할 수 있다. 이후 alloc 할당까지 진행하는 것을 알 수 있으며, CreateProcessA() 까지 호출하는 것을 확인할 수 있었다.


“Userini.exe” 프로세스를 Suspend 상태로 생성하는 것을 알 수 있다.


이후 살펴보면 VirtualAlloceEX(), WriteProcessMemory() API을 이용하여 대상 프로세스(userinit.exe)에 할당 및 PE파일을 쓰는 것을 확인할 수 있다. 이후 스레드 컨텍스트까지 얻은 후 ResumeThread()을 통해 Suspend 상태를 해제하는 것을 알 수 있다.


2. Userinit.exe 상세분석

살펴보면 현재 프로세스를 얻으려고 시도하지만 실패를 하는 것을 알 수 있다. 즉, 권한이 없이 때문에 실패를 했다.

해당 프로세스의 권한을 얻기 위해 OpenProcessToken(), LookupPrivilegeValue(), AdjustTokenPrivilegeValue API을 이용하여 프로세스의 권한을 재설정하여 권한을 높여주는 것을 확인할 수 있다.


계속보게 되면 SYSTEM\CurrentControlSet\Control\SystemInformationSystemProduc 경로를 얻은 후 SytemProductName 값을 얻는 것을 확인할 수 있다.

기존 값은 “VMware Virtual Platform” 였지만 “jeongzzang”로 변경한 후 값을 가지고 왔다.


살펴보면 이전 얻은 SystemProductName을 CALL 4059E0에서 비교하는 부분을 확인할 수 있었다. 

CALL 4059E0에서 Virtual 가상 환경인지를 이름을 통해 확인 하는 것을 확인 후 미리 이름을 변경을 하였다. 이후 CALL 40588F에서 안티디버깅 API를 추가 확인했으며 가상 환경이 아니라 이후 계속 진행하였다.


살펴보면 가상 환경 체크 후 Kernel32, Wininet, advapi32 API를 로딩 하는 것을 확인할 수 있으며, 이후 스레드를 생성 후 Sleep 하는 것을 알 수 있다.


살펴보면 Sleep() API 호출 이후 스레드에 CPU가 점유하면서 “cmd.exe”을 이용하여 Temp 폴더에 있는 “a.24fd.bat” 실행하는 것을 확인할 수 있었다.








728x90
반응형
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today