Difference between revisions of "Willie Stehm"

From WLCS
(8) HTML Background and Basics)
(Topics of focus)
 
(29 intermediate revisions by the same user not shown)
Line 13: Line 13:
 
::*[http://en.wikipedia.org/wiki/MD5 MD5]
 
::*[http://en.wikipedia.org/wiki/MD5 MD5]
 
=====Wiimote=====
 
=====Wiimote=====
 +
:*Bluetooth
 
:*Head tracking
 
:*Head tracking
:*Finger tracking
 
 
:*Smart board
 
:*Smart board
:*Try and combine both finger and head tracking
 
 
=====Magnetic Stripe=====
 
=====Magnetic Stripe=====
 
:*DIY reader/writer
 
:*DIY reader/writer
Line 27: Line 26:
 
::*Editing information stored on card
 
::*Editing information stored on card
 
:*RFID security
 
:*RFID security
 +
=====Web Development=====
 +
:*Web Server
 +
:*Initial site design
 +
::*Good / Bad
 +
:*HTML
 +
:*PHP
 +
:*CSS
  
 
+
==Goals and Documentation==
 
+
:*[http://paulbui.net/wl/index.php?title=Willie_Stehm_1st_Quarter 1st Quarter]
==Ten Goals for First Quarter==
+
:*[http://paulbui.net/wl/index.php?title=Willie_Stehm_2nd_Quarter 2nd Quarter]
<p>1) Set up test lab using a minimum of three computers connect to a hub or switch <b> [X] </b></p>
+
:*[http://paulbui.net/wl/index.php?title=Willie_Stehm_3rd_Quarter 3rd Quarter]
<p>2) Research and use packet sniffers to intercept packets sent by other computers through the network <b> [X] </b></p>
+
:*[http://paulbui.net/wl/index.php?title=Willie_Stehm_4th_Quarter 4th Quarter]
<p>3) Research and document findings on how to crack password hashes <b> [X] </b></p>
 
<p>4) Research general email security <b> [X] </b></p>
 
<p>5) Intercept Gmail Log-in information to analyze<b> [X] </b></p>
 
::*SHA hash function
 
::*RSA Encryption
 
<p>6) Intercept Gmail Chat messages through wireshark <b> [X] </b></p>
 
<p>7) Attempt to intercept normal emails sent through gmail <b> [X] </b></p>
 
<p>8) Make necessary cat5e cables to connect firewall to test lab and APS network <b> [X]</b></p>
 
<p>9) Set up Firewall for our test lab <b> [X] </b></p>
 
::*Research firewall operating systems
 
:::*[http://www.ipcop.org/ IP Cop]
 
::*Install all necessary hardware components into our firewall
 
::*Install IP Cop software and configure settings to fit our network set-up
 
<p>10) Research Network Penetration testing <b> [X] </b> </p>
 
 
 
==First Quarter Goal Documentation==
 
 
 
===1) Setting up the test lab===
 
:*After doing a bit of research we settled on using the Xubuntu operating system.  Xubuntu is a streamlined version of the Ubuntu operating system that is less memory intensive and thus better for older computers such as the ones used in our test lab.  It also cuts out some of the unneeded bundled applications that come with Ubuntu, allowing us to add on only what is useful to us.  While comparing hubs and switches we decided to use a hub.  Hubs unlike switches broadcast packets out to all ports.  This enables us to easily intercept packets, learn to analyze packet data, and learn about network security as a whole.  Our final network set-up can be seen in the picture to the right.
 
[[Image:1007081014.jpg|thumb|right|Our test network as we set it up.]]
 
 
 
===2) Packet Sniffers===
 
:*Under the recommendation of Mr.Bui we started using a program called [http://www.wireshark.org/ wireshark] (formally known as ethereal) to start capturing packets sent over our test lab network.  Using the im client [http://www.pidgin.im/ Pidgin], we set up test accounts and started talking to each other over the network.  These packets were relayed to the Pidgin server and then sent to the other account.  Using our hub and concurrently running wireshark, we were able to filter the captured packets to only view those related to Pidgin and the AIM protocol. The results were amazing.  We intercepted packets containing everything from log-on info to message contents, buddy info, updates on when the person was away or idle, and even password hashes being sent at the log-in. 
 
 
 
===3) Password Hashes===
 
:*When signing onto AIM through Pidgin on one computer, we were able to capture a packet containing the log-on information as it was being sent for verification.  The packet captured contained the  password hash 51e3ed91700bee528a11e333ab25e6d2 as sent from Pidgin.  After a bit of research on the AIM protocol we found that the password algorithm used in the aim protocol is [http://en.wikipedia.org/wiki/MD5 MD5]. MD5 turns the password into a one way 128-bit hash before sending it AOL for verification.  Since MD5 is designed to be a one way algorithm it makes it very difficult to reverse and thus recover the password from the hash.  Although difficult we found two ways that this could be done. The first is through the use of a [http://en.wikipedia.org/wiki/Rainbow_table Rainbow table].  Rainbow tables take the hash value provided and compare it to thousands of known hash values and their corresponding plain text value.  For our situation this option isn't exactly feasible as each hash value can have millions of possible combinations and requires extremely fast computers to crack.  The second option we found was to use a password cracker such as [http://www.oxid.it/cain.html Cain and Abel]. Password crackers use vast word lists and compare individual words to the password hash hoping to find a match.  The downside to this method is that the word list used must contain the password in order for the program to find a match.  If the password is not present in the word list the search will come up inconclusive.  Using the hash value we obtained I ran Cain and Abel at home comparing it to a default word list.  Just as described in the downside, the default word list I used didn't contain the password so the program comparison thus came up inconclusive. 
 
 
 
===4) General Email Security===
 
:*With our brief stint into Pidgin security our group decided to move on and look into email security.  After a bit of research and discussion with Mr.Bui we found that in general, most email hosts encrypt their login information and their messages.  The most common method for encrypting login information is with SSL or TLS.  SSL, short of Secure Sockets Layer, was invented by Netscape and accepts many different encryption ciphers.  It was designed to make all sorts of communication over the internet more secure and it has succeeded all over the board making ease-dropping on certain information near impossible.  Recently SSL was update and renamed TLS, short for Transport Layer Security.  TLS works almost exactly the same way as SSL does except it incorporates stronger encryption algorithms and work with a greater number of ports.  Unlike with login information, there was no real common way that email hosts encrypted email messages.  We found that there were a number of different encryption algorithms employed today all of which depended on what the email host chose to use.  To further look into this we decided to experiment with gmail and document our findings on their login information, gmail chat messages, and actual emails.
 
 
 
===5) Intercept Gmail Log-in information to analyze===
 
[[Image:Shawithrsa.png|200px|thumb|left|Screenshot of a captured packet on wireshark that displays google's log-on security.]]
 
:*After our great success with intercepting packets while using Pidgin, we decided to move on and try our luck with gmails login information.  As all of us already had gmail accounts we decided that this would be a good email client to test.  For our fist test we did exactly what we did for the Pidgin log-on.  While running wireshark on one computer someone else attempted to log-on to gmail using their username and password.  From the intercepted packet that was being sent to google for verification we were able to learn a great deal about google's security. As shown in one of the highlighted regions in the picture to the left we found that google uses a SHA hash function combined with RSA encryption.  The SHA hash functions almost identically as MD5 except it uses a 160 bit hash value versus a 128 bit one.  This makes SHA hash functions even more secure than MD5 and thus harder to crack.  Combined with SHA hashes google incorporates RSA encryption into the mix.  RSA is one of the first encryption algorithms and uses public and private keys to encrypt information.  The public key is obviously public and available to everyone.  The private key is kept to ones self and used to decrypt the message.  To do this the message is first encrypted with the public key and then sent out to the desired recipient.  The recipient then decrypts it with their private key and is able to read the message.  Google uses the combination of these two to encrypt login information and thus making intercepting someones username and password near impossible.
 
 
 
 
 
===6) Intercept Gmail Chat messages through wireshark===
 
:* Unlike intercepting login information, intercepting gmail chat information was relatively easy.  Once logged in, google no longer encrypts the information that flows between the email client and the outside.  As Aj chatted with one of his cousins we were able to see the messages in real-time as he sent them.  There was absolutely no encryption and the messages were displayed in plain text in packets that we intercepted in wireshark.  We were also able to she her responses in the form of incoming packets.  All status updates were also openly visible.  Individual packets were sent when a user was typing, idle, or just moving their mouse.  We all found it kind of creepy that these types of things were in no way encrypted and someone doing the exact same procedure we were doing would be able to view all this information. 
 
 
 
===7) Attempt to intercept normal emails sent through gmail===
 
[[Image:Email-sniffed.jpg|200px|thumb|right|Screenshot of a packet containing the contents of an email.]]
 
:*With gmail chat messages being in no way encrypted, we were very much curious to see if actual emails were.  Much to our surprise, emails just like gmail chat messages, were not encrypted at all.  Again using wireshark we were able to view sent and received emails, their senders, and their destination, all by viewing intercepted packets.  Overall we concluded that while gmail is very secure while signing in, past that their is absolutely no security and plenty of room for people to intercept information.  The moral of the story is never send sensitive information over unencrypted mediums such as gmail.
 
 
 
 
 
===8) Make cat5e cables to connect the firewall to our test lab and APS network ===
 
:*After we documented our findings on email security, we decided to build our own firewall and start heading more in the direction of firewall and network security.  In order to do this we would have to set up a machine as a firewall, connect it to our test lab, and then connect it to our outside network, in this case the APS network.  We quickly realized that we had all the essential supplies to do this except for the cable necessary to connect all the components.  All the cables that we found in the classroom were either broken or way to short for our needs.  Although while searching for cables we came across a giant spool of unassembled cat5e cable.  We decided as a fun way to refresh our memory from cisco class that we would assemble our own network cable to use.  To do this we needed the supplies as follows:
 
::*Network cable
 
::*Splitter
 
::*Crimper
 
::*Cable heads
 
::*Cable tester
 
:*To start we first cut a length of network cable long enough to suit our needs.  Second, using the splitter, we cut about an inch of the protective plastic coating off each end to expose the four pairs of twisted wires inside.  Once the pairs of wires were exposed we untwisted them, straightened them, and then ordered them in the correct configuration for a cat5e cable.  Cat5e cables require the wires to be ordered left to right as green stripe, green, orange stripe, blue, blue stripe, orange, brown stripe, brown.  After we put them in this order we cut the tips and carefully inserted them into one of the cable heads, making sure that they stayed in order and that each wire made contact with the pins at the top of the cable head.  Finally once the wires were in place we took the crimper and crimped the cable head into place, permanently securing the cable head to the network cable.  Once everything was completed we used our cable test to ensure that everything went right and that the cable functioned as desired.  As with all our work it worked perfectly fine and it was onto setting up the firewall itself.
 
 
 
===9) Set up Firewall for our test lab ===
 
[[Image:Network_layout.jpg|250px|thumb|right|Network map of our classroom.]]
 
:*Once we finished assembling the necessary cable it was time to get down to business making the actual firewall.  We pulled a machine of the back closet and inspected it to make sure it had the necessary hardware aspects.  At the time the machine didn't have a single network interface card or NIC present.  Thanks to Mr.Love at the career center we obtained a few NICs and installed two into the machine.  We needed two NICs because one would serve as the incoming, unfiltered (except by APS) line of traffic and the other would serve as the outgoing, filtered internet to our test lab.  With these installed we were able to then move onto installing the software portion of our firewall.  We decided to go with IPCop as our operating system as it is a simple, easy to use, open source operating system, and Mr.Bui uses it so we can easily get help if we have any questions.  The installation process was very straight forward and besides a slight problem getting the computer to recognize both NICs, it went off without a hitch.  We configured the NICs to work in the way explained above with our red card handling the incoming unfiltered traffic and the green card handling the outgoing filtered traffic.  Once we had this configured we connected our new firewall to the outside APS network as shown in the network diagram to the right.  Our firewall connected to the APS network through [http://en.wikipedia.org/wiki/Dhcp DHCP] also known as Dynamic Host Configuration Protocol. This means that IP addresses are automatically assigned to our firewall and computers at the beginning of each session.  The class network on the other hand uses static IP addresses meaning that they use a permanent IP address that never changes. 
 
 
 
===10) Research Network Penetration Testing===
 
:*Now that our firewall is up and running, my next goal is to research network penetration testing, also known as pen testing, to analyze our network and try and find any security holes.  This will allow me not only to see how secure our network actually is but also to gain a better understanding of network security as a whole.  Penetration testing itself simulates an attack by an outside user and tries to find breeches in the network's security.  The point of it is to find these security flaws and fix them before an actual outside malicious user does and exploits them to their advantage.  While I don't expect our test lab to be attacked anytime in the near future, I believe this to be very beneficial to learn about network weaknesses, how to exploit them, and above all how to fix them.
 
 
 
==Ten Goals for Second Quarter==
 
<p>1) Research Wiimote <b> [ ]</b> </p>
 
<p>2) Research Wiimote head tracking <b> [ ]</b> </p>
 
<p>3) Build head tracking unit capable of carrying out desired functions <b> [ ]</b> </p>
 
<p>4) Implement head tracking unit<b> [ ]</b> </p>
 
<p>5) Enable Wiimote to be used as a computer mouse<b> [ ]</b> </p>
 
<p>6) Build a functioning web server <b> [ ]</b> </p>
 
<p>7) Research Website Development<b> [ ]</b> </p>
 
<p>8) HTML Background and Basics<b> [ ]</b> </p>
 
<p>9) PHP Background and Basics<b> [ ]</b> </p>
 
<p>10) <b> [ ]</b> </p>
 
 
 
==Second Quarter Goal Documentation==
 
 
 
===1) Research Wiimote ===
 
:*The Nintendo Wiimote is shipped with every single console sold and users have the option of buying up to four Wiimotes to use with their system.  The Wiimote itself is a white, plastic, hand held controller that contains an infrared camera running at a resolution of 1024x768.  It has the ability to track up to four infrared points simultaneously and also contains a three axis accelerometer.  The accelerometer is capable of reading user movements on the x, y, and z planes at a measurement of +/- 3g's.  Finally the Wiimote contains a bluetooth module that it uses to wirelessly interact with the console or any other bluetooth compatible device.  For us it is very important that the Wiimote has this bluetooth module as it allows us to configure a computer with a bluetooth dongle and allow the two to freely interact.
 
 
 
===2) Research Wiimote head tracking===
 
:*By using an array of Infrared LED lights attached to some sort of head mounted device, the infrared camera inside the Wiimote is able to pick up the photon emissions and translate them into movement.  The Wiimote is able read the photon emissions on the x, y, and z planes all determined by how the wearer of the head tracking unit moves.  The Wiimote then communicates with a computer via its internal Bluetooth module to relay these movements to a Bluetooth compatible computer and allow the user to interpret them or incorporate them into a program however they see fit.  In our case we will be building our own head tracking unit to emit infrared photons that the Wiimote can interpret.  These movements will then be sent to the Bluetooth dongle and used with the program Desktop VR. 
 
 
 
===3) Building head tracking unit===
 
:*To build our head tracking unit we obtained a pair of shop safety glasses from Mr.Avondet.  We chose to use ones that were larger than necessary to give us extra surface area to attach the needed components (IR LEDs, battery holder, wiring). 
 
[[Image:Wii1.JPG|200px|thumb|left|Our Head tracking unit.]] [[Image:Wii2.JPG|200px|thumb|right|The Wiimote test lab.]]
 
To avoid the hassle of having to incorporate resistors into our circuit we opted to wire each LED in it's own circuit containing a single AA battery to power it.  The first time that we soldered the wiring in place we made a big mistake.  We soldered the cathode to the positive side of the battery holder and the anode to the negative end.  This was based off of our chemistry knowledge where the cathode is an electrode through which positive electric current flows out of.  But in the world of diodes it is the complete opposite.  The cathode is the negative terminal where current flows out of the device.  After a quick rewire the IR LED's were up and functioning as desired.  The next step was mounting the two circuits on the pair of safety glasses.  Our initial thought was to hot glue the two onto the safety glasses as to avoid any shifting that might occur.  Once we inspected the glasses this idea was quickly thrown away.  The glasses are made of a clear transparent plastic / rubber that would surely melt under the heat of the hot glue.  We settled on a quick and easy method of using masking tape to efficiently hold all the components into place.  The end result is pictured to the left and works just as desired.
 
 
 
===4) Implement head tracking unit===
 
[[Image:Wii4.JPG|200px|thumb|right|DesktopVR showing the wiimote targeting system.]]
 
:*Once our head tracking unit was up and functioning properly it was time to actually put it to use.  To implement it we configured a computer (shown as our Wii test lab above) to connect via bluetooth to the wiimote using the program [http://www.bluesoleil.com/ bluesoleil].  From there the wiimote was mounted on the top of the monitor using two pieces of sticky velcro.  After we mounted the wiimote we settled on using DesktopVR to test our unit.  The only thing we had to do was edit the configuration file to include the size of our sensor bar (the distance between the two IR LEDs on our unit) and the height of the monitor in centimeters.  Once these variables were accounted for DesktopVR was able to interpret the movement of the IR LEDs on our unit via the wiimote sensors and then display that movement on a virtual targeting system shown to the right.  This worked perfectly!  The wiimote connected via bluesoleil without a hitch, it picked up and detected the IR LED movement, and DesktopVR accurately depicted this movement on the targeting program.  The headset was fully capable of producing IR photons that were detectable up to about 10 feet.  Any further than that and the wiimote struggled to pick up the IR photons which would produce erratic motions in the DesktopVR program.
 
 
 
===5) Enable Wiimote to be used as a computer mouse===
 
[[Image:Wiinremote.bmp|200px|thumb|left|Screen shot of WiinRemote in action.]]
 
:*After testing the head tracking unit in its normal configuration we decided to move on and try to allow the wiimote to be used as a wireless computer mouse.  To do this we essentially configured the set up in reverse.  The IR head tracking unit was placed on top of the computer monitor while the wiimote was held in your hand to direct the cursor.  The wiimote then tracks the IR LEDs as two different points and converts their movement into cursor movement via the program [http://onakasuita.org/wii/index-e.html WiinRemote].  As the user were to move the wiimote up or down, the IR LEDs then move up or down relative to the wiimote.  The same thing goes for left to right movement.  WiinRemote shown left, also has the ability to by pass the Infrared sensor on the wiimote and use only the accelerometer to plot cursor movement.  To do this the wiimote reads movement from the x, y, and z axis and translates it into cursor movement.  When comparing the two configurations, the feature that utilized the IR LEDs seemed to function more smoothly versus the one using the accelerometer.  The accelerometer proved jerky which made it hard to select certain icons and fields.  Because of this when testing we usually stuck to using the IR LEDs for better targeting accuracy.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
===6) Build a functioning web server===
 
[[Image:ItWorks.jpg|200px|thumb|right|Server up and working properly.]]
 
:*My family recently bought a new desktop to replace our old one.  This left the old computer unused and gathering dust in our office.  One day during winter break I came across an article about making your own dedicated web server.  It sounded interesting and I already had all the necessary components so I took it upon my self to complete it as my winter break project.  To start I downloaded the server edition of ubuntu.  This edition boasts a slim all command line interface that can function as a DNS server, LAMP server, mail server, openSSH server, SQL database, print server, and samba file server.  I chose only to configure my server as a LAMP (standing for Linux, Apache, MySQL, PHP) server and an openSSH server.  This way I will be able to host websites that I create and also access the server remotely.  Installing the base system and configuring the LAMP and openSSH servers was the easy part compared to the rest.  In order to have my server accessible to the outside world I had to forward ports 80 (HTTP) and 22 (SSH) on my home network to my server.  Normally this would be an easy task but my home network contains ten computers, (three connecting wirelessly and seven cabled) an Xbox 360, and a Wii configured using DHCP for ease of use.  In order to port forward I had to convert my entire network to static IPs' to ensure that each time someone from the outside world tired to connect to my server that my network would point them to the correct computer.  After about six hours over two days I had the server set up and configured with the simple message displayed to the right to show that it was functioning correctly.
 
 
 
===7) Research Website Development===
 
:*Since my new web server is up and functioning properly, my next goal is to research web development, learn html and php, and design a website that I can host on my web server.  As I've had little to no prior experience creating websites I'm going to start by finding html and php tutorials to learn the two languages.  My ideal final goal would be to have a web server that can host a website that is capable of:
 
::*Having a blog section
 
::*Hosting pictures and albums
 
::*Allowing users to submit comments
 
:*Just like annoying powerpoint presentations, the best way to figure out how to create a good functioning, aesthetically pleasing, and easy to use web page is often to observe good and bad web pages and through your own user feedback see what works and what doesn't.  After a bit of searching around different web pages I compiled a list of factors that I have found key to creating and developing a good web page.
 
::*The Good
 
:::*Navigation through the web page is simple and easy to use.  All pages are easily accessible and proves no difficulty for the end user to surf through.  Menus could be placed at the side or top of the page to provide one click access to key components of the web page.
 
:::*Websites that function the same no matter what browser the visitor is using.  Theres nothing worse than having a web page be distorted by different browsers due to the way it was designed.
 
:::*Aesthetically pleasing - this is a big one.  When websites are designed with visual appearance in mind they often function and flow much better than a website that isn't.  This factor also starts to play into the navigation factor listed above.
 
 
 
::*The Bad
 
:::*Horrible text effects (mocking those of the morning announcements) that render the website virtually unreadable and thus useless to the end user.
 
:::*Wall of text format - the website provides little to no room for visuals and leaves the overall appearance very aesthetically unpleasing.  Little to no punctuation is often used in this format causing normal readers to struggle with comprehending the meaning of sentences.
 
:::*Over use of visual aides - the use of visual aides to help advance a point can often be a great thing, but when a website over does it it often takes away from the overall message as they draw the visitors attention to them rather than the text.
 
 
 
===8) HTML Background and Basics===
 
:*HTML Background
 
::*Standing for HyperText Markup Language HTML was first proposed in the early 1980's as a system for researchers to use, share, and publish documents over the internet.  After years of debate on the protocol the first version was finally settled upon in 1991.  Today the current version of the markup language is HTML5 as of January 2008.  Essentially an HTML document is a set of tags used to describe a web page.  The purpose of web browsers such as Internet Explorer, Mozilla Firefox, Opera, and Google Chrome is to interpret these tags and display them to the user as a visual web page.  HTML provides most of the backbone for websites today.  From there designers often add in or embed other code into HTML scripts such as php and javascript to enhance the functionality of their website.
 
:*HTML Basics
 
::*Since HTML is designed as a set of tags, each tag has a start tag and an end tag to denote when each attribute starts and ends. An example of an HTML script is below
 
<pre>
 
<html>
 
 
 
<body>
 
<h1> HTML SCRIPT!!!</h1>
 
<p> This is a new paragraph in a HTML script</p>
 
</body>
 
 
 
</html>
 
</pre>
 
::*As you can see tags such as "html", "body", "h1", and "p" are all started by placing them in angled brackets.  "html" is the tag that is used to start a HTML script and without it a browser such as Firefox would not know where to start interpreting the script.  "body" is the tag that denotes the beginning of the visible page content.  "h1" starts a new heading such as a title for the page or a paragraph.  By increasing the number next to h, such as "h2" or "h3" the heading gradually gets smaller to accommodate the designers needs.  As seen in the text of my mock HTML script "p" denotes the start of a new paragraph.  Finally all of these are then ended by enclosing the tag in normal angled brackets but adding a back slash before the name of the tag; Ex. "/body".  If the designer forgets to end a tag, the attributes of that tag will continue to effect everything proceeding that tag up until the end of the script.
 
 
 
===9) PHP Background and Basics===
 
:*
 
 
 
===10) ===
 
:*
 
  
 
==Partners in Crime==
 
==Partners in Crime==
 
*[[AJ McLennan]]
 
*[[AJ McLennan]]
 
*[[Nick Apseloff]]
 
*[[Nick Apseloff]]
 +
*[[Sean Readdy]]

Latest revision as of 11:36, 21 January 2009

Im in your PC stealing your interne.jpg

Today is May 4, 2024. Welcome to my page!

Topics of focus

Networking and Network Security
  • Basic concepts
  • Building test lab
  • Intercepting packets
  • Password hashes
  • IM information (buddy info, messages, sign-on data, sign-off data, etc.)
  • Middle man attacks
  • Encryption
Wiimote
  • Bluetooth
  • Head tracking
  • Smart board
Magnetic Stripe
  • DIY reader/writer
  • Writing and editing information on card
RFID
  • RFID Basics
  • Assembling RFID reader
  • Reading and writing information on RFID card
  • RF-dump
  • Editing information stored on card
  • RFID security
Web Development
  • Web Server
  • Initial site design
  • Good / Bad
  • HTML
  • PHP
  • CSS

Goals and Documentation

Partners in Crime