
Nacos Derby 명령 실행 취약점 악용 스크립트
Nacos Derby 명령 실행 취약점 악용 스크립트로, 기본적으로 User-Agent 우회 취약점을 이용합니다.
Nacos는 서비스 등록, 발견 및 구성 관리를 위한 오픈 소스 플랫폼입니다. 초기 버전(≤2.4.0-BETA)에서 Nacos는 기본적으로 Apache Derby를 임베디드 데이터베이스로 통합했습니다. Derby 데이터베이스는 기본적으로 액세스 제어가 설정되어 있지 않기 때문에 공격자는 승인 없이 특정 인터페이스에 접근하여 임의의 SQL 문을 실행할 수 있으며, 이는 결국 원격 명령 실행 취약점으로 이어집니다.
취약점 원리:
인증되지 않은 접근: 기본 구성에서 Nacos의 Derby 데이터베이스 인터페이스에는 액세스 제어가 설정되어 있지 않아 누구나 접근할 수 있습니다.
SQL 인젝션: 공격자는 특정 HTTP 요청을 통해 Nacos의 Derby 인터페이스에 악성 SQL 쿼리를 전송합니다. 예를 들어, 다음 URL에 접근하면:
http://<Nacos 서버 주소>:8848/nacos/v1/cs/ops/derby?sql=select * from users
사용자 테이블의 모든 데이터가 반환됩니다.
원격 명령 실행: 더 심각한 점은 공격자가 Derby의 특정 기능을 이용해 SQL 문을 통해 임의 코드를 실행할 수 있다는 것입니다. 예를 들어 CALL 문을 사용하여 원격 악성 JAR 패키지를 로드하고 그 코드를 실행하여 피해자 서버에서 임의 명령을 실행할 수 있습니다.
수정 조치:
Nacos 업그레이드: 공식적으로 최신 버전에서 이 취약점을 수정했으므로 Nacos를 최신 버전으로 업그레이드하는 것을 권장합니다.
Derby 인터페이스 비활성화: 임베디드 데이터베이스를 사용하지 않는 경우 Derby 인터페이스를 비활성화하여 승인되지 않은 접근을 방지합니다.
인증 활성화: Nacos의 인증 메커니즘을 구성하여 인가된 사용자만 관련 인터페이스에 접근할 수 있도록 합니다.
이 취약점을 악용하면 데이터 유출, 서비스 중단, 심지어 서버가 완전히 제어될 수 있어 피해가 매우 큽니다. 따라서 영향을 받는 사용자는 위 조치를 즉시 취하여 보호할 것을 강력히 권장합니다.
nacos_derby_rce.py [-h] -u URL [-a TOKEN]