___________________________________________________________

GUIDE TO (mostly) HARMLESS HACKING

Beginners’ Series #3 Part 2

How to Get a *Good* Shell Account
____________________________________________________________


____________________________________________________________
In this section you will learn:

· how to explore your shell account
· Ten Meinel Hall of Fame Shell Account Exploration Tools
· how to decide whether your shell account is any good for hacking
· Ten Meinel Hall of Fame LAN and Internet Exploration Tools
· Meinel Hall of Infamy Top Five Ways to Get Kicked out of Your Shell Account
____________________________________________________________


How to Explore Your Shell Account


So you’re in your shell account. You’ve tried the “ls -alF” command and are
pretty sure this really, truly is a shell account. What do you do next?

A good place to start is to find out what kind of shell you have. There are
many shells, each of which has slightly different ways of working. To do
this, at your prompt give the command “echo $SHELL.” Be sure to type in the
same lower case and upper case letters. If you were to give the command
“ECHO $shell,” for example, this command won’t work. 

If you get the response:

	/bin/sh

That means you have the Bourne shell.

If you get:

	/bin/bash

Then you are in the Bourne Again (bash) shell.

If you get:

	/bin/ksh 

You have the Korn shell.

If the “echo $SHELL” command doesn’t work, try the command “echo $shell,”
remembering to use lower case for “shell.”  This will likely get you the answer:

	/bin/csh

This means you have the C shell.

Why is it important to know which shell you have? For right now, you’ll want
a shell that is easy to use. For example, when you make a mistake in typing,
it’s nice to hit the backspace key and not see ^H^H^H on your screen. Later,
though, for running those super hacker exploits, the C shell may be better
for you. 

Fortunately, you may not be stuck with whatever shell you have when you log
in. If your shell account is any good, you will have a choice of shells.

Trust me, if you are a beginner, you will find bash to be the easiest shell
to use. You may be able to get the bash shell by simply typing the word
“bash” at the prompt. If this doesn’t work, ask tech support at your ISP for
a shell account set up to use bash. A great book on using the bash shell is
_Learning the Bash Shell_, by Cameron Newham and Bill Rosenblatt, published
by O’Reilly.

If you want to find out what other shells you have the right to use, try
“csh” to get the C shell; “ksh” to get the Korn shell, “sh” for Bourne
shell, “tcsh” for the Tcsh shell, and “zsh” for the Zsh shell. If you don’t
have one of them, when you give the command to get into that shell you will
get back the answer “command not found.”

Now that you have chosen your shell, the next thing is to explore. See what
riches your ISP has allowed you to use. For that you will want to learn, and
I mean *really learn* your most important Unix commands and auxiliary
programs. Because I am supreme arbiter of what goes into these Guides, I get
to decide what the most important commands are. Hmm, “ten” sounds like a
famous number. So you’re going to get the:

Ten Meinel Hall of Fame Shell Account Exploration Tools

1) man <command name>  
This magic command brings up the online Unix manual.  Use it on each of the
commands below, today! Wonder what all the man command options are? Try the
"man -k" option.

2) ls  
Lists files. Jericho suggests “Get people in the habit of using "ls -alF".
This will come into play down
the road for security-conscious users.” You’ll see a huge list of files that
you can’t see with the “ls” command alone, and lots of details. If you see
such a long list of files that they scroll off the terminal screen, one way
to solve the problem is to use “ls -alF|more.”

3) pwd  
Shows what directory you are in.

4) cd <directory>
Changes directories.  Kewl directories to check out include /usr, /bin and
/etc.  For laughs, jericho suggests exploring in /tmp. 

5) more <filename>
This shows the contents of text files. Also you might be able to find “less”
and “cat” which are similar commands.

6) whereis <program name>
Think there might be a nifty program hidden somewhere?  Maybe a game you
love? This will find it for you. Similar commands are “find” and “locate.”
Try them all for extra fun.

7) vi  
An editing program. You’ll need it to make your own files and when you start
programming while in your shell account. You can use it to write a really
lurid file for people to read when they finger you. Or try “emacs.” It’s
another editing program and IMHO more fun than vi. Other editing programs
you may find include “ed” (an ancient editing program which I have used to
write thousands of lines of Fortran 77 code), “ex,” “fmt,” “gmacs,”
“gnuemacs,” and “pico.”

8) grep
Extracts information from files, especially useful for seeing what’s in
syslog and shell log files. Similar commands are “egrep,” “fgrep,” and “look.”

9) chmod <filename>
Change file permissions. 

10) rm <filename>
Delete file. If you have this command you should also find “cp” for copy
file, and “mv” for move file.


How to Tell Whether Your Shell Account Is any Good for Hacking


Alas, not all shell accounts are created equal.  Your ISP may have decided
to cripple your budding hacker career by  forbidding your access to
important tools. But you absolutely must have access to the top ten tools
listed above. In addition, you will need tools to explore both your ISP’s
local area network (LAN) and the Internet. So in the spirit of being Supreme
Arbiter of Haxor Kewl, here are my: 

Ten Meinel Hall of Fame LAN and Internet Exploration Tools

1) telnet <hostname> <port number or name>
If your shell account won’t let you telnet into any port you want either on
its LAN or the Internet, you are totally crippled as a hacker. Dump your ISP
now!

2) who
Shows you who else is currently logged in on your ISP’s LAN. Other good
commands to explore the other users on your LAN are “w,” “rwho, ” “users.”

3) netstat
All sorts of statistics on your LAN, including all Internet connections. For
real fun, try “netstat -r” to see the kernel routing table. However, jericho
warns “Be careful. I was teaching a friend the basics of summing up a Unix
system and I told her to do that and ‘ifconfig’. She was booted off the system
the next day for ‘hacker suspicion’ even though both are legitimate commands
for users.”

4) whois <hostname>
Get lots of information on Internet hosts outside you LAN.

5) nslookup
Get a whole bunch more information on other Internet hosts.

6) dig
Even more info on other Internet hosts. Nslookup and dig are not redundant.
Try to get a shell account that lets you use both.

7) finger
Not only can you use finger inside your LAN. It will sometimes get you
valuable information about users on other Internet hosts.

8) ping
Find out if a distant computer is alive and run diagnostic tests -- or just
plain be a meanie and clobber people with pings. (I strongly advise
*against* using ping to annoy or harm others.)

9) traceroute 
Kind of like ping with attitude. Maps Internet connections, reveals routers
and boxes running firewalls.

10) ftp
Use it to upload and download files to and from other computers.

If you have all these tools, you’re in great shape to begin your hacking
career. Stay with your ISP. Treat it well.

Once you get your shell account, you will probably want to supplement the
“man” command with a good Unix book . Jericho recommends _Unix in a
Nutshell_ published by O'Reilly. "It is the ultimate Unix command reference,
and only costs 10 bucks. O'Reilly r00lz."

How to Keep from Losing Your Shell Account

So now you have a hacker’s dream, an account on a powerful computer running
Unix. How do you keep this dream account? If you are a hacker, that is not
so easy. The problem is that you have no right to keep that account. You can
be kicked off for suspicion of being a bad guy, or even if you become
inconvenient, at the whim of the owners. 

Meinel Hall ‘O Infamy 
Top Five Ways to Get Kicked out of Your Shell Account

1) Abusing Your ISP
Let’s say you are reading Bugtraq and you see some code for a new way to
break into a computer. Panting with excitement, you run emacs and paste in
the code. You fix up the purposely crippled stuff someone put in to keep
total idiots from running it. You tweak it until it runs under your flavor
of Unix. You compile and run the program against your own ISP. It works! You
are looking at that “#” prompt and jumping up and down yelling “I got root!
I got root!” You have lost your hacker virginity, you brilliant dude, you!
Only, next time you go to log in, your password doesn’t work. You have been
booted off your ISP. NEVER, NEVER ABUSE YOUR OWN ISP! 

*********************************************************
You can go to jail warning: Of course, if you want to break into another
computer, you must have the permission of the owner. Otherwise you are
breaking the law.
*********************************************************

2) Ping Abuse.
Another temptation is to use the powerful Internet connection of your shell
account (usually a T1 or T3) to ping the crap out of the people you don’t
like. This is especially common on Internet Relay Chat. Thinking of ICBMing
or nuking that dork? Resist the temptation to abuse ping or any other
Internet Control Message Protocol attacks. Use ping only as a diagnostic
tool, OK? Please? Or else!

3) Excessive Port Surfing
Port surfing is telnetting to a specific port on another computer. Usually
you are OK if you just briefly visit another computer via telnet, and don’t
go any further than what that port offers to the casual visitor. But if you
keep on probing and playing with another computer, the sysadmin at the
target computer will probably email your sysadmin records of your little
visits. (These records of port visits are stored in “messages,” and
sometimes in “syslog” depending on the configuration of your target computer
-- and assuming it is a Unix system.) 

Even if no one complains about you, some sysadmins habitually check the
shell log files that keep a record of everything you or any other user on
the system has been doing in their shells. If your sysadmin sees a pattern
of excessive attention to one or a few computers, he or she may assume you
are plotting a break-in. Boom, your password is dead.

4) Running Suspicious Programs
If you run a program whose primary use is as a tool to commit computer
crime, you are likely to get kicked off your ISP. For example, many ISPs
have a monitoring system that detects the use of the program SATAN.  Run
SATAN from your shell account and you are history.


**********************************************************
Newbie note: SATAN stands for Security Administration Tool for Analyzing
Networks. It basically works by telnetting to one port after another of the
victim computer. It determines what program (daemon) is running on each
port, and figures out whether that daemon has a vulnerability that can be
used to break into that computer. SATAN can be used by a sysadmin to figure
out how to make his or her computer safe. Or it may be just as easily used
by a computer criminal to break into someone else’s computer.
***********************************************************


5) Storing Suspicious Programs
It’s nice to think that the owners of your ISP mind their own business. But
they don’t. They snoop in the directories of their users. They laugh at your
email. OK, maybe they are really high-minded and resist the temptation to
snoop in your email. But chances are high that they will snoop in your shell
log files that record every keystroke you make while in your shell account.
If they don’t like what they see, next they will be prowling your program files.

One solution to this problem is to give your evil hacker tools innocuous
names. For example, you could rename SATAN to ANGEL. But your sysdamin may
try running your programs to see what they do. If any of your programs turn
out to be commonly used to commit computer crimes, you are history.

Wait, wait, you are saying. Why get a shell account if I can get kicked out
even for legal, innocuous hacking? After all, SATAN is legal to use. In
fact, you can learn lots of neat stuff with SATAN. Most hacker tools, even
if they are primarily used to commit crimes, are also educational. Certainly
if you want to become a sysadmin someday you will need to learn how these
programs work.

Sigh, you may as well learn the truth. Shell accounts are kind of like
hacker training wheels. They are OK for beginner stuff. But to become a
serious hacker, you either need to find an ISP run by hackers who will
accept you and let you do all sorts of suspicious things right under their
nose. Yeah, sure. Or you can install some form of Unix on your home
computer. But that’s another Guide to (mostly)  Harmless Hacking (Vol. 2
Number 2: Linux!).
 
If you have Unix on your home computer and use a PPP connection to get into
the Internet, your ISP is much less likely to snoop on you. Or try making
friends with your sysadmin and explaining what you are doing. Who knows, you
may end up working for your ISP!

In the meantime, you can use your shell account to practice just about
anything Unixy that won’t make your sysadmin go ballistic.

*************************************************************
Would you like a shell account that runs industrial strength Linux -- with
no commands censored? Want to be able to look at the router tables, port
surf all.net, and keep SATAN in your home directory without getting kicked
out for suspicion of hacking? Do you want to be able to telnet in on ssh
(secure shell)so no one can sniff your password? Are you willing to pay $30
per month for unlimited access to this hacker playground? How about a seven
day free trial account? Email haxorshell@techbroker.com for details.
*************************************************************

In case you were wondering about all the input from jericho in this Guide,
yes, he was quite helpful in reviewing this and making suggestions. Jericho
is a security consultant and also runs his own Internet host,
obscure.sekurity.org. Thank you, jericho@dimensional.com, and happy hacking!

_________________________________________________________
Want to see back issues of Guide to (mostly) Harmless Hacking? See either
http://www.cs.utexas.edu/users/matt/hh.html (the official Happy Hacker
archive site)
http://www.geocities.com/TimesSquare/Arcade/4594 
http://www.silitoad.org
http://base.kinetik.org
http://www.anet-chi.com/~dsweir
http://www.tacd.com/zines/gtmhh/ 
http://ra.nilenet.com/~mjl/hacks/codez.htm
http://www.ilf.net/brotherhood/index2.html

Subscribe to our discussion list by emailing to hacker@techbroker.com with
message "subscribe"
Want to share some kewl stuph with the Happy Hacker list? Correct mistakes?
Send your messages to hacker@techbroker.com.  To send me confidential email
(please, no discussions of illegal activities) use cmeinel@techbroker.com
and be sure to state in your message that you want me to keep this
confidential. If you wish your message posted anonymously, please say so!
Direct flames to dev/null@techbroker.com. Happy hacking! 
Copyright 1997 Carolyn P. Meinel. You may forward or post this GUIDE TO
(mostly) HARMLESS HACKING on your Web site as long as you leave this notice
at the end.
________________________________________________________
Carolyn Meinel
M/B Research -- The Technology Brokers


