
Shellhost.exe, amsi.dll, mstscax.dll, clbcatq.dll을 대상으로 모듈 스톰핑, CFG 우회, COM 하이재킹, 다운그레이드 공격을 사용하는 고급 다단계 로더에 대한 심층 리버스 엔지니어링 분석
이 분석은 Shellhost.exe, amsi.dll, mstscax.dll, clbcatq.dll을 대상으로 하는 정교한 다단계 로더를 다룹니다. 이 로더는 모듈 스톰핑, CFG 우회, COM 하이재킹, 다운그레이드 공격을 사용합니다.
로더는 페이로드 인젝션의 주요 프로세스로 Shellhost.exe를 대상으로 합니다. 모듈 스톰핑을 사용하여 Shellhost의 정상 코드를 자체 악성 페이로드로 덮어씁니다.
push 70207369h = "is p")와 유효하지 않은 명령어(jb, outs, ins)가 포함되어 있습니다.fothk 섹션: INT3 트랩과 CFG 우회 루틴으로 가는 단일 jmp로 채워진 사용자 정의 섹션입니다.Shellhost.exe에서 난독화된 페이로드의 WinDbg 뷰.

로더는 INT3(0xCC) 안티-디스어셈블리 트랩으로 채워진 사용자 정의 섹션을 amsi.dll에 인젝션합니다. 단일 jmp가 Control Flow Guard (CFG) 우회 루틴으로 리디렉션되며, jmp rax를 통해 최종 쉘코드로 점프합니다.
INT3 명령어로 채워져 있습니다.jmp: jmp 0x00007ffbc85060c0가 CFG 우회 루틴으로 이어집니다.
INT3 트랩과 단일 jmp 명령어의 WinDbg 뷰.
로더는 LocalAlloc을 사용하여 페이로드용 메모리를 수동으로 할당합니다. COM 하이재킹을 위해 파일 핸들과 vtable 할당으로 채워진 사용자 정의 구조체가 있습니다.
LocalAlloc(0x40, 0x68): 104바이트의 메모리를 할당합니다.*puVar12 = &PTR_FUN_180699290.puVar12[4] = hFile는 로더가 파일에서 데이터를 읽음을 시사합니다.
LocalAlloc 사용 및 수동 구조체 할당의 Ghidra 뷰.
로더는 고정 메모리 주소(lRam0000000000000000)와 vtable 호출을 사용하여 커널 객체를 조작합니다. 이 기술은 권한 상승에 사용됩니다.
lRam0000000000000000.+0x18, +0x40, +0x60은 커널 수준 연산을 나타냅니다.FUN_180031f18 및 FUN_1800330c8을 사용합니다.
고정 메모리 주소와 vtable 호출의 Ghidra 뷰.
HKLM\Software\Microsoft\COM3\RemoteAccessEnabledamsi.dll, mstscax.dll, clbcatq.dllShellhost.exefothk이 로더는 모듈 스톰핑, CFG 우회, COM 하이재킹, 다운그레이드 공격을 포함한 고급 회피 기술을 보여줍니다. 은닉성과 지속성을 보장하기 위해 여러 시스템 구성 요소를 대상으로 합니다.
StructBreaker – 악성코드 분석가 및 리버스 엔지니어