Aloitustehtävä: XOR
Ensimmäisellä tunnilla pääsyvaatimuksena oli alkutesti, joka piti ratkaista tunnissa. Tehtävänanto oli:
- joko sieppaa ja analysoi verkkoliikennettä,
- tai tee ohjelma, joka kertoo tietoa kohdekoneesta
ja dokumentoi ja julkaise tulokset. Ymmärsin tehtävänannon niin, että tulokset oli julkaistava netissä joka tapauksessa. Ensimmäinen vaihtoehto tarkoitti mielestäni, että kaappaa omaa verkkoliikennettä ja analysoi sitä. Tunsin WireSharkin (https://www.wireshark.org/) aiemmilta kursseilta nimeltä, mutta en koskaan ollut käyttänyt sitä kunnolla, joten sen opettelu ja tulosten julkaisu tunnissa kuulosti huonolta vaihtoehdolta.
Toinen vaihtoehto vaikutti houkuttelevammalta, koska arvelin että voin kertoa jotakin kohdekoneesta PHP-pohjaisen verkkosivun kautta. Todennäköisesti tehtävänannossa haettiin kuitenkin komentoriviskriptiä joka kertoisi omasta koneesta jotakin.
PHP-pohjaisen sivun rakentaminen joka kertoo sivulla surffaajan ip-osoitteen, portin ja selaimen ja sitä myöten käyttöjärjestelmän (surffaajalle itselleen), vaikutti hyvältä vaihtoehdolta. Lähdekoodiksi sivulle muotoutui googlettelujen ja PHP-manuaalin lukemisen (https://www.php.net/manual/en/reserved.variables.server.php) jälkeen:
<?php
echo "Terve kurssi, katsot tätä sivua ip-osoitteesta: ";
echo $ip_address = $_SERVER['REMOTE_ADDR'];
echo " portista: ";
echo $port = $_SERVER['REMOTE_PORT'];
echo " selaimesta: ";
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
$browser = get_browser(null, true);
print_r($browser);
?>
Mutta suurimmaksi ja aikaavievimmäksi tehtäväksi osoittautui ilmaisen (luotettavan!) PHP-palvelimen löytäminen verkosta. Valmista virtuaalikonetta tms. omaa palvelinta minulla ei ollut sivun hostaamiseen.
Päädyin useamman rekisteröintiyrityksen jälkeen palveluun https://profreehost.com/, koska se ei vaatinut useampi portaista rekisteröitymistä ja sain hostattua sivuni heti.
Dokumentoin lähdekoodin GitHubiin ja myöhemmin käytin samaa repositorya tähän kurssidokumentaatioon. Sitten olikin vuorossa enää tehtäväpalautus eli linkit sivulle ja dokumentaatioon.
Onneksi pääsin kurssille!
- Kommentti alkutehtävässä käytetyn sivun sulkemiseen: ip-osoite ei yksilöi käyttäjää (ei ole henkilötieto). Tietoja ei tallennettu mihinkään vaan ne näkyivät ainoastaan käyttäjille itselleen. Sivu kuitenkin ajoi jo asiansa.