2014년에 처음 등장한 Gelsemium 사이버 공격 그룹은 정부, 대학교, 전자 제품 제조업체 및 종교 단체 등을 공격했다. 현재는 Gelsemium이 더욱 정교해진 백도어로 업데이트되어 서남아시아 및 동아시아를 주 타겟으로 공격하고 있으며 최근 PC용 안드로이드 에뮬레이터인 NoxPlayer로 위장해 백도어를 유포한 사례가 있다.
보안 기업 ESET에서는 "Gelsemine", "Gelsenicine", "Gelsevirine" 를 사용하여 백신 프로그램 탐지를 우회하고, 관리자 권한을 획득하는 등 더욱 정교해진 새로운 버전의 Gelsemium 백도어가 유포되고 있다고 발표했다.
분석을 진행한 Gelsemium 악성코드 샘플의 동작 과정은 [그림 1]과 같다.
① Gelsemine의 시작 파일 "DiagTrack.exe"는 "DiagTrack2.exe"를 드랍한다.
② "DiagTrack2.exe"의 리소스 섹션에 저장된 "Install.dll"을 메모리에서 실행한다.
③ 사용자의 OS 환경과 버전을 비교하여 상황에 맞는 Gelsenicine을 드랍한다.
④ "Install.dll"의 메모리에 저장되어 있는 암호화된 Gelsevirine 코드를 레지스트리에 저장한다.
⑤ Gelsenicine은 레지스트리에 저장된 Gelsevirine 코드를 복호화하여 로드한 후 실행한다.
⑥ Gelsevirine은 공격자의 C&C 서버에서 추가 파일을 다운로드한다.
Gelsemine (Dropper)
Gelsemine은 실행 시 "DiagTrack2.exe"파일을 드랍하고, 실행한다. "DiagTrack2.exe"의 리소스 섹션에는 암호화된 "install.dll"이 저장되어 있으며 해당 DLL 파일을 복호화하여 실행한다.
[그림 2]와 같이 "install.dll"의 메모리에는 "Gelsenicine"과 "Gelsevirine"의 정보 및 코드가 암호화되어 저장되어 있다.
실행된 "install.dll"은 사용자의 OS 버전을 비교하여 해당 OS 버전에 맞는 동작을 통해 관리자 권한을 획득한다. 이때, 실행중인 프로세스 중 특정 백신 프로그램이 존재하면 문자열을 비교한 후 해당 백신 프로그램 종료를 시도한다.
[표 2]는 DLL Table로 Gelsenicine과 Gelsevirine의 정보가 담겨있다.
Gelsenicine는 [load] 오프셋에 저장되어 있고, 관리자 권한 획득 여부 및 PC의 OS 버전을 확인한 후 상황에 맞는 Gelsenicine 파일을 [pulse]의 경로와 파일명을 참고하여 드랍한다.
관리자 권한 획득 성공 시 "%SYSTEM%" 경로에 접근하여 프린터 사용을 위한 정상 DLL 파일인 "winprint.dll"의 파일명을 "winemf.dll"로 변경한 후 Gelsenicine 로더를 "winprint.dll"로 위장하여 드랍한다. 그 후, 정상 서비스 프로세스인 "spoolsv.exe"를 종료하고, 재시작하여 자동으로 "winemf.dll"과 "winprint.dll"이 로드된다.
관리자 권한 획득이 실패하면 "%SYSTEM%" 경로에 접근할 수 없기에 Chrome 하위 폴더에 "chrome_elf.dll"이라는 파일명으로 Gelsenicine을 드랍한 후 "DiagTrack2.exe"의 메모리에서 실행된다.
Gesevirine는 [main] 오프셋에 저장되어 있고, [Mainpath]를 참고하여 해당 레지스트리에 암호화하여 저장한다.
그 후, 배치파일을 이용해 "DiagTrack2.exe"파일을 삭제한다.
Gelsenicine (Loader)
Gelsenicine은 레지스트리에 저장된 Gelsevirine을 복호화한 후 로드하여 실행한다.
Gelsevirine
Gelsevirine은 공격자의 C&C 서버에서 추가 파일을 다운로드한다. 분석 시점에서 C&C 서버와 연결이 되지 않아서 확인할 수는 없지만 다운로드한 파일을 이용하여 추가적인 악성 동작을 할 것으로 추정된다.
Gelsemium는 최근 안드로이드 에뮬레이터 NoxPlayer로 위장해 유포되어 이슈가 됐다. NoxPlayer로 위장한 Gelsemium 공격은 윈도우 OS뿐만 아니라 Mac OS까지 감염시킬 수 있으며 약 1억 5천만명 이상의 사용자가 해당 악성코드의 피해를 입은 것으로 알려졌다.
Gelsemium는 사용자의 PC가 감염되었다는 사실을 알아차릴 수 없도록 정상 프로세스에 로드되어 실행되는 특징이 있다. 따라서 사용자는 악성코드를 실행하기 전에 차단할 수 있도록 보안에 유의할 것을 권고한다.
상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 5.0에서 진단 및 치료가 가능하다.
'분석 정보 > 악성코드 분석 정보' 카테고리의 다른 글
다양한 방법으로 유포된 RedLine Stealer 악성코드 (0) | 2021.06.21 |
---|---|
제로데이 취약점을 사용한 PuzzleMaker (0) | 2021.06.18 |
군사 및 정부 기관을 대상으로 한 캠페인에 사용된 SkinnyBoy 악성코드 (0) | 2021.06.11 |
Powershell을 통해 실행되는 DoubleBack 악성코드 (0) | 2021.06.10 |
중국 해커 SharpPanda의 RoyalRoad를 사용한 APT 공격 (0) | 2021.06.09 |