Monday, March 10, 2008

Detect and Clean a Hacked Server T0rnkit Tutorial

Tornkit is a rootkit, a set of programs that is used by an intruder to have unrestricted access to a compromised Linux system.

Tornkit is also attempts to hide its presence.The t0rn rootkit is designed for speed. By that I mean that it was designed to install quickly on Linux machines. T0rn can do this because it takes very little skill to install and run. All of the binaries that the attacker would need come pre-compiled and the installation process is as simple as ./t0rn. T0rn comes standard with a log cleaner called t0rnsb, a sniffer named t0rns and a log parser called t0rnp.

I am including this so that you all diag and clean up your hacked server.

First of all,

Login to WHM as root

Click Tweak Settings

and please remove the tick fromAllow cPanel users to reset their password via email

Step 1. run chkrootkit, and you will see some INFECTED lines. It will also report that some process are hidden from the ps

chkrootkit

Checking `ifconfig'... INFECTED

Checking `login'... INFECTED

Checking `pstree'... INFECTED

and also:

Checking `lkm'... You have X process hidden for ps command

Warning: Possible LKM Trojan installed

Step 2. /etc/init.d/syslog restart

Shutting down kernel logger: [ OK ]

Shutting down system logger: [ OK ]
Starting system logger: [FAILED]

Starting kernel logger: [ OK ]

Step 3. top

top: Error while loading shared libraries: libncurses.so.4: cannot open shared object file: No such file or directory

Step 4. tail /etc/rc.d/rc.sysinit

# Xntps (NTPv3 daemon) startup..

/usr/sbin/xntps -q

OK.. looks like someone got to your server as well. Since we know what rootkit it is, let us investigate further.

Configuration files

/usr/include/file.h (for file hiding)

/usr/include/proc.h (for ps proc hiding)

/lib/lidps1.so (for pstree hiding)

/usr/include/hosts.h (for netstat and net-hiding)

/usr/include/log.h (for log hiding)/lib/lblip.tk/

(backdoored ssh configuration files are in this directory)

/dev/sdr0 (systems md5 checksum)

/lib/ldd.so {placing tks(sniffer), tkp(parser) and tksb(log cleaner)}

Infected Binaries:

top, ps, pstree lsof, md5sum, dir, login, encrypt,ifconfig,find,ls,slocate,tks,tksb,top,tkpnetstat,pg,syslogd,sz

Infected Librairies:

libproc.a,libproc.so.2.0.6,libproc.so

BackDoor: (located at /lib/lblip.tk)

shdc

shhk.pub

shk

shrs

Now, Lets start the cleaning process:

Step 1.

pico /etc/rc.d/rc.sysinit

remove the lines that show

# Xntps (NTPv3 daemon) startup..

/usr/sbin/xntps -q

Step 2.

reboot the system

WARNING: 2 servers got their kernel removed after reboot.If your's is the case and that is what the DataCenter complains after reboot, please ask them to do the following:

reboot the system using the redhat CD into rescue mode

chroot to the /mnt/sysimage

reinstall kernel packages

that should fix it.

-- since already in resuce mode, perhaps also ask them to --force install the following rpm's

procps*.rpm

psmisc*.rpm

findutils*.rpm

fileutils*.rpm

util-linux*.rpm

net-tools*.rpm

textutils*.rpm

sysklogd*.rpm

Step 3.

After the system is up

cd /lib

rm -rf lblip.tk

Step 4.

remove the configuration files given above.

Step 5.

cat /etc/redhat-release

note down your version of redhat,

then fromwww.rpmfind.netsearch for the following rpm's

procps*.rpm

psmisc*.rpm

findutils*.rpm

fileutils*.rpm

util-linux*.rpm

net-tools*.rpm

textutils*.rpm

sysklogd*.rpm

-- and rpm --force install them

Step 6.

if you see the hosts.h file, it says to hide all IP's from

cat /usr/include/hosts.h

193.60

thus, if you want, you can block all the IP's from 193.60 to your server via iptables.

Step 7.

If all goes OK,please reboot the server, and run chkrootkit again..

Thats it......................

No comments: