Linux palvelimet – h5

Tehtvänannot:

a) Asenna SSH-demoni
b) Suojaa kone tulimuurilla, mutta tee ensin reikä SSH:lle
c) Siirrä tiedostoja ssh:lla
d) Automatisoi kirjatuminen julkisen avaimen menetelmällä
j) Asenna ja konfiguroi ja käynnistä sysstat-paketti. Tarkista sar-komennolla, että se on päällä, esim. näyttää lokimerkinnän “Linux reboot…”. Anna sysstatin pyöriä päivä tai pari. Tutki kuormitushistoriaa sysstatin komennoilla sar, iostat, pidstat… Analysoi tulokset, eli selitä perusteellisesti mitä tulokset tarkoittavat.
i) (Ryhmä 7 tiistai varsinainen tehtävä, muille vapaaehtoinen): Ratkaise Scan of the Month 15. Katso vinkkejä Forensic File Recovery with Linux – Undelete. Älä katso malliratkaisua netistä, ellet ole jumissa, ja merkitse raporttiisi, jos katsoit. Kuva sisältää oikeaa haittakoodia, älä käsittele sitä arvokkailla tietokoneilla tai työnantajan tuotantoverkossa, äläkä aja siltä löytyviä ohjelmia. Kaikki vastaukset löytyvät kuvasta, tässä tehtävässä ei tutkita mitään muita järjestelmiä.
  

H5.a

Tehtävänantona oli asentaa ssh-demoni. Aloitin tehtävän avaamalla terminaaliin ja kirjoittamalla aluksi Selection_120.png ja odotin, että update valmistuu. Sitten kirjoitin terminaaliin komennot
Selection_121.png
Tämän jälkeen ssh-demoni oli asennettu. Sitten kokeilin, että toimiiko se kirjoittamalla terminaaliin komennon Selection_122.png. Tämän jälkeen terminaalissa kysyttiin salasanaani. Kirjoitin sen ja pääsin käyttämään ssh-yhteyttä:

Terminal - ossi@osmoosi: ~_123.png

Täten pystyin todeta, että ssh toimii.

H5.b

 Tehtävänantona oli suojata koneeni tulimuurilla, mutta sitä ennen oli tehtävä reikä ssh-yhteydelle. Aloitin tehtävän annon avaamala terminaalin ja kirjoittamalla sinne komennon Selection_124.png. Sitten terminaali kysyi salasanaa, annoin sen ja komento toteutui:

Terminal - ossi@osmoosi: ~_125.png

Tämän jälkeen laitoin tulimuurin päälle komennolla Selection_126.png ja terminaali näytti tältä salasanan annon jälkeen:

Terminal - ossi@osmoosi: ~_127.png

Tästä voin todeta, komentojen anto on annettu ja tulimuuri on laitettu päälle.

H5.c

Tehtävänantona oli siirtää tiedostoja käyttäen SSH:ta. Käytin SCP-tekniikkaa siirtäessäni SSH:lle tiedostoja.  Aloitin avaamalla terminaalin ja tekemällä uuden tekstitiedoston kirjoittamalla komennon Selection_128.png. Tämän jälkeen kirjoitin tekstiä tiedostoon ja tallensin tekstitiedoston. Halusin siirtää kyseisen tekstitiedoston ostamalleni virtuaalipalvelimelleni. Komennolla Selection_129.png siirsin kyseisen tidoston virtuaalipalvelimelleni. Terminaali kysyi salasanaa, kirjoitin sen ja tulos oli seuraavanlainen:

Terminal - ossi@osmoosi: ~_130.png

Tämän jälkeen menin katsomaan virtuaalipalvelimeltani, että menikö tiedosto sinne. Kirjoitin komennon Selection_088 ja tämän jälkeen kirjoitin virtuaalipalvelimen salasanani.  Kun olin sisällä palvelimellani komennolla Selection_009.png katsoin oliko tiedosto palvelimellani:

Terminal - ossi@rausku: ~_131.png

Tästä voidaan todeta, että tiedoston siirtäminen onnistui.

H5.d

 Tehtävänantona oli automatisoida kirjautuminen palvelimelle julkisen avaimen menetelmällä. Aloitin kirjoittamalla terminaaliin komennon Selection_132.png. Sitten painoin entteriä pari kertaa, ja korvasin aikaisemman avaimen mikä oli koneellani ja annoin avaimelle passphrasen:

Terminal - ossi@osmoosi: ~_133.png

Tämän jälkeen kopion avaimen palvelimelleni kirjoittamalla komennon Selection_134.png ja terminaali kysyi palvelimeni salasanaa. Annoin sen ja lopputulos näytti tältä:

Terminal - ossi@osmoosi: ~_135.png

Tämän jälkeen kokeilin kirjautua palvelimelleni komennolla Selection_088 ja pääsin kirjautumaan sisään ilman salasanaa:

Terminal - ossi@rausku: ~_136.png

Tästä voin todeta, että ssh-keygen onnistui.

H5.j 

Tehtävänantona oli asentaa systat virtuaalipalvelimelle tarkistella päivän käytön jälkeen lokeja. Ensin kirjauduin palvelimelleni kirjoittamalla terminaaliinSelection_088. Tämän jälkeen kirjoitin komennon Selection_137.png. Asennuksen jälkeen kirjoitin terminaaliin komennon Selection_140.png ja muokkasin conffaus-tiedostosta ENABLED=”false” -kohdan ENABLED=”trueksi” seuraavan laisesti:

Terminal - ossi@rausku: ~_138.png

Tämän jälkeen kokeilin komentoa Selection_141.png ja se tulosti seuraavaa:

Terminal - ossi@rausku: ~_142.png

Tästä voi todeta, että sysstat on asennettu oikein. Nyt vain pitää odotella päivä ja sitten tutkia lokimerkintöjä.

Kolme päivää myöhemmin avasin palvelimeni kirjoitin terminaaliin komennon “sar”: 

 

Terminal - ossi@rausku: ~_143.png

Sar-komennolla näkee, kuinka monta prosenttiyksikköä tehoa palvelin käyttää CPU-kapasiteetistaan eri aikoihin.

Tämän jälkeen kokeilin komentoa “iostat”:

Terminal - ossi@rausku: ~_144.png

 

Analyysia:

Linux 4.4.0-122-generic (rausku) -kertoo, mikä palvelin käytössä (linux, tiedon varmuus epävarmaa), palvelimen nimen (rausku)
02/26/18 – päivämäärä, ja se täsmäsi kun katsoin kelloa
_x86_64_ – en tiedä mitä tarkoittaa
(1 CPU) – en tiedä
avg-cpu – rivi keroo keskimääräisen CPU:n käyön eri osa-alueilla (%user, %nice, %iowait, %steal, %idle)
%user – CPU:n käyttöprosentti kun käytettiin käyttäjätason applikaatiota.
%nice – CPU:n käyttöprosentti kun käytettiin käyttäjätason applikaatiota, jolla on nice tason käyttäjäprioriteetti.
%system – CPU:n käyttöprosentti kun käytettiin systeemitason applikaatiota (kernel).
%iowait – odotusaika levyn I/O:n valmistumiseen
%steal – CPU:n tai virtuaalisen CPU:n odotusajan prosentti kun hypervisor palveli toista virtuaalista prosessoria.
%idle – Aika prosentteina, jonka CPU tai CPUt olivat “työttöminä” eikä järjestelmillä ollut tärkeää disk I/O-pyyntöä.

Iostat-komentojen määrittelyt löysin täältä.

Tämän jälkeen kirjoitin terminaaliin koemennon pidstat:

Selection_145.png

Pidstat-komentoa käytetään yksittäisien käynnissä olevien tehtävien monitoroimiseen mitkä Linuxin ydin suorittaa.

H5.i

Tehtävänantona oli tehdä scan of the month 15, jonka tehtävänanto löytyy täältä.

Aluksi latasin Scan of the Month 15 levykuvan sisältävän tar.gz tiedoston. Sitten tein komennolla mkdir honeynet uuden kansion, johon purin ladatun pakatun tiedoston komennolla “tar -xf honeynet.tar.gz”. Komennolla mkdir allocated deleted tein kaksi kansiota honeynet-kansion alle, johon palautetaan poistetut tiedostot takaisin.

Sitten komennolla tsk _recover -a sda1-dd allocated/” palautin levykuvasta kaikki allokoidut, normaalit tiedostot allocated-kansioon, ja komennolla “tsk_recover sda.dd deleted/” vastaavasti palautin poistetut tiedostot deleted-kansioon. Tämä mahdollisti tiedostojen tutkailun.

Tämän jälkeen asensin ohjelman SleuthKit, minkä avulla saa palautettua poistettuja tiedostoja. Sleuth Kit -ohjeen löysin täältä. Asensin ohjelman komennolla “sudo apt-get install sleuthkit”.

Deleted-kansiostta löytyi heti epäillyttävä tar-pakattu tiedosto lk.tgz, mikä luultavasti on poistettu rootkit. Tämän jälkeen purin lk.tgz paketin komennolla “tar -xf lk.tgz”.  Sitten menin directoryyn last, ja sieltä katsoin mikä on install tiedosto. Käytin komentoa “less install” ja sen avulla luin, että mitä kaikkea se tekee:

Terminal - ossi@osmoosi: ~-Downloads-honeynet-deleted-last_146.png

Selvisi, että rootkitin tekijä oli kirjoittanut viestejä. Googlen käntäjäpalvelun avulla pystyin tulkitsemaan, että viestit olivat romanian kielellä kirjoitettuja.

Scriptissä echojen jälkeinen ensimmäinen scripti muuttaa kaikkien rootkitin tiedostojen omistajaksi ja ryhmäksi root:

Selection_148.png

Tässä kohtaa jumahdin, ja aloin etsimään referenssivastauksia googlesta, jotka voisivat avittaa minua tehtävän ratkomisessa ja löysinkin niitä pari.

Sitten scripti korvasi rootkitin top, ipconfig, ps, netstat – ohjelmilla palvelimen omat vastaavat ohjelmat. Tämän avulla hyökkäyksen kohteena olevan palvelimen ylläpitäjä ei voi havaita rootkittiä ohjelmia käyttäen, koska ne poistavat listoilta kaikki rootkitin käyttämät prosessit:
Selection_147.png

 

Seuraavaksi scripti käyttää komentoa touch /dev/rpm ja last ja tekee sinne uuden tiedoston nimeltä rpm. Tutkin ensin rpm tiedostoja, mistä selvisi, että sisältää rootkitin asennukseen liittyviä ohjelmia ja prosessien nimiä. Nämä todennäköisesti olivat yllämainittuihin ohjelmiin (top, ipconfig, ps, netstat) kuuluvia tiedostoja. Näyttäisi siltä, että poistettuja ohjelmia oivat esimerkiksi linsniffer, jota käytetään verkkoliikenteen kuuntelemiseen ja verkkopakettien kaappaamiseen. Hyökkääjän tarkoituksena oli mitä ilmeisemmin kaapata esimerkiksi käyttäjän syöttämiä salasanoja, jotka eivät ole kryptattuja verkon yli. Tämän jälkeen tutkin last-tiedostoa, ja selvisi, että se sisältää IP-osotteita. Tiedostot kertoivat ohjelmille mitkä tiedot pitää piilottaa käyttäjältä:

 

Selection_150.png

 

Tämän jälkeen tarkastelin, löytyykö levykuvalta yllämainittuja tiedostoja. Komennolla “grep ir dev*” löysin seuraavaa:

 

Selection_151.png

Tästä pystyi päättelemään, että rootkit oli asennettu palvelimelle.

Scriptistä sain selville kääntämällä romanialaiset kommentit, että se kutakuinkin toimii seraavanlailla. Kerää tiedot mitä hyökkääjä hakee, sen jälkeen lähettää ne meilillä kahteen eri osoitteeseen ja sitten poistaa lk.tgz lk.tar.gz koneelta, “pyyhkien” omat jälkensä.

 

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

Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s