TCLBANKER: 워츠앱과 아웃룩을 통해 확산되는 브라질 은행 트로이 목마
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 보고서는 불법적인 .NET 페이로드를 전달하기 위해 서명된 로지텍 설치 프로그램을 악용하는 새로 식별된 브라질 은행 트로이 목마인 TCLBANKER를 검사합니다. 이 악성코드는 금융 세션을 대상으로 하는 WPF 오버레이를 사용하는 은행 모듈 및 WhatsApp 웹과 Microsoft Outlook을 사용하여 전파하는 두 가지 웜 유사 모듈을 포함합니다. 명령 및 제어 통신은 Cloudflare Workers WebSocket 인프라를 통해 처리되며, 악성코드는 탐지를 방해하고 조사를 어렵게 하기 위해 다양한 반분석 기술을 포함하고 있습니다.
조사
Elastic Security Labs는 악성 MSI 패키지, DLL 사이드로딩 방식, .NET 로더 및 전파 모듈을 분석했습니다. 연구원들은 명령 및 제어 URL, API 키, 예약된 작업 지속성 세부 사항, 그리고 이 악성코드가 타겟으로 삼고 있는 59개의 브라질 은행 도메인을 복구했습니다. 그들의 분석은 또한 반디버깅 로직, 샌드박스 회피법, 독자적인 행동을 문서화하여 악성코드가 활성화되고 강력하게 유지되도록 설계되었습니다.
완화 방안
방어자들은 신뢰할 수 없는 설치 프로그램의 실행을 차단하고, LogiAiPromptBuilder.exe와 관련된 DLL 사이드로딩을 모니터링하며, Outlook 및 브라우저 환경에 최소 권한 제어를 적용해야 합니다. 탐지 콘텐츠에는 예약된 작업 RuntimeOptimizeService를 포함해야 합니다. 네트워크 방어는 식별된 Cloudflare Workers 도메인 및 IP 주소 191.96.224.96.
를 차단해야 합니다.
TCLBANKER가 탐지된 경우, 영향을 받은 엔드포인트를 즉시 격리하고, 악성 프로세스를 종료하고, 예약된 작업을 제거하며, %LocalAppData%LogiAI 디렉토리를 삭제해야 합니다. 조사자는 DLL 해시 및 명령 및 제어 트래픽과 같은 포렌식 증거를 보존하여 정보 공유를 위한 기반을 마련해야 합니다. 손상된 Outlook 및 WhatsApp 자격 증명은 재설정하고, 추가 전파 시도를 감시해야 합니다.
graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef persistence fill:#ccccff classDef c2 fill:#ffdd99 %% 노드 user_execution[“<b>행위</b> – <b>T1204.002 사용자 실행</b><br/>사용자가 ZIP에서 추출한 악성 MSI 실행”] class user_execution action delivery_zip[“<b>행위</b> – <b>T1546.016 이벤트 트리거 실행: 설치 패키지</b><br/>서명된 Logitech 설치 프로그램을 이용해 ZIP 내부 MSI 전달”] class delivery_zip action malicious_msi[“<b>악성코드</b> – <b>이름</b>: 악성 MSI<br/><b>설명</b>: ZIP에 포함되어 서명된 설치 프로그램에 의해 실행됨”] class malicious_msi malware signed_logitech_installer[“<b>도구</b> – <b>이름</b>: Logitech Logi AI Prompt Builder 설치 프로그램(서명됨)”] class signed_logitech_installer tool logiai_exe[“<b>프로세스</b> – <b>이름</b>: LogiAiPromptBuilder.exe”] class logiai_exe process sideloader_dll[“<b>악성코드</b> – <b>이름</b>: screen_retriever_plugin.dll (Flutter 플러그인 위장)”] class sideloader_dll malware flutter_framework[“<b>도구</b> – <b>이름</b>: Flutter 프레임워크 (신뢰된 개발 도구)”] class flutter_framework tool dotnet_reactor[“<b>도구</b> – <b>이름</b>: .NET Reactor 패커”] class dotnet_reactor tool polymorphic_payload[“<b>악성코드</b> – <b>이름</b>: AES-256 암호화 페이로드<br/>환경 의존 키로 폴리모픽 동작”] class polymorphic_payload malware env_evasion[“<b>행위</b> – <b>T1497.002 가상화/샌드박스 회피</b><br/>사용자 행동, 디버거, 가상환경, 지역 체크”] class env_evasion action locale_check[“<b>행위</b> – <b>T1614.001 시스템 위치 탐지</b><br/>LCID, 키보드 레이아웃, 시간대(pt-BR) 확인”] class locale_check action scheduled_task[“<b>지속성</b> – <b>T1053 예약 작업</b><br/>로그인 시 RuntimeOptimizeService 숨김 작업 생성”] class scheduled_task persistence screen_capture[“<b>행위</b> – <b>T1113 화면 캡처</b><br/>멀티 모니터 전체 화면 PNG 캡처”] class screen_capture action keylogging[“<b>행위</b> – <b>T1056.001 입력 캡처: 키로깅</b><br/>WH_KEYBOARD_LL 저수준 훅 설치”] class keylogging action outlook_bot[“<b>악성코드</b> – <b>이름</b>: Outlook COM 자동화 봇”] class outlook_bot malware phishing_action[“<b>행위</b> – <b>T1566 피싱</b><br/>피해자 Outlook 계정으로 피싱 이메일 전송”] class phishing_action action email_bombing[“<b>행위</b> – <b>T1667 이메일 폭탄</b><br/>수집된 연락처 대상 대량 피싱”] class email_bombing action network_logon_script[“<b>행위</b> – <b>T1037.003 네트워크 로그온 스크립트</b><br/>영구 WebSocket 연결 생성”] class network_logon_script action websocket_c2[“<b>C2</b> – 엔드포인트: wss://mxtestacionamentos.com/ws<br/>인증: HMAC-SHA256”] class websocket_c2 c2 %% 연결 user_execution –>|트리거| delivery_zip delivery_zip –>|포함| malicious_msi malicious_msi –>|실행됨| signed_logitech_installer signed_logitech_installer –>|실행| logiai_exe logiai_exe –>|로딩| sideloader_dll sideloader_dll –>|사용| flutter_framework sideloader_dll –>|패킹| dotnet_reactor sideloader_dll –>|포함| polymorphic_payload polymorphic_payload –>|회피| env_evasion env_evasion –>|포함| locale_check logiai_exe –>|생성| scheduled_task logiai_exe –>|화면 캡처| screen_capture logiai_exe –>|키 입력 기록| keylogging logiai_exe –>|실행| outlook_bot outlook_bot –>|실행| phishing_action outlook_bot –>|실행| email_bombing logiai_exe –>|설정| network_logon_script network_logon_script –>|연결| websocket_c2
공격 흐름
탐지
시스템 정지 또는 재부팅을 강제로 유도하는 종료 (명령줄을 통해)
보기
탐지할 IOCs (HashSha256): TCLBANKER: WhatsApp 및 Outlook을 통해 전파되는 브라질 은행 트로이 목마
보기
탐지할 IOCs (HashSha1): TCLBANKER: WhatsApp 및 Outlook을 통해 전파되는 브라질 은행 트로이 목마
보기
탐지할 IOCs (SourceIP): TCLBANKER: WhatsApp 및 Outlook을 통해 전파되는 브라질 은행 트로이 목마
보기
탐지할 IOCs (DestinationIP): TCLBANKER: WhatsApp 및 Outlook을 통해 전파되는 브라질 은행 트로이 목마
보기
TCLBANKER C2 통신 탐지 [Windows 네트워크 연결]
보기
TCLBANKER 캠페인에서의 악성 DLL 사이드로딩 탐지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 원격 분석 및 기준치 사전 비행 검사가 통과해야 합니다.
근거: 이 섹션은 탐지 규칙을 발동하기 위해 설계된 적 기법(TTP)의 정확한 실행을 세부적으로 설명합니다. 명령 및 서사는 식별된 TTP를 직접적으로 반영하여 탐지 논리에 의해 기대되는 구체적인 텔레메트리를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예시는 오진을 초래할 것입니다.
-
공격 서사 및 명령:
- 악성 DLL 준비 – 공격자는 악성 DLL을 (
evil.dll) 올바른LogiAiPromptBuilder.exe와 동일한 디렉토리에 두었습니다. 이 DLL은 서명되지 않았으며 은행 트로이 목마 페이로드를 포함하고 있습니다. - 올바른 바이너리 실행 – 공격자는
LogiAiPromptBuilder.exe를 탐색기(Explorer)에서 직접 실행합니다 (또는 PowerShell 세션에서) 수행하여 OS의 DLL 검색 순서를 통해 악성 DLL을 로드하는 프로세스를 유발합니다 (사이드로딩). - 표준 텔레메트리 – Sysmon/Event ID 1은
이미지가logiaipromptbuilder.exeand제외 리스트에 포함되어 있기 때문에, 시그마 규칙이 작동해야 합니다.가부모이미지부모이미지 not 가
- 악성 DLL 준비 – 공격자는 악성 DLL을 (
-
회귀 테스트 스크립트:
# ------------------------------------------------------------------------- # TCLBANKER DLL 사이드로딩 시뮬레이션 – PowerShell # ------------------------------------------------------------------------- # 1. 경로 정의 (다른 워크스테이션에서 실행 시 조정 필요) $logiPath = "$env:ProgramFilesLogitechLogiAiPromptBuilder.exe" $dllPath = "$env:ProgramFilesLogitechevil.dll" # 2. 더미 악성 DLL 생성 (시연 용도로, 그냥 메모장 복사본) Write-Host "[+] 악성 DLL 준비 중 (시뮬레이션된 페이로드)..." Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $dllPath -Force # 3. 올바른 바이너리 실행 (부모는 현재 PowerShell 프로세스가 됨) Write-Host "[+] LogiAiPromptBuilder.exe 실행하여 사이드로딩 트리거..." Start-Process -FilePath $logiPath -PassThru | Wait-Process # 4. 선택 사항: 프로세스가 기록되었는지 확인 (Sysmon/ELK 접근 필요) Write-Host "[+] 시뮬레이션 완료. 탐지 확인을 위해 SIEM 확인." -
정리 명령어:
# ------------------------------------------------------------------------- # TCLBANKER 시뮬레이션 정리 # ------------------------------------------------------------------------- $dllPath = "$env:ProgramFilesLogitechevil.dll" if (Test-Path $dllPath) { Write-Host "[+] 스테이징된 악성 DLL 제거 중..." Remove-Item -Path $dllPath -Force } Write-Host "[+] 정리 완료."