Võrguliikluse pealtkuulamine
Selles praktikumis uurime kuidas on võimalik lokaalses võrgus liiklust pealt kuulata ning mängime läbi kaks reaalset rünnet SSH man-in-the-middle
ja turvamata võrguliikluse pealtkuulamine ARP spoofingu
abil.
Selles praktikumi juhendis on kõik kohustuslikud käsud värvilistes kastides, kus esimene märk (#
või $
) näitab, kelle õigustes tuleks seda käivitada, et vältida hilisemaid probleeme (a 'la tavakasutaja tahab muuta faili, mis loodi kogemata roodu õigustes). Kuna kasutame Kali Linuxi, kus sisse logime root
kasutajaga, kelle parool on toor
siis tegelikult kõik käsud käivitate käesolevas praktikumis root
õigustes.
8.0 Ettevalmistuseks
Aja kokkuhoiuks on teile eelnevalt Liivi 2-123 arvutiklassi arvutitesse kopeerinud KALI Linuxi ova fail ( asub teisel kettal D:\Andmeturve_2018
või O:\Andmeturve_2018
. Selleks, et saaksite teiste masinatega koostööd teha, ühendage virtuaalmasin otse lokaalsesse võrku muutes virtuaalse võrgu adapteri tüübiks Bridged Adapter
.
- NB! Käivita klassi (laua)arvuti
Võrgutehnoloogia Windows 10
operatsioonisüsteem. Kui arvuti juba käib veendu, et oleks valitudVõrgutehnoloogia
operatsioonisüsteem (töölaual peaks olema pilt kirjagaVõrgutehnoloogia
. - Sisene vaikimisi kasutajaga
Network technology User with English environment
- Käivita
Virtualbox
(vajadusel leiab stardimenüüstOracle VM Virtualbox
nime alt. - Importige
Kali
virtuaalmasin vastavastova
failist. Kindlasti peate importimise aknas uuendama masina MAC aaddressi. Kui see jääb tegemata, siis tuleb pärast importimist virtuaalmasina võrguseadetest MAC aadressi uuendada. Juhul kui VirtualBox kurdab, et importimiseks pole piisavalt vaba ruumi, siis veenduge, et Virtualbox paigutaks oma failid "teisele" kettaleD:\Andmeturve_2018
võiO:\Andmeturve_2018
.
- virtuaalmasina seadete all muuda võrguadapteri tüübiks
bridge
ja võrgukaardiks validaethernet
- Käivita
Kali Linux
virtuaalmasin ja logige sisse:- Kasutaja:
root
- Parool:
toor
- Kasutaja:
- Kontrollige, et teil on Kali virtuaalmasin internetti ühendatud. Selleks valige ülemisest vasakpoolsest menüüst:
Applications
->Usual applications
->Internet
->Firefox ESR
->courses.cs.ut.ee
->Andmeturve
->Praktikum 8
- vajadusel saate sundida Linux operatsioonisüsteemi draiverit võrgukaardi seadistust uuendama käskudega:
# ifconfig eth0 down
# ifconfig eth0 up
ÕIS-i parooli vahetamine
Tänases praktikumis katsetame SSH vahendusrünnet, mis võimaldab teada saada teie TÜ kasutajatunnust ja parooli. Käesolevas praktikumis ründame iseennast, kuid kui midagi läheb valesti, siis on võimalik, et teie ÕISi parool võib lekkida (keegi teine seda näha). Seega on soovitatav enne järgmiste tegevuste juurde asumist oma ÕISi parool ära vahetada ajutise parooli vastu. Pärast praktikumi saate vajaduse korral oma parooli tagasi muuta. Parooli saate vahetada lehel https://passwd.ut.ee/
Rohkem infot https://wiki.ut.ee/display/AA/Parooli+vahetamine
8.1 Pakettide pealtkuulamine Wireshark abil
Wireshark abil saab näha kõiki pakette, mis võrguliidesest läbi käivad. Selleks, et Wireshark saaks võrguliidest pealt kuulata, tuleb ta käivitada root õigustes. Selleks andke käsk:
# wireshark
Teile antakse hoiatus, et root õigustes tuleb ettevaatlik olla. Lisaks kurdab Wireshark käivitades, et root õigustes pole seda ilus käivitada, aga nii on meil hetkel lihtsam.
Vajutage Wiresharki tööriistaribal
nupule Capture options...
(hammasratta märk) ja alustage pakettide püüdmist sellel võrguliidesel, mille IP aadressi te eelnevalt juba välja selgitasite (tõenäoliselt eth0
või eth1).
Otsitava informatsiooni väljafiltreerimiseks võib kasutada erinevaid filtreid (trükkida Wiresharki filtriribale): ip.addr == 192.168.10.253
- Näitab ainult pakette, mis pärinevad või on suunatud antud aadressile.tcp.port == 22
- Näitab ainult pakette, mis pärinevad või on suunatud TCP porti 22.http.request.method == "POST"
- Näitab ainult pakette, mis saadavad veebilehele kasutaja infot (näiteks sisselogimised, submission box jne...)
Erinevaid filtreid saab kombineerida loogiliste tehetega: &&
, ||
, !=
.
1. Proovime nüüd oma enda masinas liikuvaid pakette Wireshark abil üles leida. Avage veebilehitseja ja külastage lehte http://andmeturve-lab.appspot.com
. Sisestage seal olevatele sisendväljadele oma eesnimi, perenimi ja sõnum ning vajutage submit
.
- Minge tagasi Wiresharki ja pange filtriks
http.request.method == "POST"
ningENTER
selle rakendamiseks. Uurige leitud paketti lähemalt ja leidke sealt üles oma eesnimi ja sõnum. Kas perenimi ehk Parool on nähtav? miks?- Sulgege veebilehitseja
2. Võtke teine terminal, telnettige demomasinasse 172.17.37.172
ning logige sisse kasutajana tudeng
ja parooliga 1234567890
:
$ telnet 172.17.37.172
Andke mõned käsud, et need hiljem ära tunneksite, ja logige välja (exit
).
Uurige nüüd, kas teil õnnestub Wireshark abil üles leida telneti paketid ning telneti teel kasutatud käskude sisu lugeda (Filtreerimise vihjeks: telnet kasutab porti 23).
3. Edasi testime krüpteeritud liiklust: logige ssh abil meie honeypot masinasse:
$ ssh tudeng@172.17.37.172
Kasutajana: tudeng
Parool: 1234567890
:
Andke seal samuti mõned käsud ja logige välja.
Uurige nüüd, kas teil õnnestub Wireshark abil üles leida krüpteeritud SSH paketid. (Filtreerimise vihjeks: ssh kasutab porti 22).
4. Lõpetage aktiivne pakettide püüdmine vajutades punast värvi nupule, mille nimeks on "Stop capturing packets".
8.2 Rünne: ARP spoofing ja turvamata veebilehed
Järgmisena vaatame kuidas on võimalik ARP-i võltsimise abil internetiühendust pealt kuulata ilma ohvri arvutile ligipääsu omamata.
ARP on protokoll, mis seob võrguaadressi füüsilise seadme aadressiga. Enamasti tõlgib ARP tabel IP aadressi sobiva võrgukaardi MAC aadressiks. ARP töötab alati ühes kinnises võrgus ehk kohtvõrgus. ARP poolt saadetud paketid on autentimata ja seega saab ründaja välja saata ARP pakette kellegi teise nimel. Järgmisena proovimegi tekitada niisugust rünnet.
Järgnevas juhendis läheb teil vaja kahte erinevat füüsilist masinat.
- A - ohver - teie isiklik arvuti, telefon või muu seade
Andmeturve
WiFi-s - R - ründaja -
R
- teie Kali Linux virtuaalmasin ühendatud kaabliga võrkubridge
adapteri tüüpi kasutades.
Ründaja R - Lülitage sisse IP pakettide ruutimine
ja välja rp_filter
ning ICMP redirectide
saatmine:
# echo "1" > /proc/sys/net/ipv4/ip_forward # echo "0" > /proc/sys/net/ipv4/conf/eth0/rp_filter # echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects
Ründaja R - käivitab arpspoofi:
# arpspoof -i eth0 -r -t 192.168.10.1 192.168.10.A
NB! 192.168.10.A
tuleb asendada tegeliku ohvri A ip aadressiga.
Selle käsu tulemusena võltsitakse ohvri (192.168.10.A) MAC aadressi ruuteri (-t 192.168.10.1) ARP tabelis. Nüüd suunatakse kogu liiklus, mis välisvõrgust saadetakse ohvri arvutisse läbi ründaja arvuti ning on seega ründaja poolt pealtkuulatav. Kasutatud parameeter -r
ütleb programmile, et tuleks kasutada reverse
spoof-i ehk kõik, mis on suunatud 192.168.10.A
masinast interneti gateway-le 192.168.10.1
saadetakse ka spoofijale.
Ründaja R proovib ohvri liiklust pealt kuulata, käivitadades uues terminalis allpool oleva tcpdump
käsu. Hetke pärast proovime pealtkuulamist ka wiresharki abil.
# tcpdump -e -A host 192.168.10.A
Ohver A peaks nüüd käivitama veebilehitseja ja külastama mõnda lehekülge üle HTTP
(mitte HTTPS, näiteks http://andmeturve-lab.appspot.com) PS! Firefoxis lehe täielikuks värskendamiseks kasutage klahvikombinatsiooni <CTRL>+F5
, ainult F5
kontrollib, et leht pole muutunud ja laeb selle võimalusel ainult puhvrist.
Ründaja R peaks nüüd kasutama wireshark'i
liidest eth0
, et jälgida ohvri liiklust. Wireshark filter peab olema: ip.addr == 192.168.10.A && http
. Juhul kui wireshark ei kuva POST päringut, siis katkestage eelmine arpspoof (CTRL + C) ja proovige uuesti arpspoofi.
- Tehke ekraanipilt olukorrast, kus on näha Wireshark aknas ohvri arvuti ja ruuteri vahelist HTTP liiklust lehele
http://andmeturve-lab.appspot.com/
nii, et salajane lahter "Perenimi" vastaks teie nimele (PS! Ärge kasutage täpitähti). Samal ekraanivaatel peab olema näha ka (terminalis)arpspoof
käsu hetke väljund.
NB! Proovige pealt kuulata ka HTTPS ühendust https://andmeturve-lab.appspot.com
. Kuidas see liiklus Wiresharkis välja näeb? Vihjeks on TLS
.
8.3 Rünne: SSH man-in-the-middle
Man-in-the-middle rünne on vahendusrünne, kus ründaja vahendab andmesidet ja seetõttu saab seda pealt kuulata või modifitseerida. Man-in-the-middle ründe kohta saate täpsemalt lugeda vastavast Wikipedia artiklist ja SSH lehelt.
Kali Virtuaalmasinas.
Installeerime praktikumiks vajalikud tarkvara paketid. Järgmised käsud peab käivitama root
kasutaja õigustes:
# ping math.ut.ee # apt update # apt install git # git clone https://github.com/jtesta/ssh-mitm # cd ssh-mitm # ./install.sh -> Küsitakse korra "Y" vajutamist # ./start.sh # arpspoof -r -t 192.168.10.1 192.168.10.A
- A - ohver
- R - man-in-the middle.
A - logib windowsis Putty-t
kasutades või Linuxis käsurealt
$ ssh <TÜ_kasutajatunnus>@math.ut.ee
tõenäoliselt hoiatatakse, et hosti võti on muutunud, lugege veateadet ning sisestage vajadusel käsk ssh-keygen -f "/home/kasutaja/.ssh/known_hosts" -R math.ut.ee
, et veateatest vabaneda. Windowsis Putty-t kasutades valige NO
R - jälgib liiklust. Otsige üles vale ja õige parool, mille A sisestas. Selleks otsige sessioonide infot /home/ssh-mitm/
kaustast või /var/log/auth.log
.
- Tehke masinas E ekraanipilt olukorrast kus teie isiklik TÜ kasutajatunnus ja parool on paljastunud ehk näiteks kasutajatunnus "alop" ja parool "1234567890". NB! Parooli koha võite pildilt välja lõigata või ära katta.
Tagasiside
Praktikumi lõpus palume anda tagasisidet, sest see võimaldab meil antud praktikumi ja ka järgmisi praktikume paremaks muuta. Tagasiside on anonüümne ja tagasiside vormi leiate järgneva lingi abil: tagasiside ankeet.
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab kaks punkti. Praktikumi ülesanne võiks valmis saada praktikumi lõpuks, aga juhul kui see ei õnnestu, siis on võimalik lahendust esitada ühe nädala jooksul.
- Ülesanded:
- Tehke ekraanipilt olukorrast, kus on näha Wireshark aknas ohvri arvuti ja ruuteri vahelist HTTP liiklust lehele
http://andmeturve-lab.appspot.com/
nii et salajane lahter "Perenimi" vastaks teie nimele (PS! Ärge kasutage täpitähti). Samal ekraanivaatel peab olema näha ka (terminalis)arpspoof
käsu hetke väljund - Tehke masinas E ekraanipilt olukorrast kus teie isiklik TÜ kasutajatunnus ja parool on paljastunud ehk näiteks kasutajatunnus "alop" ja parool "1234567890". NB! Parooli koha võite pildilt välja lõigata või ära katta.
Lahendusi võtame vastu järgmistes failiformaatides: .txt, .pdf, .zip.
8. 8. Võrgu pealtkuulamine - praktikumi ülesanneKodune ülesanne
Koduse ülesande lahendamine annab ühe punkti. Lahenduse esitamiseks on aega üks nädal, s.t esitama peaks selle päeva lõpuks, mil on järgmine praktikum. Küsimustele vastuste leidmiseks võib vaja minna Google abi.
Ülesanne:
- Miks on tänapäeval raske ARP-Spoofing ründe vastu kaitsta? Mis on selle peamised põhjused? (0.5p)
- Mis on DNSSEC ja mida see muudab DNS tuvalisuses? Missuguse ründe eest kaitseb DNSSEC? (0.5p)
Koduse ülesande lahendus tuleks esitada aine kodulehelt. Korraga saab esitada ainult ühe faili, korduv lahenduse esitamine kirjutab eelmise lahenduse üle ning seetõttu tuleb vajaduse korral lahendus kokku pakkida üheks failiks. Lahendusi võtame vastu järgmistes failiformaatides: .txt, .pdf, .zip.
23. 8. ARP-Spoofing & DNSSEC - kodune ülesanneLisamaterjalid
- ARP ehk Address Resolution Protocol
- Man-in-the-middle-attack
- DNS
- Lisaviited