How Did That Happen? Linux Security Exploits
Late one night...
"Look! It's world exportable! All I have to do is get a valid user account," aBl_tR3kr (pronounced "able trekker") said aloud.
"What's world exportable?" asked pl3b (pronounced "plebe"), between bites of chocolate doughnut.
"This home directory on windfall.naive.com."
"Windfall?" asked pl3b.
"Yeah, it'll be our windfall in a moment!"
"What're ya gonna do?" queried pl3b, trying to learn as much as possible.
"Well," smiled aBl_tR3kr, "if they are silly enough to allow NFS over the Internet, they probably aren't using a shadow file either."
"Shadow file?" Now pl3b is really perplexed.
"Yeah. See, all I have to do is create a user account on my Linux box that matches one of theirs...yep, there's a user called joe." aBl_tR3kr typed rapidly away on the keyboard as pl3b looked over his shoulder. "Now, I'll log in here as joe, and whataya know, I've got Joe's home directory from windfall.naive.com!"
"Wow! That was easy!" pl3b's thinking that breaking into UNIX/Linux systems is simple stuff.
"Now, lemme create the .rhosts file here, and then we'll login remotely." aBl_tR3kr continued with his running commentary as he worked. "OK! We're in as joe over there. Now, let's check the password file...whooooya! No shadow file! I'll just email this password file back to myself, like so. Done!"
"So what good is that file? All the passwords are jumbled up," remarked pl3b.
"No problem, my wannabe friend. We'll just use Crack!" aBl_tR3kr smiled confidently. And another system fell into his clutches.
While this dialog is for illustrative purposes, it does represent a very serious exploit. It does not necessarily reflect a typical attack nor does it reveal all of the potential exploits associated with gaining unauthorized access to a user account. In particular, there are numerous methods available to gain root access once unprivileged access is obtained. We expressly discourage this type of activity; however, it is important to have a sense of the kinds of things that might occur in order to better prevent them. We do encourage the study of the various vulnerabilities in common use for preventative purposes. Further information about general system and network exploits are available in the references in Appendix A.
This dialog poses a number of ill-configured services that allowed for unauthorized access to an Internet system. We will see that this is all too often the case, as illustrated in Chapter 2.
The first problem with the system windfall.naive.com is the fact that user home directories are exported via the Network File System (NFS) to the world. This could have been prevented by setting access restrictions on the NFS resources (discussed in Chapter 3), on the portmap utility (discussed in Appendix D), through ipchains or iptables (discussed in Chapter 15 and Chapter 16, respectively), or preferably through a combination thereof.
Our happy cracker, aBl_tR3kr, also took advantage of the trusted host file, .rhosts in this case, to gain unauthorized access to the system. The use of the .rhosts file in the dialog allowed aBl_tR3kr to log in to windfall.naive.com as joe without a password. We discuss such files and recommend against their use in Chapter 3. Then we talk about how to securely replace them in Chapter 11.
The next problem with the system windfall.naive.com is that it doesn't use password shadowing (described in Chapter 4). In this case, the lack of password shadowing means that a world-readable file (/etc/passwd), including each user's hashed (sometimes referred to as "encrypted") password, is available to anyone who can access a valid user account, which aBl_tR3kr was able to do. If a shadow file had been in use, he wouldn't have been able to get a list of hashed passwords as easily because the shadow file is readable only by the root user.
While the hashed password cannot be used to log in, the Crack utility (discussed in detail in Chapter 12) may be used to guess the password based on the hashed password. And Crack is pretty good at what it does. You can't prevent the bad guys from using Crack, but you can make it harder on them by using alternate hashing methods, as we see in Chapter 5.
Other Cracker Activities
Once an intruder has gained access to an account, there are a variety of things the intruder might do. Among the things that such a malicious user will almost certainly do is create a back door to make returning easier. The intruder will also erase any evidence of his or her activity. There are all sorts of freely available utilities that make these tasks simple.
The purpose of this book is to provide ways to make it difficult to break in initially as well as to detect the evidence of the attack quickly. But you must not use this book, or any other books, as your only resource of information for this purpose. New vulnerabilities are identified all the time, and patches and fixes are generated in response. Also, full-disclosure sites (noted in "Full-Disclosure Resources" at the end of this chapter), email lists, and newsgroups will provide additional details regarding the ever changing scene of computer security. Appendix A lists resources that will assist you in staying current.