본문 바로가기
AhnLab 보안in

TDL4 코드 감염에 따른 부팅 시 재감염에 대한 분석

by 보안세상 2020. 4. 13.

2011.11.14

 

안녕하세요. 안랩인입니다. 지난번 포스팅에서는 TDL4 부트킷의 유래와 배포 과정, 그 특징에 대해 알아봤습니다.

 

TDL3와 TDL4 식별법

이번호에서는 TDL4 코드 감염에 따른 부팅 시 재감염에 대해 상세히 살펴보겠습니다. 지난번에도 살펴봤듯이, TDL4는 윈도우 비스타 이후 버전과 윈도우 XP, x64, x86에 따라 감염 루틴이 달라집니다. 하지만 실제 동작하는 드라이버의 코드는 사실상 같습니다(32비트 코드를 64비트 코드로 컴파일한 것처럼 보입니다). 따라서 악성 TDL4 드라이버의 기능은 같은 것으로 보입니다. 드라이버를 드롭하는 악성코드와 은폐 및 자기 보호, 감염된 MBR이 수행하는 기능에 대해 상세히 알아보겠습니다.

 

1. TDL4 드로퍼

 


TDL4 드로퍼(Dropper)는 각각 전혀 다른 바이너리를 가진 Custom Packer로 돼 있습니다. 해당 Packer를 분석하면 실제 코드가 나오는데, 감염 시스템의 OS 버전을 체크합니다. 윈도우 비스타나 윈도우 7에서 관리자 권한을 얻기 위해 MS10-092 취약점을 이용합니다.

 

드로퍼는 [그림 1]과 같이 동작합니다.

 

[그림 1] TDL4 드로퍼 동작

 

 

MS10-092는 Task Scheduler 취약점을 이용하는데, 윈도우 비스타 이후 버전의 운영체제에서 Task Scheduler는 환경 설정 정보가 있는 XML 파일 형태로 Job을 등록합니다. Job 환경 설정 파일은 일반적으로 %SystemRoot%\system32\TaskFolder\에 생성되며, Job Type, 실행 파일 Path, 실행 파일의 아규먼트, 실행 권한 등이 포함됩니다.

위와 같이 Job 환경 파일을 보호하기 위해 윈도우에서는 CRC32 CheckSum을 계산하여 비교합니다. 비교된 값이 동일해야만 실행이 가능합니다.

 

해당 취약점을 실행시키는 시나리오는 아래와 같습니다.

[그림 2] MS10-092 취약점 시나리오

 

Job 환경 파일을 아래와 같이 변경합니다.

   

   [그림 3] 변경된 Job 파일

 

LocalSystem의 권한으로 등록된 실행 파일이 실행됩니다. 변경된 Job 환경 파일에 아래와 같은 이상한 문자열이 등록되는데, 이것은 reversing한 CRC 값이 추가된 것입니다. <Ahn>

 * 더 자세한 내용은 안랩 홈페이지 를 참고해주시기 바랍니다.