home *** CD-ROM | disk | FTP | other *** search
/ Cuteskunk BBS / cuteskunk.zip / cuteskunk / unsorted-zines / sysf15.txt < prev    next >
Text File  |  2003-06-29  |  65KB  |  1,267 lines

  1.    ___________________________________
  2.    \__   _____________       ________/___________________________ _____
  3.    __/_____   \_     /   /_____   \_    ,        ,    __________)/    /______
  4.   /       /    /    `   /     /    /   /________/    /   \/    \/    /      /
  5.  /  _______________    ___________/  ______/ \__    ,     \     `   `      /jp
  6. /  /______________/   /__________/_____\______/____/______________________/__
  7. \_________________   /______________________________________/ /____/ /__/ /_/
  8.               __/   / >> system failure // issue 15
  9.               \____/
  10. .----------------------------------------------------------------------------.
  11. |                         System Failure: Issue #15                          |
  12. `----------------------------------------------------------------------------'
  13. We suck. I know, four months ago I said we'd have another issue out in two
  14. months. Well, so much for that idea. We've been having difficulties lately,
  15. partially due to the laziness of a lot of people (including myself), and
  16. partially due to our broke-ass service provider, who we've moved the hell away
  17. from. We're hoping for things to stabilize again very soon, and I'm hoping our
  18. next issue won't be as delayed as this one was. In the meantime, Merry
  19. Christmas! Please rest assured that we aren't dead (as some people have been
  20. speculating), we're just disorganized at the moment. :)  Thanks to whoever
  21. drew the opening ascii (forgive me for forgetting... I'll be happy to give you
  22. credit in the next issue if you'll kindly step forward). Have a happy holiday,
  23. and enjoy the issue!
  24.                                                         --Logic Box [12/25/98]
  25. .----------------------------------------------------------------------------.
  26. |                           http://www.sysfail.org/                          |
  27. |                            [sysfail@syfail.org]                            |
  28. `----------------------------------------------------------------------------'
  29.          "They that can give up essential liberty to obtain a little
  30.           temporary safety deserve neither liberty nor safety."
  31.                                            --Benjamin Franklin, 1759
  32. .----------------------------------------------------------------------------.
  33. |                                  CONTENTS                                  |
  34. | SysInfoTrade                                              by SysFail Staff |
  35. | ARP Part III: Network Attacks and Denial of Service             by BarKode |
  36. | An Electricity Primer, Part I                       by P3nnyw1se the Clown |
  37. | Wireless Ethernet and Its Workings               by Saint skullY the Dazed |
  38. | Hackers and the Criminal Stereotype                           by Mr. Sonik |
  39. | A General Overview of Open Source Software                    by SlapAyoda |
  40. | An Introduction to the ICMP Protocol                            by BarKode |
  41. `----------------------------------------------------------------------------'
  42.  
  43. <-------+
  44.         | SysInfoTrade
  45.         +----------------> staff@sysfail.org 
  46.  
  47. --DefCon dates are in: July 9-11, 1999 in Las Vegas, Nevada. Join in on the
  48. fun as Sysfail launches our third annual scavenger hunt, and a frequency hunt!
  49. If you have extra little goodies you'd like to donate to our prize bin, e-mail
  50. staff@sysfail.org. Thanks to all who helped out last year!
  51. --1999 RSA Data Security Conference will be held at the San Jose Convention
  52. Center, San Jose, CA January 17-21, 1999
  53. --Whee! The first annual LinuxWorld Conference and Expo will be held at the
  54. San Jose Convention Center on March 1-4, 1999. Check out the webpage at
  55. http://www.linuxworldexpo.com for more details.
  56. --Order the "Thank You for Abusing AT&T" stickers, which were black vinyl
  57. with white text. I also made a simple "OWNED"  sticker, which is black
  58. vinyl with white text. "Tori Do" stickers with penguins on them are also
  59. available; white vinyl with black ink. All stickers are $1.00 each plus a
  60. stamp. 
  61. --11/5/98: SSH Communications Security LTD admitted that there was a buffer
  62. overflow in its ssh 1.2.26 client. Rootshell holds by their claim that their
  63. recent break-in was not from the security hole in SSH. More info can be found
  64. here: http://rootshell.com/archive-j457nxiqi3gq59dv/199811/sshkerb.txt.html
  65. --Order Tori Do: The Epic from Penguin Palace. Art/Story by Pinguino. 
  66. $24.00 TORI DO: The Epic- A young penguin martial artist goes on a quest,
  67. stepping outside his castle's gates for the first time.  He is the Red
  68. Avenger, and he is joined by a sarcastic mage, a tag-a-long imp, and a
  69. dream, on his journey across the Antarctic terrain. The Red Avenger has
  70. been chosen as the protector of the penguins... but can he make it past an
  71. evil wizard to claim his title?  This enhanced CD contains a soundtrack with
  72. jungle/dark ambient songs from RE:, Miguel Q, Solo Jr., and Nick B. It is
  73. playable in newer CD players (such as one in your stereo or car). Once you put
  74. the CD in your computer, you can use a web browser and fully experience Tori
  75. Do: The Epic. 
  76. --The Communications Assistance for Law Enforcement Act allows law
  77. enforcement to wiretap lines, by June 30, 2000. The FCC is now working on
  78. figuring out if this applies to IP telephony, since IP telephony is an
  79. "information service" rather than a "switched service." 
  80. --Zarite Inc. and Antionline formed a partnership that gives antionline
  81. many new toys: domains galore, an interactive bot on the web, a virtual
  82. hacker store, and a hacker search engine based on Infoseek technology.
  83. Zarite controls 30% of Antionline. The editor, John Vranesevich, owns 70%
  84. plus maintains managerial control.
  85. --Xybernaut showed off a wearable PC at Comdex; the pricetag bearing $4995
  86. (excluding display). It's a P200MMX chip, 2gig hard drive, and 32 megs of
  87. ram that fits into a box the size of a walkman, attached to your belt. The
  88. display can be worn on your headset or your wrist. The unit is capable of
  89. speech recognition, and runs both windows and linux. 
  90. --Gettysburg College: With their children's permission, parents at this
  91. college can log on and look at their kid's college transcript, phone bills,
  92. and student store purchases, over the web. 
  93. --11/12/98: In the Microsoft anti-trust trial, the lawyers have resulted
  94. in name-calling. If you haven't read about the case yet, now would be the
  95. most interesting time to do it.
  96. --cDc releases a public beta release of BUTTSniffer, which is a packet
  97. sniffer and network monitor for win95, win98, and NT4. It is a standalone
  98. executable, and also a plugin for Back Orifice.
  99. --ASSOCIATED PRESS: DENVER, Sept. 15, A 28-year-old computer expert is accused
  100. of hacking into the US West computer system and diverting more than 2,500
  101. machines that should have been helping answer phones to his effort to solve a
  102. 350-year-old math problem, according to documents filed in a federal court.
  103. (Thanks to RedBoxChiliPepper for this tidbit)
  104.  
  105. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  106.              ARP Part III: Network Attacks and Denial of Service
  107.                       by BarKode (barkode@sysfail.org)
  108. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  109. You glared at part one, chuckled at part two, and now we have part three of
  110. the ARP trilogy. Today we learn how all that seemingly boring techno-babble
  111. in the first two articles affects the security of your local ethernet, and
  112. we'll cover the basics of some network attacks, and the always fun good o'
  113. session hijacking.
  114.  
  115. Prerequisites for reading this:
  116.  
  117. 1) You have read part one and two several times and have a good understanding
  118.    of the content, or are already familiar with ARP.
  119. 2) You have some idea about how IP-based networks function.
  120.  
  121. Acknowledging that, take into consideration that while this covers what most
  122. would consider intermediate IP networking theory, I'm going to focus this
  123. article towards those who probably have only read part one and two and have
  124. a basic idea of how IP networks function. Also, know that what we're talking
  125. about here is 50% implementation specific and 50% protocol specific. While the
  126. general ideas here are sound and are applicable in some way to IP networks of
  127. any type, every implementation is slightly different, and you will experience
  128. that a method that may work fine on one operating system may not work at all
  129. on another. For instance, ARP caching techniques vary from platform to
  130. platform, so methods on a Linux machine with static ARP entries compared to a
  131. Cisco router are totally different. 
  132.  
  133.                         ***************************
  134.  
  135. (Note: For all these examples, there are no switches, smart hubs, etc.,
  136. implemented on the network in question.)
  137.  
  138. (Note 2: If you wish to actually do some of what you see here, I suggest
  139. grabbing a copy of send_arp, an ARP forging application that's been floating
  140. around the net, and I've modified it a bit. It should be on www.sysfail.org
  141. soon after this article is published. If not, e-mail me.)
  142.  
  143. Situation 1: You are on a ethernet at a small office. Another employee has
  144. picked up a copy of 2600 from the local Barnes and Noble. After spending
  145. 3 days OCRing code out of the book, he has managed to compile a copy of
  146. teardrop on the only Linux box at the office (the dial-up server, "RAS").
  147. He thinks it's really funny to crash the unpatched print server all day
  148. whenever you need to queue up some invoices. Knowing that he's telnetting into
  149. the machine and logging in as root, and also knowing that his machine is the
  150. only machine in the office that has access to do that, you figure it would be
  151. just keen to somehow trick the server into thinking that you are coming from
  152. Joe's machine.
  153.  
  154. Situation 1 Low-Down: We need to spoof a connection from "joe" to "server",
  155. and we are on "tom". We need to not take "joe" off the network or cause any
  156. funny messages to pop up on the screen.
  157.  
  158. Here's our network layout:
  159.  
  160. Full Class C: 192.168.0.x
  161. Netmask: 255.255.255.0
  162.  
  163.  
  164. ------------------------------------------------------------------------------
  165.         |               |               |               |
  166.         |               |               |               |
  167.         *               *               *               *
  168.      Printer          Server           Tom             Joe
  169.     192.168.0.5      192.168.0.1    192.168.0.2    192.168.0.3
  170.                      (Linux)          (Linux)       (Windows)
  171.                   (0:0:0:0:0:01)  (0:0:0:0:0:02)  (0:0:0:0:0:03)
  172.  
  173. You have made the intelligent choice to install Linux on your other drive on
  174. "tom". Your network is working fine, and you can communicate with all your
  175. other machines.
  176.  
  177. Somehow, you need to make "server" think that you are telnetting to it from
  178. "joe". You've already sniffed the unencrypted root password "hork" from the
  179. local ethernet.
  180.  
  181. Let's take a look at what happens when joe telnets to server.
  182.  
  183. ****
  184. 0:0:0:0:0:03 ff:ff:ff:ff:ff:ff 0806 42 arp who-has 192.168.0.1 tell
  185. 192.168.0.3
  186.  
  187. 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
  188.  
  189. 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
  190. 21441998:21441998(0) win 8192 <mss 1460,nop,nop,sackOK>
  191. (DF) (ttl 128, id 32010)
  192.  
  193. 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
  194. 2811556923:2811556923(0) ack 2144199 win 32736 <mss 1460> (ttl 64, id 175)
  195.  
  196. ***
  197.  
  198. What we have here are four separate packets initializing a telnet session.
  199.  
  200. First packet: ARP request: get HW address of IP to connect to
  201. Second packet: ARP reply: Here's the hardware address requested from "server"
  202. Third packet: I want to telnet to you, you listening?
  203. Fourth packet: Sure thing bro, acking your port 23 request, let's go.
  204.  
  205. We're not concerned about the latter two packets, just the first two. The ARP
  206. request/reply pair. If we can somehow convince server that it wants to send
  207. packets destined for "joe" to "tom", we're in business.
  208.  
  209. Sounds easy enough, and in a way that's true. But there are several obstacles
  210. to overcome. You might say, "let's just assume the IP address of joe." That
  211. won't work. You'll have two machines responding to the same IP address, you
  212. really don't want that. You don't want a message on either box complaining
  213. that there's duplicate IPs on the network either.
  214.  
  215. When your machine sees a packet go by, it checks the hardware address stamped
  216. on the ethernet packet header. If it's not a match, the packet isn't for us,
  217. and we don't care about it. More specifically, the device driver never looks
  218. at the destination IP, just the HW address (of course, there are exceptions
  219. where some drivers dig more into the packet for various purposes). This can be
  220. taken advantage of in numerous ways, and for ARP attacks, it can really come
  221. in handy.
  222.  
  223. If we ifconfig up an interface on "tom" with the IP address of "joe", and
  224. tell "server" that "joe"'s IP address is located at "tom"'s Hardware address,
  225. then server should send packets destined for "joe" to "tom", and it will also
  226. accept packets from "tom" thinking that it's "joe", bypassing the IP-based
  227. security implemented on "server".
  228.  
  229. Ok. Read that again.
  230. * We tell SERVER that the IP address of JOE is really located at the HARDWARE
  231. ADDRESS of TOM.
  232.  
  233. Function: Packets from SERVER to JOE will be encapsulated on the ethernet with
  234. headers sending it to TOM instead of JOE (instead of the header including the
  235. ethernet address of JOE, it will have TOM'S address instead. This means JOE
  236. will ignore the packet while TOM will recieve it. SERVER will not know that
  237. TOM isn't JOE, because TOM is talking with JOE's IP).
  238.  
  239. How: We send a hand-crafted ARP packet (reply specifically, it can be a
  240. request, but we'll get into that another time. The packet would look like
  241. this on the wire:
  242.  
  243. 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
  244.  
  245.     TOM         SERVER        ARPREPLY        IP OF JOE        HWA OF TOM
  246.  
  247.  
  248. Now, if you try to telnet to SERVER from TOM, you should be able to connect,
  249. and it will allow you to log in as root.
  250.  
  251. But wait! We lit up a message on the Windows box on Joe's desk saying that
  252. there's an IP address conflict on the network! Busted!
  253.  
  254. There are several things you must take into account:
  255. 1) You need to "ifconfig -arp eth<x>:<x>" and set up static ARP entries and
  256. routes when you do this. You don't want that interface speaking ARP to anyone
  257. unless you make it but you need it to know where to send packets.
  258. 2) Doing this *during* an existing session between JOE and SERVER will cause
  259. that connection to drop, unless you work fast.
  260. 3) You need to be constantly sending poison ARP to SERVER *and* JOE during
  261. your attack. As long as you keep telling both machines where to find (er,
  262. where you WANT them to find) each other, they won't *ask*. And the less they
  263. ask, the better.
  264.  
  265. Situation 2: I want to hijack joe's session to server.
  266.  
  267. How can this be done using ARP as a tool? First off, remember what we said
  268. about accidently cutting off Joe's session earlier? Well now that's exactly
  269. what we want to do.
  270.  
  271. During a conversation between JOE and SERVER, you inject poison ARP, telling
  272. SERVER that you're JOE, and telling JOE that SERVER is the printer or
  273. something. Then, you proceed to send a flood of spoofed ACKs to the SERVER,
  274. pushing the sequence numbers out of JOE's acceptable window, and by the time
  275. JOE finds out what happened, you've already got his end of the connection, and
  276. SERVER hasn't even noticed anything funny (I'm not going to cover the insides
  277. of TCP sequence numbers today, that's another article. :) ).
  278.  
  279. How this happens:
  280.  
  281. * JOE is talking to SERVER
  282. * TOM assumes JOE's IP address.
  283. * TOM sends out an ARP reply unicast to JOE saying SERVER is-at 0:3:1:3:3:7
  284. or something, then immediately send a packet to SERVER saying that JOE is-at
  285. 0:0:0:0:0:2 (tom's real HW address)
  286. * To be on the safe side, you push the sequence numbers of the session way out
  287. of JOE's acceptable range.
  288. * JOE is a Windows box and doesn't know what the hell is going on. He's just
  289. sending packets looking for SERVER and probably grinding the hard drive or
  290. showing a little animated paperclip that says "Click here to learn more about
  291. session hijacking" which just points to a broken link on microsoft.com.
  292. * Meanwhile, TOM is re-synching the connection to SERVER, and as far as SERVER
  293. is concerned, the connection was just broken for a moment, and now is better,
  294. and will gladly talk to TOM in the place of JOE, considering that the IP is
  295. right and that TOM's HW address maps to that IP in the arp table on SERVER.
  296. * JOE is still a Windows box and at this point Windows telnet will bring up
  297. a message like "Lost Connection" and probably lock up telnet because it's so
  298. poorly coded and has no emulation and... anyway....
  299. * TOM has full control over the connection and SERVER couldn't be happier
  300. about it. JOE just sits there and plays a neat screen saver and grinds the
  301. hard drive every couple minutes.
  302.  
  303. I will probably be writing an article specifically on this topic, as I'm not
  304. going to cover this more specifically in the scope of this article.
  305.  
  306. Situation 3: I just picked up 2600 at Barnes and Noble. I want to be a hacker.
  307.                 My 6th grade computer teacher is a real dork and I want to
  308.                 make the network not work right n stuff. I tried mashed
  309.                 potatos in the power outlets but I got in trouble. What can
  310.                 I do?
  311.  
  312. Well, good news for you. ARP can cause all sorts of problems on a network.
  313. If you haven't figured out how this is possible yet, I'm not sure what to tell
  314. you, read the article again and maybe you'll think of a way you could make
  315. computers on a network not able to talk to each other using ARP.
  316.  
  317.  
  318. I hope you enjoyed, and should you have any questions, email me.
  319.  
  320. -bk
  321.  
  322. Billy: "Mom! Sally hijacked my irc session and made me say stuff!"
  323.  
  324. References:
  325.  
  326. I. "TCP/IP Illustrated, Volume 1: The Protocols" W. Richard Stevens, January
  327.         1994. (Addison-Wesley Professional Computing Series). ISBN:0201633469
  328.  
  329. II. "Playing redir games with ARP and ICMP" MESSAGE THREAD: document sections
  330.         reviewed were authored by Yuri Yolobuev
  331. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  332.                         An Electricity Primer, Part I
  333.                 by P3nnyw1se the Clown (p3nnyw1se@hotmail.com)
  334. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  335. The first of (hopefully?) many articles on electricity. Tell me what you 
  336. think. But only if you have something nice to say; didn't your mother teach
  337. you anything?
  338.  
  339. Please, enjoy. 
  340.  
  341. I will not be held responsible for your stupidity. Don't come crying to me
  342. if you stick your tongue in an electrical outlet or decide to bring your
  343. toaster in the shower with you. I will have absolutely no sympathy for you,
  344. and to add insult to injury, I will laugh at you. So there.
  345.  
  346. CHAPTER 0: PREFACE
  347. ------------------
  348.    Section I - Ranting and Raving
  349.  
  350. Most people don't understand electricity. Some know a little about what to
  351. do in a lightning storm, or how to reset their circuit breaker if a fuse 
  352. blows, but the vast majority couldn't explain to you what exactly it is or
  353. does. 
  354.  
  355. Most never even question it. They take for granted their computers, 
  356. televisions, toasters, espresso machines, hair dryers, calculators, and many
  357. other of life's conveniences. They don't even THINK about electricity until 
  358. they get pissed off when the power goes out and they can't take their hot 
  359. shower in the morning.
  360.  
  361. In order to truly understand the electronics we use every day (and 
  362. computers, specifically), we need to at least have a good knowledge of how
  363. electricity works and some of the main concepts.
  364.  
  365.  
  366.    Section II - Requirements
  367.  
  368. I think it only take about three things to learn electricity:
  369.  
  370. 1. Patience. Sometimes you might not understand something right away. And
  371.    that's okay, just study the chapter again and research some more from
  372.    other books, and you should be okay.
  373.  
  374. 2. Math. Teaching you algebra is WAY beyond the scope of these articles. I
  375.    will be assuming you have at least a 9th grade math level. 
  376.  
  377. 3. Desire. I can't make you learn anything; you have to want to.
  378.  
  379.  
  380.    Section III - How to Use These Articles
  381.  
  382. This is a series of articles. In each article there will usually be two or
  383. three chapters. The chapters are split up into sections. The best way to 
  384. learn the material is to read around one chapter a day, and only continue 
  385. when you understand all of the material in the previous chapter. 
  386.  
  387.  
  388. CHAPTER 1: BASICS OF ELECTRICITY
  389. --------------------------------
  390. This chapter will introduce you to the very basics of electricity. I think 
  391. this is probably the most important chapter, because it should hopefully give 
  392. you an idea of just what and how electricity operates.
  393.  
  394.  
  395.    Section I - Protons, Neutrons, and Electrons
  396.  
  397. Matter is defined as anything that occupies space and has weight. Your 
  398. mother is an example of very large matter. Other examples of matter are the 
  399. air you breathe, the root beer you drink, and your pet turtle. 
  400.  
  401. All matter is built with atoms. An atom is the smallest basic unit of
  402. matter. For many years, atoms were thought to be the smallest thing in
  403. existence. Then they discovered sub-atomic particles inside the atom. 
  404.  
  405. I know what you're saying: "I learned all this crap in Mr. Smith's 8th grade
  406. science class!"  True, but you were too busy staring at the breasts of the
  407. girl sitting next to you, so pay attention.
  408.  
  409. The atom is built with a nucleus at the center and other, much smaller, 
  410. particles called electrons circling the nucleus. The nucleus contains
  411. positively charged particles called protons, and particles with no charge
  412. called neutrons (get it? neutral, neutrons?). Electrons are negatively
  413. charged.
  414.  
  415. Each atom has a different number of protons in the nucleus. The number of
  416. protons determines its atomic number. For example, copper has 29 protons,
  417. therefore its atomic number is 29.
  418.  
  419. Atoms also have weight. The atomic weight of an atom is determined by the 
  420. mass of the atom. Only protons and neutrons contribute to the mass. Because
  421. a proton is approximately 1,845 times the size of an electron, the electrons
  422. really don't affect the mass at all. Hydrogen (the only atom with no neutron
  423. at all and only one proton) has an atomic weight of 1.0079, compared to
  424. iron's atomic weight of 55.847.
  425.  
  426. The way the electrons orbit around the nucleus is not random. They orbit in
  427. circles called shells. The innermost shell is designated K, and the rest, 
  428. going outward, are L, M, N, O, P, and Q. Each shell can only have a certain
  429. number of electrons (FIGURE 2-1). If the first shell, K, has all the
  430. electrons it can fit, the electrons go to the next shell, and so on.
  431.  
  432.           .--------------------------------------------------------.
  433.           | Shell Designation | Total Number Of Electrons Possible |
  434.           |-------------------|------------------------------------|
  435.           |        K          |                 2                  |
  436.           |        L          |                 8                  |
  437.           |        M          |                 18                 |
  438.           |        N          |                 32                 |
  439.           |        O          |                 18                 |
  440.           |        P          |                 12                 |
  441.           |        Q          |                 2                  |
  442.           `--------------------------------------------------------' 
  443.            
  444.            FIGURE 1-1: Number of electrons each shell can hold.
  445.  
  446. The outermost shell with electrons contained within is called the valence 
  447. shell. The number of electrons this shell contains is this atom's valence. 
  448. The farther away the valence shell is from the nucleus, the weaker the 
  449. strength of the orbit is, so it's easier for an atom to gain or lose 
  450. electrons. It's also easier to gain or lose electrons if the shell isn't 
  451. full.
  452.  
  453. An atom that has the same number of protons and electrons is electrically
  454. balanced (remember, neutrons have no charge). When an electrically balanced
  455. atom receives or gives an electron, it is no longer electrically balanced.
  456. When an electrically balanced atom receives an electron, it is negatively
  457. charged, and is called a negative ion. When an electrically balanced atom 
  458. gives an electron, it is positively charged, and is called a positive ion. 
  459. This process is called ionization.
  460.  
  461.  
  462.    Section II - Conductors and Insulators
  463.  
  464. If these electrons in the valence shell gain enough energy from an external
  465. force, they can leave the atom and become free electrons, moving from atom
  466. to atom. Materials that have many free electrons are called conductors.
  467. Many metals are examples of conductors. (FIGURE 1-2)  Often times copper is
  468. used because of its good conductance and its relatively low price.
  469.  
  470.                      .-----------------------------------.
  471.                      |         Common Conductors         |
  472.                      |-----------------------------------|
  473.                      |  Silver                           |
  474.                      |  Copper                           |
  475.                      |  Gold                             |
  476.                      |  Aluminum                         |
  477.                      `-----------------------------------'
  478.            
  479.                       FIGURE 1-2: Metals are good
  480.                       conductors. (Listed in the order
  481.                       of their conductance)
  482.  
  483. Insulators are the exact opposite of conductors. They are materials that
  484. have very few free electrons. Insulators can absorb electrons from other
  485. atoms to fill their valence shell, and therefore eliminate free electrons.
  486. (FIGURE 2-3)
  487.  
  488.                      .-----------------------------------.
  489.                      |         Common Insulators         |
  490.                      |-----------------------------------|
  491.                      |  Mica                             |
  492.                      |  Glass                            |
  493.                      |  Rubber                           |
  494.                      |  Air                              |
  495.                      `-----------------------------------'
  496.            
  497.                       FIGURE 1-3: Materials used as  
  498.                       insulators (Listed in the order of 
  499.                       their insulation)
  500.  
  501.  
  502.    Section III - A Brief Look at Current
  503.  
  504. Electrons move from negatively charged atoms to positively charged atoms.
  505. This movement or flow of atoms is called current. The symbol for current is 
  506. I. The amount of current is the sum of the charges of the electrons moving 
  507. past a single point.
  508.  
  509. To measure the amount of charge we use coloumbs. The symbol for the coloumb
  510. is C. Because electrons have so little a charge, the charge of 
  511. 6,280,000,000,000,000,000 (or 6.28 * 10 ^ 18) electrons is one coloumb. If 
  512. one coloumb of charge moves past a single point in one second, that is called 
  513. an ampere (or sometimes just an amp). The symbol for the ampere is A. 
  514. Current is measured in amperes.
  515.  
  516.  
  517.    Section IV - Use the Force, Luke (A Brief Look at Voltage)
  518.  
  519. Voltage, difference of potential, and electromotive force are all terms that
  520. mean the same thing. Basically, when there is a group of atoms with lots of
  521. electrons and another group of atoms with a small amount of electrons at the 
  522. other end, connected by a conductor, current will flow. The force that makes
  523. current flow is called voltage. The work done in a circuit is the result of 
  524. voltage.
  525.  
  526. The symbol for Voltage is E (for EMF, or electromotive force). The unit for
  527. measuring voltage is called a volt. The symbol for the volt is V. One volt
  528. is the potential applied to a circuit to cause one ampere of current to flow
  529. through a conductor whose resistance is one ohm (we will deal with ohms and
  530. resistance in the next section).
  531.  
  532.  
  533.    Section V - A Brief Look at Resistance
  534.  
  535. Some greedy little atoms don't like to give up their electrons without a
  536. fight. They are said to resist the flow of current. This opposition to current
  537. flow is called resistance. The symbol for resistance is R.
  538.  
  539. There is no material that has NO resistance. However, some materials have
  540. more resistance than others. Some materials have very little resistance, and 
  541. are called conductors. (FIGURE 1-2)  Other materials have plenty of 
  542. resistance, and are called insulators. (FIGURE 1-3)
  543.  
  544. Resistance is measured in ohms. The symbol for the ohm is the Greek letter
  545. omega. One ohm is the amount of resistance that allows one ampere of
  546. current to flow when one volt is applied.
  547.  
  548.  
  549. CHAPTER 2: SCIENTIFIC NOTATION
  550. ------------------------------
  551. If you already know what scientific notation is and how to use it, then go
  552. ahead and skip this chapter, but it certainly wouldn't hurt to review it.
  553. Definetly read this if you're not familiar with scientific notation.
  554.  
  555.  
  556.    Section I - What is Scientific Notation, Anyway?
  557.  
  558. Scientific notation is an easy way to express very large or very small
  559. numbers. We use these type of number many times in electricity. 
  560.  
  561. The format for scientific notation is a single digit number being multiplied
  562. by a power of ten. For example, 1002 in scientific notation is 
  563. 1.002 * 10 ^ 3.
  564.  
  565.  
  566.    Section II - Reading and Converting Scientific Notation
  567.  
  568. Reading a number in scientific notation is as easy as a drunk cheerleader at
  569. a high school party. First, we need to take a look at whether the exponent
  570. is positive or negative. Positive means to move the decimal point to the 
  571. right, while negative means to move the decimal point to the left. For 
  572. example:
  573.  
  574.  3.1337 * 10 ^ 4  = 31,337
  575.                      
  576. All we had to do was move the decimal point to the right (the exponent was
  577. positive) 4 places (the exponent was 4). But let's take a little trickier
  578. number:
  579.  
  580.  7 * 10 ^ -9 = .000000007
  581.  
  582. Because the exponent was negative, we move the decimal point to the left
  583. however many times that is indicated, in this case nine times.
  584.  
  585. An ampere is a large unit of current, and is not often used in circuits.
  586. Commonly, something smaller, such as a milliampere or microampere are used.
  587. A milliampere is 1 / 1,000 the size of an ampere, and a microampere is 
  588. 1 / 1,000,000 the size of an ampere. In other words, it would take 1,000
  589. milliamperes to equal the amount of current as one ampere. There are many
  590. other commonly used prefixes. (FIGURE 2-1)
  591.  
  592.  
  593.            .------------------------------------------------------.
  594.            | Prefix | Symbol |    Value      | Power Of Ten       |
  595.            |--------|--------|---------------|--------------------|
  596.            | Giga   |   G    | 1,000,000,000 |      10 ^ 9        |
  597.            | Mega   |   M    | 1,000,000     |      10 ^ 6        |
  598.            | Kilo   |   k    | 1,000         |      10 ^ 3        |
  599.            | Milli  |   m    | .001          |      10 ^ -3       |
  600.            | Micro  |   µ    | .000001       |      10 ^ -6       |
  601.            | Nano   |   n    | .000000001    |      10 ^ -9       |
  602.            `------------------------------------------------------'
  603.  
  604.             FIGURE 2-1: Commonly used prefixes; their symbols and 
  605.                         values.
  606.  
  607. So, for example (using FIGURE 2-1) how many volts are there in five 
  608. megavolts?
  609.  
  610.   1,000,000 V      X V      
  611.  ------------- =  ------     (1,000,000 megavolts = 1 volt)  
  612.       1 MV         5 MV     
  613.  
  614.   1,000,000     X
  615.  ----------- = ---
  616.       1         5
  617.                           
  618.  1 * X = 5 * 1,000,000     (Cross multiply)
  619.  
  620.  X = 5,000,000 V
  621.  
  622. So there are 5,000,000 volts in a megavolt.
  623.  
  624. For some more practice, how many amperes are their in 42 milliamperes?
  625.       
  626.   1,000 mA     42 mA     
  627.  ---------- = -------     (1,000 milliamperes = 1 ampere)  
  628.      1 A        X A      
  629.  
  630.   1,000      42
  631.  ------- =  ----
  632.     1        X
  633.                           
  634.   1,000 * X = 1 * 42     (Cross multiply)
  635.  
  636.  
  637.   1,000 * X     1 * 42     
  638.  ----------- = --------     (Divide both sides by 1,000)
  639.     1,000       1,000
  640.  
  641.  X = .042
  642.  
  643. So there are .042 amperes in a milliampere.
  644.  
  645.  
  646. CHAPTER 3: CURRENT
  647. ------------------
  648. Current, the movement of electrons from one atom to the next, is an important 
  649. thing to understand when working with electronics.
  650.  
  651.  
  652.    Section I - Laws of Electrostatic Charges
  653.  
  654. Current, as defined earlier, is the movement of electrons. The force that
  655. moves them is voltage. Anyway, let's take a look at the laws of 
  656. electrostatic charges:
  657.  
  658.  1. Unlike charges attract.
  659.  2. Like charges repel.
  660.  
  661. Easy enough. This means that an electron would be attracted to a proton, but
  662. a proton and a proton or an electron and an electron would repel each other.
  663. Because the negatively charged electrons are attracted to the positively
  664. charged protons, the electrons continue orbiting the nucleus of an atom.
  665. The centrifugal force keeps the electrons from just smacking into the 
  666. nucleus. 
  667.  
  668. Because a single electron has a charge very, very, small we measure the
  669. charges in coloumbs, which is the charge of 6.28 * 10 ^ 18 electrons (see
  670. chapter two for a review of scientific notation if you're confused by that
  671. number).  The symbol for the coloumb is C.
  672.  
  673.  
  674.    Section II - The Flow of Current
  675.  
  676. When an area has lots of positively charges atoms, and another area has lots
  677. of negatively charged atoms, and they're connected by a conductor, the
  678. electrons will move from atom to atom. That long sentence could be shortened 
  679. by saying: When there's a difference of potential, current will flow.
  680.  
  681. The unit of measurement for current is the ampere. The symbol for the ampere
  682. is A. An ampere is the amount of current when one coloumb of charge moves
  683. past a point in one second. A formula we could use to describe this:
  684.  
  685.       Q    (I is current in amperes, Q is quantity of electrical charge in
  686.  I = ---    amperes, t is time in seconds)
  687.       t     
  688.  
  689. So, using the above formula, how many amperes are present in a circuit if 15
  690. coloumbs moves past a point in 3 seconds?
  691.       
  692.       15
  693.  I = ----     (Filling in the numbers for the variables)
  694.       3
  695.  
  696.  I = 5 
  697.  
  698. So the current would be 5 amperes.
  699.  
  700. Let's try a harder one: A circuit has 19 amperes of current. How long would
  701. it take for 7 coloumbs to move past a point in the circuit?
  702.        7
  703.  19 = ---     (Filling in the numbers for the variables)
  704.        t
  705.  
  706.   19     7
  707.  ---- = ---
  708.   1      t
  709.  
  710.  19 * t = 1 * 7     (Cross multiply)
  711.  
  712.   19 * t     1 * 7
  713.  -------- = -------     (Divide both sides by 19)
  714.     19        19
  715.  
  716.  t = .368421052
  717.  
  718. So the time it would take would be about .36 seconds.
  719.  
  720. If electrons are added to one side of a conductor, and electrons can be taken
  721. away from the other side, current will flow through the conductor. These
  722. electrons will move from one atom to the next, bumping that electron onto the
  723. next atom, etc, etc. So no one electron moves very far, they just knock the
  724. next electron onto the next atom. Because of the law of electrostatic 
  725. charges, current flows from negative to positive.
  726.  
  727. Although the movement of electrons is slow, each individual electron moves
  728. very fast (the speed of light, or 186,000 miles a second).
  729.  
  730. The device that will take electrons from the positive side and reapply them 
  731. to the negative side is called a voltage source (commonly a battery).
  732. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  733.                       Wireless Ethernet and Its Workings
  734.                 by Saint skullY the Dazed (skully@sysfail.org)
  735. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  736. By now most of you have probably heard about wireless ethernet devices from
  737. companies such as Breezecom and Airolan. But you may not understand how they
  738. work and why. The purpose of this article is to get you familiar with them
  739. (specifically Breezecom's, which I have the most experience with) and explain
  740. how they accomplish certain things.
  741.  
  742.  
  743. 1. What these devices are
  744. -------------------------
  745. Wireless ethernet devices are usually a little box with a power cord, 10bT
  746. port, and an antenna port of some kind. They will usually be very dumb
  747. (forwarding all traffic both ways), or fairly intelligent (forwarding only
  748. certain traffic, and possibly even some firewalling abilities). Most will
  749. forward whole ethernet segments (making the two segments transparent to one
  750. another), although some are designed specifically for single workstations.
  751. These will be described in detail below.
  752.  
  753.  
  754. 2. How they work
  755. ----------------
  756. Since I'm very familiar with Breezecom, slightly familiar with Airolan, and
  757. not at all familiar with other brands, I'll describe how Breezecom's devices
  758. work. The theory is sound for all wireless ethernet devices though.
  759.  
  760. Basically, the wireless device (radio) uses a standard RJ-45 patch cable,
  761. which is then plugged into either a machine or a hub (depending on the radio,
  762. it will either use a straight through or crossed cable). Then, the radio
  763. communicates with its peer via the antenna port, which can either have an
  764. omnidirectional antenna (anywhere from 4" to 36", depending on the distance)
  765. or an unidirectional antenna (not unlike a microwave antenna). The Conifer
  766. DB-24 is a commonly used unidirectional antenna (24db, about 36"x12"
  767. aluminum). The peer--usually a bridge, or in the case of Breezecom equipment,
  768. what's known as an Access Point (AP)--can handle several radios. This bridge
  769. then connects to the network via another RJ-45 patch cable. For those who
  770. grill on ascii charts, here goes an attempt.
  771.  
  772. --------------- --------- ----------- ----------- --------- -----------
  773. | Workstation |-| Radio |-| Antenna |-| Antenna |-| Radio |-| Network |
  774. |   or Hub    |-|   1   |-|    1    |-|    2    |-|   2   |-|         |
  775. --------------- --------- ----------- ----------- --------- -----------
  776.  
  777. Now then, with Breezecom equipment, Radio 1 can be one of two different
  778. radios. It will either be what's known as a Single Access radio (SA) or WAN
  779. Bridge (WB). Now then, how do you know if you need an SA or a WB? Well, the SA
  780. has software that checks the hardware (mac) address of the machine it's
  781. plugged into and will not forward any packets destined for/from mac addresses
  782. other then the one it was initially plugged into. This means that an SA can
  783. not be plugged into a hub (using a crossover cable) and used as a WB.
  784.  
  785. The WB, on the other hand, can be plugged into a hub, and has been factory
  786. wired to use a straight through cable for plugging into a hub. It does *not*
  787. check mac addresses and will forward packets from any mac address to the rest
  788. of the network and vice-versa. The WB also has it's own mac address (whereas
  789. the SA assumes the mac address of the interface it's plugged into) and can be
  790. assigned an IP. This makes the WB preferrable for a corporate environment,
  791. while the SA is designed more for end-users.
  792.  
  793. Now then, Radio 2 is an AP. The AP is designed to connect to multiple SA/WB's
  794. for the purpose of linking multiple segments to the main ethernet segment.
  795. This allows a corporation with several buildings, for example, to have on AP
  796. about the middle of their campus with a large omni-directional antenna and
  797. then each building with its own WB and localnet setup. Not only does this
  798. allow the company to avoid running expensive fiber between buildings, but it
  799. allows them to easily add more buildings and links as necessary. This also
  800. lets them use NetBeui or IPX/SPX transparently across segments.
  801.  
  802.  
  803. 3. How they're managed
  804. ----------------------
  805. Wireless equipment, being networked devices, must be able to be configured.
  806. Breezecom has included two ways that their radios can be managed, either
  807. through a serial console (9600, N81, no flow control), and for the AP and
  808. WB's, SNMP (aka, Security Not My Problem). Obviously, by using only the serial
  809. consoles, you limit any security problems that may exist, but in a network
  810. with many radios, that's not always practical. Fortunately, Breezecom's SNMP
  811. traps seem to be fairly secure. 
  812.  
  813.   A. Serial Console
  814. The serial console operates in much the same way serial consoles act. You
  815. connect the terminal, fire it up, and start configuring. It's a simple menu
  816. with most screens having options numbered sequentially. The basic functions
  817. are as followed:
  818.  
  819. 1. System Setup (IP addy, ESS ID)
  820. 2. Advanced Setup (Filtering certain protocols, SNMP on/off)
  821. 3. Maintenance (Various Logs, packets sent/received/dropped)
  822. 4. Security Level (User/Admin, password)
  823.  
  824. The menus are all self-explanatory, and after five minutes of exploring, you
  825. should be able to find most anything you want. Obviously, if someone has
  826. several SA's out there, they don't want their users to be able to reprogram at
  827. will, hence the security level and optional password.
  828.  
  829.   B. SNMP Management
  830. Everything available on the serial console is also available via SNMP. As do
  831. most SNMP-managed devices, the Breezecom radios have two communities, private
  832. and public. Access to the private community is controlled via the password,
  833. although everything in private is available read-only in the public community
  834. (from what I've found, at least... I've not had time to thoroughly examine all
  835. the SNMP stuff). In my case, I was working for an ISP using Breezecom radios
  836. with the AP's 75 feet up a tower. SNMP management was very nice because
  837. occasionally we'd have a WB flake out and stop forwarding packets, at which
  838. point we'd use the SNMP software to reset it rather then driving 10 miles to
  839. the site, climbing 75' and resetting it by hand. On the downside, SNMP is not
  840. the most secure protocol in the world, and can be sniffed for the password.
  841.  
  842.  
  843. 4. Problems With Wireless
  844. -------------------------
  845. Wireless ethernet in and of itself has many problems, including limitations of
  846. ethernet and protocols such as TCP/IP and ARP. The radios should be able to
  847. limit the problems (for example, IP spoofing), but they don't. The only
  848. problem they avoid is spoofing ARP packets (since ARP is based on the mac
  849. address, not the IP address). You can still smurf, spoof IPs, assume others'
  850. connections, and generally wreak havoc with the network fairly anonymously.
  851. We'll go into a few problems and how the radios could theoretically prevent,
  852. or at least minimize, damage that can be done.
  853.  
  854.   A. Spoofed IPs
  855. While it may not be beneficial to everyone, if the radio would monitor TCP
  856. traffic (it has native TCP support) and only allow the traffic for a certain
  857. IP across, as well as the mac addy, this would avoid a whole slew of problems.
  858. Most routers are configured to not allow spoofed IPs. These radios should have
  859. the same configuration option. Naturally, for purposes of subnets (which can
  860. be done with SA's), you would want this off, but for the purpose of a single
  861. workstation it should be an option. Actually, this would fix most of the
  862. problems I was thinking of.
  863.  
  864.   B. Network Sniffing
  865. In my experience with these radios, I can see everything on the segment, just
  866. as if I were connected directly to the hub. This can be both good and bad. Bad
  867. in the sense that anyone can sniff the network for passwords (think you're ok
  868. there? Do you use telnet, pop3, snmp?), but I'm sure that some paranoid admins
  869. would like to be able to monitor their network to watch for problems. Now
  870. then, again, this could be something that can be configured in the SA. Only
  871. allow packets that are destined for ethernet-wide broadcast, and packets for a
  872. particular mac address.
  873.  
  874.  
  875. 5. Conclusion
  876. -------------
  877. I do realize that this could be way more complete; however, if I start getting
  878. complete I'd probably step on Breezecom's toes a few times. If there's enough
  879. interest, and I think I can do it without potentially getting myself in
  880. trouble with Breezecom's legal department, I'll write a follow-up that gets
  881. into more detail.
  882.  
  883. If you do have a local ISP doing wireless, and they're a fairly decent ISP,
  884. I'd heartily recommend it over DSL or cable modems. And if you're in a
  885. corporation with multiple buildings trying to find a cost-effective way to
  886. network them, definitely don't pass over wireless ethernet without giving it
  887. a good look. Despite the security problems that could be avoided with better
  888. software, they are a good way to go.
  889.  
  890.  
  891. Send comments, questions, hate mail, etc. to skully@sysfail.org, as always.
  892. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  893.                      Hackers and the Criminal Stereotype
  894.                        by Mr. Sonik (sonik@sysfail.org)
  895. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  896. Sometimes I wonder what the big deal is with people who are labeled as
  897. criminals simply for having a hobby that may dabble into some illegal areas.
  898. Society is quick to label hackers as criminals, even if the hacker discovers a
  899. loophole in the telephony or computer world and exploits it once for learning
  900. purposes--not only for themselves, but for the security professionals that are
  901. supposed to keep the telephone network and computer systems secure. Society
  902. asks "What's the big deal? They break the law, right? They should go to jail."
  903. Well, should a hacker get more of a sentence for stealing three dollars in
  904. long-distance calls than say, a rapist or a drug dealer?  I know I can't
  905. influence people with my opinon alone, so I decided to give you some
  906. information and let you be the judge. One thing has become very clear: we need
  907. to watch out for ourselves, and more importantly, others who share the same
  908. interests. We simply can't keep following the road that we are on, or we will
  909. crash for sure.
  910.  
  911. So what can we do? Some of the things we can do to help change society's
  912. perception of us is to educate people as to what exactly a hacker or phreaker
  913. is. We are merely nothing more than hobbyists who choose to explore the outer
  914. limits of technology. What's so bad about that? What's the problem with
  915. wanting to understand the ins-and-outs of a computer system? Or maybe you
  916. would like to understand how the telephone of yours really works.
  917.  
  918. Maybe you could start a computer club or hacker/phreaker club in your area.
  919. 2600 meetings are a good example of these types of public gatherings. This
  920. also serves as an excuse to get out of the house and meet new people. Maybe
  921. you could start a local newsletter or something similar that focuses on the
  922. newest trends of the computer industry. Almost anything that you could think
  923. of to generate positive attention in your community towards the hacker
  924. subculture would be something worth doing.
  925.  
  926. I had heard of people donating their time to building computers out out of
  927. outdated hardware to donate to local charities, schools, and needy families.
  928. You would be suprised at how excited a poor family gets over an old 286 and a
  929. dot matrix printer. When coupled with, say, a 2400 baud modem and free
  930. internet access to a shell account, this could make so much more information
  931. availible to a family that never had that ability before. And that's what
  932. hackers are all about. The spread of information. Anytime someone helps the
  933. community in such a way, he is usually always thought of a good person.
  934. Imagine what it could do to reduce society's fear of hackers, and at the same
  935. time educate them as to the difference between a hacker and a white collar
  936. criminal. Imagine how the community would respond to a hacker who is donating
  937. time and/or knowledge to the community by teaching computer classes, or
  938. educating others about computers and personal security. I know I would feel a
  939. whole lot safer if a hacker taught me things about computer security, rather
  940. than an underpaid shmuck teaching about a subject they only read about in a
  941. book.
  942.  
  943. I urge people to get out and donate their time to the community whenever they
  944. can. Chances are, only respect will come your way after doing good deeds for
  945. others. These are only some of the things that we can do to combine our
  946. knowledge and expertise to help hackers and computer enthusiasts gain a good
  947. reputation in the public eye. Remember, you must prove to others that you are
  948. a responsible person in order to gain trust throughout society.
  949. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  950.                   A General Overview of Open Source Software
  951.                        by SlapAyoda (vader@geekbox.net)
  952. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  953. Open source software is often referred to as "free software," not because of
  954. how much it costs, but because of the way it is freely distributed. The
  955. opposite of proprietary software, which is developed only by the company who
  956. originally manufactured it, and prohibits unauthorized distribution, open
  957. source software is presented with its source code, encouraging users to
  958. distribute and contribute to the software. Contributions come in several
  959. forms: suggestions, bug fixes, and new ideas. Choosing open source can be a
  960. good decision for both the manufacturer and the user. Developers gain the
  961. assistance of their user base in coding the program, and the users recieve
  962. software that they can modify to, as Eric S. Raymond puts it, "scratch their
  963. own itch." Open source software can be very diverse, ranging from games to
  964. powerful internet applications that bind together "the web." Currently, open
  965. source hardware is being developed, as well as an open source BIOS
  966. (http://www.freiburg.linux.de/OpenBIOS/). A small debate has also arisen about
  967. treating books with an open source-type policy. Open source software has
  968. become a hot topic for discussion on such websites as Slashdot
  969. (http://slashdot.org), and in essays such as the excellent "The Cathedral and
  970. the Bazaar" by Eric S. Raymond
  971. (http://www.redhat.com/redhat/cathedral-bazaar/cathedral-bazaar.html). This
  972. article will attempt to give the reader an understanding of the basics of open
  973. source software, and will also describe some popular examples of open source
  974. software.
  975.  
  976. Linux is an open source operating system that is available for download, at
  977. no cost, from many different locations. It is also purchasable in CD form, at
  978. a very low price. Linux was developed by Linus Torvalds in 1991, at the
  979. Univeristy of Helsinki in Finland. Linux is a POSIX-compliant operating
  980. system, and is designed to be a UNIX clone. Linux is made up of two parts: the
  981. kernel, which is the core of the operating system, and additional software.
  982. Orignally, people installed the Linux kernel by hand, and then installed and
  983. used other individual bits of software to do their tasks. Today, most people
  984. use distributions, developed seperately by other companies. These distros
  985. consist of a current version of the Linux kernel, and useful software
  986. packages. It is also a great deal easier to install a distro than just the
  987. kernel by itself, and some offer graphical installation programs. The three
  988. most widely used distros are Slackware, Red Hat, and Debian, although there
  989. are many more. There are many people who use Linux, and the number is
  990. increasing now at a faster rate than ever before. These users often make
  991. contributions to both the kernel and software. Most users of Linux believe
  992. strongly in the open source philosophy. Without it, Linux might not be able to
  993. survive. For more information on Linux, visit http://www.linux.org.
  994.  
  995. GNU software is fundamental to the UNIX community. From bash to make to zlibc,
  996. GNU software is seen to most as the standard in quality UNIX software. GNU
  997. software differs from other software by having its own special license that
  998. specifically allows modifcation and distribution by any of its users, under
  999. certain circumstances. The GNU General Public License, or GPL, states that
  1000. users may modify the software as they wish and distribute either the original
  1001. or modified copy, for a fee if they choose. The one rule that applies to the
  1002. software, however, is that the person must pass on the freedoms to the person
  1003. he distibutes the software to. This is called "Copylefting". As opposed to
  1004. copyrighting, it ensures that users recieve a program that they can modify and
  1005. distribute. Users also have a signifigant impact on development here, as
  1006. oftentimes they develop their own versions of current programs to suit their
  1007. own needs, or they might contribute thier ideas or code to the original
  1008. manufacturer. For more information on GNU software and the GNU philosophy,
  1009. visit http://www.gnu.org/gnu/gnu-history.html.
  1010.  
  1011. BSD, short for Berkley Systems Development, is a term that encompasses several
  1012. UNIX variants. FreeBSD, NetBSD, and OpenBSD, are three seperate packages, all
  1013. with separate software, but based on the same version of UNIX, BSD. Similar to
  1014. Linux, they are open source and POSIX-compliant, but they all vary a bit. All
  1015. of the BSDs are available for download on the internet, or for purchase on CD.
  1016. Many people also use and contribute to the BSD efforts. For more information
  1017. visit http://www.freebsd.org, http://www.netbsd.org, or
  1018. http://www.openbsd.org.
  1019.  
  1020. Open source development is not confined to UNIX. Netscape has recently
  1021. announced that their web browser, which runs in both Microsoft Windows and
  1022. UNIX, as well as MacOS and other platforms, will now be open source. They have
  1023. created a specific subset of their company, named Mozilla
  1024. (http://www.mozilla.org/), to deal with the integration of users' code. This
  1025. is expected to have a large impact in their continuing battle against
  1026. Microsoft's Internet Explorer, as Microsoft has decided to not make Internet
  1027. Explorer open source.
  1028.     
  1029. Another company that serves the more mainstream operating systems as well as
  1030. UNIX with a great open source project is Apache (http://www.apache.org/).
  1031. Apache webservers serve many of the popular websites of today, and run well in
  1032. Windows and UNIX. They offer some of the best performance around, certainly
  1033. due in part to the help of countless users who have contributed to the
  1034. project.
  1035.  
  1036. A first in the open source community, a small group of people are beginning
  1037. work on an open source BIOS, named appropriately OpenBIOS. They are planning
  1038. to create a product that will support a wider range of hardware and also be
  1039. more geared towards Linux. Recently, they released a very preliminary product
  1040. that will work on two different chipsets. It looks like OpenBIOS has a bright
  1041. future ahead of it. For more information, visit
  1042. http://www.freiburg.linux.de/OpenBIOS.
  1043.  
  1044. Microsoft is a company notorious for being opposed to open source software.
  1045. One may speculate that a monetary profit becomes difficult to attain off of
  1046. open source, as it could be copied freely at no cost to the user. Since
  1047. Microsoft has already established its primary goal as profit, their stance is
  1048. only logical. This past Halloween, an office memo of theirs was found and
  1049. released to the public on the internet. It concerned open source, and how to
  1050. combat it. It spoke a great deal of Microsoft's strategies on beating Linux,
  1051. Mozilla, and other competitors. It has been dubbed the Halloween Document, and
  1052. has caused much havoc within the computing community. For more information,
  1053. visit http://www.opensource.org/halloween.html.
  1054.  
  1055. Open source software has a large effect on computing daily. Every user of the
  1056. internet makes use of open source software without even knowing it. For
  1057. example, bind--a program that converts numeric IP address to hostnames.
  1058. Without it, users would have to memorize IP addresses to know which webpage is
  1059. which. Sendmail is open source software that delievers a great majority of the
  1060. internet's mail.
  1061.  
  1062. The future of open source can only be a postive one. Even without the support
  1063. of computing giants Apple and Microsoft, developers have shown that they can
  1064. be successful in producing a good product that will continue and progress by
  1065. constantly evolving. But open source development can not continue without the
  1066. support of the community. If you want to get involved in the open source
  1067. movement, visit one of the pages mentioned in this article. You'll be glad you
  1068. did.
  1069. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1070.                     An Introduction to the ICMP Protocol
  1071.                       by BarKode (barkode@sysfail.org)
  1072. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1073. Continuing the line of articles about common internet protocols, here's a
  1074. look into ICMP, or Internet Control Message Protocol. ICMP is an essential
  1075. protocol on IP-based networks, as IP is not a "reliable" protocol.
  1076.  
  1077. <EDITORIAL NOTE BY BARKODE>
  1078. For those of you wondering why I keep writing articles covering the basics of
  1079. standard internet protocols, it's brought on by a number of things.
  1080.  
  1081. One of them being that System Failure has changed its focus completely. By the
  1082. time I joined last year, the group had weeded out articles focusing on crime
  1083. and "how to rip off the phone company" and such. Gears have shifted towards a
  1084. technical, intelligent magazine for a larger, more intellectual audience. I
  1085. sincerely hope that the difference has been noticed.
  1086.  
  1087. Secondly, demographics (e-mails to SysFail) show a crowd that is new to the
  1088. scene, and helping those people is an important part of what System Failure
  1089. is all about.
  1090. </EDITORIAL NOTE BY BARKODE>
  1091.  
  1092. ICMP is essential to the operation of an IP -based network for a variey of
  1093. reasons. IP being "unreliable" (there is no guarantee an IP packet will get
  1094. to its destination), there must be an error-handling routine. ICMP is that
  1095. solution. If for some reason a machine can't handle an incoming IP packet, it
  1096. drops the packet and sends back an ICMP error message to the machine that sent
  1097. the original packet telling it something is wrong.
  1098.  
  1099. The most familiar function of ICMP to most people is the Echo Request/Reply
  1100. set, or "ping" as it's better known. When you ping a machine, you're sending
  1101. an ICMP message called an "echo request" to that machine. The network layer of
  1102. that machine will send you back an ICMP "echo reply," if it is so configured
  1103. to do so.
  1104.  
  1105. An ICMP packet looks like this:
  1106.  
  1107. .---------------------------------.
  1108. | IP Header |  ICMP Message Data  |
  1109. `---------------------------------'
  1110.    20 bytes
  1111.  
  1112. The actual header of an ICMP packet looks like this:
  1113.  
  1114. 0             7 8           15 16                31
  1115. .-------------------------------------------------.
  1116. |  8 Bit Type  |  8 Bit Code  |  16 Bit Checksum  |
  1117. `-------------------------------------------------'
  1118.  
  1119. The rest of the packet differs between ICMP "types." An ICMP type declares
  1120. what the function of the ICMP packet is, and how it's to be dealt with by the
  1121. system.
  1122.  
  1123. An ICMP "code" is a subtype. For instance, ICMP type "3" code "0" is a
  1124. "network unreachable" while a type "3" code "1" is a "host unreachable". ICMP
  1125. type "3" is the "destination unreachable" type.
  1126.  
  1127. So, when we ping a machine, we create an ICMP "echo request" packet. The type
  1128. is "8" and code is "0". The packet is created, and assuming you were using an
  1129. ethernet for this, the packet would look similar to this:
  1130.  
  1131. 00000000: 00 40 05 16 56 AA 00 00 b4 54 b1 BB 08 00 45 00
  1132. 00000010: 00 54 54 ed 00 00 40 01 19 d9 d1 AA BB CC d1 BB
  1133. 00000020: CC EE 08 00 67 74 41 2d 00 00 5a 9b 5b 36 ab 89
  1134. 00000030: 03 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
  1135. 00000040: 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25
  1136. 00000050: 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35
  1137. 00000060: 36 37
  1138.  
  1139. That's what the packet would actually look like on the wire.
  1140.  
  1141. Let's break it down, protocol by protocol:
  1142.  
  1143. 00000000: 00 40 05 16 56 AA 00 00 b4 54 b1 bb 08 00 -- --
  1144.           |_______________| |_______________| |___|
  1145.                   |                 |           |
  1146.       Destination Hardware   Source Hardware    Protocol (16 bits)
  1147.             Address              Address            (08 00 == IP)
  1148.               (48 bits)         (48 bits)
  1149.  
  1150. This is the ethernet layer, containing the source and destination hardware
  1151. addresses for the packet, as well as what protocol is encapsulated within it.
  1152. In this case, 08 00 means its carrying an IP packet.
  1153.  
  1154.                                                          ____ 8 bit Type of
  1155.                                                        ||     service field
  1156. 00000000: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 45 00
  1157.                                                     ||__
  1158.                    (4 bits, msb)  Version (ipv4 == 4)   |
  1159.                                                         |
  1160.  (4 bits, lsb) Num. of 32 bit words in header, normally 5
  1161.  
  1162.  
  1163. This is the IP layer, which contains information necessary to move the packet
  1164. from network to network, or machine to machine for that matter.
  1165.  
  1166. The first 4 bits of the first byte of the header specify what IP protocol is
  1167. in use. On today's internet, we use IPv4, so this would be a 4. The second,
  1168. least signifigant 4 bits specify how many 32-bit words are located within this
  1169. packet. You'll find this is often a 5, because there are most often 5 32-bit
  1170. words in an IP packet, without options.
  1171.  
  1172. The second byte is the 8-bit type of service field, which we'll dig into
  1173. deeper in another article. Assume for now that this field gives more detail as
  1174. to the application that is sending this data and how it should be handled.
  1175.  
  1176.  
  1177.     16-bit total length
  1178.         (in bytes)
  1179.             |      3-bit flags,
  1180.             |   13-bit Frag Offset    
  1181.             |           |
  1182.             |           |  IP Protocol Type (ICMP) (8 bits)
  1183.             | (16bits)  |      |
  1184.             | Fragment  |(8bit)|  (16bits)  Source IP (32 bits)
  1185.             |    ID     |  TTL | Checksum    |        Destination IP (32 bits)
  1186.            _|_   _|_   _|_  |  |   _|_   ____|____   _______|______ 
  1187.           |   | |   | |   | |  |  |   | |         | |              |
  1188. 00000010: 00 54 54 ed 00 00 40 01 19 d9 d1 AA BB CC d1 BB          |
  1189. 00000020: CC EE -- -- -- -- -- -- -- -- -- -- -- -- -- --          |
  1190.           |___|                                                    |
  1191.               |____________________________________________________|
  1192.  
  1193.  
  1194. The 16-bit total length is the length of the whole datagram, in bytes.
  1195.  
  1196. Fragment ID (sometimes just "ID"), Flags and Frag offset will be discussed
  1197. in another article.
  1198.  
  1199. The "Time To Live" is the maximum amount of hops this packet can go through
  1200. before it is discarded and the sender is delivered a message saying that the
  1201. packet didn't get to its destination. Each hop decrements this field by one
  1202. before sending the packet along.
  1203.  
  1204. The protocol type in this case is a "1", specifying ICMP as the protocol in
  1205. use. The checksum is a matter of one's complement notation against the header
  1206. on both the sending and receiving machines, and we'll look into this more
  1207. specifically in the next article.
  1208.  
  1209.  
  1210. The rest is self-explanatory.
  1211.  
  1212. Now for the ICMP packet itself.
  1213.  
  1214. ICMP Type - Echo Request (8)
  1215.                 |               Identifier - UNIX implementations use the PID
  1216.                 |  ICMP Code, 0 | of the calling process
  1217.                 |  |            |
  1218.                 |  |  Checksum  |   Sequence Number
  1219.                 |  |   _|_   ___|  _|_   __________________
  1220.                 |  |  |   | |   | |   | |                  |
  1221. 00000020: -- -- 08 00 67 74 41 2d 00 00 5a 9b 5b 36 ab 89  |
  1222. 00000030: 03 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15  |
  1223. 00000040: 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25  ---- 56 bytes of
  1224. 00000050: 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35  |       data
  1225. 00000060: 36 37                                            |    (Variable)
  1226.                                                         ___|
  1227.  
  1228. The first two bytes are the ICMP type and code, respectively. The checksum
  1229. works the same as it does for IP. The identfier is set to the PID on UNIX
  1230. machines, usually. Either way, it's a unique identifier for whatever purpose
  1231. the machine needs. Using the PID is a good idea, as it allows a machine to
  1232. determine what process the packet belongs to.
  1233.  
  1234. Anyone who has used ping knows what the sequence number is. The sequence
  1235. number is an incrementing number for each packet sent, allowing a process, or
  1236. person for that matter, to track their packets.
  1237.  
  1238. The rest of the data is piggybacked onto the packet to pad it to meet the
  1239. minimum transmission unit for the network media, as well as to send some more
  1240. data with the packet in order to test speed between two places.
  1241.  
  1242. The echo reply is then generated, and the packets look very similar. The
  1243. exceptions being the source/destination HW and IP addresses are switched, and
  1244. the ICMP type is changed from "8" to "0" (Echo Reply).
  1245.  
  1246. ****
  1247.  
  1248. We'll look more into this and other topics in the next System Failure. For
  1249. those of you that are interested in protocol analyzation, I suggest picking
  1250. up a good sniffer/network analyzer and watching what goes by on your network.
  1251. You might find some interesting things, and it's a good way to learn about
  1252. protocols and their implementation on different operating systems and
  1253. networks.
  1254.  
  1255. Hope you enjoyed, and keep those e-mails coming.
  1256.  
  1257. -bk
  1258.  
  1259. References:
  1260.  
  1261. I. "TCP/IP Illustrated, Volume 1: The Protocols" W. Richard Stevens, January
  1262.         1994. (Addison-Wesley Professional Computing Series). ISBN:0201633469
  1263. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1264. Maybe System Failure 16 will be out in early February or so. Who knows. See
  1265. you all in a couple months. I think. :)
  1266. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-E-O-F-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1267.