h0 Hei maailma
a) Vapaaehtoinen: Hei maailma. Sieppaa liikennettä WireSharkilla. Merkitse TCP/IP-pinon kerrokset ruutukaappaukseen. Raportti sivuna weppiin. Palauta linkki Laksuun ja ristiinarvioi vähintään kaksi.
Vinkit
Update 2025-10-21 w43 Tue: päivitin vastaamaan tunnilla annettua tehtävää.
h1 Sniff
- x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)
- a) Linux. Asenna Debian tai Kali Linux virtuaalikoneeseen. (Tätä alakohtaa ei poikkeuksellisesti tarvitse raportoida, jos sinulla ei ole mitään ongelmia. Jos on mitään haasteita, tee täsmällinen raportti)
- b) Ei voi kalastaa. Osoita, että pystyt katkaisemaan ja palauttamaan virtuaalikoneen Internet-yhteyden.
- c) Wireshark. Asenna Wireshark. Sieppaa liikennettä Wiresharkilla. (Vain omaa liikennettäsi. Voit käyttää tähän esimerkiksi virtuaalikonetta).
- d) Oikeesti TCP/IP. Osoita TCP/IP-mallin neljä kerrosta yhdestä siepatusta paketista. Voit selityksen tueksi laatikoida ne ruutukaappauksesta. (Voit käyttää vastauksesi osana ruutukaappaustasi h0-tehtävästä, mutta tässä tehtävässä tarvitaan myös sanallinen selitys.)
- e) Mitäs tuli surffattua? Avaa surfing-secure.pcap. Tutustu siihen pintapuolisesti ja kuvaile, millainen kaappaus on kyseessä. Tässä siis vain lyhyesti ja yleisellä tasolla. Voit esimerkiksi vilkaista, montako konetta näkyy, mitä protokollia pistää silmään. Määrästä voit arvioida esimerkiksi pakettien lukumäärää, kaappauksen kokoa ja kestoa.
- f) Vapaaehtoinen, vaikea: Mitä selainta käyttäjä käyttää? surfing-secure.pcap (Päivitys 2025-03-31 w14 ma - muutin tehtävän vapaaehtoiseksi Giang:n suosituksesta)
- g) Minkä merkkinen verkkokortti käyttäjällä on? surfing-secure.pcap
- h) Millä weppipalvelimella käyttäjä on surffaillut? surfing-secure.pcap
- Huonoja uutisia: yhteys on suojattu TLS-salauksella.
- i) Analyysi. Sieppaa pieni määrä omaa liikennettäsi. Analysoi se, eli selitä mahdollisimman perusteellisesti, mitä tapahtuu. (Tässä pääpaino on siis analyysillä ja selityksellä, joten liikennettä kannattaa ottaa tarkasteluun todella vähän - vaikka vain pari pakettia. Gurut huomio: Selitä myös mielestäsi yksinkertaiset asiat.)
Vinkit
Update 2025-10-21 w43 Tue: Lisäsin d-kohtaan, että halutessaan voi hyödyntää h0-tehtävän ruutukaappausta tässä.
Teron tehtävä.
h2 Lempiväri: violetti
Kaikissa kohdissa edellytetään analyysia ja selitystä. Selvitä ja selitä siis komentojen ja komentoriviparametrien merkitys. Selitä, mitä tulokset tarkoittavat; ja mitä niistä tulisi ymmärtää. Lue vinkit, ennenkuin aloitat.
- x) Lue ja vastaa lyhyesti kysymyksiin. Tässä alakohdassa x ei tällä kertaa tarvitse lukea artikkeleita kokonaan, ei tarvitse tiivistää niitä, eikä tehdä testejä koneella.
- Selitä tuskan pyramidin idea 1-2 virkkeellä. Bianco 2013: Pyramid of Pain. (Katso eritoten pyramidin kuvaa.)
- Selitä timanttimallin (Diamond Model) idea 1-2 virkkeellä. Tekijä esittelee sen aika juhlallisesti, voit myös etsiä yksinkertaisempia artikkeleita hakukoneella tai kelata suoraan timantin kuvaan. Caltagirone et al 2013: Diamond Model
- a) Apache log. Asenna Apache-weppipalvelin paikalliselle virtuaalikoneellesi. Surffaa palvelimellesi salaamattomalla HTTP-yhteydellä, http://localhost . Etsi omaa sivulataustasi vastaava lokirivi. Analysoi yksi tällainen lokirivi, eli selitä sen kaikki kohdat. (Jos Apache ei ole kovin tuttu, voit tätä tehtävää varten vain asentaa sen ja testata oletusweppisivulla. Eli ei tarvitse tehdä omia kotisvuja tms.)
- b) Nmapped. Porttiskannaa oma weppipalvelimesi käyttäen localhost-osoitetta ja 'nmap -A' päällä. Selitä tulokset. (Pelkkä http-portti 80/tcp riittää)
- c) Skriptit. Mitkä skriptit olivat automaattisesti päällä, kun käytit "-A" parametria? (Näkyy avoimien porttinumeroiden alta, http-blah, http-blöh...).
- d) Jäljet lokissa. Etsi weppipalvelimen lokeista jäljet porttiskannauksesta (NSE eli Nmap Scripting Engine -skripteistä skannauksessa). Löydätkö sanan "nmap" isolla tai pienellä? Selitä osumat. Millaisilla hauilla tai säännöillä voisit tunnistaa porttiskannauksen jostain muusta lokista, jos se on niin laaja, että et pysty lukemaan itse kaikkia rivejä?
- e) Wire sharking. Sieppaa verkkoliikenne porttiskannatessa Wiresharkilla. Huomaa, että localhost käyttää "Loopback adapter" eli "lo". Tallenna pcap. Etsi kohdat, joilla on sana "nmap" ja kommentoi niitä. Jokaisen paketin jokaista kohtaa ei tarvitse analysoida, yleisempi tarkastelu riittää.
- f) Net grep. Sieppaa verkkoliikenne 'ngrep' komennolla ja näytä kohdat, joissa on sana "nmap".
- g) Agentti. Vaihda nmap:n user-agent niin, että se näyttää tavalliselta weppiselaimelta.
- h) Pienemmät jäljet. Porttiskannaa weppipalvelimesi uudelleen localhost-osoitteella. Tarkastele sekä Apachen lokia että siepattua verkkoliikennettä. Mikä on muuttunut, kun vaihdoit user-agent:n? Löytyykö lokista edelleen tekstijono "nmap"?
- i) Hieman vaikeampi: LoWeR ChEcK. Poista skritiskannauksesta viimeinenkin "nmap" -teksti. Etsi löytämääsi tekstiä /usr/share/nmap -hakemistosta ja korvaa se toisella. Tee porttiskannaus ja tarkista, että "nmap" ei näy isolla eikä pienellä kirjoitettuna Apachen lokissa eikä siepatussa verkkoliikenteessä. (Tässä tehtävässä voit muokata suoraan lua-skriptejä /usr/share/nmap alta, 'sudoedit'. Muokatun version paketoiminen siis rajataan ulos tehtävästä.)
- j) FCC ID. Etsi valitsemasi langattoman laitteen tiedot FCC ID:llä. Mitä liikenteen purkamista tai manipuloimista hyödyttävää tietoa löydät?
- k) Vapaaehtoinen, vaikea: Invisible, invincible. Etsi jokin toinen nmap:n skripti, jonka verkkoliikenteessä esiintyy merkkijono "nmap" isolla tai pienellä. Muuta nmap:n koodia niin, että tuo merkkijono ei enää näy verkkoliikenteessä.
Vinkit
- Nämä komennot ovat ulkomuistista, niissä saattaa olla kirjjoitusvirheittä.
- Apachen asennus
- sudo apt-get update
- sudo apt-get install apache2
- sudo systemctl start apache2
- Apachen lokit
- /var/log/apache2/
- sudo tail -F /var/log/apache2/access.log
- (Useimmat muut lokit ovat nykyisin 'sudo journalctl --follow')
- Porttiskannaus
- 'sudo nmap -A localhost'
- 'sudo nmap -T4 -vv -A -p 80 localhost'
- Vain omia koneita saa porttiskannata
- Kannattaa irrottaa kone Internetistä testien ajaksi
- KKO 2003:36 ja tämä siis 17-vuotiaalle eli juridisesti lapselle. Tekopäivä 1998, oikeudessa edelleen 2003. Käsittely oikeudessa kesti siis pidempään kuin mitä taposta olisi tullut istuttavaa. Esimerkki eri henkilöistä ja tapauksesta: Taposta vankeutta alle 7 vuotta, ensikertalaisen alennus 50%, istuttavaa noin 3.5 vuotta.
- Wireshark
- Näytä vain paketit, joissa on tietty sana? Dislay filter: frame contains "nmap"
- sudo ngrep -d lo -i nmap
- Nmap
- --script-args http.useragent="BSD experimental on XBox350 alpha (emulated on Nokia 3110)"
- Mitä tiedostoja on asentunut nmap:n mukana? 'dpkg --listfiles nmap nmap-common'
- Missä niistä mainitaan jokin tietty skripti, vaikkapa http-title? 'dpkg --listfiles nmap nmap-common |grep http-title'
- Nmap:n skriptit ja niiden käyttämä kirjasto löytyvät /usr/share/nmap/
- Voit hakea jotain hakusanaa kaikista hakemistoista työhakemistosta alaspäin
Teron tehtävä.
h3 - ei tehtävää
Kuten "Tähtien sodassa", kolmosta ei ole.
h4 - NFC ja RFID
- a) Tarkastele käytössäsi olevia RFID tuotteita, mieti miten hyvin olet suojautunut RFID urkinnalta?
- b) Tutustu APDU komentojen rakenteeseen (voit käyttää tekoälyä tutustumiseen)
- c) Tutki ja kerro minkä mielenkiintoisen RFID hakkerointi uutiset löysit.
Vinkit
- Monet hakkerointiuutiset liittyvät henkilökortteihin.
Larin tehtävä.
h5
h6
h7 Aaltoja harjaamassa
Lapsena softaradiot olivat tieteisfiktiota. Sitten salaisia projekteja. Sitten kalliita. Ja nyt käytössämme alkaen 25 EUR.
Tässä harjoituksessa analysoit siepattuja signaaleja sekä automaattisesti että hieman myös käsin.
Lue myös vinkit ennen kuin aloitat käytännön harjoitukset.
- x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)
- a) Lähteet ja läppä. Tarkista, että jokaisessa kotitehtäväraportissasi on viitattu lähteisiin (kurssiin, tehtäviin, kirjoihin, ohjeisiin...). Tarkista myös, että tekoälyn käyttö on kerrottu läpikyvästi ja merkitty lähteisiin. Laita läppäri valmiiksi lipunryöstöön. Opettaja voi tarkistaa läppärin. Jos käytät lipunryöstössä pelkästään virtuaalikonetta (myös weppiselailun), tarkastan vain virtuaalikoneen. Tätä alakohtaa a ei tarvitse raportoida, pelkkä kuittaus tekemisestä riittää.
- b) rtl_433. Asenna rtl_433 automaattista analyysia varten. Kokeile, että voit ajaa sitä. './rtl_433' vastaa "rtl_433 version 25.02 branch..."
- c) Automaattinen analyysi. Mitä tässä näytteessä tapahtuu? Mitä tunnisteita (id yms) löydät? Converted_433.92M_2000k.cs8. Analysoi näyte 'rtl_433' ohjelmalla.
- d) Too compex 16? Olet nauhoittanut näytteen 'urh' -ohjelmalla .complex16s-muodossa. Muunna näyte rtl_433-yhteensopivaan muotoon ja analysoi se. Näyte Recorded-HackRF-20250411_183354-433_92MHz-2MSps-2MHz.complex16s
- e) Ultimate. Asenna URH, the Ultimate Radio Hacker.
- Tarkastele näytettä 1-on-on-on-HackRF-20250412_113805-433_912MHz-2MSps-2MHz.complex16s. Siinä Nexan pistorasian kaukosäätimen valon 1 ON -nappia on painettu kolmesti. Käytä Ultimate Radio Hacker 'urh' -ohjelmaa.
- f) Yleiskuva. Kuvaile näytettä yleisesti: kuinka pitkä, millä taajuudella, milloin nauhoitettu? Miltä näyte silmämääräisesti näyttää?
- g) Bittistä. Demoduloi signaali niin, että saat raakabittejä. Mikä on oikea modulaatio? Miten pitkä yksi raakabitti on ajassa? Kuvaile tätä aikaa vertaamalla sitä johonkin. (Monissa singaaleissa on line encoding, eli lopullisia bittejä varten näitä "raakabittejä" on vielä käsiteltävä)
- h) Vapaaehtoinen: Sdr++. Kokeile sdr++ -sovellusta ja esittele sillä jokin "hei maailma" -tyyppinen esimerkki.
- i) Vapaaehtoinen, vaikeahko: GNU Radio. Asenne GNU Radio ja tee sillä yksinkertainen "Hei maailma".
Vinkit
- rtl_433
- Purkaa automaattisesti lukuisia protokollia
- Tukee muitakin taajuuksia kuin 433 MHz
- Kalissa 'sudo apt-get install rtl_433' (ja Sid:ssä)
- Debianissa ja muissa
- Projektin Github-sivulta merbanan/rtl_433
- Releases-sivulta tuorein versio, jossa on:
- Linux
- amd64
- SoapySDR (ei vaikuta tähän harjoitukseen, mutta vaaditaan esim HackRF-tukeen)
- Omaan järjestelmään sopiva OpenSSL versio, Debian 12-Bookworm kanssa 3
$ sudo apt-get -y install atool wget libssl-dev libtool libusb-1.0-0-dev librtlsdr-dev rtl-sdr libsoapysdr-dev
$ wget https://github.com/merbanan/rtl_433/releases/download/25.02/rtl_433-soapysdr-openssl3-Linux-amd64-25.02.zip
$ aunpack rtl*.zip
- Voi lukea suoraan radiolta (oletus) tai tiedostosta
$ rtl_433 -r foo_433.92M_1000k.cs8
$ man rtl_433
- Tiedostomuodon muuttaminen 'urh' complex16s -> 'rtl_433' cs8
- Vain tiedoston nimi muuttuu
- Tiedoston nimessä pitää olla oikea taajuus (center frequency) ja näytteenottotaajuus (sample rate)
- Erottimena alaviiva
foo_433.92M_1000k.cs8
- File name meta data
- Ultimate Radio Hacker 'urh'
- URH avulla voi analysoida lähetteitä
- Tässä kokeilemme analyysin alkuvaiheita, joissa saadut bitit eivät vielä ole niitä lopullisia bittejä
- Helppo asennus, sopii valmiiksi kaapattujen signaalien analyysiin
$ sudo apt-get update
$ sudo apt-get -y install pipx
$ pipx install urh
$ pipx ensurepath
- sulje ja avaa terminaali
$ urh
- URH graafinen käyttöliittymä aukeaa
- Signaalien sieppaamiseen tarvitaan laitetuki omalle softaradiolle. Tätä varten jouduin itse kääntämään sorsista ja säätelemään. Tässä tehtävässä et tarvitse laitetukea softaradiolle.
- Voit leikata (crop) signaalia valitsemalla sen aallosta. Crop löytyy kontekstivalikosta, joka aukeaa hiiren oikealla napilla.
- Gqrx löytyy Debianin paketinhallinnasta
- Läpikävely (walktrough / spoiler): Nurminen 2025: h3 Aaltoja harjaamassa
h8
h9