Sniffing hesiel pomocou Wireshark
1.1 Informácie k cvičeniu
Cvičenie má predpripravené virtuálne stroje Kali a Ubuntu, ktoré si študent spustí cez VMware.
- Kali – verzia 2022.4, 64bit, user kali, password kali, viac info. –> úvodné cvičenie
- Ubuntu – verzia 22.04.2 64bit, user:tuke, password secret, viac info. -> úvodné cvičenie
Wireshark 4.0.1 , defaultne predpripravený vo virtuálnom stroji kali
1.2 Motivácia
Na tomto cvičení sa študent naučí nasadiť Secure Shell Protokol (SSH) a Telnet do virtuálneho stroja Ubuntu a pomocou virtuálneho stroja kali sa naň pripojiť. Pri pripojení študent zachytí pakety pomocou nástroja wireshark a pokúsi sa odhaliť heslo cez obe protokoly.
1.3 Ciele cvičenia
- Pochopiť základnú teóriu k secure shell a telnetu.
- Nasadiť ssh server na virtuálnom stroji Ubuntu
- Nasadiť telnet server na virtuálnom stroji Ubuntu
- Pripojiť sa pomocou oboch protokolov z níástroja PUTTY do virtuálneho stroja ubuntu
- Analyzovať sieťovú prevádzku pri pripájaní sa z VM kali do vzdialeného zariadenia a odhaliť heslo.
1.4 Telnet
Telnet je internetový protokol, ktorý vznikol v roku 1969, je to jeden z najstarších protokolov TCP/IP balíka. Telnet poskytuje rozhranie príkazového riadka na komunikáciu so vzdialeným zariadením alebo serverom. Telnet sa používa na testoavnie sietí, serverov atď. podobne ako secure shell, o ktorom si povieme v následujúcej sekcii. Problémom telnetu je to, že vzhľadom na jeho historický vznik nie je považovaný za bezpečný protokol, pretože informácie prenášane skrz tento protokol nie sú šifrované. Jeho využitie sa dnes zriedkavo uplatní na starších systémoch.
Telnetd
Telnetd je serverový daemon, ktorý beží na počítači a počúva prichádzajúce Telnet pripojenia od vzdialených klientov. Telnetd umožňuje používateľom vzdialene pristupovať k príkazovému riadku operačného systému hostiteľa a vykonávať na ňom príkazy.
1.5 Secure Shell – SSH
SSH je protokol, ktorý umožňuje bezpečný vzdialený prístup medzi dvoma zariadeniami. Ponúka množstvo možností autentifikácie a chráni komunikáciu šifrovaním. SSH je alternatívou nechráneného spôsobu komunikácie so vzdialeným serverom pomocou telnetu a nechráneného prenosu súborov cez FTP.
Typické využitie protokolu ssh je:
- Bezpečný prístup do vzdialených zariadení
- Interaktívne a automatizované prenosy súborov
- Administrácia infraštruktúry
1.5.1 Ako funguje SSH protokol
Tento protokol funguje na báze klient-server modelu, kde inicializáciu komunikácie robí klient. Ten kontaktuje server, potom nastane výmena kľúčov a pomocou asymetrickej kryptografie sa klient so serverom dohodnú, aký relačný kľúč (“session key”) budú používať na šifrovanie správ. Týmto sa vytvorí bezpečný kanál, ktorý je šifrovaný a pripravený na výmenu informácií resp. zadávanie príkazov.
1.5.2 OpenSSH
OpenSSH (OpenBSD Secure Shell) je sada programov, ktoré umožňujú šifrovanú komunikáciu cez sieť pomocou protokolu SSH. OpenSSH šifruje celú komunikáciu, vrátane hesiel, čím účinne bráni odpočúvaniu, presmerovaniu a iným útokom. Okrem toho, OpenSSH poskytuje bezpečný tunel a niekoľko metód pre autentifikáciu.
Dôležitou súčasťou týchto programov, ktorú využijeme na našom cvičení, je serverový komponent sshd, (serverový daemon), ktorý čaká na prichádzajúce ssh požiadavky. Keď „sshd“ získa požiadavku na pripojenie, vykoná proces bezpečnej autentifikácie a vytvorí bezpečný kanál pre klienta, ktorý umožňuje klientovi vzdialene pristupovať k príkazovému riadku operačného systému hostiteľa a vykonávať na ňom príkazy.
1.6 Konfigurácia SSH
Poznámka: Uistite sa, že sieťový adaptér VM je nastavený v režime NAT. Viac, úvodne cvičenie.
Nainštalujte si PUTTY na vzdialené pripojenie: dostupný z : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
V tejto časti si ukážeme ako spustiť ssh server na virtuálnom stroji ubuntu a ako sa z virtuálneho stroja kali naň pripojiť.
Aktualizujte systém:
$ sudo apt-get update && sudo apt-get upgrade
Vo virtuálnom stroji ubuntu si otvorte terminál, zistite a uložte si IP adresu:
$ ifconfig
Poznámka: V prípade, že príkaz ipconfig nie je dostupný, nainštalujte si balíček pomocou príkazu sudo apt install net-tools.
Skontrolute, či firewall je vypnutý (firewall budeme rozoberať v nasledujúcom cvičení):
$ sudo ufw status
Ak je firewall aktívny vypnite ho príkazom:
$ sudo ufw disable
Otvorte si PUTTY a skúste sa pomocou SSH pripojiť na ubuntu:
Otázka: Prečo ste dostali hlášku „Network error: Connection refused“ ?
– nemame spustený server, ktorý aktívne počúva na porte 22 a vyhľadáva ssh komunikáciu.
Aktivácia OpenSSH
Vo virtuálnom stroji ubuntu skontrolujte, či je nainštalovaný openSSH server:
$ sudo apt list --installed | grep openssh-server
OpenSSH server by nemal byť nainštalovaný, preto ho nainštalujeme
$ sudo apt install openssh-server -y
Poznámka: Niekedy sa môže stať, že služba SSH nie je na vašom zariadení aktívna, v takomto prípade si to môžete overiť príkazom: sudo systemctl status ssh , ktorý zobrazí stav služby ssh. V prípade, že táto služba je neaktívna spustite ju príkazom sudo systemctl start ssh .
Poznámka: Druhý problém ktorý môže nastať, je upravený konfiguračný súbor ssh. Napríklad port nemusí byť implicitne daný ako 22, pretože ho možno niekto pred vami upravil. Overenie portu môžete vykonať príkazom sudo netstat -ltnp | grep sshd
Zaujímavosť: Konfiguračný súbor pre ssh sa nachádza v /etc/ssh/sshd_config, tu si môžete zmeniť port, treba brať do úvahy, že po zmene portu treba aj nastaviť pravidlá pre firewall. Viac si môžete prečítať v tomto článku.
Kedže sme nainštalovali openSSH, ktorý sa automaticky spustil, otvorme si PUTTY a skúsme sa znova pripojiť na virtuálny stroj ubuntu.
Login as: tuke Password: secret
Tentokrát sa nám to podarilo.
Pridajte na plochu ľubovoľný súbor:
$ cd /home/tuke/Desktop/ && echo “hello from external pc” > myfile.txt
1.7 Konfigurácia Telnetu
V tejto časti si ukážeme ako spustiť telnet server na virtuálnom stroji ubuntu a ako sa z virtuálneho stroja kali naň pripojiť.
Nainštalujte si telnet daemon a skontrolujte jeho stav:
$ sudo apt install telnetd -y
$ sudo systemctl status inetd
V prípade, že by služba inetd bola vypnutá spustite ju príkazom:
$ sudo systemctl start inetd
Otvorte si PUTTY a skúste sa pomocou telnetu pripojiť na virtálny stroj ubuntu:
Zadajte meno používateľa a heslo. Mali by ste sa pripojiť.
Zaujímavosť: Telnet môžeme použiť pre testovanie otvorených portov aj z ineho virtualneho stroja:
$ telnet <ip adresa> <port>
1.8 Odhalenie hesiel
1.8.1 Sniffing telnetu
- Vo virtuálnom stroji Kali, spustite Wireshark
- Vyberte rozhranie eth0, týmto sa spustí zachytávanie paketov
- Otvorte si konzolu a pripojte sa cez telnet na vzdialený server
$ telnet <ip adresa ubuntu servera>
- Vložte prihlasovacie meno: tuke
- Vložte heslo: secret
- Zastavte snímanie paketov.
- Filtrujte pakety pomocou filtra “Telnet”.
- Vyberte si akýkoľvek z týchto paketov, kliknite naň pravým tlačidlom myši a zvoľte
Folow –> TCP Stream
Všimnite si, že meno aj heslo sú v textovom formáte. Presne kvôli tomuto sa telnet považuje za nechránený. Tak ako sme písali v predchadzajúcom cvičení o Wiresharku, predstavte si scenár, kde útočník využije man in the middle útok, týmto jednoduchým spôsobom je útočník schopný získať vaše prihlasovacie údaje a zneužiť vašu identitu alebo integritu systému.
1.8.2 Sniffing SSH
- Zopakujte znova kroky tak ako v predoslej úlohe tentokrat pre SSH
$ ssh tuke@<ip adresa ubuntu servera>
- Filtrujte pakety pomocou filtra “ssh”.
- Vyberte si akýkoľvek z týchto paketov, kliknite naň pravým tlačidlom myši a zvoľte
Folow –> TCP Stream - Všimnite si, že tentokrát sú dáta nečitateľné.
1.9 Zdroje
- https://www.extrahop.com/resources/protocols/telnet/
- https://www.ssh.com/academy/ssh/protocol
- https://sk.wikipedia.org/wiki/OpenSSH
- https://www.hostinger.com/tutorials/how-to-change-ssh-port-vps
- https://linux.die.net/man/8/telnetd
- Tatu Ylonen: SSH – Secure Login Connections over the Internet. Proceedings of the 6th USENIX Security Symposium, pp. 37-42, USENIX, 1996.
1.10 Dotazník / Kvíz
Dotazník resp. kvíz je hodnotený 0.5 bodom k zápočtu. Na jeho vyplnenie máte čas do 15. októbra. Odkaz na dotazník nájdete tu.