C0XMO 봇넷, DD‑WRT 라우터 취약점으로 전파돼 경쟁 악성코드 격파

새로운 변종인 C0XMO는 Gafgyt 봇넷의 일종으로 DD‑WRT 라우터 펌웨어를 표적으로 삼으며, 다양한 CPU 아키텍처를 가진 다른 장치로도 이동할 수 있습니다.
연구진은 ARM, MIPS, PowerPC, SuperH, x86, x86_64 등 여러 아키텍처용 샘플을 발견했으며, 여기에는 DVR, 라우터, 영상 관리 플랫폼, Android 기반 장치를 노리는 익스플로잇이 포함됩니다.
이 봇넷은 일본의 한 기술 회사를 표적으로 삼은 것으로 보였지만, 조사 결과 공격에 사용된 IP 주소는 독일에 위치한 장치에서 나온 것이었습니다.
Fortinet 연구원들은 C0XMO를 발견하고, 이 봇넷이 모듈형 설계를 채택해 운영자가 악용 기법을 업데이트하고, 대상 아키텍처를 추가·제거하며, 메인 페이로드와는 별개로 횡방향 이동 기능을 확장할 수 있다고 강조했습니다.
근본적으로 C0XMO는 분산 서비스 거부(DDoS) 공격을 수행하는 악성코드이며, UDP/TCP/SYN/ICMP 플러드, “ping of death”, NTP/멤캐시드 증폭, Discord 음성 UDP 플러드, Valve 전용 플러드 등 19가지 방법을 지원합니다.
연구진에 따르면 C0XMO 봇넷은 CVE‑2021‑27137(사용자 입력 검증 부족으로 인한 버퍼 오버플로) 취약점을 이용해 전달됩니다. 인증 없이 악용할 수 있으며 임의 코드를 실행하게 됩니다.
Gafgyt 스캐너
보다 넓은 배포를 위해 C0XMO는 ‘requests’, ‘paramiko’, ‘beautifulsoup4’ 등 네트워크 스캔과 통신, SSH·텔넷 프로토콜을 통한 활동에 필요한 추가 패키지를 설치하는 파이썬 스크립트를 다운로드합니다.
스캐너는 워커 스레드를 사용해 22(SSH), 23(텔넷), 80/443(HTTP/HTTPS), 7547, 8080, 8443, 8888 등 일반 포트에 노출된 인터넷 시스템을 무작위로 탐색합니다.
대상을 찾으면 악성코드는 약한 텔넷·SSH 자격 증명을 무차별 대입하고, CPU 아키텍처를 감지한 뒤 호환 가능한 C0XMO 바이너리를 배포합니다.
스크립트에는 스캔, HTTP·ADB 기반 취약점 악용, CPU 아키텍처 탐지, SSH/텔넷 로그인, IP 주소 확인 등 다양한 작업을 수행하는 거의 20개의 함수가 포함되어 있으며, 주 목적은 네트워크 내에서 횡방향 이동하는 것입니다.
장치에 접근에 성공하면 악성코드는 자신을 ‘/tmp/.sys’, ‘/var/tmp/.sys’, ‘/dev/shm/.sys’ 등 숨김 경로에 복사하고, 15분마다 재실행하도록 크론 작업을 생성합니다. 또한 쉘 시작 파일을 수정해 자동 실행을 보장합니다.
게다가 C0XMO는 실행 중인 프로세스를 적극적으로 스캔해 호스트에 존재하는 경쟁 봇넷 클라이언트, 레드팀 도구, 개발 도구, 네트워크 서비스 등을 찾아내어 종료합니다. 이를 위해 바이너리를 삭제하고, 크론 작업, init 스크립트, 시스템 서비스, 쉘 프로필 항목 등 지속성 메커니즘을 제거합니다.
악성코드가 확인하는 프로세스 목록
Source: Fortinet
그 후 악성코드는 하드코딩된 명령·제어(C2) 주소에 맞춤형 다단계 핸드셰이크(매직 문자열 및 공유 비밀 포함)로 연결하고 명령을 대기합니다.
지원되는 명령에는 하트비트 확인, 스캔 시작·중지, 19가지 방법 중 하나를 이용한 DDoS 공격 실행 등이 있습니다.
C0XMO 및 기타 봇넷 악성코드에 대비하기 위한 일반적인 권고 사항은 장치를 최신 상태로 유지하고, 고유한 관리자 자격 증명을 사용하며, 필요하지 않을 때는 원격 접근 기능을 비활성화하는 것입니다.
Fortinet은 C0XMO를 “이전 IoT 봇넷에 비해 훨씬 더 진보된 아키텍처와 기능 세트를 갖추고 있다”고 설명합니다.
연구진은 이 악성코드의 전체 설계가 “전형적인 Gafgyt 악성코드보다 높은 수준의 운영 정교함과 복잡성을 보여준다”고 평가했습니다.

보안 팀은 성공적인 공격의 54%를 기록하고, 그 중 14%만을 경보로 알립니다. 나머지는 환경을 무시하고 이동합니다.
Picus 백서에서는 침해·공격 시뮬레이션이 SIEM 및 EDR 규칙을 어떻게 테스트해 위협이 탐지되지 않고 넘어가는 것을 방지하는지 보여줍니다.
