Tämä blogipostaus on osa Haaga-Helian Tunkeutumistestaus-kurssia, jonka Tero Karvinen pitää keväällä 2023.
Kolmannen kurssiviikon tehtävät:
- x) Katso ja tiivistä (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)
- Yksi valitsemasi IppSec:n murtautumisvideo.
- a) We like to shop. Ratkaise Portswigger Academyn ”Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data”. (Tee tarvittaessa tunnus Portswigger Academyyn).
- b) HTB. Tee HackTheBox.com tunnus. Avaa OpenVPN-yhteys ”Starting Point” verkkoon. Estä tunnelin ulkopuolinen liikenne eli liikenne oikeaan Internettiin (vinkit alla). Testaa, että normaali Internet-liikenteesi on estetty.
- c) Meow. Käynnistä ”Starting point”: ”Meow”. (Spawn machine). Tallenna ruutukaappaus sivusta, jossa näkyy koneen osoite ja tunkeutumistehtäviä. Porttiskannaa kone ja analysoi tulokset. Suorita HTB:n antamat tehtävät. Raportoi normaalisti, ”Starting point” -koneista saa julkaista läpikävelyohjeita.
- d) Fawn. Ratkaise Fawn. (HTB Starting point)
- e) Dancing. Ratkaise Dancing. (HTB Starting point)
- f) Vapaaehtoinen tai vaihtoehtotehtävä kohdille b-e: korkkaa yksi normaali kone HackTheBoxin Machines-kohdasta.
- g) Vapaaehtoinen: korkkaa toinenkin HTB Machines -kone.
(Karvinen 2023)
x) Tiivistelmä
IppSec: HackTheBox – Knife
IppSecin YouTube-videolla käydään läpi, miten Knife-koneelle murtaudutaan onnistuneesti. Knife-koneen heikkoja kohtia aletaan etsiä skannaamalla ensimmäiseksi koneen IP-osoitteessa olevia portteja:
$ mkdir nmap
$ sudo nmap -p- –min-rate=10000 -v -oA nmap/knife 10.10.10.242
Skannauksessa löytyy kaksi porttia, joita tutkitaan tarkemmin:
$ sudo nmap -sC -sV -oA nmap/knife 10.10.10.242 -p 22,80
Videolla vieraillaan myös murrettavan koneen IP-osoitteessa, joka vie sairaalan tai vastaavan organisaation verkkosivuille. Sivuston lähdekoodia tutkimalla yritetään saada selville, minkälainen järjestelmä palvelimella pyörii.
GoBuster-työkalun avulla tehdään bruteforce-hyökkäys Knife-koneen IP-osoitteeseen:
$ gobuster dir -u http://10.10.10.242 -w /opt/SecLists/Discovery/Web-Content/raft-small-words.txt -x php -o gobuster.out
GoBusterin ja Burp-työkalun avulla saadaan tarkempaa tietoa palvelimesta, muun muassa sen käyttämä PHP-versio. Googlen avulla löytyy tieto, että Knife-koneen palvelimen käyttämästä PHP-versiosta on löytynyt takaovi, jota voidaan hyödyntää koneeseen murtautumisessa.
$ nc -lvnp 9001
$ stty raw -echo
Tämän jälkeen kestää hetki, minkä jälkeen näyttää siltä, että Knife-koneelle on päästy sisään ja kone siis murrettu. Lopuksi koneen käyttäjätiedoista haetaan käsittääkseni salasanatiiviste, jota voidaan myöhemmin käyttää koneelle kirjautumisessa ja jonka avulla päästään myös ajamaan konetta sudo-komennolla (super user -käyttäjänä).
a) PortSwigger Academyn Lab: SQL-injektiohaavoittuvuus, jossa WHERE-lauseke sallii piilotetun datan hakemisen
Loin itselleni käyttäjätunnukset PortSwigger Academyyn. Sen jälkeen tutustuin ennakkotietoihin PortSwigger Academyn Lab-tehtävästä, jossa tulee löytää SQL-injektiohaavoittuvuus, joka mahdollistaa piilotetun datan hakemisen WHERE-lausekkeella:
Ennakkotietojen mukaan haavoittuvuus löytyy tuotekategoriasuodattimesta. Kun käyttäjä valitsee kategorian, sovellus suorittaa seuraavan SQL-kyselyn:
SELECT * FROM products WHERE category = ’Gifts’ AND released = 1
Tehtävän ratkaisemiseksi on keksittävä sellainen SQL-injektiohyökkäys, jonka myötä sovellus näyttää kaikkien julkaistujen ja myös julkaisemattomien tuotteiden tiedot kaikissa kategorioissa.
Käärin hihat ja klikkasin ”Access the lab” -painiketta aloittaakseni tehtävän, jolloin eteeni aukesi verkkokaupan sivu:
Löysin tuotekategoriasuodattimen sinertävältä taustalta sivun yläosasta. Se oli erilainen kuin odotin, eikä suodatusvaihtoehtoja päässyt muuttamaan suoraan verkkokaupan sivulta. Niinpä kaivoin F12-painikkeella kehittäjän työkalut esiin ja yritin löytää konsolista, elementeistä ja muista kehittäjän työkaluista mitä tahansa, millä pääsisin muokkaamaan suodattimia.
Kun elementtien kautta edes verkkosivun osoitteen muokkaaminen ei tuottanut tulosta – osoitteen loppuosa selvästi määritteli, mikä tuotekategoriasuodattimen vaihtoehdoista oli kulloinkin käytössä – päätin vilkaista PortSwiggerin vinkkejä.
PortSwigger kehotti käyttämään Burp Suite -työkalua sieppaamaan ja muokkaamaan pyyntöjä, jotka määrittävät tuotekategoriasuodattimen suodatusperusteen (PortSwigger).
Ennen Burp Suite -työkaluun tutustumista tutkin vielä tuotesivujen osoitteita, joiden loppuosa oli muotoa
…/product?productId=tuotenumero
Yritin lisätä validin tuotenumeron perään SQL-kyselyn WHERE-lausekkeen koodia, jolla voisi ehkä saada productId:n käymään läpi kaikki mahdolliset tuotenumerot:
…/product?productId=7’+OR+1=1–’ ja
/product?productId=7+OR+1=1–’
Sain kuitenkin vastaukseksi molempiin yrityksiin vain ”Invalid product ID”.
Palasin uudestaan PortSwiggerin vinkkien pariin. Niiden mukaan category-parametrille pitäisi antaa arvoksi
’+OR+1=1–
(PortSwigger). Ihmettelin, minne toinen hipsu oli jäänyt arvon lopusta, ja annoin kokeeksi selaimen osoiterivillä category-parametrille seuraavan arvon:
’+OR+1=1–’
Tällä arvolla tehtävä sitten ratkesikin, suodatettujen tuotteiden otsikoksi tuli teksti ’+OR+1=1–’ ja tuotteita näytti tosiaan olevan eri tuotekategorioista:
Tehtävä ratkesi hämmästyttävän helposti ja kuin vahingossa, kun oikea tapa tuotekategorian suodattimen manipulointiin löytyi. Edes Burp Suite -työkalua ei lopulta tarvittu.
b) Hack The Box: aloitus ja valmistelut
Tehtävänä oli ottaa Hack The Box käyttöön eli käytännössä luoda käyttäjätunnus, avata OpenVPN-yhteys ”Starting Point” -verkkoon, estää tunnelin ulkopuolinen liikenne ja lopuksi testata, että normaali Internet-liikenne on tosiaan estetty.
En ole koskaan aiemmin käyttänyt Hack The Box -sivustoa, joten rekisteröidyin ensimmäisenä käyttäjäksi: Sign in → HTB Academy → Start for Free. Käyttäjätunnuksen luominen vaatikin jo sekä aikaa että hermoja, kun piti yrittää keksiä sellainen käyttäjänimi, joka ei olisi vielä kenelläkään käytössä, ja jokaisen epäonnistuneen yrityksen jälkeen jouduin syöttämään lähes kaikki tiedot rekisteröitymislomakkeeseen uudestaan. Lopulta onnistuin rekisteröitymään, sillä lomake ilmoitti sähköpostini löytyvän jo käyttäjistä, mutta minulla ei ollut mitään käsitystä, millähän käyttäjänimellä rekisteröitymiseni oli vihdoin mennyt läpi. Kävin klikkaamassa sähköpostistani sähköpostin vahvistuslinkkiä, jonka jälkeen pääsin kirjautumaan Hack The Box -sivustolle. Suureksi yllätyksekseni käyttäjänimekseni sivustolla olikin hyväksytty ensimmäinen lukuisista ehdotuksistani.
Hack The Box (HTB) toivotti minut tervetulleeksi ja esitteli harjoitusmoduulien kolme päätasoa: hyökkäävä (offensive), puolustava (defensive) ja yleinen (general). Mitä enemmän harjoittelen, sitä enemmän saan pisteitä – tai tässä tapauksessa prosentteja.
Kun sitten yritin löytää HTB Academysta Starting Point -tehtävän, sellaista ei löytynyt millään ja totesin, että rekisteröidyin käyttäjäksi varmaankin väärään osioon Hack The Boxissa. Ei muuta kuin uusi yritys. Kirjauduin ulos, avasin Hack The Boxin etusivun ja kokeilin tällä kertaa rekisteröityä suoraan hakkeriksi: For Hackers: Join for Free → A Massive Hacking Playground: Join now → Täytin jälleen kerran rekisteröitymislomakkeen tiedot ja keksin taas uuden käyttäjätunnuksen → Register. Tämän jälkeen vastailin muutamaan kysymykseen taustastani ja kiinnostuksen kohteistani, minkä jälkeen pääsin jatkamaan Hack The Box -harjoitusalustan etusivulle. Starting Point -osio löytyi heti ensi silmäyksellä sivun vasemmasta reunasta, joten tällä kertaa olin luultavasti oikeassa paikassa.
HTB herjasi erilaisista asioista, joten vahvistin ensin sähköpostiosoitteeni sähköpostiin tulleen vahvistuslinkin kautta, minkä jälkeen HTB oli tyytyväisempi. Sen jälkeen tutustuin HTB:n Get Started -esittelyyn. Esittelyssä kehotettiin ottamaan OpenVPN-yhteys virtuaalikoneen kautta, sillä VPN-yhteys oli vaatimus haavoittuvilla koneilla harjoitteluun, ja ohjattiin Starting Point -osion pariin aloittamaan tunkeutumistestauksen harjoittelu.
Klikkasin sivun oikeasta ylänurkasta punaista tekstiä ”Connect to HTB” ja edelleen Starting Point → OpenVPN. ”Connect to a VPN server” -kohdassa valitsin VPN-accessiksi oman alueeni eli ”EU – Starting Point”, kun toisena vaihtoehtona olisi ollut Yhdysvaltojen ”US – Starting Point”. VPN serverin kohdalla oli kaksi vaihtoehtoa, jotka eivät varmaankaan eroa toisistaan millään tavalla, mutta ilmeisesti palvelimen nimen perässä lukee VPN-palvelinta käyttävien lukumäärä sillä hetkellä, joten valitsin ”EU StartingPoint 2”:n, jonka käyttäjämäärä oli lähes puolet 1. vaihtoehdosta. Protokollaksi jätin oletuksena olleen UDP 1337:n. Tämän jälkeen latasin OpenVPN-asennustiedoston ”Download VPN” -painikkeesta.
Kali-virtuaalikoneeni oikeassa yläreunassa on äänen voimakkuuden kuvakkeen vieressä verkkoyhteyden kuvake, jota klikkaamalla aloin kyhätä virtuaalista verkkokorttia, jonka kautta voisin ottaa OpenVPN-yhteyden Hack The Boxiin:
Edit Connections → Network Connections-ikkunasta klikkasin +-painiketta → Valitsin yhteystyypiksi listan viimeisen vaihtoehdon ”Import a saved VPN configuration…” → Create → Etsin Download-kansiosta äsken lataamani tiedoston nimeltä starting_point_Susanna.ovpn. Keksin salasanan kohtaan ”User key password” ja lopuksi tallensin asetukset Save-painikkeella:
Näin olin asentanut itselleni OpenVPN-yhteyden, joka ei ollut vielä päällä mutta kuitenkin käyttövalmiina:
Tämän jälkeen en enää tiennytkään, miten jatkaa, joten vilkaisin apuja kurssikaverin tehtäväraportista. OpenVPN-yhteyden aktivoimiseksi minun piti mennä terminaalissa Downloads-kansioon, jossa hetki sitten lataamani ovpn-tiedosto oli:
$ cd /home/kali/Downloads/
Varmistin vielä, että kaipaamani tiedosto tosiaan oli edelleen Downloads-kansiossa:
$ ls
Kun näin oli, ajoin komennon
$ sudo su
päästäkseni ajamaan tämän jälkeen komentoja pääkäyttäjänä. Komennolla
$ openvpn starting_point_Susanna.ovpn
aktivoin OpenVPN-yhteyden. (Rissanen 2023)
Lopuksi tarkistin vielä, että openvpn-komennon jälkeen tulosteen loppupuolelta löytyi teksti ”Initialization Sequence Completed” aikaleimoineen, mikä oli merkki siitä, että VPN-yhteyden pitäisi olla ok. (Rissanen 2023)
Tarkistin selaimesta, miltä Hack The Boxin sivu näytti nyt. Aiemmin punaisella olleet maininta offline-tilasta oli vaihtunut vihreään online-tilaan, joten VPN-yhteys oli ilmeisesti saatu Starting Pointiin:
Vielä piti keksiä, miten saan VPN-yhteyden säilytettyä mutta muuten Kali-virtuaalikoneen irti Internetistä. Jos otin Network Adapter 1:n ja/tai Network Adapter 2:n irti, Internet-yhteys katkesi tyystin ja samalla Kali kadotti OpenVPN-yhteydenkin. Sen sijaan, kun molemmat verkkoadapterit olivat päällä ja klikkasin hiiren vasemmalla painikkeella Network Connection -kuvaketta näytön oikeassa yläreunassa ja klikkasin VPN:n päälle, sain ilmoituksen, että OpenVPN oli onnistuneesti aktivoitu käyttöön:
Internet-yhteyden kanssa taistelu ei taida ratketa enää tänä iltana, vaan yritän toisena päivänä uusin silmin.
Tehtävää jatkettu 8.5.2023:
Toistin samat vaiheet kuin edellä ja parin yrityksen jälkeen onnistuin sittenkin avaamaan OpenVPN-yhteyden. Tästä merkiksi Kalin oikeaan yläkulmaan ilmestyi kaiuttimen viereen lukon kuvake ja IP-osoite. OpenVPN-yhteydestä huolimatta myös julkinen Internet toimi, joten otin oikeasta alanurkasta Network Adapter 1:n ja 2:n irti, testasin terminaalissa Internet-yhteyttä pingaamalla google.com ja Googlen IP-osoitetta 8.8.8.8, mutta nyt kumpikaan ei vastannut. Olin vihdoin onnistunut pääsemään tilanteeseen, että OpenVPN-yhteys pysyy päällä, vaikka molemmat Network Adapterit on kytketty irti – huh!
Nyt siis oli avannut OpenVPN-yhteyden ”Starting Point” -verkkoon, estänyt tunnelin ulkopuolisen liikenteen ja testannut lopuksi, että normaali Internet-liikenteeni oli tosiaan estetty.
Kurssilla on opastettu, että tunkeutumistestaukseen liittyvät sopimukset täytyy tehdä aina kirjallisesti ja Hack The Boxin kaltaisten harjoitusympäristöjenkin säännöt täytyy ottaa talteen, jotta on mustaa valkoisella siitä, millä ehdoilla tunkeutumistestausta saa harjoitella. Otin tehtävän lopuksi kuvakaappauksen Hack The Boxin säännöistä, joiden kohdan 6 (streaming) mukaan vain tiettyjen koneiden, kuten Starting Point -koneiden, korkkaamisesta saa julkaista raportteja ja ratkaisuja mutta esimerkiksi kisakoneisiin liittyviä ratkaisuja ei missään nimessä saa julkistaa. Näiden sääntöjen mukaan myöhemmin tässä raportissa esitetyt ratkaisut ovat siis Hack The Boxin sääntöjen mukaiset.
c) Meow. Käynnistä ”Starting point”: ”Meow”. (Spawn machine). Tallenna ruutukaappaus sivusta, jossa näkyy koneen osoite ja tunkeutumistehtäviä. Porttiskannaa kone ja analysoi tulokset. Suorita HTB:n antamat tehtävät.
Avasin Windows-koneellani Hack The Boxin verkkosivut selaimeen, jotta näen, mitä tehtäviä minun tulisi suorittaa. Tehtävien suorittamiseksi tehtävät toimenpiteet teen VirtualBoxin Kali-virtuaalikoneellani, joka on kytketty irti julkisesta Internetistä, joten voin harjoitella huoletta. Hack The Boxin etusivulla klikkasin Starting Point -sivun auki vasemmasta reunasta ja skrollasin vähän alaspäin, missä ensimmäinen ”Starting Point” nimeltä Meow tuli vastaan. Nyt, kun olin vihdoin ja viimein saanut VPN-yhteyden Hach The Boxiin, ensimmäinen askel olikin jo merkitty suoritetuksi.
Seuraavaksi tuli klikata Spawn-kone käyntiin, joten tein työtä käskettyä. Yhteyden muodostaminen kesti pari minuuttia, ja kun yhteys oli saatu, sivulle ilmestyi korkattavan Spawn-koneen IP-osoite:
10.129.166.7
Tämän jälkeen olikin vastattavana liuta kysymyksiä.
- tehtävä: Mitä lyhenne VM tarkoittaa?
- VM viittaa virtuaalikoneeseen ja lyhenne tulee englannin sanoista Virtual Machine.
- tehtävä: Mitä työkalua käytetään vuorovaikutukseen käyttöjärjestelmän kanssa, kun annetaan komentoja komentorivin kautta? Esimerkkinä VPN-yhteyden käynnistäminen. Työkalu tunnetaan myös konsolina (console) tai shellinä (shell).
- Kyse on tietysti terminaalista eli englanniksi terminal.
- tehtävä: Mitä palvelua käytetään VPN-yhteyden muodostamiseen HTB-laboratorioalustaan?
- OpenVPN oli tämä VPN-yhteys, joka aiheutti harmaita hiuksia.
- tehtävä: Mitä lyhennettä käytetään ”tunnelirajapinnasta”, kun käynnistetään VPN-yhteyttä?
- Koska kyse on 3-kirjaimisesta sanasta, vastaus on tun.
- tehtävä: Mitä työkalua käytetään yhteyden testaamisessa kohteeseen, kun käytetään ICMP-vastauspyyntöviestejä (ICMP echo request)?
- Tässä kohtaa minulla löi aivan tyhjää, joten googletin hakusanoilla icmp echo request tool. Hakutulosten otsikoissa mainittiin ping, joka tosiaan kuulosti järkeenkäyvältä vastaukselta. Ping (nimenomaan isolla alkukirjaimella kirjoitettuna) vastaus tosiaan olikin.
- tehtävä: Mikä on yleisimmän, avoimien porttien etsimiseen tarkoitetun työkalun nimi?
- Työkalun nimi on nmap.
- tehtävä: Minkä palvelun tunnistamme portissa 23/tcp skannausten aikana?
- En saanut kaivettua vastausta muististani, vaikka portista 23/tcp oli varmasti mainittu luennoilla. Wikipedian avustuksella löysin vastauksen TCP:n ja UDP:n porttinumerolistasta (Wikipedia s.a.). Portista 23/tcp löytyy Telnet.
- tehtävä: Millä käyttäjätunnuksella on mahdollista kirjautua kohteeseen Telnetin kautta siten, että salasana on tyhjä?
- Tämänkin vastauksen jouduin googlettamaan, mutta käyttäjätunnus root avaa Telnetin kautta ovet tyhjälläkin salasanalla, mikä on tunnistettu myös Telnetin haavoittuvuudeksi (Haxez – Hacking Made Easy 29.4.2022).
Meow-harjoituksen lopuksi oli tehävänä ”submit root flag”, enkä ymmärtänyt alkuunkaan, mitä tässä kohtaa oikein odotettiin. Vilkaisin toisen kurssilaisen raportista vinkkiä ja tajusin, että lopuksi piti tosiaan korkata kone, mikä vaati muutakin kuin vain oikeat vastaukset aiempiin 8 kysymykseen. Tässä kohtaa VPN-yhteys katkesi ja totesin, että on aika mennä nukkumaan ja jatkaa toisena päivänä.
Jatkettu 11.5.2023:
Sain jälleen taistella OpenVPN-yhteyden päälle saamiseksi, mutta lopulta olin taas samassa pisteessä, johon aiemmin olin päässyt. Toki Meow-osion korkattavan koneen IP-osoite oli muuttunut edellisestä kerrasta ja nyt HTB ilmoitti IP-osoitteeksi 10.129.5.94.
Käynnistin Metasploitable2:n komennolla
$ sudo msfdb run
sillä msfdb-komento piti ajaa rootina. Tein HTB:n Meow-tehtävälle oman ”työtilan” komennolla
$ workspace --add HTBMeow
Pingasin korkattavaa IP-osoitetta ja paketit näyttivät kulkevan Kali-virtuaalikoneeni ja HTB:n määrittelemän IP-osoitteen välillä ja vain tällä välillä: Googlelle tarkistuksena lähettämäni paketit eivät tulleet takaisin, joten yhteys julkiseen Internettiin oli edelleen kytketty pois kuten pitikin.
Sitten huomasin, että OpenVPN-yhteys oli taas katkennut. Jostain syystä pingatessani HTB:n konetta OpenVPN-yhteys usein katkeaa. Yritin useita kertoja uudestaan saada OpenVPN-yhteyden päälle, mutta pari tuntia taisteltuani totesin, että teen välillä jotain muuta ja jatkan vähän myöhemmin.
Jatkoin yrittämistä myöhemmin samana iltana. Välillä OpenVPN-yhteys saatiin luotua onnistuneesti, mutta hetken päästä se taas katkesi omia aikojaan. Kokeilin lopulta OpenVPN-yhteyttä TCP:n eikä UDP:n avulla ja, kun jätin myös NAT-adapterin päälle, sain lopulta pingattua HTB:n konettani. Jos taas optin NAT-adapterin pois irti, jotta en olisi julkisessa Internetissä, OpenVPN-yhteys kadotettiin samantien eikä sitä saanut uudestaan toimimaan. Niinpä ei auttanut kuin harjoitella Hack the Boxia kieli keskellä suuta, jotta en vahingossakaan kajoa mihinkään muuhun kuin sallittuun HTB:n koneeseen.
Joka kerta, kun HTB:ssä käynnistää murrettavan koneen, sen IP-osoite muuttuu. Tällä kertaa IP-osoite oli 10.129.225.212, jota pingasin onnistuneesti:
$ ping 10.129.225.212
Kun murrettava kone vastasi, porttiskannasin sen:
$ nmap -sC 10.129.225.212
Porttiskannauksen myötä selvisi, että kohdekoneessa oli Telnetin portti 23 auki – juurikin HTB:n johdattelukysymysten ja niiden vastausten mukaisesti.
Yritin ottaa yhteyden kohdekoneen Telnettiin:
$ telnet 10.129.225.212
Yllättäen terminaaliin ilmestyi teksti ”Hack the Box” ja Meow-kone pyysi antamaan tunnukset. Johdattelukysymyksien perusteella arvelin Telnetin käyttäjätunnuksen olevan root ja salasanan tyhjä, ja tällä tosiaan pääsinkin koneelle. Hain tiedon juuressa olevista tiedostoista
$ ls
ja tiedostonimi flag.txt kuulosti niin lupaavalta, että avasin sen:
$ cat flag.txt
Flag.txt -tiedostosta paljastui merkkijono, jonka syötin HTB:n viimeisen osion, ”Submit root flag”, kenttään. Viimeisenkin osion kohdalle ilmestyi merkki suorittamisesta:
Ensimmäinen Hack the Boxin kone ”Meow” oli korkattu – todellinen työvoitto kaikkien VPN-ongelmien jälkeen!
Lähteet
IppSec 28.8.2021 HackTheBox – Knife. Video. Katsottavissa: https://www.youtube.com/watch?v=93JnRTF5sQM. Katsottu: 21.4.2023.
Karvinen, T. 2023. Penetration testing course 2023. Luettavissa: https://terokarvinen.com/2023/tunkeutumistestaus-2023-kevat/. Luettu: 21.4.2023.
PortSwigger. Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data. Luettavissa: https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data. Luettu: 21.4.2023.
Rissanen, J 2023. h3-The-Box. Luettavissa: https://github.com/JRissanen/h3-The-Box. Luettu: 24.4.2023.
Haxez – Hacking Made Easy 29.4.2022. Hack The Box: Machine – Meow. Luettavissa: https://systemweakness.com/hack-the-box-machine-meow-e8e1a5bf290a. Luettu: 8.5.2023.
Wikipedia s.a. List of TCP and UDP port numbers. Luettavissa: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers. Luettu: 8.5.2023.
Artikkelin osiota b on täydennetty 24.4. ja 8.5.2023. Osio c on lisätty 8.5. ja täydennetty 11.5.2023.