h1 Kybertappoketju

Tekijä: Aapo Tavio

Pohjana Tero Karvinen 2026: Tunkeutumistestaus 2026 kevät, Tunkeutumistestaus


Käytettävän ympäristön ominaisuudet

  • Host

    • Host PC: HP Laptop 15s-eq3xxx

    • OS: Ubuntu 24.04.4 LTS

    • Processor: AMD Ryzen™ 7 5825U with Radeon™ Graphics × 16

    • Memory: 16.0 GiB

    • NIC: Realtek Semiconductor Co., 802.11 ax Wireless

    • Architecture: x86_64

    • Firmware version: F.20

    • Kernel Version: Linux 6.17.0-19-generic

  • Virtual Machine

    • OS: Kali GNU/Linux Rolling

    • Release: 2026.1

    • Kernel Version: Linux 6.18.12+kali-amd64

    • Architecture: x86-64

    • Hardware Vendor: QEMU

    • Hardware Model: Standard PC Q35 + ICH9, 2009

    • Hardware Version: pc-q35-8.2

    • Firmware Version: 1.16.3-debian-1.16.3-2

    • Firmware Date: Tue 2014-04-01


x) Lue/katso/kuuntele ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva. Kannataa lisätä kustakin oma huomio, idea tai kysymys.)

  • Elektroniset lukot yhdistävät kaksi erilaista tekniikkaa

    • Mekaaninen lukkotekniikka

    • Elektroninen lukkotekniikka

  • Kyberrikollisuutta harjoittavat paljon myös ala-ikäiset ihmiset

    • Cyber exit on Suomalainen ohjelma, joka on suunnattu alle 25-vuotiaille, jonka tavoitteena on lisätä tietoisuutta laillisista väylistä harjoittaa taitojaan
  • Monet maat ja tahot tekevät yhteistyötä kyberrikollisuuden ehkäisemiseksi

(Herrasmieshakkerit podcast 2026. Kybertuhon katkaisija, vieraana Viivi Lehtinen | 0x40. URL: Herrasmieshakkerit)

  • Oma huomio

    • Minua yllätti, kuinka paljon nuoret harjoittavat Suomessakin kyberrikollista toimintaa


  • APT (Advanced Persistent Threat) toimijoiden sekä yleisesti pahantahtoisten toimijoiden valistuneisuuden ja tavoitteiden muutokset ovat muokanneet tapaa suhtautua tietotekniikan uhkiin.

  • Kybertappoketju kuvaa onnistuneen hyökkäyksen toimintavaiheet

    • Jos yksi vaihe epäonnistuu, hyökkäyksen jatkaminen seuraavaan vaiheeseen ei ole mahdollista
  • Kybertappoketjussa on seitsemän vaihetta

    • Tiedustelu (Reconnaissance)

    • Aseistus (Weaponization)

    • Toimitus (Delivery)

    • Hyväksikäyttö (Exploitation)

    • Asennus (Installation)

    • Komento ja ohjaus (Command and Control, C2)

    • Toiminta kohteessa (Actions on Objectives)

(Hutchins, Cloppert & Amin 2011, Luvut Abstract & 3.2 Intrusion Kill Chain. URL: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains)


  • Nmap on suosituin ja kattavin työkalu porttien skannaamiseen

    • Valinta -Pn on usein oleellinen, koska se mahdollistaa kaikkien host-koneiden luokittelun ylös olevaksi (online) alas olevan (offline) sijaan
    • Nmap sisältää myös haavoittuvuus skannerin skriptien avulla
  • Masscan on nopeampi kuin Nmap, mutta ei ole yhtä kattava

  • Udpprotoscanner

    • Hyvä UDP-porttien skannaamiseen
    • UDP-porteista voi usein saada hyviäkin tietoja
  • EyeWitness on hyvä web-palvelujen tiedusteluun

(Santos, Taylor, Sternstein & McCoy 2019. Lesson 4. Videoiden URL: Learning objectives - The Art of Hacking (Video Collection))

  • Oma huomio

    • En ollut ennen kuullutkaan EyeWitness ohjelmasta, mutta se vaikuttaa erittäin mielenkiintoiselta ja hyödylliseltä


  • Porttiskannaus on Suomessa lähtökohtaisesti rikos

(Finlex. KKO:2003:36. URL: KKO:2003:36 | 8.4.2003 | Ennakkopäätökset | Korkein oikeus | Finlex)


a) Asenna Kali virtuaalikoneeseen. (Jos asennuksessa ei ole mitään ongelmia tai olet asentanut jo aiemmin, tarkkaa raporttia tästä alakohdasta ei tarvita. Kerro silloin kuitenkin, mikä versio ja millä asennustavalla. Jos on ongelmia, niin tarkka ja toistettava raportti).

Olen asentanut jo aikaisemmin Kalin Qemun ja Virt-managerin avulla. Koneeseen liittyvät ominaisuudet ovat listattuina raportin alussa löytyvästä kohdasta “Käytettävän ympäristön ominaisuudet”.


b) Irrota Kali-virtuaalikone verkosta. Todista testein, että kone ei saa yhteyttä Internetiin (esim. ‘ping 8.8.8.8’)

26.3.2026 15:00

Ping yritys

Kuva 1. Yhteyttä Googlen nimipalvelimelle ei saatu

Selaimella ei yhteytta

Kuva 2. Firefox selaimellakaan ei saanut yhteyttä internetiin


c) Porttiskannaa 1000 tavallisinta tcp-porttia omasta koneestasi (nmap -T4 -A localhost). Selitä komennon paramterit. Analysoi ja selitä tulokset.

26.3.2026 15:06

Aloitin skannaamalla 1000 tavallisinta porttia localhost-osoitteesta komennolla

$ nmap -T4 -A localhost #-T4 nopeuttaa skannausta, -A yrittää tunnistaa käyttöjärjestelmän ja sen version, laittaa skriptien skannauksen päälle sekä kertoo kaikki pakettien hyppypisteet (ts. traceroute)

(Nmap virallinen manuaali Kali Linuxin terminaalissa. Komento: man nmap)

Minulle tuli virheilmoitus, koska DNS-palvelimia ei ollut käytettävissä.

DNS virhe

Kuva 3. Domainin localhost IP-osoitetta ei pystytty selvittämään

Suoritin tämän jälkeen samalla komennolla skannauksen, mutta vaihdoin localhost domainin tilalle localhostin IP-osoitteen.

$ nmap -T4 -A 127.0.0.1

Vastaus skannauksesta on alla olevassa kuvassa.

Skannaus IP-osoitteella

Kuva 4. Skannaus onnistui localhost:n IP-osoitteella

Kuvassa:

  • Host is up (0.000087s latency)

    • Nmap on saanut vastauksen kohteesta ja luokittelee kohteen ylhäällä olevaksi

    (Nmap. URL: Host Discovery)

    • Latenssi kohteen vastauksesta lähetettyyn pakettiin
  • All 1000 scanned ports on 127.0.0.1 are in ignored states

    • Kohde esti yhteyden muodostuksen kaikissa porteissa

    (Hackthebox. URL: NMAP all ports are in ignored state - nmap - Hack The Box :: Forums)

  • Not shown: 1000 closed tcp ports (reset)

    • Nmap on saanut vastauksen kaikilta 1000:a skannatulta portilta

    • Porteissa mikään palvelu ei kuuntele

    (Nmap. URL: Port Scanning Basics | Nmap Network Scanning)

  • Too many fingerprints match this host to give specific OS details

    • Nmap tarkastaa jokaisen bitin vastauksista ja vertaa niitä nmap:n tietokantaan löytääkseen tietoja käyttöjärjestelmästä

    (Nmap. URL: OS Detection | Nmap Network Scanning)

    • Tapauksessani nmap ei siis pystynyt määrittelemään käyttöjärjestelmän tietoja, koska yhteneväisyyksiä oli liikaa monen eri tietokannassa olevan käyttöjärjestelmän tunnistetiedoissa
  • Network Distance: 0 hops

    • Traceroute tulos

    • Nmap pystyi ottamaan suoraan yhteyden kohteeseen ilman mitään välipisteitä


d) Asenna kaksi vapaavalintaista demonia ja skannaa uudelleen. Analysoi ja selitä erot.

27.3.2026 14:05

Päätin ottaa demoneiksi apache web-palvelimen sekä openssh-palvelimen. Minulla oli ne jo valmiina Kalissa, joten käynnistin apachen komennolla

$ sudo systemctl start apache2 #Käynnistää apache demonin sudo-oikeuksin

Varmistin demonin toimivuuden localhost osoitteen portissa 80.

Apachen oletussivu

Kuva 5. Apache palautti oletussivun

Tämän jälkeen käynnistin openssh-palvelimen komennolla

$ sudo systemctl start ssh #Käynnistää openssh-palvelimen

Tarkistin toimivuuden ensimmäiseksi katsomalla openssh-palvelimen tilan systemctl kautta.

SSH tila

Kuva 6. Openssh-palvelin oli päällä koska vastauksessa oli “active”

Kokeilin vielä ottaa yhteyden host-koneeltani virtuaalikoneeseeni ssh:n kautta.

Kirjautuminen ssh

Kuva 7. Kirjautuminen ssh:n avulla toimi


27.3.2026 14:38

Otin internet yhteyden pois päältä ja lähdin skannaamaan uudestaan tutulla komennolla

$ nmap -T4 -A 127.0.0.1

Porttiskannauksen tulos

Kuva 8. Nmap porttiskannauksen tulos demonien päällä ollessa

Kuvassa:

Portit

Kuva 9. Porttien tiedot

Porttien numerot ja siirtokerroksen (transport layer) protokollat otsikon PORT alla.

Portin tila otsikon STATE alla, joka molemmissa porteissa oli avoinna. Avoinna oleva portti hyväksyy aktiivisesti TCP-yhteyksiä, SCTP-yhteyksiä tai UDP-datagrameja.

(Nmap. URL: Port Scanning Basics | Nmap Network Scanning)

Palvelun (demonin) nimi otsikon SERVICE alla.

Palvelun versio otsikon VERSION alla.

HTTP tiedot

Kuva 10. Http-vastauksen tiedot

Http-sivun nimike (title) kohdassa |_http-title.

Http-sivun otsake, joka ilmaisee tapauksessa Apachen version kohdassa |_http-server-header.

Tietoja kayttojarjestelmasta

Kuva 11. Kohteen käyttöjärjestelmän tietoja

Kohteen laitetyyppi ja käyttöjärjestelmä. Tapauksessa laitetyyppinä on yleinen, koska se sisältää mm. Linux ja Windows käyttöjärjestelmät.

(Nmap. URL: Device Types | Nmap Network Scanning)

Lisaa tietoja

Kuva 12. Lisää tietoja käyttöjärjestelmästä

Lisää tietoa käyttöjärjestelmästä. CPE (Common Platform Enumeration) on URL, joka on standardisoitu tapa nimetä ohjelmia. Se koostuu maksimissaan seitsemästä kentästä. Tapauksessa /o tarkoittaa käyttöjärjestelmää.

(Nmap. URL: Common Platform Enumeration (CPE) | Nmap Network Scanning)

Muut kentät kerroinkin aikaisemmassa tehtävässä. Tässä skannauksessa tuli enemmän tietoa, koska demonit kuuntelivat ja vastasivat porttien kautta.


e) Ratkaise vapaavalintainen kone HackTheBoxista. Omalle tasolle sopiva, useimmille varmaan Starting Pointista. Valitse kone, jota et ole ratkaissut vielä. Ei tunnilla näytetty Meow. (Propellihatuille: jos teet vaikeampia ei-starting-point koneita, niin retired tai vastaava kone, josta saa julkaista writeupin).

Tehtävä 1

28.3.2026 19:38

Päätin tehdä starting point tier 1 tasolta koneen nimeltä Sequel. Laitoin VPN:n päälle ja kokeilin ensimmäiseksi pingata maalikonettani.

Maalikoneen osoite

Kuva 13. Maalikoneen IP-osoite oli 10.129.52.211

Pingaaminen onnistui ja sain vastauksia kohdekoneelta. Oli aika aloittaa tehtävät.

Tehtavananto

Kuva 14. Ensimmäinen tehtävä

Aloitin skannaamalla kohdekoneen nmapilla, koska minun piti saada tietää missä portissa pyörii MySQL-palvelu. Komentona käytin tuttua komentoa.

$ nmap -T4 -A 10.129.52.211

Skannauksen tulos

Kuva 15. Nmap skannauksen tulos

Tehtävään 1 oikea vastaus oli siis portti numero 3306.


Tehtävä 2

28.3.2026 20:05

Seuraavaksi minun piti selvittää, mikä MySQL-versio pyöri kohteessa.

Tehtavananto

Kuva 16. Tehtävä 2

Aikaisemmasta skannauksen vastauksesta ilmenee vastaus, joka oli MariaDB.

Osa vastauksesta

Kuva 17. Osa skannauksen vastauksesta tehtävässä 1


Tehtävä 3

28.3.2026 20:11

Seuraavaksi piti tietää, mitä valintaa on käytettävä komentokehotteen MySQL-client ohjelmassa kirjautuakseen tiettynä käyttäjänä? Löysin vastauksen MariaDB:n viralliselta sivulta. Oikea vastaus oli -u.

(MariaDB. URL: Connecting to MariaDB Guide | Server | MariaDB Documentation)


Tehtävä 4

28.3.2026 20:19

Seuraavaksi piti vastata käyttäjä, jolla voi kirjautua ilman salasanaa. Useimmiten ei mielestäni kuuluisi olla käyttäjiä, jotka voivat kirjautua ilman salasanoja tai muuta salaisuutta tietokantoihin, mutta tehtävässä oli valmiina vastauksen kohdalla viimeinen kirjain “t” vinkkinä, joten tiesin sen olevan root. Tehtävässä alustetaan tulevaa lipunryöstöä, joten he ovat todennäköisesti jättäneet root-käyttäjän tunnistautumisen salasanalla pois.

Tehtavananto ja vastaus

Kuva 18. Tehtävä 4 ja sen vastaus


Tehtävä 5

28.3.2026 20:25

Tehtävässä 5 kysyttiin millä symbolilla saa kaikki taulun tiedot esille SQL-kyselyn komennossa? Oikea vastaus oli asteriski (*).

Tehtavananto ja vastaus

Kuva 19. Tehtävä 5 ja sen ratkaisu


Tehtävä 6

28.3.2026 20:30

Seuraavaksi kysyttiin merkkiä, jolla SQL-kyselyn lauseke tulisi päättää. Oikea vastaus oli puolipiste (;).

Tehtavananto ja vastaus

Kuva 20. Tehtävä 6 ja sen vastaus


Tehtävä 7

28.3.2026 20:33

Tehtävässä 7 minun piti tietääkseni mennä jo kohdekoneen tietokantaan urkkimaan tietoja, koska piti tietää kolmen tavallisimman MySQL-tietokannan taulujen lisäksi neljäs, joka oli uniikki tapauksessa.

Tehtavananto

Kuva 21. Tehtävä 7

Yritin yhdistää MariaDB palvelimelle komennolla

$ mariadb -h 10.129.52.211 -u root #Valinta -h antaa määrittää isännän ip-osoitteen, johon halutaan ottaa yhteys

(Valinnan -h lähde: MariaDB. URL: Connecting to MariaDB Guide | Server | MariaDB Documentation)

Sain kuitenkin virheilmoituksen.

Virheilmoitus

Kuva 22. Virheilmoitus yrittäessäni yhdistää palvelimelle

Virheilmoituksessa oli selkeästi ilmaistu, että palvelin ei tue TLS/SSL protokollaa. Ymmärsin vastauksesta kuitenkin client ohjelman vaativan sitä. Löysin kuitenkin MariaDB:n virallisesta komentorivikehotteesta saatavasta ohjeesta, että valinnalla –skip-ssl saisi laitettua pois TLS/SSL salauksen vaatimisen yhdistettäessä.

(Ohjeen komentona Kali Linuxin terminaalissa: man mariadb)

Kokeilin uutta komentoa.

$ mariadb -h 10.129.52.211 -u root --skip-ssl

Tämän jälkeen pääsinkin sisälle palvelimeen.

Yhteys onnistui

Kuva 23. Yhteyden sai uudella komennolla

Katsoin MariaDB:n sivuilta, miten saan listattua tietokannat? Komento oli

MariaDB [(none)]> show databases; #Listaa palvelimen tietokannat

(MariaDB. URL: SHOW DATABASES | Server | MariaDB Documentation)

Sieltähän se vastaus sitten tulikin.

Tietokannat

Kuva 24. Palvelimen tietokannat listattuna

Oikea vastaus oli siis htb.


Lipunryöstö

28.3.2026 21:10

Viimeinen tehtävä oli lipunryöstö, jossa annettiin vain tehtäväksi syöttää lippu.

Tehtavananto

Kuva 25. Lipunryöstön tehtävänanto

Olin melko varma, että lippu olisi htb:n tietokannassa. Aloitin yhdistämällä tietokantaan komennolla

MariaDB [(none)]> use htb; #Komento yhdistää tietokantaan htb

(Lähde komentoon: MariaDB. URL: USE [DATABASE] | Server | MariaDB Documentation)

Seuraavaksi listasin taulut komennolla

MariaDB [htb]> show tables; #Listaa tietokannan taulut

Taulut

Kuva 26. Tietokannan htb taulut listattuna

Lähdin ensimmäiseksi katsomaan mitä taulusta users löytyisi.

MariaDB [htb]> select * from users; #Listaa kaikki rivit ja kolumnit taulusta users

Users taulu

Kuva 27. Taulussa users oli monia käyttäjiä

Koska lippua ei löytynyt suoraan users taulusta, lähdin katsomaan config taulua komennolla

MariaDB [htb]> select * from config; #Listaa kaikki rivit ja kolumnit taulusta config

Config taulu

Kuva 28. Config taulussa oli rivillä 5 lippu

Lippu löytyi config taulusta, jonka syötin hacktheboxiin.

Ilmoitus onnistumisesta

Kuva 29. Ilmoitus koneen onnistuneesta ratkaisemisesta

Lippu oli oikea, jonka jälkeen sain ilmoituksen koko tehtäväsarjan onnistuneesta suorituksesta.



Lähteet

Finlex. KKO:2003:36. Luettavissa: KKO:2003:36 | 8.4.2003 | Ennakkopäätökset | Korkein oikeus | Finlex. Luettu: 26.3.2026.

Hackthebox. NMAP all ports are in ignored state. Luettavissa: NMAP all ports are in ignored state - nmap - Hack The Box :: Forums. Luettu: 27.3.2026.

Herrasmieshakkerit. 21.1.2026. Kybertuhon katkaisija, vieraana Viivi Lehtinen | 0x40. Kuunneltavissa: Herrasmieshakkerit. Kuunneltu: 27.3.2026.

Hutchins, E., Cloppert, M. & Amin, R. 2011. Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains. Luettavissa: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains. Luettu: 26.3.2026.

MariaDB. Connecting to MariaDB Guide. Luettavissa: Connecting to MariaDB Guide | Server | MariaDB Documentation. Luettu: 28.3.2026.

MariaDB:n virallinen ohje terminaalissa. Komento: man mariadb. Luettu: 28.3.2026.

MariaDB. SHOW DATABASES. Luettavissa: SHOW DATABASES | Server | MariaDB Documentation. Luettu: 28.3.2026.

MariaDB. USE [DATABASE]. Luettavissa: USE [DATABASE] | Server | MariaDB Documentation. Luettu: 28.3.2026.

Nmap. Common Platform Enumeration (CPE). Luettavissa: Common Platform Enumeration (CPE) | Nmap Network Scanning. Luettu: 27.3.2026.

Nmap. Device Types. Luettavissa: Device Types | Nmap Network Scanning. Luettu: 27.3.2026.

Nmap. Host Discovery. Luettavissa: Host Discovery. Luettu: 26.3.2026.

Nmap. OS Detection. Luettavissa: OS Detection | Nmap Network Scanning. Luettu: 27.3.2026.

Nmap. Port Scanning Basics. Luettavissa: Port Scanning Basics | Nmap Network Scanning. Luettu: 27.3.2026.

Nmapin virallinen manuaali Kali Linuxin terminaalissa. 6.8.2025. Komento: man nmap. Luettu: 26.3.2026.

Santos, O., Taylor, R., Sternstein, J. & McCoy, C. 2019. The Art of Hacking (Video Collection). Videot katsottavissa: Learning objectives - The Art of Hacking (Video Collection). Katsottu: 26.3.2026.







Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 3 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html