___ ___ _ | \_ _ _/ \ __ _| | | | |\\/ \//| | || _\| . | |___/ \_^_/ \___/|_| |___| _ __ | || _| | ||_ | |_||__| ___ _ | . \ __ __ _ _ _| | | _|| _\|. || || || . | |_| |_| |__||____||___| _____ ___ |_ _|| | | | | | | |_| |___| ___ | . \ __ __ __ __ __ _____ | _|| _\|._\|_ \|._\| \|_ _| |_| |_| |__/|__||__/||_| |_| Dundududuuuuuuun!..... _______ |__ __| _ _ ___ | | | |_| || __\ | | | _ || __| |_| |_| |_||___/ _______ |__ __| ___ ___ _ _ | | | __\| _|| |_| | | | | __|| |_ | _ | |_| |___/|___||_| |_| ____ | . \ _ _ _ ___ | | | || |_ | | | __\ | | \| || . || |_ | __| |_____/|_||___||___||___/ Written By: disc0rd VISIT US ON THE WORLD WIDE WEB AT: http://members.xoom.com/finite2 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Table of Contents$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $Part 0- $ $ -.1 Introduction $ $ -.2 Profiles $ $ -.3 Thanks to $ $ -.4 Final Notes $ $Part 1- $ $ -.1 Newbie Guide $ $ -.01 What to Learn $ $ -.02 Tips and Pointers $ $ -.03 Final Notes $ $Part 2- $ $ -.1 Operating Systems $ $ -.01 UNIX $ $ -.001 Digital UNIX $ $ -.002 FreeBSD $ $ -.003 HP-UX $ $ -.004 IBM AIX $ $ -.005 IRIX $ $ -.006 Linux $ $ -.007 Minix $ $ -.008 NetBSD $ $ -.009 Solaris $ $ -.010 OpenBSD $ $ -.011 System V $ $ -.012 BSD $ $ -.02 VAX/VMS $ $ -.03 Netware $ $ -.2 Programming Languages $ $ -.01 Assembly $ $ -.02 BASIC $ $ -.03 C $ $ -.04 C++ $ $ -.05 Java $ $ -.06 Pascal $ $ -.07 Perl $ $ -.3 Final Notes $ $Part 3- $ $ -.1 Tools of the trade $ $ -.2 Words of Wisdom $ $ $ -.3 Links of the year $ $ -.4 Final notes $ $Part 4- $ $ -.1 Ending Notes $ $ -.2 Special thanks $ $ -.3 Goodbye $ $ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Part 0- -.1 Introduction Hacking....What is it? For me the definition of hacking is not seeing how many systems you can break into. Its not seeing how many good hackers you can get into your group. Its about the pursuit of knowledge, and perfection of yourself. The internet is a great and wonderful place, and what better way to appreciate it than understanding how it works? Thats what it is to me. Some may agree, some may not, but my morals and ideals will not change. To me, there's nothing better than sitting in front of a UNIX terminal screen, looking at source code, trying out new things and looking through directories. Of course, theres no better rush than getting root on a system that you've been working on for weeks. Monitoring, waiting, sniffing, waiting...Then you finally get the break you were looking for, then bang, you're in. Yet the rush doesn't stop there, you still have a lot of exploring to do. See people, there's nothing better than the satisfaction you get from hard work, and when your hard work, and constant reading pays off. Thats your goal, if you're a newbie, or a long time guru, I hope this file will teach everybody a little something. This is a big undertaking for my group and I. This is part of our hope of being set apart from the rest of the hacking community. We hope you enjoy this file, so sit back, listen to some relaxing music, and learn something. -disc0rd -.2 Profiles disc0rd- head author & editor -.3 Thanks to This is just going to be a general thanks to the whole hacking community. You've done great over the years, teaching me, and nourishing me with the information you've yielded to the masses. Everybody from the first hacker, to the last whenever that may be...I thank you, you've been my inspiration over the years, heres to many more my friends. -.4 Final Notes Well, here we go my friends, here ends the BS :) Its learning time now. Get in your cyber-foxhole because its going to be one helluva ride. Part 1- -.1 Newbie Guide This guide is to help all the newbies here get started with what we call hacking. The main system we will be dealing with in this guide is UNIX which we have many references to later in this manual. -.01 What to learn The main thing that newbies need to learn is UNIX. UNIX is widely used and spread throughout the internet. Universities use it, libraries use it, laboratories use it, almost everybody uses it. The world doesn't revolve around Windows 95/98 you know. There are many variants to UNIX, but the concepts are basically all the same, or at least 75% of them are. Programming is another must for any hacker. I myself began with BASIC when I was younger, and then moved my way up to learning C and C++, and hopefully in the future Assembly. As a newbie do not rush, and I stress that. Take your time, don't expect to open a book on C and then by the end of the night think that you're going to be a total guru on it. It just doesn't happen that way. It takes months and months, even years of practice to get really good at a programming language, because there is so much to learn and do with them. The possibilities are virtually endless. One of the greatest things you'll need during the whole learning process is patience. If you do not have patience, you'll become frustrated, and frustration makes things hard to learn. I can't stress that enough to newbies. They come in expecting to learn in a night, and it doesn't happen that way. They want to hack immediately. That just doesn't work. Hacking is all about learning which is another thing that I cannot stress enough. A hacker's learning never stops, we constantly gather information as it is made available by means, illegal, or not. I mean, if you want to try and log into a system, and by LUCK get some kind of access and do something stupid due to lack of experience, pardon my french but its your ass my friend. Lack of experience, and lack of patience all add up to being an above par hacker. A hacker cannot be a hacker if that person is in jail. Which will most likely happen. Patience is the key to success. Something that doesn't hurt at all is learning encryption methods. I'll admit encryption is not my cup of tea, but it doesn't hurt to learn, which I know down the road I'll have to, and probably will soon. I can't tell you much about it, and I'm not going to be a hypocrite and act like I do, its just a good thing to learn if you want to be successful in the security field. Hardware knowledge is another good thing to know. The basis of all software is hardware, you need the hardware to operate the software. Hardware as in ethernet cards, hard drives, floppy drives, cd drives, you know, the stuff you use everyday but never took the time to learn about. I give a lot of credit to Phreakers, because their knowledge of phone hardware is second to none. Of course, how could we forget? You need to learn how to read carefully. Reading is another base for which all hackers need to know how to do effectively, we need to know how to pick out key information from documents. Such as this one. -.02 Tips and Pointers I know what most of you newbies were thinking, that you were going to get some quick fix ideas from this part of the guide. Well, you're mistaken, this is just really quick info on learning a little bit quicker, and some words of wisdom. Tip #1: Read all that you can. Tip #2: Never end your quest for knowledge. Tip #3: Review review review! Tip #4: Before breaking into a system, analyze, and watch. Tip #5: Never erase any data unless it is vital to your escape. Tip #6: Never intentionally damage a system in any way shape or form. Tip #7: Only trust people that you would trust with your life. Tip #8: Don't keep data lying around where its easy to find. Tip #9: It doesn't hurt to have a UNIX terminal handy, whether you get it via a shell account, or you go out and buy a version. It won't hurt at all. In fact its a good learning experience to learn how root works, and what it can and can't do. Tip #10:Never ever give up! -.03 Final Notes Remember this newbies, you'll never be spoon fed information, this guide was not intended to be a step by step guide, because there is no guide that can tell you totally what to do, this was just a guide to point you to what to learn, and hopefully be your guiding light to getting home in the right direction. Information must be gotten through hard work and learning. Never ever forget that. As none of us ever have. Part 2- -.1 UNIX The start of the phenomenon we call UNIX today started way back in 1969 with two men, Ken Thompson and Dennis Richie. In fact they didn't even call it UNIX back then, it was "Unics" meaning, UNiplexed Information and Computing System. For ten years the development of UNIX was strictly confined to Bell labs, which the initial versions of UNIX were version N or Nth Edition. Which led to the DEC's PDP-11 with 16 bit processing and then later VAXen (VAX/VMS) which held up a 32 bit processing capability. Significant Versions: In 1971 the first UNIX version came out, which was, you guessed it! Version 1, which premiered on a DEC PDP-11/20 all written in Assembler. It contained the file system fork(), roff, and ed, and was used as a text processor for preparation of patents. In 1973 the first UNIX version to be written in C came out, which is the most significant jump in UNIX's history. The C language was originally designed strictly for UNIX use. Version 6 in 1975 was the first UNIX version widely available outside of Bell labs. It had begun use in such places as universities. Version 7 in in 1979 is known to be the "last true UNIX". It included the full K&R C, Bourne shell and uucp and was ported to the VAX as 32V. The kernel of version 7 was only a mere 40 kilobytes. In 1980 work on UNIX continued in Bell laboratories and the version that we now know as System V was born. Since then, many variants have been drawn off of the UNIX system. Which we will now go through below. -.01 Digital UNIX The company Digital is the company that made the Alpha processors (633 Mhz was the top speed at the time this file was made). They also made the VAX/VMS, Ultrix, and countless other UNIX variants there isn't much history as far as this company goes, its commands are the same as most other variants are concerned. There's really too many variants to cover in this file and do it accurately. -.02 FreeBSD Probably one of the more popular UNIX variants out there, I mean what could be better? Its free, its well known, and it runs pretty good. You'll probably run into a lot of these on your search through the world wide web. -.03 HP-UX Hewlett Packard's version of UNIX. Really can't complain, it meets my standards as far as UNIX goes, and again, does much of what all the other variants do. -.04 IBM AIX AIX is a little different than most UNIX variants since its made by IBM, and they normally follow the beat of a different drummer. The file structures are different, and some commands are different than you usually see on a UNIX workstation. -.05 IRIX IRIX is the operating system that you see on SGI workstations. SGI stands for Silicon Graphics Interface, the makers of DOOM made that game on SGI workstations. IRIX is a little bit different than most UNIX workstations, but not so much that you won't be able to easily integrate from running say FreeBSD to IRIX. -.06 Linux Whew...There are a lot of companies that distribute different version of Linux, an example would be Redhat, Caldera, and Slackware, I really don't see much of a difference between the three. Personally, I went with Redhat 5.0 on my own system, but its really up to whats available and when. -.07 Minix Minix is just a UNIX clone, you don't see too many of these. However, the versatility of this code is quite commendable, you don't see too many source codes that will run on Intel, Macintosh, Amiga, Atari, and SPARC (note that is only version 1.5, version 2.0 runs only on Intel) -.08 NetBSD Derived off of 4.4BSD and 386/BSD. This operating system is very portable, you don't see too many servers running this, but there have been a number of servers switching to this due to the versatility of this OS. -.09 Solaris Sun Microsystem's variant to UNIX, run on their SPARC workstations. The SPARC processor isn't quite as fast as the ALPHA, but pretty close and the SPARC workstations are more spread than the ALPHA's. -.10 OpenBSD Multiplatformed OS derived off of 4.4BSD. Supports binaries of Solaris, FreeBSD, Linux, BSDI, SunOS and HP-UX. -.11 System V A relatively old variant of UNIX, you could probably call this the only true UNIX still around since this has been around since the 1980's. Still used among some ISP's, but you won't see these on many more servers besides ISP's. -.12 BSD Berkeley's variant of UNIX. Widely spread throughout the net, so you should expect to run into a lot of these while your surfing through the net. -.1 UNIX (The User's Guide) This guide is for the new users of UNIX, whether you have a shell account, or you own a workstation, or maybe you just have Linux installed on your PC, this will hopefully help you understand UNIX more. This will go from the pure basics all the way to the advanced concepts of UNIX. Enjoy! Looking at Files- Alright, lets say you want to look at a directory in your personal directory, lets call it, /usr/personal . Now how would we go about doing it? To see what we have in that directory we would go at the prompt: $ls -l The end result would look something like this: -rw-r--r-- 1 personal me 778 Dec 25 12:00 who Now what does this mean? The hyphen means its a file, it can also have a l if its a symbolic link or a d if its a directory. The "rw" means that you can read and write to that file, the "r" means that others in the group can read, and the next "r" means the rest of the groups can read as well. The "personal" is the owner, and the "me" is the group. "778" represents the size of the file in bytes, and the date and times represent the time it was saved. "who" represents the file name. The flag (the -l) means that we want the files to be listed in long format, which is what we did above, now, if you want to show ALL the files in the directory (normally used to see if there are hidden files ex. they start with a period) then you would type at the prompt: $ls -a That would give you an entire listing of the directory. A neat trick that you can use if you have a lot of files in the directory is using the command: $ls | more This tells the terminal to fill the screen up with files, then if there is more, it allows you to view them a screen at a time. Now lets say you want to view a file, we would use this command at the prompt: $cat filename That would show you the file on the terminal screen. So lets say I wanted to look at a file called foobar.foo on my terminal screen, I would type in at the prompt: $cat foobar.foo And would get an end result of this: Don't be a foobar, cuz foobars suck bad. $ Now lets say you want to edit a file. There are a number of ways to do that, but MY favorite, and probably the easiest way to do it is typing in: $pico foobar.foo The program pico will popup and you'll be able to edit, and save the file. What is pico you ask? Pico is a text editor, which is probably the easiest one to use on the UNIX system. Oh yeah, if you're wondering what those ^X for example means, that means the control key. That stumped me when I was a newbie so I'm just adding that in. Moving and Making Files and Directories- Alright, lets say you want to move a file to another directory. For example, if we wanted to move a file called blinky.txt from the directory /root to the directory /usr/personal, we would type this at the prompt: $mv blink.txt /usr/personal But hey! You know, you don't have to be in the /root directory to move that file, say you're in the /home directory, thats alright, all we'd do different is this: $mv /root/blink.txt /usr/personal Pretty simple stuff eh? But now, lets say you want to copy a file to another directory for safe keeping. Lets say we want to copy a file called lets.go.party from the /root directory, to the /src directory for some stupid reason, we would type in: $cp lets.go.party /src But hey again! We still don't have to be in the /root directory to be able to copy that file over to the /src directory, all we have to do is alter the command line just a little bit: $cp /root/lets.go.party /src Boom! Its copied, and we had no problem doing it either. Alright, enough with files, lets move to directories, they aren't that much different than files, but then again, yeah they are, here's what I mean. Maybe you want to create a directory called /tools in your / directory. (Yes, I know I left it blank, that means that I'm going to put it on the, well, the equivalent of the c:\ prompt in DOS) No problem, all we have to do is this: $mkdir tools And your directory called /tools is made. But say you want to switch from directory /src/kernel to /src/kernel/i-386/. What we would do at the prompt is: $cd i-386 Now, lets say you're at the / directory, and you want to get to the directory /src/kernel/i-386, no, you don't have to do this: $cd src $cd kernel $cd i-386 Nah, we're too lazy to do that. What we'll do here is we'll take a shortcut and do this: $cd /src/kernel/i-386 And there you go, you're in directory /src/kernel/i-386. But wait, you want to go back to the directory /src/kernel, how would you do that? Here's what you would do: $cd .. That tells the terminal to go back 1 directory. Then again, you change your mind and decide to go to /root/personal from the /src/kernel prompt, thats no problem, all you have to do is: $cd /root/personal And you're there, no problem. (Just if you're curious as to what cd stands for it means call directory, but what I always think of it as is change directory, I know thats the wrong definition, but it means the same thing) Oops! Lets say you forgot what directory you're in, all you'd do is type in: $cd Which you'd get something back like this: /root/personal Getting Rid of Files and Directories- Say you're at your terminal, and you want to get rid of a file called stupid.txt because its stupid, and just cluttering up your directory, how would you do this? Type this in at the prompt: $rm stupid.txt The file's gone. However, lets say you want to get rid of a directory how would you go about doing this? For the sake of argument, lets say you want to remove a directory called /personal/furby. Alright thats no problem: $rm /personal/furby Lets say you get an error, like, "Directory not empty" Uhoh! What does that mean??? Alright, don't freak out, all that means is....Ummm! THE DIRECTORY HAS FILES IN IT! So remove them, THEN remove the directory. System Map- All this is, is a map of whats in certain directories on your UNIX workstation: /bin - UNIX commands /usr/bin - More UNIX commands /usr/local/bin - Installed locally commands /dev - System devices /etc - Miscellaneous files. (AKA, the passwd file) *wink* /home - User directories /lib - Program libraries (Data that the programs read) /usr/lib - Same as /lib /tmp - Temporary files /usr/tmp - Temporary files AGAIN /var/src - Source code /usr/man - Online manuals Switching Between Shells- Whats a shell you might ask yourself?...Well, all it is, is just a different type of command prompt, where certain commands work with certain shells. There are 3 types of shells, one being the C Shell, the Bash shell, and the other, the Korn shell. Now to me, there isn't much of a difference, between the Bash shell and the C shell. Now, some gurus will be outraged by me saying that. But, there really isn't that much of a difference. The only thing different between the two is that the Bash shell can do all the same things the C shell can do, except, the Bash shell has a little bit more added tricks, nothing special however. Now as far as the Korn shell is concerned, I don't really use it that much, because I really don't see the need, its an ozzy shell if I do say so myself. Thats really all you need to know. If you wish to be different, then use it, if you just want to be like every other stupid hacker (joking) then use the old Bash shell or C shell. Just for my two cents I normally use the Bash shell. Commands For the Hell of it- Say you suffer from a disease where you always have to know the date and time every second of the day, theres only one command you need to know for that on a UNIX terminal that is: $date Result would be something like this: $Wed Dec 25 22:34:45 EST 1998 Or lets say you just want to see a calendar for the month, because you need to know the date for some appointment, thats no problem just type: $calendar You should get a readout something like this: January 1999 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Pretty neat eh? But lets say you are going to be away from the terminal and need to do something in about 10 minutes, thats no problem, all you have to do is the sleep command and the operation you want to do. Like so: $sleep 600 ; lpr something.txt The 600 means in seconds, which is ten minutes, so in 10 minutes your terminal will print out a file called something.txt, that way you don't have to sit there and do it quick if you don't want to. By now I'm sure you've all become familiar with .zip extension files which are just a number of packed files made into one packed extension Well, on a UNIX terminal, you can pack .zip files and unpack them as well. Which, the command is just about common sense if you think about it, as you guessed probably its: $zip something.ext That will zip of the file, but wait! You can also unzip the file as well, doing that is just: $unzip something.zip Just like that, you unzipped something.zip. No problem. But is that the only way to compact files? The answer is no, there's about 3 other different ways, the most common are the .gzip, and .tar methods. First lets go to the more, unconventional way of compressing files. Its probably the oldest as well, but the command is this: $compress -v fooboo.lps And you would get a terminal output of something like this: fooboo.lps: Compression: 56% - replaced with fooboo.lps.Z To uncompress the file, just type this at the terminal screen: $uncompress fooboo.lps.Z Which will ultimately turn the file unto its original state and original size. Now lets go through the more conventional ways of compressing and uncompressing a file on a UNIX. The next one being the gzip method, which would be executed like this: $gzip filename Which compresses the file, and replaces the extension to filename.gz Now, to uncompress that gzip compacted files, you would use the command gunzip, which is used like so: $gunzip filename.gz And that file would be unpacked. Now, probably the most used UNIX compression utility, tar. Normally this is used to make tape backups of your system, in case of crash. However, you can also use it for other purposes, such as just compacting files, now lets say you want to use this utility to compact a file called booboo.ext, all you would do at the command line is: $tar c booboo.ext The output file of this operation would be booboo.tar. However, lets see how we can get this file back to its original state, no, there is no command called "untar" its the same command with just a different flag. Which we would use like so: $tar xf booboo.tar If you're curious as to what those flags stand for, then here you go: The "x" stands for extract, and "f" stands for the tar file you want to extract, don't ask on that one... Getting Info and Changing Permissions- The best way to describe this section, is probably by saying, this is the heart of what hackers do to gain information. Using the various commands like ps, finger, who, etc... About 50% of you that read this section will probably have already been exposed or are familiar with the finger, and who, commands, as there are alot of places where you can do them online. They're used to gain network information and the like. As far as changing permissions, which you were briefly exposed to with the ls -l command, that has to do with who can execute, read, or write to what file. Thats what really makes UNIX unique is how it deals with files. It keeps tabs on just about every bit of information you can think of. We'll start off with the finger command, and you guessed it, this is how you use it: $finger Here's an example readout of what you might get: Login Name TTY Idle When Office root Daemonboo co 0:24 Wed 23:45 admin Fooboomasta p2 1:03 Wed 22:37 Now what does this all mean? Well, lets start with the login, which is really self-explanatory, its your login name, and your name is what you call yourself other than your login, TTY is just the device you're on. Its just like Joe Blow might live in Wisconsin, but you live in Illinois, thats the best way to describe it. Idle just means the idle time from the last time they entered a command into the terminal, and When stands for when they entered that command. Office is what you might have entered in, normally you don't see that field entered in, because your office isn't really important, unless you're talking about a company. Now what about the who command? It gives you similiar data, just not as thorough information as the finger command, all you do to use the who command is this: $who Results may look like this" root console Dec 26 23:56 admin ttyp1 Dec 25 12:45 Now what does this tell you? All its telling you is who is online basically, first is the login name, and the second field is the device that they're logged into, and the dates stand for when they logged in. Lets get you up to date to how UNIX deals with jobs now. However, they're not called jobs, they're called processes, and each process you run has an ID number. If one's hanging, and you don't like it but don't know what it is, you would type in this command: $ps And it would give you this kind of a readout: PID TTY TIME COMMAND 12983 ttyp0 0:03 finger 36589 ttyp3 0:34 kill PID tells you what is the process identification number, TTY tells you which device executed the process, TIME stands for the time it took to execute this process, and the COMMAND of course tells you which command was used. But like we said, the initial objective was to find the process that was hanging, and lets say that the who command was hanging, so what we would do is execute the kill command like so: $kill 37895 What did we just do? Well, we just killed a process with the ID of 37895. And for the case stated above it was the who command. It won't slow down the terminal anymore. Changing permissions is pretty easy, its all done by the chmod command like so: $chmod 775 file.ext What I told chmod to do is to change permissions on the file.ext to an owner permission of 7, a group permission of 7, and everybody else's permission to 5. Here's a chart to tell you what every number means. 0 No permission 1 Execute only 2 Write only 3 Write & Execute 4 Read only 5 Read & Execute 6 Read & Write 7 Read, Write & Execute Communication- Communication is vital in life, BUT...heheh, not on a UNIX terminal. But if you want some fun, go for it, we'll start with the talk command Say you want to talk to some fool named boobob: $talk boobob boobob would get this on his terminal: Message from talk_daemon@foobar at 20:56 ... talk: connection requested by root@foobar talk: respond with: talk root@foobar The screen will split when he responds, and boom! You're in a talk session where you can socialize with little boobob. But lets say you don't want to talk, you want to tell somebody on the terminal to screw a dog or something. Well, we can do it by the write command: $write person go screw a dog! It would right to the user named person and tell her on her screen to go screw a dog! Pretty neat stuff. But like I said, communication is not vital on a UNIX system. Lets say in this case you want to send something to a friend via email. Just type in this at the terminal: $mail scp@theproud.net >Message here Then put a period at the end of the email on its own line, and it'll send it off. Connecting to Other Networks- Connecting to other networks is a very simple concept, and there's a few ways to go about doing this, one is the telnet command, the other the rlogin command, and yet another called ftp. Well, you probably already know what telnet is, its just a terminal emulator. rlogin is a little bit different, because sometimes it doesn't ask you for a login or password if you are a "trusted" user. Like if the other machine trusts your machine's address, it doesn't ask questions, it just opens the door and lets you in. FTP is file transfer protocal, which lets you send files from network to network. Using telnet is very simple, all you do at the prompt is this: $telnet dw0rd.com Which you'll get results something like this: ---------------------------------------------------- dw0rd System V ---------------------------------------------------- login: And then you just go about your business as you would on a regular UNIX terminal. rlogin is the same way, so there's no need to go into what rlogin does, all you do to use it is: $rlogin dw0rd.com Thats it, and it will take you to the system's login screen. (or maybe if you're lucky...not) FTP is a little different though, its just used for transferring files so its got its own way of doing things. To access it just type this at the prompt: $ftp server.net And you might get something like this: Connected to server.com 220 server.com FTP server (Redhat Linux 5.0) ready. Name: (server) And you can do your business that way. (Keep in mind that you MAY be able to login anonymously with your email address as the password, can be useful for snooping) Final notes- The whole purpose of this UNIX guide was not to tell you how to do damage to a UNIX, but to really appreciate its power, and make you feel comfortable using it. With the information I gave in this guide however, you can do some damage, and mess with a few things but I wouldn't recommend it. What I was really trying to do in this guide is to give newbies a basic understanding of how to operate a UNIX terminal. I hope this guide will save you from buying books like I had to do to learn how to operate a terminal efficiently. If not, well, you really can't say that I didn't try, because to be honest, I worked my ass off on this. The hours were long, and the thinking was hard, because I had to touch upon all the things you might want to do on a UNIX terminal. Some things were left out I know, but thats not to diminish their importance, its just that to include every single command that can be executed on a UNIX terminal, it would take so much of this guide, it would almost be impossible to finish. I hope you enjoyed reading this file as much as I enjoyed writing it. (Yes, I enjoyed writing this.) Now, onto more of the guide. -.02 VAX/VMS (The User's Guide) Introduction- This is going to be one hell of a section to do for me, because I'm not the best person to consult upon when it comes to VMS. This is going to be a learning experience for both you and I, I as I write, and you as you read. Why? Well, because it helps to have a system in front of you to learn from, but unfortunately, VMS computers are pretty huge, and expensive, and to be honest, I don't really have the cash, or the space to put it, since they're about the size of a damn fridge. I would appreciate not to be flamed for making an honest attempt for writing this guide by you VMS gurus out there, looking to see how much I know *lol*. Because god dammit, I'm making an honest effort. Anyway, enough with this bull, lets get into it. History- I'm not going to spend a lot of time on the system history, because this is just for your info, in case your curious. First of all, VMS stands for Virtual Memory System, and was the first machine to offer 32 bit processing, of course, another innovation of the Digital company in the mid 1970's. VAXen back then were very bulky, as big as refridgerators, however, now you can buy an ALPHA machine and run OpenVMS on it, and its pretty much the size of a regular computer. Very little has changed as far as VMS is concerned over the year, the same idea has always remained the same, which is a quick and efficient operating system, which I think it fits that category. You might notice, that a lot of VMS contains similarities to Netware...Gee, wonder why. (Hint, look in this guide) Common Tasks- Well, first lets go through how the VAX file system is set up. The format of the files are always stated in this form: NODE::DISK:[Dir.sub]filename;version Now what does this all mean? First, lets start with NODE, node can be interpretted as the current file server you're on, DISK is simply the name of the HD you're on, on the network. Dir stands for Directory, so that would be the main directory, and sub of course means the subdirectory. filename, well, thats self explanatory, and version, thats an optional input. Alright, so now we want to see whats in our directory, how do we do that? Like so: $DIR Which simply ports out what we have in our directory, nothing new. So what you might see is an output like this: FUJI.DAT;2 3/6 5-JUN-1999 13:34:28.01 LICK.COM;3 4/5 7-JUL-1999 12:54:34.08 DIS.DIR 8-MAY-1998 11:54:23.07 Alright, now what does all this mean? Lets just analyze one of the files that was output by the system. FUJI.DAT is the file, the 2 represents that this is the second version of the file, the 3/6 means that you used 3 blocks out of an allocated 6, the date is the date that this was saved and the time is the time that it was saved. Now what type of files can be seen or used by a VAX system? COM - Command Procedure DAT - Data File DIR - Directory File DIS - List for Mail EDT - Start up command file for EDT editor EXE - Executable program JOU - Journal LIS - Listing File LOG - Job Output MAIL - MAIL message OBJ - Object from a compiler TMP - Temporary file TXT - Text File BAS - BASIC source file C - C source file COB - COBALT source file FOR - FORTRAN source file PAS - Pascal source file SAS - SAS system SPS - SPSS system How many ways can the DIR command be used? Well, if you want to see if you have a filename by a certain name you can do something like this: $DIR fooboo.txt And it would show you the file information on fooboo.txt. But, we can also add wildcards to this command. Now what are wildcards? Wildcards are quite simply put as searching for something for which you don't have the exact information for, so the computer does it for you like such: $DIR TEST.DAT - Shows you all available versions of TEST.DAT $DIR *.DAT - Shows you all the DAT files in the directory. $DIR SOME.* - Shows you all the file extensions that start with SOME $SIP*.* - Shows you all the files that start with SIP All these can be useful if you don't wanna remember filenames and extensions that way you can find the stuff quick and easy. But how do you change directories you ask? That can be achieved simply by using the set default command using it in this syntax: $set default disk$binky:[uck.plinko.blo] Now what does that all stand for? The disk stands for the nodename which we covered above, while binky stands for the device, (like c: in DOS). Inside the brackets we have uck, which tells us thats a top level directory seperated by a period, then it moves to plinko being the first sub-directory, separated by another period then it goes to blo which is the directory you want to go in, and therefor is the 2nd sub-directory in this case. Files and Directories with Setting Permission- First, to understand how to do things with files and directories, you must understand the way a VAX/VMS handles permissions. Its similiar to the way UNIX does, just in a different context, really quickly we'll go through the abbreviations that VAX uses for them, then tell you what they mean. S - System - System Manager O - Owner - Account Owner G - Group - Group association W - World - Everybody R - Read - Able to read a file W - Write - Able to write to a file E - Execute - Able to run the file D - Delete - Able to delete file Now you'll see how these are used in commands in a few seconds, but I want to make sure you understand these. These are to be taken at face value, just because you can write to a file, doesn't mean you can read it. I know thats funked up, but its true. Lets say you want to see what protection you have on your directory No problem type this in at the terminal: $dir/protection That means just what it says. Now say you want to reset your permissions, that can be achieved like so: $set protection = o:rwed something.txt What we just did was set the protection to the owner (o) and set the permissions to read(r), write(w), edit(e), and delete(d) to the file something.txt, pretty simple concept. Now lets give another example with more options. $set protection=(s:re,o:rewd,g,w)/default What did we just do? Again, we set protection, but we ultimately set this to default, now whats the default? We set the system to have read and execute priveledges, the owner to have read, execute, write, and delete priveledges, and the poor group and world to have NO priveledges to the defaults. Now, when you create a new file or directory, it will automatically set those protections as the default. Alright, but now how do you get rid of those pesky old files? Well, its pretty easy, and as you guessed its like so: $DELETE poo.txt;4 Simple thing is, we just deleted the file called poo.txt and the 4 stands for, version 4 of the file. It IS necessary to specify the version number, or else the computer doesn't know which one you're talking about. Another useful way of deleting old version of a file is by using the PURGE command like so: $PURGE This will delete all the old version of the files in your directory but you want to make sure you're sure about what you're deleting, because once its gone, its gone forever. But there are different variations of the command, where you can purge more accurately. $PURGE doodoo.txt or $PURGE/KEEP=2 blink.txt Now in the first variation, we specified the filename, so it will delete all older versions of the file doodoo.txt and keep the newest one. In the second variation, we purged everything but the 2nd version of blink.txt, thats what the KEEP=2 does, it says to KEEP version number 2. Alright, now lets talk about copying files, thats very simple, all you have to do is this: $COPY this.txt that.txt We copied the file this.txt to the file that.txt. Simple eh? Alright, but what if we want to copy a file from another directory or vice versa. Thats simple, to copy a file from another directory to your current directory you use the COPY command like so: $COPY [.blink]this.txt this.txt We just copied the file this.txt from the subdirectory blink to our current directory, now to copy from our current directory to another directory, we would use the COPY command like this: $COPY this.txt [.blink]this.txt And there you go, your task is done. But now lets just say we don't want 2 copies of the file in different places, but we want to move it, thats simple, to move a file to a subdirectory from your current directory, you use the RENAME command: $RENAME this.txt [.nim]this.txt And there you go, its moved into the directory .nim. Now lets try it vice versa: $RENAME [.nim]this.txt this.txt It copies the copie this.txt from the directory .nim to the current directory in which you reside. Now you can use the RENAME command for renaming files too, so don't get everything mixed up, its very simple: $RENAME this.txt that.txt It renames the files this.txt to that.txt, like I said, simple, and no need for extra explanation. Now lets say you want to see what a file contains? You could go about doing that by using the TYPE/PAGE command: $TYPE/PAGE fujoo.dat This would show the file's contents going page by page, which makes it much easier to read than the real fast scroll. Now, real quickly how would you be able to run a program....Well, its very simple, and you would use it like so: $RUN program.exe Lets say you wanted to see which users were on the system, that can be accomplished by using the FINGER command just like on a UNIX. $FINGER And it will show you who's on, what node they're on, and on what terminal they're on. Final Notes- VAX/VMS is very dated, and its very very different. You won't see too many VAXen these days, but if you're lucky you might. The purpose of me writing this would just probably have to be for fun, and for me to learn a little something as I write this. VAX is what I consider a historic NOS, and it revolutionized the way networks were used. VAX machines are very large, and bulky, but they're reliable. VAXen that were sold in the late 70's still may be in operation today. Now how's that for a product? Most machines today only last about 7 years if you're lucky. I hope you've learned something about VAX, and have come to appreciate the role it has played in the networking community. -.03 Novell Netware Introduction- This guide is going to be designed from the administrator's point of view, since its much easier to grasp certain concepts on breaking in on the system, when viewed from the admin's point of view. Such as the measures he or she uses to keep the intruder from entering the system, or just the basic security scheme of Novell Netware itself. Now the question you've probably all been wondering about, what version of Netware is this going to be based on? The answer is Novell Netware 4.x. Since this is the copy in which I have a copy of, which is 25 user license. However, at this time I can't install it on this PC and play with it, due to technical difficulties such as HD failures, and control card failures. I'm down to a fairly small HD now, and its not enough to split up the partitions into a DOS/Win partition, as well as share Linux, with another partition of Novell. Doesn't work that way with me. Since Netware 4.x is the first netware to have GUI, its going to be hard to describe what to do, since I can't show you a picture of the screen in a plain text file unfortunately. So you'll have to bear with me here, since I don't have a console in front of me and I'm going from manuals and personal experience on other networks. So you'll have to cut me some slack. Anyway, enough with the BS, lets get down to the nitty gritty and learn about this NOS (Network Operating System). History- Whoa, yeah, there's a lot of history as far as Novell goes. It revolutionized how networks work. I must say, reading the manuals, and actually giving this thing a chance, allowed me the opportunity to learn a lot about it, and in fact, fall in love with it. It all started back in the late 70's. We'll call them NDS for short (Novell Data Systems) built a line of Z-80 microcomputers and sold them with private-labeled printers, software and other items. In the early 1980's NDS began work on a series of networking products. Their first server was based on Motorola's 68000 processor, and supported a start topology (network with a HUB with a starshape connecting 5 computers). The original project was going to be based on UNIX and VMS in developing the directory and security structures to form the NOS we call now as Netware. Later under reorganization they purchased one of the first IBM PC's available and began to develop shells that would allow this machine running either SP/M-86 or MS/PC-DOS to interact with their NDS file server operation system. In 1983, under a new president, the only products that survived were the 68000 file server and a file serving system called ShareNet. It became the name of Novell's PC network package designed for IBM PC's. In 1986 the first version of dominant NetWare was NetWare/86. NetWare/86 continued the ShareNet file serving concept, called a remote file system. Which is the key to all NetWare today. Rather than simply responding to workstation requests for data, NetWare acts as an overseer and protector of files; all requestors who want access to files must have permission to do so. Remote file systems may seem familiar to you, since UNIX has it and so does DOS. Remember? Read, write, execute? You need to have permission. Anyway, enough for the history, we could go on and on about this. Which it really doesn't serve a purpose, but an interesting fact to know, Netware was originally going to be based on VAX's VMS. Whats a LAN?- Alright, to begin with by answering the question "Whats a LAN?", that can just be simplified by saying, its a Local Area Network. Now what does that mean? It quite simply means that there are two or more computers working together to complete tasks. Simple concept is it not? But there are different types of LANs. Now what I mean in that are, there are different ways of setting it up. However, this is not going to be your own "Make your own LAN in 24 hours" guide. This is strictly going to deal with NetWare and its different flavors. NetWare Lite- The first and most simplified and less computer consuming flavor of NetWare is NetWare Lite. Its all in the name, its a very very small version of NetWare. So small it fits in about 600K of diskspace, and supports as little as 640K RAM (DOS). Now how do we use this in case you ever encounter a network running on a LAN using NetWare Lite. One thing you need to do is not be intimidated. Lite is the easiest flavor of NetWare to work with. Alright, now lets get into how to operate this from the prompt. Special note, this is all going to be done with using the DOS prompt. Logging In and Out- Logging in is as simple as 123, all you do is type this in at the DOS prompt: NET LOGIN fujiyama Now what did you just do? NET tells the computer that you're accessing, yes, you guessed it, the network, and the LOGIN specifies that you're going to enter your login name, the login name being "fujiyama" Logging out is even easier, which it should be if you think about it. All you do is type this at the DOS prompt: NET LOGOUT NET again saying you want to talk to the network, and LOGOUT, yet another given, means you're going to logout. The Rest of the Lite Experience- Alright, lets create a scenario, say you want help on a command like INFO, thats not problem, NetWare Lite isn't very wicked, the documentation is quite complete, all you do is type this at the prompt: NET HELP info And you'll get the syntax on how to use the command "info". Now what is INFO? Quite simply it displays information about the servers, clients and your username. And is used like this: NET INFO And you'll get your readout of information you were searching for. Now lets say you want to see what they exactly have on this network, thats no problem, this is how you do it: NET NDLIST And it will show you the list of available network directories. But wait! Whats the difference between a local drive directory, and a network directory? The answer is simple, a local drive is a local drive, meaning its on one computer, accessible by ONE computer, and nobody else. When you talk about a network directory, its a directory where a bunch of local drives are hooked into the network, and accessible by users on the that network. Now how does that happen? Quite simply like this. Lets say you want to put a bunch of games from someone's desktop, onto the network from this person's local drive, and make it accessible by the network users, you can do it like this: NET MAP N: GAMES NET again, saying we're accessing the network, MAP means we want to map the local drive N on that person's computer, and put it on the network as the directory GAMES. Now, just for info's sake, you want to see if your friend is on the network, or sitting on his ass eating a big bag of chips. This is how you would do it: NET ULIST NET Yet AGAIN saying we're accessing the network, U in the syntax ULIST means we want to see a USERLIST. And boom! You'll see all the users on the network. Okay, we know that your friend Chewey is on the net, and you want to send him a nice little message telling Chewey that he has too much hair on his back. No problem: NET SEND "Chewey, I think you have too much hair on your back" chewey We won't even bother telling you what NET means because I think I've beaten that into the ground already. SEND means you want to send your message of course, and beginning in the quotes is your message, and at they end, you tell it to send it to the user "chewey" Alright, but lets say Chewey's been bothering you all day about some bull about this girl at work or something, and you've had enough of his messages, because they're annoying. Just turn your message receive off like this: NET RECEIVE OFF RECEIVE saying that you want to talk about receiving message and OFF meaning you don't want to receive any. Just like that, Chewey can't send messages to you, and you're quite pleased. Lastly, lets say you want to change your password, that can be done simply like this: NET SETPASS Which will let you make a new password. Netware 4.x- Alright people, here's the bigboy of NetWare. Bear with me now, I'm not a CNE (Certified NetWare Engineer), but I'm going to try to run through this the best I can. Again, just like in the UNIX guide, I'm not trying to teach you how to break into it, just use it so you could probably learn to break into it in the future. First, to understand how Netware works, you have to look at it from the Administrator's point of view, to set up the network, he or she, must designate server names, volume names and the like, so when you look at something from a workstation all of this is setup on the system through the serving computer. Getting Files and Information- Now lets say you want to see whats on the network, or on someone's drive thats on the network, this can be done like so: NDIR DWORD/VOLRU:BLINK What does this all mean now you ask? Quite simply, this means you want to see a directory, on the file server the administrator designated with the name DWORD, on the volume named VOLRU under the directory BLINK. Now, mind you, depending on how large a network you're dealing with, this could be confusing or not so confusing, its all a matter of size. Alright, now you've found a specific directory you want to goto. You can access it like so: CX DWORD/VOLRU:BLINK What this means is you want to go into the directory on the file server designated DWORD, on the volume VOLRU in the directory BLINK. Again, this could be confusing, but then again, it could be quite easy, size is the key. Okay, say you've found a file that you want to copy from someone elses workstation, onto yours via the network. Thats no problem, instead of using the disk to disk drive method, you CAN do this over the network without any hassle like so: NCOPY F:FUJI\MOTO.TXT G:LIMPBIZ\ NCOPY F:*.*G: Now I know that looks like a bunch of gibberish, and it quite well could be interpretted as so, but it does serve a purpose. First of all NCOPY means Network Copy, F: means the drive of the workstation you want to copy from, FUJI being the directory on that workstation's drive and MOTO.TXT the file. G: means the drive on your workstation to copy to and LIMPBIZ the directory you want to copy to. F: again means the drive F: to copy to G: over the network. Lets say for info's sake, that you're a really picky person about names, or you named a directory that you probably shouldn't have named in the manner you named it (hehe). And you want to change that name, thats possible: REN F:BITCH DOG Hey! We said you named it an inappropriate name, so we just took PART of the truth, and named it to dog. Now how about that? Alright, now in Netware 4.x, a new utility is used instead of using multiple commands for doing a bunch of different tasks, and this utility is NLIST. NLIST lets you basically look for any information that you need, the options are so numerous, I couldn't even name them all, and since I don't have the online documentation to stare at, I'm going to have to wing it in explaining this, so if I'm wrong, I hope you'll understand, after all, I don't know everything. But keep in mind, if you'd like to get all the options on a terminal, just do this: NLIST /? And it will give you all the possible ways of using it, here, I will go through just the one I think is important, because there is no way I could ever go through every one without putting you all to sleep. First lets go through how you see who's on the network. To see who's on the network, you would use NLIST like so: NLIST USER=CHEWEY And it will give tell you if the user CHEWEY is on, or if he is not. Now, lets say you want to see who you are, what rights you have, what group you're in, the people you have power over and other info. The command for that is WHOAMI. And can be used just like this: WHOAMI Here are all the possible options for it: /A - Lists all availabe info. /G - Lists the group you're in. /O - Shows the names of the users and groups you manage. /R - Lists your effective rights. /S - Shows what you have as far as security goes. /SY - Other information. /W - Who you manage. And thats all we have folks, the Netware lowdown.... Final Notes- Now, I know this didn't tell you much, but it did tell you something. I read the manuals, and as far as the beginners concepts, these are the only ones I found appropriate, and easy to understand for the learner. Further learning is possible, all you have to do is goto the library, and they'll have a lot of books on Netware, manuals, guides...Just about anything you could ever want. Again, the focus of this guide was to tell you how to operate a Netware terminal at least to some extent, not to teach you how to break into it, you'll have to make your own creative ways after you're done reading a few manuals, and not just this file. -.2 Programming Languages The purpose of this section is to expose you to what programming languages are out there. It is NOT to teach you how to become a guru in these languages, because the only programs we're going to include in this section are the notorious hello world! programs that any programmer had to start out with. Another purpose is to just expose you to what might appeal to you, the computer user, to maybe something you may like, or want to learn. Like I said however, this section will not make you a programming guru in any of these languages. -.01 Assembly This is as basic as programming gets, there are no pre-built modules to aid you in this programming language. All thats here are just raw computer codes. This is as raw as coding gets, and one of the hardest computer languages to learn. Don't let that discourage you however, this language makes the impossible, possible. Nothing is impossible with this language. Everything from basic DOS programs all the way to Windows applications can be done with this language. Also, computer virii are written in this language, those buggy little vermin that are a pain in the ass when you got em'. Here's a sample code of what a simple hello world program may look like: (keep in mind that I'm not an assembly programmer, but I'll try to interpret this program the best I can) .model small (sets the model to small) .stack 100h (sets the stack) .code (begins the code) main proc (calls main procedure) mov ax,@data (moves the ax value to the data) mov ds,ax (moves the value of dx to ax) mov ah,9 (moves the value of ah to 9) mov dx,offset hello_message (moves the value of dx to the offset) int 21h (calls DOS interrupt) mov ax,4C00h (moves the value of ax to 4c00h) int 21h (calls DOS interrupt) main endp (ends the main procedure) .data (calls the data) hello_message db 'Hello, world!',0dh,0ah,'$' (data Hello, world!) end main (ends the program) So you see people, this program is not very easy to learn. All it is is registers, and data segments, which all adds up to, pretty difficult stuff. (I hope I interpretted that program alright) -.02 BASIC To me, BASIC is probably the easiest of all the computer languages. Nothing difficult at all, programming is pretty simple with this. Thats probably why they call it BASIC programming. Its a good language to begin learning, because it introduces you to structured programming, which will lead to more advanced languages. (ex. C & C++) Here's the example hello world program: CLS (clears the screen) PRINT "Hello world!" (prints hello world! on the screen) END (ends the program) Don't let this code fool you however, there is a more advanced side to this language, if you care to take it that far. There are alot of cool things you can do with BASIC, but it won't make you an acclaimed software developer mind you. -.03 C C is the major language today, most of the exploits you see used are coded in C. If you want to be successful in the hacking community, you must learn C, its a must. Its not too difficult, but then again its not too easy to learn, depending upon what you're trying to do. Also, as you know already, UNIX was coded in C, so just by that you should be able to tell its a very powerful language. Even though C has been around a long time, it still remains strong, and extremely useful. Here's the hello world program: #include (calls include file stdio.h for printing) main() (starts main function) { (begins function) printf("hello world!") (prints hello world!) return 0; (tells it to return nothing else) } (ends function) There you have it, a simple hello world program. Simple enough, however, not so simple when you want say, program an exploit in UNIX, or create some kind of text based application. Don't let C fool you. -.04 C++ As you might have guessed, yes, C++ does have a relationship to C. C developed C++. It was programmed all in C, so there you have it folks, C made its own predecessor. That pretty much proves its power. C++ was made for more object orientation, meaning its not all text based, but in fact can be made to develop and use objects. C++ is the same as C to a certain extent, but when it goes to Windows development, get ready for a whole new different world. Its not easy at all, and not at all the same. C++ is great as far as software development goes, so if you want to have a future in it, you better have a solid grasp on it. Here's yet another hello world program: #include class CMainWindow : public CFrameWnd { ( makes window ) public: ( say hello ) CMainWindow() { Create(NULL,"Hello World!"); } ( world! ) }; class CHelloApp : public CWinApp { ( calls the ) public: ( window to ) virtual BOOL InitInstance() { ( initialize ) m_pMainWnd = new CMainWindow(); ( ) m_pMainWnd->ShowWindow(m_nCmdShow); ( ) m_pMainWnd->UpdateWindow(); ( ) return TRUE; ( ) } ( ) }; ( ) CHelloApp HelloApp; (calls window initialization) Thats windows programming for you! Confusing, and complicated. C++ is no peaches and cream. -.05 Java Made by Sun Microsystems, its another object oriented programming language like C++. If you know C you shouldn't really have a problem learning Java, since they are alike in many ways. Although the major difference is speed, the programs are a lot slower than C. Here's the hello world example: class HelloWorldApp { (starts class) public static void main(String[] args) { (sets the main string) System.out.println("Hello World!"); (prints hello world! as string) } } Not too difficult, but then again, like any other program, there are difficults part to it. Don't let this fool you. -.06 Pascal Pascal is a high level programming language like C and C++. To me its a cross between BASIC and C, but thats my opinion, it isn't incredibly difficult to learn, in fact, many schools have courses in it. Pascal is a fun language to learn if you got some time, you can do cool graphic demos when you combine ASM and Pascal. Here's a hello world program: begin (begins the program) writeln( "hello world!"); (writes the line hello world!) end. (ends the program) Like I said before, Pascal is an interesting language to learn, and you can do a lot of cool graphics and other routines with it. So don't count this language out of your list. -.07 Perl You've probably been exposed to CGI scripts on the net, but you've never known how to do them, or use them. Perl is normally the CGI scripting language of choice. Its based off of mostly C, so if you know C, you'll have no problem with this language. Also, you can use a lot of Perl on UNIX systems as far as shell programming goes. Its a good language to learn if you want to figure out ways to exploit webservers via the webserver itself. Here's the hello world program for Perl: #!/usr/local/bin/perl (identifies its a perl program) print "Hello world!"; (prints Hello world!) There you have it folks, its that easy. But like I always say, don't let that fool you. The basic concepts are easy, but when you get into more advanced routines, look out. -.3 Final Notes This is the biggest section of the guide, and had the most information. I hope you learned a lot, because I sure did, some things required me to go to the library, like VMS and Netware, I didn't know a lot about them, so I got books, and now I do know a lot about them. It takes patience, and a lot of reading. If you've made to this far in the guide, then I applaud. The rest of this guide is just some simple things, to check out. Other than that, the major part of the guide is done, and complete. We're going into the home stretch now. The purpose of this part of the guide, was not to teach you everything humanly possible, but to teach you a great deal, and to be able to speak intelligently about these subjects. I hope I've accomplished that. Part 3- -.1 Tools of the Trade Lets define a tool first. A tool is something you use in order to get in or get out of a system. Now what you use depends upon the system. You can't expect to run a C program that compiles on an Intel machine and expect to use it on an Alpha processor. Just like you can't use a UNIX exploit on a Netware system, doesn't work that way. Even a UNIX exploit may not work on a certain variant of UNIX, because structures are different, and includes on the program may not be right to fit the system you want to use it on. I can't give you specific programs to use, because then that would defeat the purpose of writing this, so I can give you general categories however, so you'll know what you MIGHT need, depending upon the task. Password Cracker- One thing you'll most definately need is a password cracker. Now, what does a password cracker do? Well, first you feed it a password file obtained from a system, then you feed it a wordlist (a wordlist is a file that tells what logins and passwords you want to check i.e. "flip" "debone") and it compares the encrypted passwords to the wordlist. Now, if your password is shadowed, don't worry, because modern crackers do have an option to TRY and crack it, although, the attempt is not 100% successful all the time, its better than nothing. Sniffer- What does a sniffer do? Well, a sniffer is a miniscule program that you put on a system, (note, probably requires root) and it looks for the first few bytes of information from the login and pass. This is probably the most popular way to crack systems, but the catch is most have to have root access to run. Another downside is, today they are easier to catch. You must pay close attention to the sniffer however, some only run on BSD systems, while others run on Linux compatibles. Flipped vice versa, they just won't work. Log Wipes- I know thats not the proper name for it, but its what I prefer to use. Basically all they do is wipe the logs so you can escape unscathed and unnoticed. If you don't have one of these, you'll have to get past them yourself, but log wipes are an easier alternative. Root Kits- Root kits supply you a bunch of tools to use while you have root on a system. Everything from log wipes, to even sniffers. They have everything you need to get yourself in and out of a system easily, and effectively. However, again, you must pay special attention to the compatibility of the root kit. Scripts will not compile unless they are on the correct system. -.2 Words of Wisdom The greatest things to a hacker, is his patience, cunning, knowledge, and curiosity. Those are vital, to survival and success. A hacker never stops learning, never stops reading, never stops doing. You must try and try again until you succeed. Experience is vital in pulling off what you want to do. However, experience comes with learning, if you do your homework, then experiment, you should run into only minor problems. Yet, if you don't do your homework, and don't give yourself time to learn hacking is virtually impossible, seeing that you've already missed the point of it all. Most of all, never use the name "hacker" in vain. Over the years, hackers have gotten a bad rep. Frankly, I'm sick of it, you got this guy threatening to send a virus to this other guy, when any half-minded moron knows you can't login remotely to a Win95 system. You idiots who like to spread viruses, YOU ARE NOT HACKERS. You idiots who like to DOS people, YOU ARE NOT HACKERS. You idiots who like to destroy data, YOU ARE NOT HACKERS. You idiots who like to claim your eliteness, YOU ARE NOT HACKERS. YOU ARE MORONIC BASTARDS! Harsh you say? Well its true, you give us a bad name. When somebody asks you, "Can you hack?" Common lame respons I see is, "Yeah man, I'm leet biotch". Pardon my french, but WHAT THE FUCK IS THAT? Thats some little boy trying to be a big man of the IRC or chat session. I'm sorry, but thats all bullshit, I judge harsh on those who know better, but still have the arrogance, and ignorance to totally cross wires and claim things they are not. Being elite, is a myth. Elite is a word, a simple, common, word. Signifying you are the best of the best. Granted, there are some really intelligent, and smart people out there, who could blow my mind off this planet. But do they brag? No...They have self-discipline. They are humble, and they are the people who are in the right, and always will be. They've kept the community alive over the years, I will follow their lead, in hopes of one day maybe leading the pack. But I will follow until then, and so should you. Because it is the right way of things. -.3 Links of the Year These links are put in no particular order: http://www.hideaway.net http://www.jabukie.com http://www.hackers.com http://www.l0pht.com http://www.antionline.com http://www.hackernews.com http://www.cultdeadcow.com http://www.r00t.org http://www.tdyc.com http://www.nmrc.org http://www.rootshell.com ..........AND OF COURSE! THE DW0RD HOMEPAGE: http://members.xoom.com/finite2/ _ _ _ _ __ __ _ __ ___ _ ___ | |___ _| |_ _| |_ ___ |_| / // /__ __ ___ __ __ | |_ ___ __ ___ __ __ ___ ___ __ __ ___ ___ __ __ / /| __\_ _____ _ _| |_ ___ |_ | | _ ||_ _||_ _|| . | _ / // /| \/ || ._\| \/ || . || ._\| _\|_ \ _ \ \/ /| . || . || \/ | _ | __|| . || \/ | / / | _|| || _ \| ||_ _|| ._\| _| |_| |_| |_| |_| | _||_|/_//_/ |_|\/|_||___||_|\/|_||___||___||_| |___||_|/_/\_\|___||___||_|\/|_||_||___||___||_|\/|_|/_/ |_| |_||_| |_||_| |_| |___||___| |_| (WHEW! Long URL, maybe some day we'll move to a domain) -.4 Final Notes The purpose of this part of the guide, was to enlighten you, not to spoon feed you information on what to do, or what to use. Thats why I chose not to give out exact program names, so you could make that choice for yourself when the time comes. I'm hoping a few of you sympathized with my opinions, not that you have to at all, but they will always be my opinions. You may flame me because of them, or look down upon me, but I'll tell you what, thats alright, because everybody's entitled to an opinion. Keep this in mind however, I wrote this guide for people to learn, not to criticize, even though I know some will, but I hope that a lot of people benefit from this. May the benefits far outweigh the flames. Part 4- -.1 Ending Notes- Well my friends, this file has come to a complete finish. This has been real fun, but also real time consuming. Which, ultimately, I think the good aspects outweighed the bad. I've learned a lot in doing this text file, and I'm hoping you did too. Now, if you'll do this for me, if you've read this file, and enjoyed it, spread it around. Knowledge needs to be spread, and the more people spread this around, and get word of our group, the more information that can be presented. -.2 Special Thanks- Special thanks go out to the whole hacker community, for sticking through all the hardships throughout the years, and paving the way for people like me, and other people in the future, your names will never be forgotten, nor will the groups or things you have done. You made a difference... -.3 Goodbye- A special rhyme for my goodbye: Now its time to say goodbye, the end has brought a tear to my eye, Uhoh the hunters are coming its time to fly. Lest my wings be shot and I fall from the sky. Hehehe...May your lives be spicey, and your exploits fun :c) ________ _________ ________ | ______| | _____ | | ______| | |____ | | | | | |____ | ____| | | | | | ____| | |______ | |_____| | | | |________| |_________| |_|