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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-17147 — CVE-2019-17147에 대한 종합적인 리버스 엔지니어링 및 익스플로잇으로, TP-Link TL-WR841N 라우터의 스택 버퍼 오버플로우 취약점입니다. 펌웨어 분석, 하드웨어 디버깅, 인증되지 않은 RCE를 위한 단계적 쉘코드 주입 익스플로잇을 포함합니다. | Kitploit
도구/GitHubGitHub/imnot-ye/cve-2019-17147
Embedded Systems SecurityIoT SecurityVulnerability AnalysisExploitationReverse EngineeringShellcodeHardware HackingHardware SecurityPapers & ResearchLearning & EducationFirmware AnalysisBinary Exploitation
447개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubimnot-ye/cve-2019-17147

CVE-2019-17147

CVE-2019-17147에 대한 종합적인 리버스 엔지니어링 및 익스플로잇으로, TP-Link TL-WR841N 라우터의 스택 버퍼 오버플로우 취약점입니다. 펌웨어 분석, 하드웨어 디버깅, 인증되지 않은 RCE를 위한 단계적 쉘코드 주입 익스플로잇을 포함합니다.

저장소 보기

CVE-2019-17147: TP-Link TL-WR841N 익스플로잇

Banner

개요

이 저장소는 TP-Link TL-WR841N 라우터(MIPSEL 아키텍처)의 치명적인 원격 코드 실행(RCE) 취약점인 CVE-2019-17147에 대한 포괄적인 리버스 엔지니어링 및 익스플로잇을 문서화합니다. 이 취약점은 httpd 웹 서버 데몬에 존재하며, 부적절한 입력 검증으로 인해 사용자 정의 cstr_strncpy 함수를 통한 스택 버퍼 오버플로우가 발생하고, 인증 없이 임의 코드 실행으로 이어집니다.

취약점CVE-2019-17147
CVSS v3.18.8 (높음)
벡터AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
유형스택 기반 버퍼 오버플로우
구성 요소/usr/bin/httpd

인프라 및 도구

분석 환경은 다음 구성 요소를 사용하여 구축되었습니다.

  • 하드웨어: TP-Link TL-WR841N 라우터.
  • 하드웨어 도구: CH341A 프로그래머(SPI 플래시 덤프), USB-TTL 변환기(UART 콘솔), SOIC8 클립.
  • 소프트웨어 도구: flashrom (메모리 덤핑), binwalk (펌웨어 추출), IDA Pro (정적 분석), GDB-Multiarch (원격 디버깅), QEMU (MIPSEL 에뮬레이션).
  • 펌웨어 버전: TL-WR841N(US)_V14_180319.

기술적 분석

1. 정적 분석

취약점은 /usr/bin/httpd 바이너리에서 식별되었습니다. IDA Pro를 통한 정적 분석 결과, HTTP 헤더 파싱(특히 Host 헤더) 중에 사용되는 사용자 정의 문자열 복사 함수 cstr_strncpy가 발견되었습니다.

IDA Graph

cstr_strncpy 함수는 대상 버퍼 크기가 아닌 소스 문자열 길이에서 파생된 copy_len 매개변수를 허용합니다. 이로 인해 지나치게 긴 헤더가 제공되면 일반적인 스택 버퍼 오버플로우가 발생합니다. 또한 연결 리스트 구조를 조작하는 http_parser_argStrToList 함수가 이 오버플로우의 영향을 받아 next 및 prev 포인터를 제어할 수 있게 됩니다.

2. 동적 분석

gdbserver를 사용한 런타임 디버깅을 통해 충돌과 실행 흐름에 대한 제어가 확인되었습니다. 메모리 맵(vmmap) 분석 결과 심각한 하드닝 부족이 드러났습니다.

  • 힙: RWX (읽기, 쓰기, 실행) 권한.
  • ASLR: 이 바이너리에 대해 제한적/비효과적.
  • NX: 비활성화.

VMMap

이 구성은 복잡한 ROP 체인 없이 힙에 배치된 셸코드를 직접 실행할 수 있게 합니다.

익스플로잇 전략

익스플로잇 체인은 손상된 연결 리스트 포인터에서 파생된 Write-What-Where 프리미티브를 활용하여 RCE를 달성합니다.

  1. 힙 스프레이: 셸코드가 힙에 주입됩니다. 힙이 요청 간에 지속되므로 단계적으로 수행할 수 있습니다.
  2. 단계별 주입: strcpy의 널 바이트 제한을 우회하기 위해 페이로드를 여러 요청으로 전송합니다.
    • 1단계: 셸코드 주소를 스테이징 영역에 씁니다.
    • 2단계: 대상 GOT 주소를 스테이징 영역에 씁니다.
  3. GOT 덮어쓰기: 전역 오프셋 테이블(GOT) 에 있는 atol 함수 항목이 셸코드의 주소로 덮어쓰여집니다.
  4. 실행 트리거: 익스플로잇은 atol 호출을 강제하여(Content-Length 헤더를 통해) 실행을 주입된 셸코드로 리디렉션합니다.

Exploit Diagram

익스플로잇 검증

최종 Python 스크립트는 공격을 성공적으로 자동화하여 포트 31337에 루트 셸을 생성합니다.

Root Shell

완화 조치

취약점은 버퍼 관리의 안전하지 않은 코딩 관행에서 비롯됩니다.

  • 소스 코드 수정: cstr_strncpy 사용을 대상 버퍼 크기를 엄격하게 적용하는 안전한 대안(예: sizeof(dest) 기반 명시적 경계 검사가 있는 strncpy)으로 교체합니다.
  • 바이너리 하드닝: NX (실행 금지) 를 활성화하여 스택 및 힙에서 코드 실행을 방지합니다. 전체 ASLR 및 PIE(위치 독립 실행 파일)를 활성화하여 메모리 레이아웃을 무작위화합니다.

전체 문서

전체 프로세스에 대한 상세한 단계별 안내(코드 분석 및 환경 설정 포함)는 이 저장소에 포함된 전체 가이드를 참조하십시오.

  • 🇮🇹 Guida Completa (Italiano)
  • 🇬🇧 전체 가이드 (영어)

저자

  • Angelo Zullo
  • Simone Vitto
  • Vincenzo Cantatore

면책 조항

이 프로젝트는 교육 및 연구 목적으로만 제공됩니다. 제공된 정보는 IoT 장치의 보안을 개선하기 위한 것입니다. 저자는 여기에 포함된 정보나 코드의 오용에 대해 책임을 지지 않습니다.


원본 연구 및 분석을 기반으로 함.

도구 다운로드