KIRJELDUS

Lae fail alla SIIT ja impordi see omale Virtualboxi

Kui oled masina ära importinud, ava veebilehitseja ja trüki sinna http://192.168.56.101:31337

Alternatiivina saad lahendada seda ülesannet ka otse veebis SIIN

WhaleWarez koosneb kolmest kohustuslikust ja ühest soovituslikust ülesandest ning õpetab kasulikke teadmisi alates veebist ja teravast silmast ning lõpetades skriptimise ja kurivara analüüsiga

Esimeses ülesandes tuleb kasutada path traversal’it, et saada kätte veebiserverist salajased failid

Järgmistes ülesannetes tuleb kasutada reverse engineering’u oskusi, ltrace’i, ncat’i, binwalk’i ja tuleb ka ülesande lahendamiseks sobilik skript valmis kirjutada

ÜLESANNE 1 : VEEB


VIHJED

Lahendus pole failides endis
Uuri URL-i lähemalt

LAHENDUS

Esimese ülesande alguses oleme sattunud häkkerirühmituse „WhaleWarez” veebilehele, kus on nupp „Access warez”

Nupule vajutades jõuame häkkerirühmituse poolt pakutavate failide listi

Failide listi veebilehe aadressiribal on näha teksti /files.php?folder=warez, millest võib välja lugeda, et meie praeguseks failide kaustaks on warez

Meil on võimalik seda osa aadressist muuta, et näha teisi süsteemis olevaid faile, kirjutades sinna punkti, warez/.. või /var/www/html/ näeme veebilehe juurkaustas olevaid faile

Veebilehe juurkaustas on näha kolme uut faili: planz.odt, uwu.jpg ja malwr32, mis tuleb arvutisse alla laadida

ÜLESANNE 2 : PLANZ.ODT

NB! See ülesanne pole kohustuslik, kuid pakub järgnevate ülesannete lahendamiseks vihjeid!

VIHJED

Lahendus on su silme ees
Seda ülesannet saaks ka paberi peal lahendada
Vaata lähemalt

LAHENDUS

Võtame ette faili planz.odt

Tegemist on tavalise OpenDocument failiga, mida saab pea iga kontoritarkvaraga (nt LibreOffice) avada

Pärast dokumendi avamist näeme häkkerirühmituse plaane tulevikuks

Hoolikalt vaadates võib märgata, et mõned tähed on heledamat värvi kui teised

Heledamatest tähtedest saame kokku lugeda märksõnad binwalk ja ltrace, mis on vihjed järgmiste ülesannete lahendamiseks

ÜLESANNE 3 : MALWR32


VIHJED

Tegemist on Linuxi 32bit programmiga
Lahendamiseks tuleb kasutada ltrace tööriista
See programm proovib kuhugile ühenduda
Kohta, kuhu programm proovib ühenduda pole tegelikult olemas
Pordinumber on lahe

LAHENDUS

Võtame ette faili malwr32

Kasutades file käsku, on meil võimalik näha, et tegu on ELF tüüpi käivitatava 32-bitise Linuxi programmiga

Kui käivitame selle faili, näeme me pilti vaalast ja kirja „Trust me, im whale!”, mis ei aita meid kuskile

On aeg uurida mida see programm käivitades täpsemalt teeb - selleks kasutame me tööriista ltrace

Käsu tulemusena avaneb meile selline pilt:

      __libc_start_main(0x5662d239, 1, 0xff970c44, 0x5662d460 
      puts("     .-'\t\t\t\t\n'--./ /     _.---.\t"...     .-'                
      '--./ /     _.---.        
      '-,  (__..-`       \    
        \         .     |    
        `,.__.   ,__.--/    
        '._/_.'___.-`    

      ) = 126
      puts("\n\nTrust me, im whale!"

      Trust me, im whale!
      )                  = 22
      socket(2, 1, 0)                                  = 3
      memset(0xff970b64, '0', 16)                      = 0xff970b64
      htons(1337, 48, 16, 0x5662d25f)                  = 0x3905
      gethostbyname("whale.warez")                     = 0
      puts("ewwow"
      ewwow)                                      = 6
      
      +++ exited (status 1) +++
      

Nagu näha võib, sulgub programm vea tõttu

Viga toimub gethostbyname'is, sest domeeni „whale.warez” ei eksisteeri

Lisame antud domeeni hosts faili, selleks otsime me oma süsteemis üles faili /etc/hosts või C:\Windows\System32\drivers\etc\hosts ja lisame sinna rea „127.0.0.1 whale.warez”

Antud rida tähendab seda, et kui proovida ühenduda aadressiga whale.warez, ühendume me hoopis iseenda arvutiga

Programmi uuesti ltrace'iga käivitades on nüüd tulemus selline:

      __libc_start_main(0x56639239, 1, 0xff814804, 0x56639460 
      puts("     .-'\t\t\t\t\n'--./ /     _.---.\t"...     .-'                
      '--./ /     _.---.        
      '-,  (__..-`      \    
        \          .   |    
        `,.__.   ,__.--/    
        '._/_.'___.-`    

      ) = 126
      puts("\n\nTrust me, im whale!"

      Trust me, im whale!
      )                              = 22
      socket(2, 1, 0)                                  = 3
      memset(0xff814724, '0', 16)                      = 0xff814724
      htons(1337, 48, 16, 0x5663925f)                  = 0x3905
      gethostbyname("whale.warez")                     = 0xf76d6960
      memcpy(0xff814728, "\177\0\0\001", 4)            = 0xff814728
      connect(3, 0xff814724, 16, 0x5663925f)           = 0xffffffff
      exit(1
      
      +++ exited (status 1) +++
      

Nagu võib nüüd näha, proovib programm connect käsu abil võtta ühendust domeeniga whale.warez pordil 1337

Et näha, mida programm proovib antud aadressile saata, seame enda arvutis üles netcat-i kuulaja

Selleks kasutame me käsku nc -lvnp 1337 ja käivitame samal ajal malwr32 programmi

Netcatti ilmub selle ülesande lahendus: 3cscs3ecret

ÜLESANNE 4 : uwu.jpg


VIHJED

Lahendus pole pildil
Tuleb kasutada binwalk tööriista
Olen kuskil seda parooli just näinud
Neid ZIP faile ei jaksa küll käsitsi lahti pakkida

LAHENDUS

Võtame ette faili uwu.jpg

Tegemist on pealtnäha tavalise JPEG pildifailiga, kuid tegelikkuses on selles peidus üks peidetud ZIP fail

Kasutades tööriista binwalk on võimalik meie pildifailist käsuga binwalk -e uwu.jpg kätte saada fail 17125.zip

Uurides selle ZIP faili sisu, tuleb välja et tegu on krüpteeritud ning parooliga kaitstud ZIP failiga

Õnneks aga tuleb välja, et me saame eelmises ülesandes leitud lahendust paroolina kasutada ning ZIP faili lahti pakkida: unzip -P 3cscs3cret 17125.zip

Nüüd on meil on uus fail nimega what_is_this8999.zip, mille sees on omakorda fail what_is_this8998.zip, mille sees on omakorda what_is_this8997.zip jne

9000 faili käsitsi lahti pakkida on tülikas, nii et me kirjutame selle jaoks skripti endale sobivas programmeerimiskeeles

Näide bash'i skriptist ülesande lahendamiseks:

while [ "`find . -type f -name '*.zip' | wc -l`" -gt 0 ]; do find -type f -name "*.zip" -exec unzip -- '{}' \; -exec rm -- '{}' \; done

Kõige lõpus, peale 9000 faili lahtipakkimist, on meil käes fail what_is_this.png, mis on tavaline pildifail QR koodiga, mida on võimalik pea iga QR-koodi skänneriga skaneerida

Saame kätte lõpptulemuse: ponyflag

KONTROLL