C0XMO: 교차 플랫폼 전파를 가진 새로운 Gafgyt 변종
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
FortiGuard Labs는 C0XMO라는 새로운 Gafgyt 봇넷 변종을 확인했으며, 이는 DD-WRT 라우터의 버퍼 오버플로 취약점을 악용하여 전파됩니다. 이 취약점은 CVE-2021-27137로 추적됩니다. 이 악성코드는 다양한 CPU 아키텍처에서 감염을 확산하기 위해 별도의 Python 기반 스캐너를 사용하며, 약한 자격 증명 공격, 여러 가지 DDoS 기능 및 경쟁하는 악성코드를 제거하는 루틴에도 의존합니다. 감염 후에는 숨김 파일, 크론 작업, 셸 프로필 변경을 통해 지속성을 유지한 후 명령 및 제어 서버에 연결합니다. 이 보고서에는 노출된 IoT 장치를 운영하는 조직을 위한 지침과 방어에 대한 지표가 포함되어 있습니다.
조사
분석 결과 C0XMO가 DD-WRT UPnP 서비스에서 CVE-2021-27137 를 악용하여 초기 접근을 확보한 후, 217.160.125.125:15527에서 Python 스캐너를 가져옵니다. 이 스캐너는 텔넷 및 SSH 강제 공격을 수행하고, 여러 HTTP 기반 exploit 요청을 실행하며, 대상 환경에 따라 아키텍처 별 바이너리를 배포합니다. 지속성은 /tmp, /var/tmp, /dev/shm과 같은 위치에 숨김 파일을 배치하고, 사용자 홈 디렉토리, 크론 작업 엔트리 및 셸 프로파일 수정을 통해 유지됩니다. 그 후 악성코드는 85.215.131.70 의 C2 인프라와 맞춤형 핸드셰이크 시퀀스를 사용하여 통신합니다.
완화 방안
조직은 DD-WRT 펌웨어를 changeset 45723 보다 최신 릴리스로 업그레이드하고 관련 CVE의 수정을 적용해야 합니다. 불필요한 원격 서비스 (UPnP, Telnet 및 SSH 등)는 인터넷에 노출된 장치에서 가능하면 비활성화해야 합니다. 모든 엣지 장치에 대해 강력하고 고유한 자격 증명 사용을 강제하여야 하며, 노출된 서비스는 정기적으로 검토되어야 합니다. 식별된 IP 주소, 포트 및 악성 명령 패턴에 대해 네트워크 기반 탐지를 배치해야 합니다.
대응
방어자는 알려진 C2 인프라와 스캐너 다운로드 포트에 대한 연결을 모니터링해야 합니다. 숨겨진 파일 이름 .sys, 15분마다 실행되는 크론 변경 및 스캐너 스크립트 실행에 대한 경고가 설정되어야 합니다. 식별된 악성 IP 및 도메인은 방화벽에서 차단되어야 하며, 침해된 장치는 포렌식 검토 및 완전한 정리를 위해 격리되어야 합니다.
공격 플로우
탐지
직접 실행을 위한 크론탭 사용 가능성 (cmdline를 통해)
보기
표준 도구를 통한 원격 파일 업로드 / 다운로드 (cmdline를 통해)
보기
리눅스 호스트에 숨김 파일 생성됨 (file_event 통해)
보기
IOCs (HashSha256)를 탐지: 새 Gafgyt 변종 C0XMO의 크로스 플랫폼 전파
보기
IOCs (SourceIP)를 탐지: 새 Gafgyt 변종 C0XMO의 크로스 플랫폼 전파
보기
IOCs (DestinationIP)를 탐지: 새 Gafgyt 변종 C0XMO의 크로스 플랫폼 전파
보기
C0XMO 봇넷 C2 통신 탐지 [방화벽]
보기
C0XMO Gafgyt 변종 페이로드 다운로드 탐지 [리눅스 프로세스 생성]
보기
C0XMO 악성코드 파일 작업 탐지 [리눅스 파일 이벤트]
보기
C0XMO 프로세스 스캔 및 지속성 검사 [리눅스 프로세스 생성]
보기
시뮬레이션 실행
필수 조건: Telemetry & Baseline 사전 점검이 통과해야 합니다.
근거: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적대적인 기술 (TTP)의 구체적인 실행을 설명합니다. 명령어와 내러티브는 식별된 TTP를 구체적으로 반영하고 탐지 논리가 기대하는 정확한 텔레메트리를 생성해야 합니다.
-
공격 내러티브 및 명령어:
당사의 봇은 이미 서비스 실행 (T1546.007)을 통해 감염된 호스트에 설치되어, 하드코딩된 서버 217.160.125.125와 포트 15527에서 C2 핸드셰이크를 시작합니다. 연결은 TCP 소켓을 사용하여 명령을 끌어오며, 규칙의 기준과 정확히 일치합니다. 이 활동은 C0XMO 봇넷의 ‘홈으로 전화’ 행동에 일반적입니다. -
회귀 테스트 스크립트:
# C0XMO C2 통신 시뮬레이션 – Sigma 규칙을 트리거합니다 $c2Ip = "217.160.125.125" $c2Port = 15527 # TCP 연결을 열고 최소한의 페이로드 전송 후 종료 $client = New-Object System.Net.Sockets.TcpClient $client.Connect($c2Ip, $c2Port) $stream = $client.GetStream() $payload = [System.Text.Encoding]::ASCII.GetBytes("PING`n") $stream.Write($payload, 0, $payload.Length) # 실제 지연을 모방하기 위해 잠시 대기 Start-Sleep -Seconds 2 $stream.Close() $client.Close() -
정리 명령어:
# 영속적인 변화는 없었으므로 열린 소켓이 있는지 확인하고 닫습니다 # (스크립트는 이미 소켓을 닫습니다; 이는 안전망입니다.) Get-Process -Name "powershell" | Where-Object { $_.MainWindowTitle -eq "" } | Stop-Process -Force