[Security] 악성코드 샘플 분석 1차

2011년 Trojan.Kraddare 악성코드를 정적·동적 분석으로 실제 분석했습니다. VirusTotal, PEStudio, Process Monitor 등 도구를 활용해 관리자 권한 탈취, C2 통신, 파일 드롭 행위를 추적했습니다.

[Security] 악성코드 샘플 분석 1차
Photo by Ed Hardie / Unsplash

개요

실제 악성코드 샘플을 분석하며 정적분석과 동적 분석을 수행했습니다.

정적분석 수행(VirusTotal)

Notion Image

PEStudio를 통해 다음과 같은 값들을 확인합니다.

  1. 파일 기본 정보
  2. 컴파일 정보
  3. PE 구조
  4. 보안 관련 주요 지표
  5. VirusTotal 탐지 결과
  6. 행위 태그 (VirusTotal)
  7. 주요 의심 포인트 요약

파일의 해시 값은 아래와 같이 명령어를 작성하거나 Indicator를 통해 확인 가능합니다.

Get-FileHash "C:\Users\bjc11\Downloads\bton02setup\bton02setup.exe" -Algorithm SHA256
09BE398172732114739CD213A7FF6AC3D36F3239825512BC683E938C814C3399
Notion Image

주요 위협 라벨: trojan.kraddare/jatif

위협 카테고리:

  • Trojan (트로이 목마)
  • Adware (애드웨어)
  • Downloader (다운로더)

악성코드 패밀리: Kraddare, Jatif, Atraps


Behavior Tags (행위 태그):

  • checks-network-adapters (네트워크 어댑터 검사)
  • checks-user-input (사용자 입력 검사)
  • direct-cpu-clock-access (CPU 클럭 직접 접근)
  • long-sleeps (장시간 대기)
  • runtime-modules (런타임 모듈)
  • self-delete (자기 삭제)

PEStudio

Notion Image
  • Microsoft Visual C++ / Visual Studio 6.0 컴파일러
  • GUI 실행 파일
  • 컴파일 시간(2015-08-04 00:34:52)
  • 한국어
  • http://a-ton.co.kr 도메인 패턴
    • 네트워크 통신 기능 (WSOCK32, NETAPI32)
    • 외부 실행파일 다운로드 URL 존재 (nskSetup.exe)
  • 만료된 인증서 사용 등 확인
Notion Image

악성코드에서 자주 사용되는 의심스러운 API 리스트

  1. 프로세스 열거 → AV/분석도구 탐지
  • CreateToolhelp32Snapshot
  • Process32First
  • Process32Next
  1. 디렉토리 생성 + 파일 쓰기 → 페이로드 드롭
  • CreateDirectoryA
  • WriteFile
  1. 프로세스 생성/WinExec → 드롭된 파일 실행
  • CreateProcessA
  • WinExec
  1. 레지스트리 생성 → 지속성 확보
  • RegCreateKeyA
  1. 네트워크 API → C2 통신
  • Netbios
  • WSACleanup

Notion Image
<requestedExecutionLevel                                                                                                                           
    level="requireAdministrator"                                                                                                                   
    uiAccess="false"/>
  • 실행시 관리자 권한 요구
Notion Image

[프로세스 열거/조작]

  • Process32Next
  • Process32First
  • CreateToolhelp32Snapshot
  • GetCurrentProcess
  • GetCurrentThread
  • SetPriorityClass

[프로세스/프로그램 실행]

  • CreateProcess
  • WinExec

[파일 시스템 조작]

  • CreateDirectory
  • WriteFile

[레지스트리 조작]

  • RegCreateKey

[네트워크 통신]

  • Netbios

[C2/악성 URL (a-ton.co.kr)]

[인증서 관련 URL (정상)]

Notion Image

[Unknown]

  • 파일 확장자를 확인할 수 없어 악성 스크립트일 가능성도 존재

동적 분석

WireShark

실제 악성코드 실행시 해당 도메인으로 요청 보낸 것을 확인. 다만 도메인을 찾을 수 없어 실패함.

Notion Image
Notion Image

Process Monitor

Notion Image
  • Process Name is bton02setup.exe - 이 프로세스 활동만 보기
  • Operation is CreateFile - 파일 생성/열기
  • Operation is WriteFile - 파일 쓰기 (드롭)
  • Operation is RegSetValue - 레지스트리 값 설정 (persistence)
  • Operation is Process Create - 자식 프로세스 생성
Notion Image
Notion Image

레지스트리 값을 읽고, 쓰고, 닫는 작업을 지속적으로 수행하는 것을 확인

  • HKCU\Software\Microsoft\Windows... (사용자 설정)
  • HKLM\SOFTWARE\Policies\Microsoft... (정책 설정)
  • HKLM\SOFTWARE\WOW6432Node... (32비트 호환)
  • HKLM\System\CurrentControlSet... (서비스/드라이버)
  • HKCR\PackagedCom\TypeLibIn... (COM 객체 등록)
  • HKCU\Software\Classes... (파일 연결)
Notion Image
Notion Image
  • C:\DelUS.bat → 자기 삭제 스크립트일 가능성 높음
    • Path contains DelUS.bat
Notion Image
Notion Image
  • bton02setup → bton02setup 권한 상승 확인
  • bton02setup → cmd.exe 명령줄 명령 실행함
  • conhost.exe → 레지스트리 값을 읽고, 쓰고, 닫는 작업을 지속적으로 수행하는 것을 확인
  • 실제 실행한 자기 파일도 삭제한 것을 확인

Process Explorer

  • 실행시점, 5분 뒤, CPU Metric을 많이 먹는 작업 모두 확인했지만 유의미한 결과를 확인하지 못함.
Notion Image

Notion Image

RegShot

따로 특이사항을 확인하지 못함.

Notion Image
Notion Image
  • RegShot 텍스트 분석

AutoRuns

ARN을 생성한 후 비교(5분 뒤 재 확인시 새로 생성된 항목 없음)

Notion Image
Notion Image

악성 행위 분석에 대한 설명과 어떤 유형의 악성코드인가

정적 분석 결과

Manifest

  • level="requireAdministrator" → 실행 시 UAC 관리자 권한 요구
  • name="IsUserAdmin" → 관리자 여부 확인 목적

Imports

  • Process32Next / Process32First / CreateToolhelp32Snapshot → 프로세스 목록 열거
  • CreateProcessA / WinExec → 외부 프로그램 실행
  • CreateDirectoryA → 디렉토리 생성
  • WriteFile → 파일 쓰기 (다운로드 파일 저장)
  • RegCreateKeyA → 레지스트리 키 생성 (자동실행 등록 추정)
  • GetCurrentProcess / GetCurrentThread / SetPriorityClass → 프로세스 제어
  • Netbios / WSACleanup → 네트워크 통신

Strings (의심 URL)

VirusTotal

  • direct-cpu-clock-access → RDTSC로 디버거/VM/샌드박스 탐지
  • long-sleeps → 샌드박스 분석 시간 초과 유도
  • checks-network-adapters → VM 가상 NIC 감지
  • checks-user-input → 실제 사용자 PC 여부 확인

동적 분석 결과

Process Monitor

  • 레지스트리 조작: HKLM\SOFTWARE\Microsoft\Windows 등 다수 RegOpenKey, RegSetValue, RegCloseKey
  • 파일 읽기: mfc4, Ole32.dll 등 시스템 파일 ReadFile
  • 실행 시간: 0.156초 만에 종료 → VM 환경 감지 후 즉시 종료 추정

WireShark

  • a-ton.co.kr A 레코드 조회 → NXDOMAIN (도메인 존재하지 않음)
  • SOA 응답 → Authority DNS 서버가 도메인 없음을 공식 확인
  • C2 서버 폐쇄로 추가 페이로드 다운로드 실패

악성코드 예상

  • 추가 악성파일을 다운로드하여 설치하는 악성 코드(setup)
  • 관리자 권한 실행을 기반으로 C2 통신 수행 → 파일 다운로드 → 2차 악성코드 실행

정리

2011년도의 악성 코드이다보니 실제 동작을 수행하기 어려웠습니다만 툴에 대한 사용법을 익힐 수 있었습니다. 다만 분석을 진행할 때는 여러가지 툴을 사용하면서 기능의 특화된 툴을 사용하는 것이 권장됩니다.

  • 기초 분석 → VirusTotal
    • 정적 분석과 동적 분석에 참고할 수 있을만한 내용들을 확인
  • 정적 분석 부족한 부분
    • 패킹이 되어있는지 확인하는게 가장 우선 순위.
    • 만약 패킹되어있다면 언패킹을 먼저 수행해야함.
    • VirusTotal: 각각의 백신에서 어떠한 행위의 악성으로 분류했는지
  • 동적 분석 부족한 부분
    • 파일과 레지스트리 추가 생성되는 파일이 있는지?
    • Process Explorer, Process Monitor를 통한 백그라운드
      • 악성코드로 인해 Window 앱이 동작하는 경우가 있음.
        • 실제 악성코드로 실행된게 맞는지 확인
    • 네트워크 기반의 환경을 확인
  • 어떠한 유형의 악성코드인지 확인하는 것이 좋음