KIRJELDUS

Lae alla antud fail SIIT ja impordi see omale Virtualboxi

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

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ärgnevates ü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 me sattunud häkkerirühmituse „WhaleWarez” veebilehele, kus on nupp „Access warez”

Nupule vajutades jõuame me 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 me 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

Dokumenti avades näeme me 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 me kokku lugeda märksõnad „binwalk” ja „ltrace”, mis on vihjed meie järgnevate ü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 32bit Linux-i programmiga

Käivitades antud faili, näeme me pilti vaalast ja kirja „Trust me, im whale!”, mis ei aita meid kuskile

On aeg uurida mida see programm täpsemalt käivitades teeb, selle jaoks kasutame me tööriista ltrace

Käsu tulemusel 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-i, 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 me enda arvutis üles netcat-i kuulaja

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

Netcat-i 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

Proovides uurida 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