home *** CD-ROM | disk | FTP | other *** search
-
- Greetings! This has been written as informative document which will likely
- be used by two groups of people: new crackers, and new administrators who
- would like to know about likely points of attack. This is written entirely
- from the cracker's perspective and tells _how_ to gain access, there are
- however Administrator's notes that give ideas on what an Admin can do to
- make it harder on the new cracker. The author of this document is _not_ a
- master cracker, and has very little knowledge at the system level of cracking.
-
- Here we go:
-
- So you want to crack a Unix system? Well the big assumption that you already
- have access to _some_ Unix system will be made. Here are the following items
- that you can achieve in order of greatness:
-
- 1. Root password. Kind of the Holy Grail, with this you can do just about
- anything. The only difference that will exist between you and the _real_
- admin is tha he will have physical access to the machine.
-
- 2. Root access. As above except you don't know the password.
-
- 3. User X's password. A particular target user's password, item 1 is the
- same thing with the target user being root.
-
- 4. User X's account access. Same as above but you don't know their password.
-
- 5. Some user's password. Just some random user, you don't pick them, you
- got them because they were easy.
-
- 6. Some user's account access. Same as above but you don't know their
- password.
-
- 7. Wreaking havoc with tools already available to you, such as deleting
- other's files, crashing the system, etc.
-
-
- Here are some basic tools you should have:
-
- 1. Dan Farmer's COPS scripts, and/or TAMU's Tiger Scripts.
-
- 2. Crack (Unix password cracker than run on several machines at once)
-
- 3. CrackerJack (A DOS or OS/2 program that cracks Unix passwords)
-
- 4. A fair knowledge of Unix. If you don't know the basic commands,
- learn them. If you don't know how to write shell scripts or C code,
- learn the basics of that, those topics are not covered here.
-
- Others: Depending on the level of complexity you wish to delve into,
- getting access to past CERT advisories and anything put out by 8lgm
- could also be useful. Also subscribe to comp.security.unix newsgroup.
-
-
- We'll start by cracking your local system. Getting a specific user
- is very difficult to do. We will start with getting access to _some_
- user. That way you can perform all future hacking from that user's
- account, reducing the likelyhood of things being traced back to you.
-
- Get the passwd file. There is typically two ways to do this. It is
- either stored in /etc/passwd, and you simply cat the file. Or, you
- type "ypcat passwd" and it will pull it off a ypserver. You will
- want to redirect the output to a file so you can crack it. Some
- systems are starting to move toward "shadowed" password files, I've
- never seen one of these, but apparently only root can read the passwd
- file on such a system, if that is the case, the following won't help
- you.
-
- Now that you have the passwd file, it's time to start cracking. In
- most cases it is not wise to run Crack on system because it runs for
- long periods and is likely to be seen. However, if this option is
- available to you, it can be very effective since it can crack many
- passwords much quicker than the alternative since it has the ability
- to run on multiple systems. One thing to do is to use the next method
- to get _a_ account's password, then use that account to run Crack.
- The alternative I have been referring to is CrackerJack, this is a
- solid program that runs on DOS and OS/2 machines. You simply have
- to copy your passwd file to the PC with CrackerJack and give it a
- dictionary file. If you are in an educational environment, their
- are often PC labs that are accessible at late hours. You can use
- several small dictionaries and run CrackerJack on several PC's, using
- each PC for several hours. This is a very effective way to crack.
- The documentation with both of these is fairly complete, so no detail
- will be given on how to do the above.
-
- **Administrator's note: Ways to prevent the above include:
- * Using a shadowed passwd file, so Joe User can't get a look at it
- (I think, never seen one, as mentioned earlier).
- * There are several programs available that will do a quickcheck
- when a user tries to change their password to make sure they don't
- have it as something stupid.
- * Run Crack. If you are the administrator, you can easily run it
- across all machines on your lan during low-use hours (1am - 5am)
- This being done on a regular basis (I'd recommend monthly if not
- weekly, it can be automated with a cron job) can keep weak passwords
- off your system. If you are in an educational setting, new users
- tend to come in large groups (semester starts), this is the ideal
- time for the cracker to attack, since their are lots of new, usually
- clueless users with weak passwords. You should up _your_ checking
- during these times.
- **
-
- Okay! That's one way to gain access to someone else's account, let's
- move on to another. The key here is: If you can get user X to run
- program Y, you can gain access to their account, this includes root.
- First we'll go into what program Y would need to do:
-
- 1. Create a SUID shell script. This attack is my least favorite
- since many systems are set up so that SUID scripts don't work from
- most filesystems. However, /tmp seems to be an oversite in most
- cases. Generally SUID programs can exist and be run from /tmp.
- The idea behind SUID is that when the program is run, it runs under
- the owner's account. So if the program executes a shell, that shell
- is owned by the owner of the file, making the runner of the file
- that person (for all practical purposes). You can make a program
- SUID by doing a "chmod 6xxx filename", the xxx would be the normal
- chmod settings, "man chmod" for more info.
-
- 2. Add you to their .rhosts file. Reasoning: Whenever your try
- to rlogin to someone else's account, the rlogin program will look
- in that users home directory for a .rhosts file. If the party
- trying to rlogin in listed in that file, from a particular machine,
- also listed in that file, rlogin will not ask for a password.
- .rhosts is set up like the following:
- <machinename> <username>
-
- 3. The above two will get you access to their account, the following
- will give you a way to do the above two. You can add a line to their
- .login, .cshrc, or .logout file so that will execute a program everytime
- they login. One idea is illustrated in the following pseudocode:
-
- if /tmp/backdoor exists run /tmp/backdoor
-
- That way you only create /tmp/backdoor as needed and they don't get
- an error when it is not there.
-
-
- To be continued.....
-