___________________________________ \__ _____________ ________/___________________________ _____ __/_____ \_ / /_____ \_ , , __________)/ /______ / / / ` / / / /________/ / \/ \/ / / / _______________ ___________/ ______/ \__ , \ ` ` /jp / /______________/ /__________/_____\______/____/______________________/__ \_________________ /______________________________________/ /____/ /__/ /_/ __/ / >> system failure // issue 15 \____/ .----------------------------------------------------------------------------. | System Failure: Issue #15 | `----------------------------------------------------------------------------' We suck. I know, four months ago I said we'd have another issue out in two months. Well, so much for that idea. We've been having difficulties lately, partially due to the laziness of a lot of people (including myself), and partially due to our broke-ass service provider, who we've moved the hell away from. We're hoping for things to stabilize again very soon, and I'm hoping our next issue won't be as delayed as this one was. In the meantime, Merry Christmas! Please rest assured that we aren't dead (as some people have been speculating), we're just disorganized at the moment. :) Thanks to whoever drew the opening ascii (forgive me for forgetting... I'll be happy to give you credit in the next issue if you'll kindly step forward). Have a happy holiday, and enjoy the issue! --Logic Box [12/25/98] .----------------------------------------------------------------------------. | http://www.sysfail.org/ | | [sysfail@syfail.org] | `----------------------------------------------------------------------------' "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." --Benjamin Franklin, 1759 .----------------------------------------------------------------------------. | CONTENTS | | SysInfoTrade by SysFail Staff | | ARP Part III: Network Attacks and Denial of Service by BarKode | | An Electricity Primer, Part I by P3nnyw1se the Clown | | Wireless Ethernet and Its Workings by Saint skullY the Dazed | | Hackers and the Criminal Stereotype by Mr. Sonik | | A General Overview of Open Source Software by SlapAyoda | | An Introduction to the ICMP Protocol by BarKode | `----------------------------------------------------------------------------' <-------+ | SysInfoTrade +----------------> staff@sysfail.org --DefCon dates are in: July 9-11, 1999 in Las Vegas, Nevada. Join in on the fun as Sysfail launches our third annual scavenger hunt, and a frequency hunt! If you have extra little goodies you'd like to donate to our prize bin, e-mail staff@sysfail.org. Thanks to all who helped out last year! --1999 RSA Data Security Conference will be held at the San Jose Convention Center, San Jose, CA January 17-21, 1999 --Whee! The first annual LinuxWorld Conference and Expo will be held at the San Jose Convention Center on March 1-4, 1999. Check out the webpage at http://www.linuxworldexpo.com for more details. --Order the "Thank You for Abusing AT&T" stickers, which were black vinyl with white text. I also made a simple "OWNED" sticker, which is black vinyl with white text. "Tori Do" stickers with penguins on them are also available; white vinyl with black ink. All stickers are $1.00 each plus a stamp. --11/5/98: SSH Communications Security LTD admitted that there was a buffer overflow in its ssh 1.2.26 client. Rootshell holds by their claim that their recent break-in was not from the security hole in SSH. More info can be found here: http://rootshell.com/archive-j457nxiqi3gq59dv/199811/sshkerb.txt.html --Order Tori Do: The Epic from Penguin Palace. Art/Story by Pinguino. $24.00 TORI DO: The Epic- A young penguin martial artist goes on a quest, stepping outside his castle's gates for the first time. He is the Red Avenger, and he is joined by a sarcastic mage, a tag-a-long imp, and a dream, on his journey across the Antarctic terrain. The Red Avenger has been chosen as the protector of the penguins... but can he make it past an evil wizard to claim his title? This enhanced CD contains a soundtrack with jungle/dark ambient songs from RE:, Miguel Q, Solo Jr., and Nick B. It is playable in newer CD players (such as one in your stereo or car). Once you put the CD in your computer, you can use a web browser and fully experience Tori Do: The Epic. --The Communications Assistance for Law Enforcement Act allows law enforcement to wiretap lines, by June 30, 2000. The FCC is now working on figuring out if this applies to IP telephony, since IP telephony is an "information service" rather than a "switched service." --Zarite Inc. and Antionline formed a partnership that gives antionline many new toys: domains galore, an interactive bot on the web, a virtual hacker store, and a hacker search engine based on Infoseek technology. Zarite controls 30% of Antionline. The editor, John Vranesevich, owns 70% plus maintains managerial control. --Xybernaut showed off a wearable PC at Comdex; the pricetag bearing $4995 (excluding display). It's a P200MMX chip, 2gig hard drive, and 32 megs of ram that fits into a box the size of a walkman, attached to your belt. The display can be worn on your headset or your wrist. The unit is capable of speech recognition, and runs both windows and linux. --Gettysburg College: With their children's permission, parents at this college can log on and look at their kid's college transcript, phone bills, and student store purchases, over the web. --11/12/98: In the Microsoft anti-trust trial, the lawyers have resulted in name-calling. If you haven't read about the case yet, now would be the most interesting time to do it. --cDc releases a public beta release of BUTTSniffer, which is a packet sniffer and network monitor for win95, win98, and NT4. It is a standalone executable, and also a plugin for Back Orifice. --ASSOCIATED PRESS: DENVER, Sept. 15, A 28-year-old computer expert is accused of hacking into the US West computer system and diverting more than 2,500 machines that should have been helping answer phones to his effort to solve a 350-year-old math problem, according to documents filed in a federal court. (Thanks to RedBoxChiliPepper for this tidbit) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ARP Part III: Network Attacks and Denial of Service by BarKode (barkode@sysfail.org) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- You glared at part one, chuckled at part two, and now we have part three of the ARP trilogy. Today we learn how all that seemingly boring techno-babble in the first two articles affects the security of your local ethernet, and we'll cover the basics of some network attacks, and the always fun good o' session hijacking. Prerequisites for reading this: 1) You have read part one and two several times and have a good understanding of the content, or are already familiar with ARP. 2) You have some idea about how IP-based networks function. Acknowledging that, take into consideration that while this covers what most would consider intermediate IP networking theory, I'm going to focus this article towards those who probably have only read part one and two and have a basic idea of how IP networks function. Also, know that what we're talking about here is 50% implementation specific and 50% protocol specific. While the general ideas here are sound and are applicable in some way to IP networks of any type, every implementation is slightly different, and you will experience that a method that may work fine on one operating system may not work at all on another. For instance, ARP caching techniques vary from platform to platform, so methods on a Linux machine with static ARP entries compared to a Cisco router are totally different. *************************** (Note: For all these examples, there are no switches, smart hubs, etc., implemented on the network in question.) (Note 2: If you wish to actually do some of what you see here, I suggest grabbing a copy of send_arp, an ARP forging application that's been floating around the net, and I've modified it a bit. It should be on www.sysfail.org soon after this article is published. If not, e-mail me.) Situation 1: You are on a ethernet at a small office. Another employee has picked up a copy of 2600 from the local Barnes and Noble. After spending 3 days OCRing code out of the book, he has managed to compile a copy of teardrop on the only Linux box at the office (the dial-up server, "RAS"). He thinks it's really funny to crash the unpatched print server all day whenever you need to queue up some invoices. Knowing that he's telnetting into the machine and logging in as root, and also knowing that his machine is the only machine in the office that has access to do that, you figure it would be just keen to somehow trick the server into thinking that you are coming from Joe's machine. Situation 1 Low-Down: We need to spoof a connection from "joe" to "server", and we are on "tom". We need to not take "joe" off the network or cause any funny messages to pop up on the screen. Here's our network layout: Full Class C: 192.168.0.x Netmask: 255.255.255.0 ------------------------------------------------------------------------------ | | | | | | | | * * * * Printer Server Tom Joe 192.168.0.5 192.168.0.1 192.168.0.2 192.168.0.3 (Linux) (Linux) (Windows) (0:0:0:0:0:01) (0:0:0:0:0:02) (0:0:0:0:0:03) You have made the intelligent choice to install Linux on your other drive on "tom". Your network is working fine, and you can communicate with all your other machines. Somehow, you need to make "server" think that you are telnetting to it from "joe". You've already sniffed the unencrypted root password "hork" from the local ethernet. Let's take a look at what happens when joe telnets to server. **** 0:0:0:0:0:03 ff:ff:ff:ff:ff:ff 0806 42 arp who-has 192.168.0.1 tell 192.168.0.3 0:0:0:0:0:01 0:0:0:0:0:03 0806 60 arp reply 192.168.0.1 is-at 0:0:0:0:0:01 0:0:0:0:0:03 0:0:0:0:0:01 0800 62: 192.168.0.3.1029 > 192.168.0.1.23: S 21441998:21441998(0) win 8192 (DF) (ttl 128, id 32010) 0:0:0:0:0:01 0:0:0:0:0:03 0800 58: 192.168.0.1.23 > 192.168.0.3.1029: S 2811556923:2811556923(0) ack 2144199 win 32736 (ttl 64, id 175) *** What we have here are four separate packets initializing a telnet session. First packet: ARP request: get HW address of IP to connect to Second packet: ARP reply: Here's the hardware address requested from "server" Third packet: I want to telnet to you, you listening? Fourth packet: Sure thing bro, acking your port 23 request, let's go. We're not concerned about the latter two packets, just the first two. The ARP request/reply pair. If we can somehow convince server that it wants to send packets destined for "joe" to "tom", we're in business. Sounds easy enough, and in a way that's true. But there are several obstacles to overcome. You might say, "let's just assume the IP address of joe." That won't work. You'll have two machines responding to the same IP address, you really don't want that. You don't want a message on either box complaining that there's duplicate IPs on the network either. When your machine sees a packet go by, it checks the hardware address stamped on the ethernet packet header. If it's not a match, the packet isn't for us, and we don't care about it. More specifically, the device driver never looks at the destination IP, just the HW address (of course, there are exceptions where some drivers dig more into the packet for various purposes). This can be taken advantage of in numerous ways, and for ARP attacks, it can really come in handy. If we ifconfig up an interface on "tom" with the IP address of "joe", and tell "server" that "joe"'s IP address is located at "tom"'s Hardware address, then server should send packets destined for "joe" to "tom", and it will also accept packets from "tom" thinking that it's "joe", bypassing the IP-based security implemented on "server". Ok. Read that again. * We tell SERVER that the IP address of JOE is really located at the HARDWARE ADDRESS of TOM. Function: Packets from SERVER to JOE will be encapsulated on the ethernet with headers sending it to TOM instead of JOE (instead of the header including the ethernet address of JOE, it will have TOM'S address instead. This means JOE will ignore the packet while TOM will recieve it. SERVER will not know that TOM isn't JOE, because TOM is talking with JOE's IP). How: We send a hand-crafted ARP packet (reply specifically, it can be a request, but we'll get into that another time. The packet would look like this on the wire: 0:0:0:0:0:02 0:0:0:0:0:01 0806 60 arp reply 192.168.0.3 is-at 0:0:0:0:0:02 TOM SERVER ARPREPLY IP OF JOE HWA OF TOM Now, if you try to telnet to SERVER from TOM, you should be able to connect, and it will allow you to log in as root. But wait! We lit up a message on the Windows box on Joe's desk saying that there's an IP address conflict on the network! Busted! There are several things you must take into account: 1) You need to "ifconfig -arp eth:" and set up static ARP entries and routes when you do this. You don't want that interface speaking ARP to anyone unless you make it but you need it to know where to send packets. 2) Doing this *during* an existing session between JOE and SERVER will cause that connection to drop, unless you work fast. 3) You need to be constantly sending poison ARP to SERVER *and* JOE during your attack. As long as you keep telling both machines where to find (er, where you WANT them to find) each other, they won't *ask*. And the less they ask, the better. Situation 2: I want to hijack joe's session to server. How can this be done using ARP as a tool? First off, remember what we said about accidently cutting off Joe's session earlier? Well now that's exactly what we want to do. During a conversation between JOE and SERVER, you inject poison ARP, telling SERVER that you're JOE, and telling JOE that SERVER is the printer or something. Then, you proceed to send a flood of spoofed ACKs to the SERVER, pushing the sequence numbers out of JOE's acceptable window, and by the time JOE finds out what happened, you've already got his end of the connection, and SERVER hasn't even noticed anything funny (I'm not going to cover the insides of TCP sequence numbers today, that's another article. :) ). How this happens: * JOE is talking to SERVER * TOM assumes JOE's IP address. * TOM sends out an ARP reply unicast to JOE saying SERVER is-at 0:3:1:3:3:7 or something, then immediately send a packet to SERVER saying that JOE is-at 0:0:0:0:0:2 (tom's real HW address) * To be on the safe side, you push the sequence numbers of the session way out of JOE's acceptable range. * JOE is a Windows box and doesn't know what the hell is going on. He's just sending packets looking for SERVER and probably grinding the hard drive or showing a little animated paperclip that says "Click here to learn more about session hijacking" which just points to a broken link on microsoft.com. * Meanwhile, TOM is re-synching the connection to SERVER, and as far as SERVER is concerned, the connection was just broken for a moment, and now is better, and will gladly talk to TOM in the place of JOE, considering that the IP is right and that TOM's HW address maps to that IP in the arp table on SERVER. * JOE is still a Windows box and at this point Windows telnet will bring up a message like "Lost Connection" and probably lock up telnet because it's so poorly coded and has no emulation and... anyway.... * TOM has full control over the connection and SERVER couldn't be happier about it. JOE just sits there and plays a neat screen saver and grinds the hard drive every couple minutes. I will probably be writing an article specifically on this topic, as I'm not going to cover this more specifically in the scope of this article. Situation 3: I just picked up 2600 at Barnes and Noble. I want to be a hacker. My 6th grade computer teacher is a real dork and I want to make the network not work right n stuff. I tried mashed potatos in the power outlets but I got in trouble. What can I do? Well, good news for you. ARP can cause all sorts of problems on a network. If you haven't figured out how this is possible yet, I'm not sure what to tell you, read the article again and maybe you'll think of a way you could make computers on a network not able to talk to each other using ARP. I hope you enjoyed, and should you have any questions, email me. -bk Billy: "Mom! Sally hijacked my irc session and made me say stuff!" References: I. "TCP/IP Illustrated, Volume 1: The Protocols" W. Richard Stevens, January 1994. (Addison-Wesley Professional Computing Series). ISBN:0201633469 II. "Playing redir games with ARP and ICMP" MESSAGE THREAD: document sections reviewed were authored by Yuri Yolobuev =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- An Electricity Primer, Part I by P3nnyw1se the Clown (p3nnyw1se@hotmail.com) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The first of (hopefully?) many articles on electricity. Tell me what you think. But only if you have something nice to say; didn't your mother teach you anything? Please, enjoy. I will not be held responsible for your stupidity. Don't come crying to me if you stick your tongue in an electrical outlet or decide to bring your toaster in the shower with you. I will have absolutely no sympathy for you, and to add insult to injury, I will laugh at you. So there. CHAPTER 0: PREFACE ------------------ Section I - Ranting and Raving Most people don't understand electricity. Some know a little about what to do in a lightning storm, or how to reset their circuit breaker if a fuse blows, but the vast majority couldn't explain to you what exactly it is or does. Most never even question it. They take for granted their computers, televisions, toasters, espresso machines, hair dryers, calculators, and many other of life's conveniences. They don't even THINK about electricity until they get pissed off when the power goes out and they can't take their hot shower in the morning. In order to truly understand the electronics we use every day (and computers, specifically), we need to at least have a good knowledge of how electricity works and some of the main concepts. Section II - Requirements I think it only take about three things to learn electricity: 1. Patience. Sometimes you might not understand something right away. And that's okay, just study the chapter again and research some more from other books, and you should be okay. 2. Math. Teaching you algebra is WAY beyond the scope of these articles. I will be assuming you have at least a 9th grade math level. 3. Desire. I can't make you learn anything; you have to want to. Section III - How to Use These Articles This is a series of articles. In each article there will usually be two or three chapters. The chapters are split up into sections. The best way to learn the material is to read around one chapter a day, and only continue when you understand all of the material in the previous chapter. CHAPTER 1: BASICS OF ELECTRICITY -------------------------------- This chapter will introduce you to the very basics of electricity. I think this is probably the most important chapter, because it should hopefully give you an idea of just what and how electricity operates. Section I - Protons, Neutrons, and Electrons Matter is defined as anything that occupies space and has weight. Your mother is an example of very large matter. Other examples of matter are the air you breathe, the root beer you drink, and your pet turtle. All matter is built with atoms. An atom is the smallest basic unit of matter. For many years, atoms were thought to be the smallest thing in existence. Then they discovered sub-atomic particles inside the atom. I know what you're saying: "I learned all this crap in Mr. Smith's 8th grade science class!" True, but you were too busy staring at the breasts of the girl sitting next to you, so pay attention. The atom is built with a nucleus at the center and other, much smaller, particles called electrons circling the nucleus. The nucleus contains positively charged particles called protons, and particles with no charge called neutrons (get it? neutral, neutrons?). Electrons are negatively charged. Each atom has a different number of protons in the nucleus. The number of protons determines its atomic number. For example, copper has 29 protons, therefore its atomic number is 29. Atoms also have weight. The atomic weight of an atom is determined by the mass of the atom. Only protons and neutrons contribute to the mass. Because a proton is approximately 1,845 times the size of an electron, the electrons really don't affect the mass at all. Hydrogen (the only atom with no neutron at all and only one proton) has an atomic weight of 1.0079, compared to iron's atomic weight of 55.847. The way the electrons orbit around the nucleus is not random. They orbit in circles called shells. The innermost shell is designated K, and the rest, going outward, are L, M, N, O, P, and Q. Each shell can only have a certain number of electrons (FIGURE 2-1). If the first shell, K, has all the electrons it can fit, the electrons go to the next shell, and so on. .--------------------------------------------------------. | Shell Designation | Total Number Of Electrons Possible | |-------------------|------------------------------------| | K | 2 | | L | 8 | | M | 18 | | N | 32 | | O | 18 | | P | 12 | | Q | 2 | `--------------------------------------------------------' FIGURE 1-1: Number of electrons each shell can hold. The outermost shell with electrons contained within is called the valence shell. The number of electrons this shell contains is this atom's valence. The farther away the valence shell is from the nucleus, the weaker the strength of the orbit is, so it's easier for an atom to gain or lose electrons. It's also easier to gain or lose electrons if the shell isn't full. An atom that has the same number of protons and electrons is electrically balanced (remember, neutrons have no charge). When an electrically balanced atom receives or gives an electron, it is no longer electrically balanced. When an electrically balanced atom receives an electron, it is negatively charged, and is called a negative ion. When an electrically balanced atom gives an electron, it is positively charged, and is called a positive ion. This process is called ionization. Section II - Conductors and Insulators If these electrons in the valence shell gain enough energy from an external force, they can leave the atom and become free electrons, moving from atom to atom. Materials that have many free electrons are called conductors. Many metals are examples of conductors. (FIGURE 1-2) Often times copper is used because of its good conductance and its relatively low price. .-----------------------------------. | Common Conductors | |-----------------------------------| | Silver | | Copper | | Gold | | Aluminum | `-----------------------------------' FIGURE 1-2: Metals are good conductors. (Listed in the order of their conductance) Insulators are the exact opposite of conductors. They are materials that have very few free electrons. Insulators can absorb electrons from other atoms to fill their valence shell, and therefore eliminate free electrons. (FIGURE 2-3) .-----------------------------------. | Common Insulators | |-----------------------------------| | Mica | | Glass | | Rubber | | Air | `-----------------------------------' FIGURE 1-3: Materials used as insulators (Listed in the order of their insulation) Section III - A Brief Look at Current Electrons move from negatively charged atoms to positively charged atoms. This movement or flow of atoms is called current. The symbol for current is I. The amount of current is the sum of the charges of the electrons moving past a single point. To measure the amount of charge we use coloumbs. The symbol for the coloumb is C. Because electrons have so little a charge, the charge of 6,280,000,000,000,000,000 (or 6.28 * 10 ^ 18) electrons is one coloumb. If one coloumb of charge moves past a single point in one second, that is called an ampere (or sometimes just an amp). The symbol for the ampere is A. Current is measured in amperes. Section IV - Use the Force, Luke (A Brief Look at Voltage) Voltage, difference of potential, and electromotive force are all terms that mean the same thing. Basically, when there is a group of atoms with lots of electrons and another group of atoms with a small amount of electrons at the other end, connected by a conductor, current will flow. The force that makes current flow is called voltage. The work done in a circuit is the result of voltage. The symbol for Voltage is E (for EMF, or electromotive force). The unit for measuring voltage is called a volt. The symbol for the volt is V. One volt is the potential applied to a circuit to cause one ampere of current to flow through a conductor whose resistance is one ohm (we will deal with ohms and resistance in the next section). Section V - A Brief Look at Resistance Some greedy little atoms don't like to give up their electrons without a fight. They are said to resist the flow of current. This opposition to current flow is called resistance. The symbol for resistance is R. There is no material that has NO resistance. However, some materials have more resistance than others. Some materials have very little resistance, and are called conductors. (FIGURE 1-2) Other materials have plenty of resistance, and are called insulators. (FIGURE 1-3) Resistance is measured in ohms. The symbol for the ohm is the Greek letter omega. One ohm is the amount of resistance that allows one ampere of current to flow when one volt is applied. CHAPTER 2: SCIENTIFIC NOTATION ------------------------------ If you already know what scientific notation is and how to use it, then go ahead and skip this chapter, but it certainly wouldn't hurt to review it. Definetly read this if you're not familiar with scientific notation. Section I - What is Scientific Notation, Anyway? Scientific notation is an easy way to express very large or very small numbers. We use these type of number many times in electricity. The format for scientific notation is a single digit number being multiplied by a power of ten. For example, 1002 in scientific notation is 1.002 * 10 ^ 3. Section II - Reading and Converting Scientific Notation Reading a number in scientific notation is as easy as a drunk cheerleader at a high school party. First, we need to take a look at whether the exponent is positive or negative. Positive means to move the decimal point to the right, while negative means to move the decimal point to the left. For example: 3.1337 * 10 ^ 4 = 31,337 All we had to do was move the decimal point to the right (the exponent was positive) 4 places (the exponent was 4). But let's take a little trickier number: 7 * 10 ^ -9 = .000000007 Because the exponent was negative, we move the decimal point to the left however many times that is indicated, in this case nine times. An ampere is a large unit of current, and is not often used in circuits. Commonly, something smaller, such as a milliampere or microampere are used. A milliampere is 1 / 1,000 the size of an ampere, and a microampere is 1 / 1,000,000 the size of an ampere. In other words, it would take 1,000 milliamperes to equal the amount of current as one ampere. There are many other commonly used prefixes. (FIGURE 2-1) .------------------------------------------------------. | Prefix | Symbol | Value | Power Of Ten | |--------|--------|---------------|--------------------| | Giga | G | 1,000,000,000 | 10 ^ 9 | | Mega | M | 1,000,000 | 10 ^ 6 | | Kilo | k | 1,000 | 10 ^ 3 | | Milli | m | .001 | 10 ^ -3 | | Micro | æ | .000001 | 10 ^ -6 | | Nano | n | .000000001 | 10 ^ -9 | `------------------------------------------------------' FIGURE 2-1: Commonly used prefixes; their symbols and values. So, for example (using FIGURE 2-1) how many volts are there in five megavolts? 1,000,000 V X V ------------- = ------ (1,000,000 megavolts = 1 volt) 1 MV 5 MV 1,000,000 X ----------- = --- 1 5 1 * X = 5 * 1,000,000 (Cross multiply) X = 5,000,000 V So there are 5,000,000 volts in a megavolt. For some more practice, how many amperes are their in 42 milliamperes? 1,000 mA 42 mA ---------- = ------- (1,000 milliamperes = 1 ampere) 1 A X A 1,000 42 ------- = ---- 1 X 1,000 * X = 1 * 42 (Cross multiply) 1,000 * X 1 * 42 ----------- = -------- (Divide both sides by 1,000) 1,000 1,000 X = .042 So there are .042 amperes in a milliampere. CHAPTER 3: CURRENT ------------------ Current, the movement of electrons from one atom to the next, is an important thing to understand when working with electronics. Section I - Laws of Electrostatic Charges Current, as defined earlier, is the movement of electrons. The force that moves them is voltage. Anyway, let's take a look at the laws of electrostatic charges: 1. Unlike charges attract. 2. Like charges repel. Easy enough. This means that an electron would be attracted to a proton, but a proton and a proton or an electron and an electron would repel each other. Because the negatively charged electrons are attracted to the positively charged protons, the electrons continue orbiting the nucleus of an atom. The centrifugal force keeps the electrons from just smacking into the nucleus. Because a single electron has a charge very, very, small we measure the charges in coloumbs, which is the charge of 6.28 * 10 ^ 18 electrons (see chapter two for a review of scientific notation if you're confused by that number). The symbol for the coloumb is C. Section II - The Flow of Current When an area has lots of positively charges atoms, and another area has lots of negatively charged atoms, and they're connected by a conductor, the electrons will move from atom to atom. That long sentence could be shortened by saying: When there's a difference of potential, current will flow. The unit of measurement for current is the ampere. The symbol for the ampere is A. An ampere is the amount of current when one coloumb of charge moves past a point in one second. A formula we could use to describe this: Q (I is current in amperes, Q is quantity of electrical charge in I = --- amperes, t is time in seconds) t So, using the above formula, how many amperes are present in a circuit if 15 coloumbs moves past a point in 3 seconds? 15 I = ---- (Filling in the numbers for the variables) 3 I = 5 So the current would be 5 amperes. Let's try a harder one: A circuit has 19 amperes of current. How long would it take for 7 coloumbs to move past a point in the circuit? 7 19 = --- (Filling in the numbers for the variables) t 19 7 ---- = --- 1 t 19 * t = 1 * 7 (Cross multiply) 19 * t 1 * 7 -------- = ------- (Divide both sides by 19) 19 19 t = .368421052 So the time it would take would be about .36 seconds. If electrons are added to one side of a conductor, and electrons can be taken away from the other side, current will flow through the conductor. These electrons will move from one atom to the next, bumping that electron onto the next atom, etc, etc. So no one electron moves very far, they just knock the next electron onto the next atom. Because of the law of electrostatic charges, current flows from negative to positive. Although the movement of electrons is slow, each individual electron moves very fast (the speed of light, or 186,000 miles a second). The device that will take electrons from the positive side and reapply them to the negative side is called a voltage source (commonly a battery). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Wireless Ethernet and Its Workings by Saint skullY the Dazed (skully@sysfail.org) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- By now most of you have probably heard about wireless ethernet devices from companies such as Breezecom and Airolan. But you may not understand how they work and why. The purpose of this article is to get you familiar with them (specifically Breezecom's, which I have the most experience with) and explain how they accomplish certain things. 1. What these devices are ------------------------- Wireless ethernet devices are usually a little box with a power cord, 10bT port, and an antenna port of some kind. They will usually be very dumb (forwarding all traffic both ways), or fairly intelligent (forwarding only certain traffic, and possibly even some firewalling abilities). Most will forward whole ethernet segments (making the two segments transparent to one another), although some are designed specifically for single workstations. These will be described in detail below. 2. How they work ---------------- Since I'm very familiar with Breezecom, slightly familiar with Airolan, and not at all familiar with other brands, I'll describe how Breezecom's devices work. The theory is sound for all wireless ethernet devices though. Basically, the wireless device (radio) uses a standard RJ-45 patch cable, which is then plugged into either a machine or a hub (depending on the radio, it will either use a straight through or crossed cable). Then, the radio communicates with its peer via the antenna port, which can either have an omnidirectional antenna (anywhere from 4" to 36", depending on the distance) or an unidirectional antenna (not unlike a microwave antenna). The Conifer DB-24 is a commonly used unidirectional antenna (24db, about 36"x12" aluminum). The peer--usually a bridge, or in the case of Breezecom equipment, what's known as an Access Point (AP)--can handle several radios. This bridge then connects to the network via another RJ-45 patch cable. For those who grill on ascii charts, here goes an attempt. --------------- --------- ----------- ----------- --------- ----------- | Workstation |-| Radio |-| Antenna |-| Antenna |-| Radio |-| Network | | or Hub |-| 1 |-| 1 |-| 2 |-| 2 |-| | --------------- --------- ----------- ----------- --------- ----------- Now then, with Breezecom equipment, Radio 1 can be one of two different radios. It will either be what's known as a Single Access radio (SA) or WAN Bridge (WB). Now then, how do you know if you need an SA or a WB? Well, the SA has software that checks the hardware (mac) address of the machine it's plugged into and will not forward any packets destined for/from mac addresses other then the one it was initially plugged into. This means that an SA can not be plugged into a hub (using a crossover cable) and used as a WB. The WB, on the other hand, can be plugged into a hub, and has been factory wired to use a straight through cable for plugging into a hub. It does *not* check mac addresses and will forward packets from any mac address to the rest of the network and vice-versa. The WB also has it's own mac address (whereas the SA assumes the mac address of the interface it's plugged into) and can be assigned an IP. This makes the WB preferrable for a corporate environment, while the SA is designed more for end-users. Now then, Radio 2 is an AP. The AP is designed to connect to multiple SA/WB's for the purpose of linking multiple segments to the main ethernet segment. This allows a corporation with several buildings, for example, to have on AP about the middle of their campus with a large omni-directional antenna and then each building with its own WB and localnet setup. Not only does this allow the company to avoid running expensive fiber between buildings, but it allows them to easily add more buildings and links as necessary. This also lets them use NetBeui or IPX/SPX transparently across segments. 3. How they're managed ---------------------- Wireless equipment, being networked devices, must be able to be configured. Breezecom has included two ways that their radios can be managed, either through a serial console (9600, N81, no flow control), and for the AP and WB's, SNMP (aka, Security Not My Problem). Obviously, by using only the serial consoles, you limit any security problems that may exist, but in a network with many radios, that's not always practical. Fortunately, Breezecom's SNMP traps seem to be fairly secure. A. Serial Console The serial console operates in much the same way serial consoles act. You connect the terminal, fire it up, and start configuring. It's a simple menu with most screens having options numbered sequentially. The basic functions are as followed: 1. System Setup (IP addy, ESS ID) 2. Advanced Setup (Filtering certain protocols, SNMP on/off) 3. Maintenance (Various Logs, packets sent/received/dropped) 4. Security Level (User/Admin, password) The menus are all self-explanatory, and after five minutes of exploring, you should be able to find most anything you want. Obviously, if someone has several SA's out there, they don't want their users to be able to reprogram at will, hence the security level and optional password. B. SNMP Management Everything available on the serial console is also available via SNMP. As do most SNMP-managed devices, the Breezecom radios have two communities, private and public. Access to the private community is controlled via the password, although everything in private is available read-only in the public community (from what I've found, at least... I've not had time to thoroughly examine all the SNMP stuff). In my case, I was working for an ISP using Breezecom radios with the AP's 75 feet up a tower. SNMP management was very nice because occasionally we'd have a WB flake out and stop forwarding packets, at which point we'd use the SNMP software to reset it rather then driving 10 miles to the site, climbing 75' and resetting it by hand. On the downside, SNMP is not the most secure protocol in the world, and can be sniffed for the password. 4. Problems With Wireless ------------------------- Wireless ethernet in and of itself has many problems, including limitations of ethernet and protocols such as TCP/IP and ARP. The radios should be able to limit the problems (for example, IP spoofing), but they don't. The only problem they avoid is spoofing ARP packets (since ARP is based on the mac address, not the IP address). You can still smurf, spoof IPs, assume others' connections, and generally wreak havoc with the network fairly anonymously. We'll go into a few problems and how the radios could theoretically prevent, or at least minimize, damage that can be done. A. Spoofed IPs While it may not be beneficial to everyone, if the radio would monitor TCP traffic (it has native TCP support) and only allow the traffic for a certain IP across, as well as the mac addy, this would avoid a whole slew of problems. Most routers are configured to not allow spoofed IPs. These radios should have the same configuration option. Naturally, for purposes of subnets (which can be done with SA's), you would want this off, but for the purpose of a single workstation it should be an option. Actually, this would fix most of the problems I was thinking of. B. Network Sniffing In my experience with these radios, I can see everything on the segment, just as if I were connected directly to the hub. This can be both good and bad. Bad in the sense that anyone can sniff the network for passwords (think you're ok there? Do you use telnet, pop3, snmp?), but I'm sure that some paranoid admins would like to be able to monitor their network to watch for problems. Now then, again, this could be something that can be configured in the SA. Only allow packets that are destined for ethernet-wide broadcast, and packets for a particular mac address. 5. Conclusion ------------- I do realize that this could be way more complete; however, if I start getting complete I'd probably step on Breezecom's toes a few times. If there's enough interest, and I think I can do it without potentially getting myself in trouble with Breezecom's legal department, I'll write a follow-up that gets into more detail. If you do have a local ISP doing wireless, and they're a fairly decent ISP, I'd heartily recommend it over DSL or cable modems. And if you're in a corporation with multiple buildings trying to find a cost-effective way to network them, definitely don't pass over wireless ethernet without giving it a good look. Despite the security problems that could be avoided with better software, they are a good way to go. Send comments, questions, hate mail, etc. to skully@sysfail.org, as always. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Hackers and the Criminal Stereotype by Mr. Sonik (sonik@sysfail.org) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Sometimes I wonder what the big deal is with people who are labeled as criminals simply for having a hobby that may dabble into some illegal areas. Society is quick to label hackers as criminals, even if the hacker discovers a loophole in the telephony or computer world and exploits it once for learning purposes--not only for themselves, but for the security professionals that are supposed to keep the telephone network and computer systems secure. Society asks "What's the big deal? They break the law, right? They should go to jail." Well, should a hacker get more of a sentence for stealing three dollars in long-distance calls than say, a rapist or a drug dealer? I know I can't influence people with my opinon alone, so I decided to give you some information and let you be the judge. One thing has become very clear: we need to watch out for ourselves, and more importantly, others who share the same interests. We simply can't keep following the road that we are on, or we will crash for sure. So what can we do? Some of the things we can do to help change society's perception of us is to educate people as to what exactly a hacker or phreaker is. We are merely nothing more than hobbyists who choose to explore the outer limits of technology. What's so bad about that? What's the problem with wanting to understand the ins-and-outs of a computer system? Or maybe you would like to understand how the telephone of yours really works. Maybe you could start a computer club or hacker/phreaker club in your area. 2600 meetings are a good example of these types of public gatherings. This also serves as an excuse to get out of the house and meet new people. Maybe you could start a local newsletter or something similar that focuses on the newest trends of the computer industry. Almost anything that you could think of to generate positive attention in your community towards the hacker subculture would be something worth doing. I had heard of people donating their time to building computers out out of outdated hardware to donate to local charities, schools, and needy families. You would be suprised at how excited a poor family gets over an old 286 and a dot matrix printer. When coupled with, say, a 2400 baud modem and free internet access to a shell account, this could make so much more information availible to a family that never had that ability before. And that's what hackers are all about. The spread of information. Anytime someone helps the community in such a way, he is usually always thought of a good person. Imagine what it could do to reduce society's fear of hackers, and at the same time educate them as to the difference between a hacker and a white collar criminal. Imagine how the community would respond to a hacker who is donating time and/or knowledge to the community by teaching computer classes, or educating others about computers and personal security. I know I would feel a whole lot safer if a hacker taught me things about computer security, rather than an underpaid shmuck teaching about a subject they only read about in a book. I urge people to get out and donate their time to the community whenever they can. Chances are, only respect will come your way after doing good deeds for others. These are only some of the things that we can do to combine our knowledge and expertise to help hackers and computer enthusiasts gain a good reputation in the public eye. Remember, you must prove to others that you are a responsible person in order to gain trust throughout society. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- A General Overview of Open Source Software by SlapAyoda (vader@geekbox.net) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Open source software is often referred to as "free software," not because of how much it costs, but because of the way it is freely distributed. The opposite of proprietary software, which is developed only by the company who originally manufactured it, and prohibits unauthorized distribution, open source software is presented with its source code, encouraging users to distribute and contribute to the software. Contributions come in several forms: suggestions, bug fixes, and new ideas. Choosing open source can be a good decision for both the manufacturer and the user. Developers gain the assistance of their user base in coding the program, and the users recieve software that they can modify to, as Eric S. Raymond puts it, "scratch their own itch." Open source software can be very diverse, ranging from games to powerful internet applications that bind together "the web." Currently, open source hardware is being developed, as well as an open source BIOS (http://www.freiburg.linux.de/OpenBIOS/). A small debate has also arisen about treating books with an open source-type policy. Open source software has become a hot topic for discussion on such websites as Slashdot (http://slashdot.org), and in essays such as the excellent "The Cathedral and the Bazaar" by Eric S. Raymond (http://www.redhat.com/redhat/cathedral-bazaar/cathedral-bazaar.html). This article will attempt to give the reader an understanding of the basics of open source software, and will also describe some popular examples of open source software. Linux is an open source operating system that is available for download, at no cost, from many different locations. It is also purchasable in CD form, at a very low price. Linux was developed by Linus Torvalds in 1991, at the Univeristy of Helsinki in Finland. Linux is a POSIX-compliant operating system, and is designed to be a UNIX clone. Linux is made up of two parts: the kernel, which is the core of the operating system, and additional software. Orignally, people installed the Linux kernel by hand, and then installed and used other individual bits of software to do their tasks. Today, most people use distributions, developed seperately by other companies. These distros consist of a current version of the Linux kernel, and useful software packages. It is also a great deal easier to install a distro than just the kernel by itself, and some offer graphical installation programs. The three most widely used distros are Slackware, Red Hat, and Debian, although there are many more. There are many people who use Linux, and the number is increasing now at a faster rate than ever before. These users often make contributions to both the kernel and software. Most users of Linux believe strongly in the open source philosophy. Without it, Linux might not be able to survive. For more information on Linux, visit http://www.linux.org. GNU software is fundamental to the UNIX community. From bash to make to zlibc, GNU software is seen to most as the standard in quality UNIX software. GNU software differs from other software by having its own special license that specifically allows modifcation and distribution by any of its users, under certain circumstances. The GNU General Public License, or GPL, states that users may modify the software as they wish and distribute either the original or modified copy, for a fee if they choose. The one rule that applies to the software, however, is that the person must pass on the freedoms to the person he distibutes the software to. This is called "Copylefting". As opposed to copyrighting, it ensures that users recieve a program that they can modify and distribute. Users also have a signifigant impact on development here, as oftentimes they develop their own versions of current programs to suit their own needs, or they might contribute thier ideas or code to the original manufacturer. For more information on GNU software and the GNU philosophy, visit http://www.gnu.org/gnu/gnu-history.html. BSD, short for Berkley Systems Development, is a term that encompasses several UNIX variants. FreeBSD, NetBSD, and OpenBSD, are three seperate packages, all with separate software, but based on the same version of UNIX, BSD. Similar to Linux, they are open source and POSIX-compliant, but they all vary a bit. All of the BSDs are available for download on the internet, or for purchase on CD. Many people also use and contribute to the BSD efforts. For more information visit http://www.freebsd.org, http://www.netbsd.org, or http://www.openbsd.org. Open source development is not confined to UNIX. Netscape has recently announced that their web browser, which runs in both Microsoft Windows and UNIX, as well as MacOS and other platforms, will now be open source. They have created a specific subset of their company, named Mozilla (http://www.mozilla.org/), to deal with the integration of users' code. This is expected to have a large impact in their continuing battle against Microsoft's Internet Explorer, as Microsoft has decided to not make Internet Explorer open source. Another company that serves the more mainstream operating systems as well as UNIX with a great open source project is Apache (http://www.apache.org/). Apache webservers serve many of the popular websites of today, and run well in Windows and UNIX. They offer some of the best performance around, certainly due in part to the help of countless users who have contributed to the project. A first in the open source community, a small group of people are beginning work on an open source BIOS, named appropriately OpenBIOS. They are planning to create a product that will support a wider range of hardware and also be more geared towards Linux. Recently, they released a very preliminary product that will work on two different chipsets. It looks like OpenBIOS has a bright future ahead of it. For more information, visit http://www.freiburg.linux.de/OpenBIOS. Microsoft is a company notorious for being opposed to open source software. One may speculate that a monetary profit becomes difficult to attain off of open source, as it could be copied freely at no cost to the user. Since Microsoft has already established its primary goal as profit, their stance is only logical. This past Halloween, an office memo of theirs was found and released to the public on the internet. It concerned open source, and how to combat it. It spoke a great deal of Microsoft's strategies on beating Linux, Mozilla, and other competitors. It has been dubbed the Halloween Document, and has caused much havoc within the computing community. For more information, visit http://www.opensource.org/halloween.html. Open source software has a large effect on computing daily. Every user of the internet makes use of open source software without even knowing it. For example, bind--a program that converts numeric IP address to hostnames. Without it, users would have to memorize IP addresses to know which webpage is which. Sendmail is open source software that delievers a great majority of the internet's mail. The future of open source can only be a postive one. Even without the support of computing giants Apple and Microsoft, developers have shown that they can be successful in producing a good product that will continue and progress by constantly evolving. But open source development can not continue without the support of the community. If you want to get involved in the open source movement, visit one of the pages mentioned in this article. You'll be glad you did. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- An Introduction to the ICMP Protocol by BarKode (barkode@sysfail.org) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Continuing the line of articles about common internet protocols, here's a look into ICMP, or Internet Control Message Protocol. ICMP is an essential protocol on IP-based networks, as IP is not a "reliable" protocol. For those of you wondering why I keep writing articles covering the basics of standard internet protocols, it's brought on by a number of things. One of them being that System Failure has changed its focus completely. By the time I joined last year, the group had weeded out articles focusing on crime and "how to rip off the phone company" and such. Gears have shifted towards a technical, intelligent magazine for a larger, more intellectual audience. I sincerely hope that the difference has been noticed. Secondly, demographics (e-mails to SysFail) show a crowd that is new to the scene, and helping those people is an important part of what System Failure is all about. ICMP is essential to the operation of an IP -based network for a variey of reasons. IP being "unreliable" (there is no guarantee an IP packet will get to its destination), there must be an error-handling routine. ICMP is that solution. If for some reason a machine can't handle an incoming IP packet, it drops the packet and sends back an ICMP error message to the machine that sent the original packet telling it something is wrong. The most familiar function of ICMP to most people is the Echo Request/Reply set, or "ping" as it's better known. When you ping a machine, you're sending an ICMP message called an "echo request" to that machine. The network layer of that machine will send you back an ICMP "echo reply," if it is so configured to do so. An ICMP packet looks like this: .---------------------------------. | IP Header | ICMP Message Data | `---------------------------------' 20 bytes The actual header of an ICMP packet looks like this: 0 7 8 15 16 31 .-------------------------------------------------. | 8 Bit Type | 8 Bit Code | 16 Bit Checksum | `-------------------------------------------------' The rest of the packet differs between ICMP "types." An ICMP type declares what the function of the ICMP packet is, and how it's to be dealt with by the system. An ICMP "code" is a subtype. For instance, ICMP type "3" code "0" is a "network unreachable" while a type "3" code "1" is a "host unreachable". ICMP type "3" is the "destination unreachable" type. So, when we ping a machine, we create an ICMP "echo request" packet. The type is "8" and code is "0". The packet is created, and assuming you were using an ethernet for this, the packet would look similar to this: 00000000: 00 40 05 16 56 AA 00 00 b4 54 b1 BB 08 00 45 00 00000010: 00 54 54 ed 00 00 40 01 19 d9 d1 AA BB CC d1 BB 00000020: CC EE 08 00 67 74 41 2d 00 00 5a 9b 5b 36 ab 89 00000030: 03 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 00000040: 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 00000050: 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 00000060: 36 37 That's what the packet would actually look like on the wire. Let's break it down, protocol by protocol: 00000000: 00 40 05 16 56 AA 00 00 b4 54 b1 bb 08 00 -- -- |_______________| |_______________| |___| | | | Destination Hardware Source Hardware Protocol (16 bits) Address Address (08 00 == IP) (48 bits) (48 bits) This is the ethernet layer, containing the source and destination hardware addresses for the packet, as well as what protocol is encapsulated within it. In this case, 08 00 means its carrying an IP packet. ____ 8 bit Type of || service field 00000000: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 45 00 ||__ (4 bits, msb) Version (ipv4 == 4) | | (4 bits, lsb) Num. of 32 bit words in header, normally 5 This is the IP layer, which contains information necessary to move the packet from network to network, or machine to machine for that matter. The first 4 bits of the first byte of the header specify what IP protocol is in use. On today's internet, we use IPv4, so this would be a 4. The second, least signifigant 4 bits specify how many 32-bit words are located within this packet. You'll find this is often a 5, because there are most often 5 32-bit words in an IP packet, without options. The second byte is the 8-bit type of service field, which we'll dig into deeper in another article. Assume for now that this field gives more detail as to the application that is sending this data and how it should be handled. 16-bit total length (in bytes) | 3-bit flags, | 13-bit Frag Offset | | | | IP Protocol Type (ICMP) (8 bits) | (16bits) | | | Fragment |(8bit)| (16bits) Source IP (32 bits) | ID | TTL | Checksum | Destination IP (32 bits) _|_ _|_ _|_ | | _|_ ____|____ _______|______ | | | | | | | | | | | | | | 00000010: 00 54 54 ed 00 00 40 01 19 d9 d1 AA BB CC d1 BB | 00000020: CC EE -- -- -- -- -- -- -- -- -- -- -- -- -- -- | |___| | |____________________________________________________| The 16-bit total length is the length of the whole datagram, in bytes. Fragment ID (sometimes just "ID"), Flags and Frag offset will be discussed in another article. The "Time To Live" is the maximum amount of hops this packet can go through before it is discarded and the sender is delivered a message saying that the packet didn't get to its destination. Each hop decrements this field by one before sending the packet along. The protocol type in this case is a "1", specifying ICMP as the protocol in use. The checksum is a matter of one's complement notation against the header on both the sending and receiving machines, and we'll look into this more specifically in the next article. The rest is self-explanatory. Now for the ICMP packet itself. ICMP Type - Echo Request (8) | Identifier - UNIX implementations use the PID | ICMP Code, 0 | of the calling process | | | | | Checksum | Sequence Number | | _|_ ___| _|_ __________________ | | | | | | | | | | 00000020: -- -- 08 00 67 74 41 2d 00 00 5a 9b 5b 36 ab 89 | 00000030: 03 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 | 00000040: 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 ---- 56 bytes of 00000050: 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 | data 00000060: 36 37 | (Variable) ___| The first two bytes are the ICMP type and code, respectively. The checksum works the same as it does for IP. The identfier is set to the PID on UNIX machines, usually. Either way, it's a unique identifier for whatever purpose the machine needs. Using the PID is a good idea, as it allows a machine to determine what process the packet belongs to. Anyone who has used ping knows what the sequence number is. The sequence number is an incrementing number for each packet sent, allowing a process, or person for that matter, to track their packets. The rest of the data is piggybacked onto the packet to pad it to meet the minimum transmission unit for the network media, as well as to send some more data with the packet in order to test speed between two places. The echo reply is then generated, and the packets look very similar. The exceptions being the source/destination HW and IP addresses are switched, and the ICMP type is changed from "8" to "0" (Echo Reply). **** We'll look more into this and other topics in the next System Failure. For those of you that are interested in protocol analyzation, I suggest picking up a good sniffer/network analyzer and watching what goes by on your network. You might find some interesting things, and it's a good way to learn about protocols and their implementation on different operating systems and networks. Hope you enjoyed, and keep those e-mails coming. -bk References: I. "TCP/IP Illustrated, Volume 1: The Protocols" W. Richard Stevens, January 1994. (Addison-Wesley Professional Computing Series). ISBN:0201633469 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Maybe System Failure 16 will be out in early February or so. Who knows. See you all in a couple months. I think. :) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-E-O-F-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-