Easy To Use Free Webmaster Resource With Free Webmaster Tools, and Tutorials.

Is my server hacked?


Navigation - HOME | WEBMASTER TUTORIALS | WEBMASTER TOOLS | PROFESSIONAL SERVICES

Is my server hacked?

By Joshua Drake

(LinuxWorld) -- Over the last two weeks, I've discussed how to prevent crackers from gaining access to your Linux computer. This week, we continue the series with ways you can tell if someone has cracked your machine.

Script kiddies are the worse kinds of crackers, primarily because there are so many of them and most of them are unskilled. It is one thing to be cracked when you have put in all the correct patches, have a tested firewall, and run advanced intrusion detection actively on multiple levels. It is another when you are cracked because you were lazy and didn't, for example, install the latest patch to BIND.

It's embarrassing to be cracked because you weren't paying attention. It's aggravating to realize that some script kiddie downloaded one of many well known "root kits" or publicly available exploits, and is having a party with your CPU, storage, data, and bandwidth. How do these villains get started? The answer is usually with "warez," which often consists of a root kit.

A root kit is a software package that a cracker uses to provide himself (and it's usually a "he") with root-level access on your machine. Once the cracker has root access on your machine, it is all over. The only method of recourse that is truly effective is to back up your data, wipe the disks, and reinstall the operating system. However, it is not always easy to discover that someone has taken over your machine.

Can you trust your ps command?

The first trick in finding a root kit is to run the command ps. Chances are that everything will look normal to you. Here is an example ps output:

PID TTY      STAT   TIME COMMAND
    1 ?        S      0:05 init
    2 ?        SW     0:00 [kflushd]
    3 ?        SW     0:00 [kupdate]
    4 ?        SW     0:00 [kswapd]
    5 ?        SW     0:00 [keventd]
    6 ?        SW     0:00 [mdrecoveryd]
2655 ?        S      0:01 syslogd -m 0
2664 ?        S      0:00 klogd
2678 ?        S      0:01 identd -e -o
2685 ?        S      0:02 identd -e -o
2686 ?        S      0:56 identd -e -o
2688 ?        S      0:55 identd -e -o
2690 ?        S      0:01 identd -e -o
2696 ?        S      0:00 /usr/sbin/atd
2710 ?        S      0:00 crond
2724 ?        S      0:00 inetd
[...]

The real question is, however, "Is everything actually normal?" A common trick that a cracker will use is to replace the ps command. The replaced version will mask illicit programs running on your machine. To test this, check the size of your ps application. It is usually located in /bin/ps. On our Linux machines it is about 60 kilobytes. I recently encountered a root kit that had replaced the ps program. The compromised ps from the root kit was only 12 kilobytes in size.

Another obvious trick is the linking of root's command history file to /dev/null. The command history file is used to track and log commands that are issued by a user when they log into a Linux machine. Crackers will redirect your history file to /dev/null so that you can not see what commands they were typing.

You can access your history file by typing history at your shell prompt. If you find yourself using the history command, and it does not display any previously used commands, take a look at your ~/.bash_history file. If the file is empty, perform a ls -l ~/.bash_history. When you perform the previous command you should see something similar to the following:

-rw-------    1 jd   jd   13829 Oct 10 17:06 /home/jd/.bash_history

However, you may see something like this:

lrwxrwxrwx    1 jd   jd   9 Oct 10 19:40 /home/jd/.bash_history -> /dev/null

If you see the above, the .bash_history file has been redirected to /dev/null. This is a dead giveaway. Take your machine off the Internet now, back up your data (if you can), and begin a reinstallation.

Look for unknown user accounts

While you are playing detective on your Linux machine, it is always smart to check for unknown user accounts. The next time you log into your Linux box, type the following command:

grep :x:0: /etc/passwd

The only line, I repeat, the only line that the grep command should return on a standard Linux installation is something similar to the following:

root:x:0:0:root:/root:/bin/bash

If your system returns more than one line with the previous grep command, you may have a problem. There should only be one user with the UID of 0 and if that grep command returns more than one line, you have more than one.

Finally, the quickest and easiest way to know if you have been cracked is to check and see if are running IIS.

Seriously, though these are all good basics to know about the nature of the script kiddie, these tricks will not in and of themselves make up for good security, and they do not even touch on the depth in which we can go into the topic of intrusion detection.

My suggestion is that if you suspect a real problem, call a Linux security professional and get references. Linux security is not a 10-minute job.

Also, study the resources listed below. Network World Fusion, for example, recently conducted a comparative review of 42 hardware and software-based intrusion-detection tools, many of which work with Linux.

 

 

 

Search Query

 

contact us | webmaster forum | web hosting support | webmaster links | general links

 

 

 

 

© Copyright 2002-2005. All rights reserved.
Easy Website Promotion
| DWHS Web Hosting | Verocom Communications