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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sagemcom-fast-3890-exploit — Sagemcom F@ST 3890 케이블 모뎀용 익스플로잇으로, Cable Haunt 취약점을 구현하여 WebSocket 기반 버퍼 오버플로 및 ROP 체인을 통해 원격 코드 실행을 달성합니다. | Kitploit
도구/GitHubGitHub/lyrebirds/sagemcom-fast-3890-exploit
Embedded Systems SecurityExploitationReverse EngineeringWeb Application ExploitationHardware & IoT SecurityPayload DevelopmentBinary Exploitation
GitHublyrebirds/sagemcom-fast-3890-exploit

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

sagemcom-fast-3890-exploit

Sagemcom F@ST 3890 케이블 모뎀용 익스플로잇으로, Cable Haunt 취약점을 구현하여 WebSocket 기반 버퍼 오버플로 및 ROP 체인을 통해 원격 코드 실행을 달성합니다.

저장소 보기
223486년 전Kitploit 검토 완료

Sagemcom Fast 3890 익스플로잇

이 익스플로잇은 Cable Haunt 취약점을 이용하여 로컬 네트워크 접근만으로 Sagemcom F@ST 3890(50.10.19*) 케이블 모뎀에 셸을 띄웁니다. 펌웨어 버전 50.10.21 이상은 Cable Haunt에 대해 안전해야 합니다. 이 개념 증명(PoC)은 악의적인 목적의 사용 가능성을 제한하기 위해 오직 로컬에서만 작동하도록 특별히 설계되었습니다. Technicolor TC7230에 대해 외부 연결로 리버스 셸을 만드는 또 다른 PoC는 여기에서 확인할 수 있습니다.

알려진 취약 모뎀 목록은 https://cablehaunt.com/#faq-am-i-affected 에서 찾을 수 있습니다.

작동 방식

exploit.py는 웹사이트를 제공하며, 해당 웹사이트를 방문하면 케이블 모뎀에 악성 WebSocket 요청을 보냅니다. 이 요청은 케이블 모뎀의 Spectrum Analyzer에서 반환 주소와 관련 레지스터를 오버플로시켜, ROP 체인을 사용하여 포트 1337에서 TCP 연결 수신을 시작합니다. ROP 체인은 static/exploitSagemcom.js에 구성되어 있으며 주석이 달려 있습니다. 그런 다음 exploit.py 서버는 이 TCP 연결을 통해 exploit.raw 파일을 보내며, 모뎀에 의해 실행됩니다. exploit.raw 파일은 MIPS 아키텍처로 컴파일된 reverseshell.c입니다(아래 방법 참조). Reverseshell.c는 이 모뎀을 위해 특별히 작성된 셸입니다. 이 셸은 케이블 모뎀의 eCos 셸에서 실행할 명령을 수신 대기하고 STDOUT을 TCP 연결로 리디렉션합니다.

익스플로잇을 설명하는 비디오는 여기에서 볼 수 있습니다: https://www.youtube.com/watch?v=5FM9mS5ck3Y

익스플로잇 실행하기

참고: Windows 10은 현재 지원되지 않으며, Linux 기반 OS를 사용해야 합니다

python3용 pwntools와 flask를 설치하고 python exploit.py를 실행하십시오. 이제 브라우저에서 http://127.0.0.1:8080 으로 이동하여 모뎀을 익스플로잇하십시오. 사용된 WebSocket 버전이 호환되지 않으므로 Firefox에서는 작동하지 않습니다.

이제 python 스크립트를 실행 중인 터미널에 대화형 셸이 나타나야 합니다. 셸을 종료하면 새 셸을 시작하려면 모뎀을 재부팅해야 합니다.

나만의 페이로드 빌드하기

자체 페이로드를 컴파일하려면 aeolus에서 툴체인을 가져와 다음 명령을 실행하면 됩니다.

root@kitploit:~
/<toolchain Path>/gnutools/mipsisa32-elf/bin/mipsisa32-elf-gcc -O3 -c ./reverseshell.c -o ./reverseshell.o && /<toolchain Path>/toolchains/gnutools/mipsisa32-elf/bin/mipsisa32-elf-objcopy -O binary reverseshell.o exploit.raw

다른 모뎀 익스플로잇하기

이 기술을 사용하여 Cable Haunt에 취약한 모든 모뎀을 빌드하고 익스플로잇할 수 있습니다. 자체 ROP 체인을 작성하기 전에 기술 보고서를 읽어보는 것을 권장합니다. 알려진 취약 케이블 모뎀 목록은 Cable Haunt에서 확인하십시오.

ROP 체인 구축하기

먼저, 익스플로잇하려는 케이블 모뎀의 펌웨어가 필요합니다. 그런 다음 펌웨어를 리버스 엔지니어링하여 셸을 위한 socket(), bind(), accept(), listen(), recv(), connect()와 같은 익스플로잇 구축에 관련된 함수의 주소를 찾으십시오. 그런 다음 Ropper를 사용하여 다음 명령으로 가젯을 찾을 수 있습니다:

root@kitploit:~
python Ropper.py --type all --all --badbytes 00c0c1f5f6f7f8f9fafbfcfdfeff2c -r -a MIPSBE -I 0x80004000 --console -f <firmware path>

도달할 수 없는 가젯

모든 가젯에 도달할 수 있는 것은 아닙니다. 가젯은 원시 바이트로 전송되는 주소일 뿐이며, 모든 바이트를 텍스트 프레임이 있는 WebSocket 요청으로 보낼 수는 없기 때문입니다. 예를 들어, 주소 0x8080a864는 유효한 UTF-8 문자가 아니므로 WebSocket 텍스트 프레임에 직접 삽입할 수 없습니다. 그러나 주소 0xf28080a864는 삽입할 수 있습니다. 0xf2는 0x8080a864를 후행 바이트로 사용하여 새 UTF-8 기호를 시작한다는 뜻이기 때문입니다. UTF-8 사양으로 인해 0x00, 0xc0, 0xc1, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x2c 바이트는 사용되는 모든 주소에 포함될 수 없습니다. 곧 보고서에서 더 자세히 설명할 다른 제한 사항도 존재합니다. 지금은 utf8TestScript.py를 읽고 사용하여 주소에 도달할 수 있는지 테스트할 수 있습니다.

사용자 지정 페이로드

위에서 설명한 프로세스를 사용하여 새 케이블 모뎀용 자체 페이로드를 컴파일할 수 있지만, 페이로드가 반환되어서는 안 된다는 점을 기억하십시오! 반환하면 프로세스가 손상된 스택에서 반환 주소를 찾으려다 충돌하게 됩니다.

케이블 모뎀에서 펌웨어 추출하기

대부분의 모뎀에서 펌웨어를 추출하려면 eCos 셸에 접근하거나 플래시 칩에서 직접 추출할 수 있는 방법이 필요합니다. 이러한 펌웨어는 일반적으로 ProgramStore라는 형식으로 패킹되어 있습니다. 시리얼 콘솔이 작동하지 않으면 다음을 실행해 보십시오: (동축 케이블이 분리되거나 프로비저닝되지 않은 경우에만 작동할 수 있음)

root@kitploit:~
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.4413.2.2.2.1.9.1.2.1.0 i 2
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.4413.2.2.2.1.9.1.2.1.0 i 0
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.4413.2.2.2.1.9.1.2.1.0 i 2

그러면 셸에 접근할 수 있어야 하며, bcm2-utils를 사용하면 이 셸을 통해 펌웨어를 쉽게 추출할 수 있습니다. 추출된 펌웨어를 리버싱할 때 로드/베이스 주소는 (우리가 본 한) 항상 0x80004000입니다.

도구 다운로드