Linux palvelimet h5

Alkuperäinen päivämäärä: 26.2.2018

H5  – http://terokarvinen.com/2017/aikataulu-%e2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op#h5

Harjoitus on tehty kolmea tietokonetta käyttäen, koululäppäriä, Digital Oceanin virtuaalipalvelinta sekä omaa Windows kotikonettani. Koululäppäriä ja virtuaalipalvelinta ohjattiin enimmäkseen Puttyn kautta etänä kotikoneeltani.

a) SSH:n asennus tapahtuu helposti komennolla sudo apt-get update && sudo apt-get install -y ssh.

b) Seuraavaksi avataan palomuuriin aukko SSH:ta varten, ja kytketään palomuuri pää On erittäin hyödyllistä avata portti ennen palomuurin aktivoimista, jotta konfigurointiin käytettävä SSH-yhteys ei katkea välittömästi. Siispä:

Aukko luodaan komennolla sudo ufw allow 22. Portti aukeaa sekä IPv4 sekä IPv6 protokolliin.

Kun aukko on luotu, voidaan palomuuri ottaa käyttöön komennolla sudo service ufw enable.

c) Seuraava tehtävä on siirtää tiedostoja SSH:lla. Testinä siirrän Scan of the Month 15 Honeypot -levykuvan koululäppäriltäni virtuaalipalvelimelle. Eli siirrän hda8.dd ssh yhteyden kautta.

Levykuvan voi ladata osoitteesta http://old.honeynet.org/scans/scan15/honeynet.tar.gz.

Extractasin tiedoston Downloads kansioon, jolloin levykuva löytyy honeynet kansion sisältä. Kopioin tiedoston vastaanottavan koneen hakemistoon /home/miikkb/honeynet. Käytän apuna seuraavaa linkkiä: http://www.hypexr.org/linux_scp_help.php, sillä tiedän, että scp:llä voi helposti tuhota tietoja vahingossa, enkä sitä virhettä halua tehdä.

Aloitetaan prosessi paikalliselta koululäppäriltä. Navigoidaan hakemistoon /home/mvaltonen/Downloads/honeynet.

Syötetään komento scp mvaltonen@kissa:/home/mvaltonen/Downloads/honeynet/honeypot.hda8.dd miikkb@159.89.5.3:/home/miikkb/honeynet. Syöttämisen jälkeen kehote kysyy paikallisen tietokoneen salasanaa. Tämän jälkeen ei tapahdukaan enää mitään, ja vähän pelottaa että tein jotain pieleen. Odotin muutaman minuutin, peruutin komennosta pois CTRL+C. Seuraavaksi tarkistin virtuaalipalvelimelta, ja tiedosto kuitenkin löytyy honeynet kansiosta. Luultavasti kaikki on siis mennyt oikein kummajaisista huolimatta.

dhwxtn

d) Seuraavaksi luon SSH avainparin kotikoneen puttyn ja virtuaalipalvelimen vä SSH yhteys virtuaalipalvelimeen on avattu, kirjoitetaan komento ssh-keygen. Tämän jälkeen hakataan entteriä pari kertaa, kunnes kehote kertoo, että avain on tehty ja tallennettu. Tässä vaiheessa konsultoin ystävääni, koska minulla ei ole aavistustakaan, miten avain lisätään puttyyn. Jotta saan avaintiedoston puttyyn, minun täytyy navigoida WinSCP:llä kansioon /home/miikkb/.ssh/, josta kopioin tiedoston id_rsa kotikoneelleni, josta saan sen luettua puttyyn. Avain lisätään puttyyn kuvien mukaan.

Yllättäen ratkaisu ei toimi. Vasta nyt aloin miettimään, että eihän salaus voi missään nimessä mennä niin, että yksityinen avain jaetaan yhtään mihinkään. Syvän huokauksen ja pettymyksen jälkeen päätin ratkaista ongelman itse ja hain netistä apua. Löysin seuraavan ohjeen: https://www.howtoforge.com/ssh_key_based_logins_putty_p2. Avain täytyy tehdä Puttyn Key Generatorin kautta, eikä Key Agentin kautta.

kdugxx

Aluksi painetaan Generatea, jonka jälkeen ohjelma pyytää heiluttelemaan hiirtä, jotta avaimesta saadaan sattumanvarainen. Yksityinen avain tallennetaan paikalliselle koneelle piiloon, kun taas public key täytyy siirtää palvelimelle /home/miikkb/.ssh/ kansioon. Luodaan hakemistoon uusi tekstitiedosto authorized_keys2. Tiedostoon kopioidaan Puttyn Keygenistä saatu julkinen avain. Lopuksi vielä muutetaan tiedoston oikeuksia siten, että vain me voimme lukea tai kirjoittaa siihen. Tämän jälkeen avain pitää vielä puttyn puolella kytkeä käyttöön:

svcgkg

Nyt yhdistettäessä palvelin kysyy vain avaimen luonnissa laitetun passphrasen, mutta sen voisi jättää laittamatta halutessaan, jolloin yhdistäminen tapahtuu automaattisesti. Luultavasti generoin avaimen ilman passphrasea kun kyllästyn kirjottelemaan salasanoja.

bwmwiz

j) Sysstat asennetaan komennolla sudo apt-get install -y sysstat. Asennuksen jälkeen monitorointi täytyy kytkeä päälle hakemistosta /etc/default/ tiedostosta Enabledin arvo pitää muuttaa trueksi.

dmtmrt

Seuraavaksi tutkitaan eri lokimerkintöjä.

Ensiksi käydään läpi sar. Loki pitää kirjaa ilmeisesti kaikesta rasituksesta, eräänlainen yhteenveto.

tcyhqe

Lista päivittyy 10 minuutin välein ja pitää siis kirjaa ihan kaikesta.

Ensiksi loki näyttää tapahtuman kellonajan.

CPU tarkoittaa luultavasti, että mitä ytimiä tehtävään käytettiin. Nähtävästi kaikkeen käytetään kaikkia ytimiä, eli sitä yhtä mikä on saatavilla.

%user liittyy varmaan käyttäjien luomaan rasitukseen, esim. tiedosto tai kansiosiirtoihin. Vaikea uskoa, että miksi tästä pidettäisi erikseen kirjaa, mutta ei tule muutakaan mieleen.

%nice liittyy ehkä jotenkin prosessien priorisointiin, mutta tämä on vain arvaus.

%system sisältää luultavasti kaikki järjestelmän omat toimenpiteet. Tähän sisältyy varmaan myös ohjelmien asennukset.

%iowait iowaitilla mitataan sitä kuinka paljon asioiden suorittamisessa odotellaan kovalevyjen kirjottamista tai muuta toimintaa.

%steal on tietääkseni vain virtuaalikoneissa, joten se luultavasti mittaa jotenkin virtuaaliprosessorin fyysisen oikean prosessorin rasitusta, mikä vaikuttaa virtuaaliprosessorin rasitukseen.

%idle paljonko järjestelmässä on resursseja jotka eivät tee mitään.

Myös järjestelmän uudelleenkäynnistyksen.

Seuraavaksi käsitellään iostattia.

lkoypr

Iostat pitää kirjaa kovalevyjen käytöstä.

Device on partition tunniste, tässä tapauksessa vda, koska kyseessä on virtuaalilevy.

Tps tarkoittaa luultavasti jotain per second, eli kyseessä on luultavasti tehtäväpyynnöt per sekuntti.

kB_read/s, kB_wrtn/s liittyvät keskimääräiseen luku- ja kirjoitusnopeuteen.

kB_read, kB_wrtn kuinka paljon yhteensä on luettu ja kirjoitettu sysstatin asennuksen jälkeen.

Lopuksi käydään vielä läpi pidstat.

rbikxx

Pidstat taitaa pitää kirjaa aktiivisesti käynnissä olevista prosesseista.

UID eli user ID, tarkoittaa käyttäjää joka prosessin on aloittanut. ID 0 on luultavasti järjestelmä itse.

PID eli process ID on prosessin yksilöivä ID.

%usr en tiedä mihin liittyy. Jos jotain pitäisi arvata, niin ehkä kuinka paljon yksi käyttäjä aiheuttaa rasitusta, mutta en oikein usko tähän.

Tässä vaiheessa pohdin tarkemmin, miksi esimerkiksi käyttäjien ja järjestelmän luomaa rasitusta tarkkailtaisi erikseen, joten etsinkin googlesta selitystä. Vastaan tuli seuraava artikkeli: http://sebastien.godard.pagesperso-orange.fr/man_pidstat.html. Artikkelin mukaan %usr ja %system erottelevat sovellus- ja kerneltason kulutusta.

%system ylemmän artikkelin mukaan tarkoitetaan kerneltason käyttöä.

%guest liittyy virtualisointiin, artikkelin jälkeen jää epäselväksi, tarkoitetaanko tällä virtuaalipalvelimella tapahtuvaa virtualisointia, vai itse virtuaalipalvelimen virtualisointia.

%CPU näyttää lopuksi kokonaiskäytön riippumatta siitä, millaista käyttöä se on.

CPU määrittää käytettävän ytimen, ydin 0 tarkoittaa ensimmäistä ydintä, eli sitä ainutta mikä käytössä on.

Command määrittelee komennon, mikä prosessin on avannut.

i) Seuraavaksi siirrytään Scan of the Month 15:n ratkaisuun. http://old.honeynet.org/scans/scan15/

Tavoitteena on siis löytää vastaukset seuraaviin kysymyksiin:

  1. Show step by step how you identify and recover the deleted rootkit from the / partition.
  2. What files make up the deleted rootkit?

Bonarina vielä:

Was the rootkit ever actually installed on the system? How do you know?

Levykuva saadaan auki Sleuthkitin avulla, sudo apt-get install sleuthkit. Hyvät ohjeet levykuvan purkamiseen löytyy täältä: http://terokarvinen.com/2013/forensic-file-recovery-with-linux.

Ohjeiden mukaan seuraavaksi luodaan kansiot levykuvasta poistetuille ja muille tiedostoille, mkdir allocated deleted. Tämän jälkeen tiedostot voidaan purkaa komennolla tsk_recover -a honeypot.hda8.dd allocated. Poistetut tiedostot puretaan komennolla tsk_recover honeypot.hda8.dd deleted.

Deleted hakemistosta löytyy uusi .tar tiedosto. Puretaan tiedosto komennolla tar -xf lk.tgz.

Uskon, että tämä .tar sisältää asennetun rootkitin. Seuraavaksi käyn kansion sisältöä läpi etsien todisteita väitteeni tueksi.

Heti ensiksi listaamalla luodun last kansion sisällön, voidaan huomata, että kansio sisältää monia skriptejä ja ssh konfigurointitiedostoja. Uskon, että nämä ohjelmat muodostavat rootkitin ”työkalusetin”, jota hyökkäyksessä on käytetty. Muita konfigurointitietoja ja tekstitiedostoja luultavasti käytetään siten, että niillä paikataan tietokoneessa olevia tiedostoja omilla versioilla, jotta voidaan piilottaa rootkitin olemassaolo.

phpbkm

Lähes kaikissa näistä tiedostoista esiintyy se ongelma, että kun tiedostot ovat alun perin poistettuja, niitä ei saa välttämättä palautettua täysin. Siispä tiedostoissa saattaa esiintyä paljon mössöä ja ovat muutenkin pahimmillaan hyvin vaikeaselkoisia.

uebhbd

Aloitetaan ohjelmien purkaminen cleanerista. Komennolla nano cleaner pääsemme lukemaan skriptiä.

Sisällön ja tiedoston nimen perusteella skripti tyhjentää logista tiettyjä rivejä ja koittaa siten pitää hyökkäyksen piilossa.

ejribt

Seuraavana on ifconfig. Tiedoston sisällöltä en osaa sanoa oikeastaan mitää. Mössön välistä nousee esiin paljon erilaisia virheitä, mutta en osaa ottaa niihin kantaa. En osaa myöskään sanoa, että vaikuttavatko virheet yhtään mihinkään.

Seuraavaksi päästään jännän äärelle, install tiedosto sisältääkin sitten itse hyökkäyksen. En ymmärrä kaikkea ihan tarkkaan, mutta luulen, että skripti poistaa tiedostoja, ja laittaa tilalle omia versioita, jotka piilottavat rootkitin.

Myöhemmin skripti kopioi työkalujaan jonnekkin, mutta en osaa sanoa, mihin suuntaan työkaluja kopioidaan, ja jääkö ne johonkin olemaan, kun näyttäisi siltä, että ne poistetaan jostain kopioinnin jälkeen.

ppehmw

Seuraavaksi ilmeisesti ohjelmasta lsattr kopioidaan mukautettu versio ja se asetetaan käynnistymään aina käynnistyksen yhteydessä.

Lopuksi skripti kerää tiedostoista tietokoneen perustietoja, hostnamea ja prosessorivalmistajaa yms. ja lähettää ne itselleen. Tämän jälkeen skripti poistaa luodut kansiot ja .tar tiedoston, jota nyt luemme.

crepeq

Tämä viimestään paljastaa sen, että luemme rootkitin oikeita tiedostoja. Computer kansiota tosin ei näytä löytyvän mistään, mutta se saattaa liittyä tuohon tiedonkeruuseen ja tietojen lähettämiseen.

Hyökkäyksen tekotavasta osaan arvata sen verran, että hyökkäys on luultavasti tehty vanhalla SSH-versiolla jossa on ollu jokin haavoittuvuus liittyen liian pitkiin salasanoihin tai käyttäjänimiin. Jotenkin on ehkä tätä kautta päästy sisään, ja luotu avainparit käyttämällä ennaltasäädettyjä hyökkääjän laatimia seedejä, jolloin saadaan tehtyä sellainen avain, minkä hyökkääjä tietää. Tällä luultavasti turvataan jatkuva sisäänpääsy.

Mietin myös sitä, kun eräs päällekirjoitettavista tiedostoista vaikuttaisi kytkevän jotenkin telnetin päälle, mikä puolestaan sisältää omat heikkoutensa, mutta ei niitäkään voi käyttää hyväksi ilman, että on ensin päästy sisään jotenkin muuten.

Nyt, kun olen päätynyt omaan ratkaisuun, selaan jonkin mallivastauksen läpi.

http://old.honeynet.org/scans/scan15/som/som6.txt

Hyökkäysmenetelmästä olen näköjään väärässä, mutta siltä osin oikeassa, että rootkit oli asentanut haavoittuvan version ssh-palvelimesta, joten jokin siinä oli vialla. Linkkaamani vastaus ei myöskään osannut nimetä varmuudella hyökkäysmenetelmää, mutta hyökkäys oli tapahtunut joko päivityksen tai käyttöjärjestelmäasennuksen jälkeen, joten on mahdollista että asennus oli vaarantunut jo ennen kuin se pääsi koneeseen käsiksi.

Lopputoteamana huomasin mielestäni hyvin tiettyjä asioita rootkitin toiminnasta. Tunnistin rootkitin nopeasti ja pysyin aika hyvin kärryillä siitä, mitä rootkit teki. Oli kuitenkin myös paljon asioita ja kohtia, joita en edes huomannut, kuten se, että järjestelmä oli joko asennettu tai päivitetty hetki ennen rootkitin asennusta.

Tehtävä oli hyvin mielenkiintoinen, oli mielenkiintoista nähdä miten tämänlainen hyökkäys tehdään. Sekin oli jännä, miten toisaalta hyökkäys näytti hyvin tehdyltä, kun hyökkäystavasta ei saatu varmuutta, mutta mallivastausten perusteella rootkit oli muuten tehty melko huolimattomasti, sillä se jäi kiinni melko pian, ja jätti itsestään hyvin selkeitä jälkiä.

This entry was posted in Uncategorised. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.