Homework 2. WebGoat and MITRE Att&ck

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2019/penetration-testing-tunkeutumistestaus-ict4tn027-3004-intensive-summer-course-2019-w21w22-5-credits

a) Ratkaise jokin WebGoatin tehtävä. Hyödynsitkö jotain OWASP10 -haavoittuvuutta? Mitä niistä?

AJAX Security
Tehtava: DOM Injection



Valitaan Activate button Inspect Element :lla



Sitten tasta rivista poistetaan disabled=””

Hyodynsin OWASP Injection haavoittuvuutta.

Access Control Flaws
Tehtava: Breaking Data Layer Access Control



Aluksi kirjaudutaan Tom Cat tunnuksella salasanalla “tom”



Sielta valitaan Inspect Element :lla Tom Cat (employee)



Meita kiinostaa value="105" jonka me sitten voidaan muutta päästäkseni muiden työntekijoiden tietoihin.

Mina valitsin admin :n tunnus value="111" , joka löytyy tästä:



ja syötin sitä tähän kohtaan:



Tulos:



Hyodynsin OWASP Broken Access Control haavoittuvuutta.

b) Mainitse esimerkki MITRE:n Att&ck tekniikasta, joka soveltuu weppiin. Osaatko antaa esimerkin hyökkäyksestä tai haittaohjelmasta, jossa sitä on käytetty?

Persistence –> Browser Extensions

https://attack.mitre.org/techniques/T1176/

Laajennuksilla (Extensions) voi saastuttaa koneen, jos lataa niitä epäluotettavasta lähteestä.

Laajennuksilla on pääsy ja käyttöoikeudet kaikkeen, mitä selain voi käyttää. Kun laajennus on asennettu, se voi selata taustalla olevia verkkosivustoja ja varastaa kaikki tiedot, jotka käyttäjä syöttää selaimeen.

Esimerkkeja tapauksista:
Botnet-verkko, joka saa pysyvään takaoven (backdoor) haittalisen laajennuksen kautta.
Haittallinen laajennus, joka voi suorittaa komentoja tai valvoa.

Collection –> Man in the Browser

https://attack.mitre.org/techniques/T1185/

Selaimen tietoturva-aukkoja ja luontaisia toimintoja (inherent functionality) voi hyödyntää websivujen muokkamiseen, muuttumiseen ja tietojen sieppamiseen.

Esimerkki: vastustaja pistää haittalisen ohjelmiston (injection) selaimeen, jonka avulla hän voi periä käyttäjän evästeet, HTTP-istunnot ja SSL-asiakastodistukset ja käyttää selainta kääntämään autentikoidun intranetin.

Haittaohjelmat, jotka voi hyödyntää tähän tietoturva-aukkoon:
https://attack.mitre.org/software/S0154/

Cobalt Strike voi suorittaa selaimen kääntämisen ja pistää käyttäjän selaimeen evästeiden, todennettujen HTTP-istuntojen ja asiakas SSL-varmenteiden perimiseen.

https://attack.mitre.org/software/S0266/
TrickBot käyttää web-injektioita ja selaimen uudelleenohjausta huijaamalla käyttäjää antamaan kirjautumistunnuksensa väärennetyllä tai muokatulla verkkosivulla.

Mitmproxy asennus

Mitmproxy asennus:

sudo apt-get install virtualenv python3-pip
mkdir mitm
cd mitm/
virtualenv env -p python3
source env/bin/activate
pip install mitmproxy
mitmproxy -p 8888 (joku vapaa portti)

Kun halu kayttaa asennuksen jalkeen:

source env/bin/activate
mitmproxy -p 8888

Firefox ->Preferences->Search”Proxy”

Homework 1. Kali Linux Live USB and CTF walktrough

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2019/penetration-testing-tunkeutumistestaus-ict4tn027-3004-intensive-summer-course-2019-w21w22-5-credits

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ä).

  1. Mikä on CTF? video: https://www.youtube.com/watch?v=8ev9ZX9J45A
  2. CTF tehtävä: https://github.com/MarioVilas/write-ups/blob/master/hitcon-ctf-2014/sha1lcode/README.md
  3. Ratkaisu: http://acez.re/ctf-writeup-hitcon-ctf-2014-callme-rsbo-ty-sh41lcode/#sha1lcode
  4. Ratkaisu tiivistettynä (Author: http://acez.re/):

Binaari lukee numeron n < 1000 stdinistä ja sitten lukee n * 16 tavua. Sitten se suorittaa tulon 16 tavun SHA1: n kerrallaan ja sitten yhdistää nämä SHA1-summat ja yrittää suorittaa ne.

Esimerkiksi halutaan suorittaa Shellcode:n joka on: S1S2S3S4.
Niin tarvitse vain löytää SHA1: n, jotka näyttävät seuraavilta:
S1JnX0X1…Xn
S2JnX0X1…Xn
S3JnX0X1…Xn
S4JnX0X1…Xn

Ji edustaa hyppyjä n: llä ja Xi: t edustavat satunnaisia ​​arvoja (eli loput SHA1: stä).
SHA1: n löytäminen Si: llä tapahtuu seuraavalla tavalla. Luemme “puhdas” shellkoodin a (any = mistä tahansa) pinoosoitteesta ja siirrymme siihen.
Tutkiessamme kuoren alkupäätä, saadaan seuraavan stage 1 kuorikoodin:

Kaikki nämä ohjeet ovat 2 byte (tavun) ohjeita lukuun ottamatta syscallia, joka on 3 bytes (tavua) pitkä. Syy siihen, miksi on valittu nämä, johtuu siitä, että SHA1: n bruteforcing toimii nopeammin, mitä vähemmän tavuja sinun täytyy täyttää. Vastaavat syöttösekvenssit ovat vastaavasti:

The flag: HITCON{Warning: over 80 percent unused bytes in your sha1lcode}

Exploitti tähän tehtävään: https://github.com/acama/ctf/tree/master/hitcon2014/sha1lcode

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.

  1. Lataa ISO image https://www.kali.org/downloads/
    Käytin Kali Linux Xfce 64 Bit
    Latauksen jälkeen varmistaa SHA256Sum joka tulee teksti tiedostona ISO imagen mukaan.
    Kali Linux Xfce 64 Bit:lle on tämä tunnus –> c09e67376f789b9841993c01fd6e29597afd346f87b23984c04d8e3aee2f5575
  2. Tarvitset USB3 tikun vahintään 4GB kokoisen.
  3. Asennus tapahtui Xubuntulla, niin käytetään dd komennon Live USB tikun asentamiseen. Ohjeet löytyy tästä:
    https://docs.kali.org/downloading/kali-linux-live-usb-install
  4. Komennolla sudo fdisk -l tarkistetaan mitkä kovalevyt on kytketty koneeseen. Etsitään meidän USB (minun oli Disk /dev/sdc/ kohdassa).
  5. Kopioidaan meidän Kali Linux ISO imagen home kansioon. Sieltä haetaan ja samalla asennetaan sitä komennolla:
    sudo dd if=kali-linux-xfce-2019.1a-amd64.iso of=/dev/sdc bs=512k
  6. Eli sudo dd if=(ISO imagen nimi) of=/dev/(levy mihin asennetaan) bs=512k (bs=blocksize voi jättää default:ina)
  7. Valmis!

Homework 5. Config Windows with Salt

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

a) Säädä Windowsia Saltilla siten, että Windows on orja ja Linux on herra.

Xubuntulle asensin viimeiset päivitykset ja salt-master.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install salt-master
hostname -I ### saadaan master IP
sudo ufw enable
sudo ufw allow 4505/tcp
sudo ufw allow 4506/tcp
sudo ufw status verbose ### tarkistetaan, että oli tehty reikiä palomuuriin

Windowsille asensin salt-minion osoitteesta:
https://repo.saltstack.com/windows/

Ladataan sielta seuraava:

Salt-Minion-2017.7.4-Py3-AMD64-Setup.exe

Huom! Salt-minion versio pitaa olla vanhempi, kuin Salt-master!!!

Salt-master version voi katsoa komennolla:

$ sudo salt --version

Kohtaan Master laitetaan meidän Xubuntun Master IP.
Kohtaan nimi voi kirjoittaa vaikka Windowsin oma nimi.
Asennetaan:

Haetaan meidan Windows orja komennolla:

sudo salt-key -A

Komennolla tarkistetaan vastaako Windows:

sudo salt "WindowsKG" test.ping

Luodaan uusi kansio “win” ja annetaan kirjoitus oikeudet:

sudo mkdir /srv/salt/win
sudo chown root.salt /srv/salt/win
sudo chmod ug+rwx /srv/salt/win

Asennetaan git, etta voidaan paivittaa git kansiot.

Kun git on asennettu, meidan salt-masterilla eli Xubuntulla ajetaan komennot:

sudo salt-run winrepo.update_git_repos
sudo salt -G 'os:windows' pkg.refresh_db

Tassa kansiossa loytyy sitten kaikki .sls tiedostot jotka voidaan asentaa Windowsille.

/srv/salt/win/repo/salt-winrepo$ ls

Asennetaan paskan Microsoft Edge:n tilalle Firefox komennolla:

sudo salt "WindowsKG" pkg.install firefox

b) Säädä Windowsia Saltilla ilman herra-orja rakennetta (salt-call –local)

Avataan PowerShell(Administrator) ja pistetaan komennot:

C:\Windows\system32> c: #valitaan kovalevy
C:\Windows\system32> cd /salt/ #siirretaan kansion
C:\salt> ls #listataan lansion sisalto
C:\salt> ./salt-call --local test.ping #pingataan Windows

Tasta voidaan katsoa kaikki .sls tiedostot jotka voidaan asentaa Windowsille PowerShellin kautta:

Asensin VLC ja GIT Windowsille. Kaytin -l debug jotta pystyn katsoa mahdollisia virheita. Asennukset meni lapi:

c) Muuta jonkin Windows-ohjelman asetuksia Saltilla. Monia ohjelmia voi säätää laittamalla asetustiedoston paikalleen, aivan kuten Linuxissa.

d) Valitse aihe omaksi kurssityöksi ja varaa se kommenttina aikataulusivun perään.

Homework 4.

Homework 4

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

a) Tee skripti, joka tekee koneestasi salt-orjan.

c) Vagrant. Asenna Vagrant. Kokeile jotain uutta kuvaa Atlaksesta. Huomaa, että kuvat ovat vieraita binäärejä, ja virtuaalikoneista on mahdollista murtautua ulos. Jokohan Ubuntun virallinen  Suodatin: VirtualBox, järjestys: Most downloads. https://app.vagrantup.com/boxes/search?provider=virtualbox

Vagrant asennus ja komennot

Asensin Vagrant ja Virtualbox:

$ sudo apt-get install -y vagrant virtualbox

Vagrant komennot ja ohjeet:

Home kansiossa luodaan “vag” niminen kansio. Tahan jatkossa asennetaan meidan virtuaaliset koneet:

$ mkdir vag

Tasta asennetaan uuden virtuaalikoneen:
https://app.vagrantup.com/bento/boxes/ubuntu-16.04

/vag$ vagrant init bento/ubuntu-16.04

Saadaan vastausta:

Huomataan, etta asennuksen jalkeen saatiin tiedosto “Vagrantfile” josta loytyi meidan asentama virtuaalikone.

# Every Vagrant development environment requires a box. # You can search for boxes at
# https://vagrantcloud.com/search.
config.vm.box = "bento/ubuntu-16.04"

Seuraavaksi “nostetaan” meidan uusi virtuaalikone komennolla:

/vag$ vagrant up

“Tässä vaiheessa asennus pysähtyi puolessa välissä ja sain ilmoituksen, että minulla kuulema ei ole tilaa asentaa sitä virtuaalikonetta. En jaksanut taas taistella puoli päivä virhen ja LiveUSBn kanssa ja siirryin Linux Mint:lle joka on asennettu koneelle.”

Mintillä asennus onnistui:

Seuraavaksi otetaan ssh yhteyttä meidään uudeen virtuaalikoneeseen:

/vag$ vagrant ssh

Komennolla voidaan tutkia, mitkä virtuaali koneet ovat asennettu ja päällä:

vagrant status

Eli voidaan tämän nimen avulla avata yhteys tiettyn koneeseen:

vagrant ssh default

tai

voit käyttää komento:

vagrant global-status

ja selvittää virtuaalikoneen ID ja sen avulla ottaa SSH yhteyttä:

vagrant ssh exampleID

Jos haluat sammutta VM:

vagrant halt "name or ID"

Käynnistä uudestaan:

vagrant up "name or ID"

Poistaa kokonaan:

vagrant destroy "name or ID"

Vaihdetaan nimi:

https://stackoverflow.com/questions/17845637/how-to-change-vagrant-default-machine-name

Nimen vaihto kuuluu tehda ennen VM asennusta!

Alkuperäinen tiedosto ilman #kommentoituja riveja:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-16.04"
end

Muokataan niin, että vaihdetaan sen nimi:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.define :ubuntuVM do |t|
  end
end

Komennolla “vagrant status” voidaan nähdä, että nimi muuttui:

Current machine states:

ubuntuVM                  running (virtualbox)