분석 정보/악성코드 분석 정보

제로데이 취약점을 사용한 PuzzleMaker

알 수 없는 사용자 2021. 6. 18. 13:27

제로데이 취약점을 사용한 PuzzleMaker

최근 Google Chrome Microsoft Windows의 제로 데이 취약점을 사용한 공격이 등장하였다. 해당 공격은 여러 기업을 타겟으로 하였으며, 아래의 흐름도와 같이 취약점을 통해 사용자 PC에 접근하여 시스템 프로세스에서 악성코드를 실행한다.

 

[그림 1] 흐름도

 

공격은 Google Chrome에서 시작된다. Chrome 웹 브라우저의 취약점은 Java Script 엔진인 V8의 유형 혼돈으로 인해 공격자가 만든 HTML 페이지로 샌드 박스 내에서 원격 코드 실행 (RCE)를 실행하는 취약점으로 CVE-2021-21224로 추정되지만, 정확한 스크립트는 발견되지 않았다.

 

그리고 CVE-2021-31955CVE-2021-31956로 지정된 Windows의 취약점을 사용한다. CVE-2021-31955Windows 커널 정보 유출 취약성으로 Windows OS의 기능인 SuperFetch 기능과 관련이 있다. SuperFetch는 일반적으로 사용되는 응용프로그램을 미리 메모리에 로드하여 소프트웨어 로드 시간을 줄이는 기능을 한다. 그래서 NTQuerySystemInformation 함수로 SystemSuperfetchInformation을 구현하여, 이 시스템 정보 클래스에서 현재 실행중인 프로세스에 대한 EPROCESS 커널 주소를 획득한다.

 

그리고 CVE-2021-31956Windows NTFS 권한 상승 취약성으로 ntfs.sys와 관련이 있다. ntokrnl syscall을 통해 액세스되는 NtfsQueryEaUserEaList 함수는 파일에 대한 확장된 속성 목록을 처리하고 검색된 값을 버퍼에 저장한다. 이때 ntoskrnl syscall이 출력 버퍼의 크기를 제어하는데 버퍼의 크기가 어느 정도 이상인지 여부만 확인하여, 힙 기반 버퍼 오버 플로우가 발생한다.

 

위의 과정으로 시스템 토큰을 획득하여 시스템 프로세스에 Puzzle Maker 악성코드가 생성된다. 해당 악성코드는 4개의 악성 모듈로 구성되어 있다. 먼저, 다운로더는 원격지 서버에 연결하여 감염 성공 사실을 알리고 드롭퍼를 다운로드한다. 다운로드된 드롭퍼는 두개의 파일을 드롭한다. 두개의 파일은 system 폴더에 WmiPrvMon.exewmimon.dll 파일명으로 생성된다.

 

WmiPrvMon.exe wmimon.dll을 서비스 목록에 등록하고 시작하는 동작을 수행한다.

 

[그림 2] 서비스 등록 코드

 

그리고 wmimon.dll은 최종 페이로드로, 원격지에 연결하여 악성동작을 수행한다.

 

[그림 3] 원격지 연결 코드

 

원격지와 연결된다면, 데이터를 받아와 파일을 생성할 수 있다.

 

[그림 4] 파일 생성 코드

 

그리고 콘솔에 입출력 권한을 획득하여 원격 쉘 동작을 수행할 수 있다.

 

[그림 5] 콘솔 실행 코드

 

이번 보고서에서 알아본 PuzzleMaker 악성코드는 제로데이 취약점을 사용하여 사용자 PC에 접근하였기에 상당한 주의가 필요하다. 이러한 공격의 피해를 최소한으로 예방하기 위해서는 백신 제품을 설치하여 업데이트를 한다.

 

상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 5.0에서 진단 및 치료가 가능하다.

 

[그림 6] TACHYON Endpoint Security 5.0 진단 및 치료 화면