
Transcription
计算机科学与工程系Department of Computer Science and EngineeringCS 315 Computer Security CourseLab 1: Packet Sniffing and WiresharkIntroductionThe first part of the lab introduces packet sniffer, Wireshark. Wireshark is a free opensource network protocol analyzer. It is used for network troubleshooting andcommunication protocol analysis. Wireshark captures network packets in real time anddisplay them in human-readable format. It provides many advanced features includinglive capture and offline analysis, three-pane packet browser, coloring rules for analysis.This document uses Wireshark for the experiments, and it covers Wireshark installation,packet capturing, and protocol analysis.Figure 1: Wireshark in Kali LinuxFengwei Zhang - CS Course: CS 315 Computer Security1
BackgroundTCP/IP Network StackFigure 2: Encapsulation of Data in the TCP/IP Network StackIn the Introduction to Computer Networking Course, TCP/IP network stack is introducedand studied. This background section briefly explains the concept of TCP/IP networkstack to help you better understand the experiments. TCP/IP is the most commonly usednetwork model for Internet services. Because its most important protocols, theTransmission Control Protocol (TCP) and the Internet Protocol (IP) were the firstnetworking protocols defined in this standard, it is named as TCP/IP. However, it containsmultiple layers including application layer, transport layer, network layer, and data linklayer.-Application Layer: The application layer includes the protocols used by mostapplications for providing user services. Examples of application layer protocolsare Hypertext Transfer Protocol (HTTP), Secure Shell (SSH), File TransferProtocol (FTP), and Simple Mail Transfer Protocol (SMTP).Fengwei Zhang - CS Course: CS 315 Computer Security2
-Transport Layer: The transport layer establishes process-to-process connectivity,and it provides end-to-end services that are independent of underlying user data.To implement the process-to-process communication, the protocol introduces aconcept of port. The examples of transport layer protocols are Transport ControlProtocol (TCP) and User Datagram Protocol (UDP). The TCP provides flowcontrol, connection establishment, and reliable transmission of data, while the UDPis a connectionless transmission model.-Internet Layer: The Internet layer is responsible for sending packets to acrossnetworks. It has two functions: 1) Host identification by using IP addressing system(IPv4 and IPv6); and 2) packets routing from source to destination. The examplesof Internet layer protocols are Internet Protocol (IP), Internet Control MessageProtocol (ICMP), and Address Resolution Protocol (ARP).-Link Layer: The link layer defines the networking methods within the scope of thelocal network link. It is used to move the packets between two hosts on the samelink. An common example of link layer protocols is Ethernet.Packet SnifferPacket sniffer is a basic tool for observing network packet exchanges in a computer. Asthe name suggests, a packet sniffer captures (“sniffs”) packets being sent/receivedfrom/by your computer; it will also typically store and/or display the contents of the variousprotocol fields in these captured packets. A packet sniffer itself is passive. It observesmessages being sent and received by applications and protocols running on yourcomputer, but never sends packets itself.Figure 3 shows the structure of a packet sniffer. At the right of Figure 3 are the protocols(in this case, Internet protocols) and applications (such as a web browser or ftp client)that normally run on your computer. The packet sniffer, shown within the dashedrectangle in Figure 3 is an addition to the usual software in your computer, and consistsof two parts. The packet capture library receives a copy of every link-layer frame that issent from or received by your computer. Messages exchanged by higher layer protocolssuch as HTTP, FTP, TCP, UDP, DNS, or IP all are eventually encapsulated in link-layerframes that are transmitted over physical media such as an Ethernet cable. In Figure 1,the assumed physical media is an Ethernet, and so all upper-layer protocols areeventually encapsulated within an Ethernet frame. Capturing all link-layer frames thusgives you access to all messages sent/received from/by all protocols and applicationsexecuting in your computer.The second component of a packet sniffer is the packet analyzer, which displays thecontents of all fields within a protocol message. In order to do so, the packet analyzerFengwei Zhang - CS Course: CS 315 Computer Security3
Figure 3: Packet Sniffer Structuremust “understand” the structure of all messages exchanged by protocols. For example,suppose we are interested in displaying the various fields in messages exchanged by theHTTP protocol in Figure 3. The packet analyzer understands the format of Ethernetframes, and so can identify the IP datagram within an Ethernet frame. It also understandsthe IP datagram format, so that it can extract the TCP segment within the IP datagram.Finally, it understands the TCP segment structure, so it can extract the HTTP messagecontained in the TCP segment. Finally, it understands the HTTP protocol and so, forexample, knows that the first bytes of an HTTP message will contain the string “GET,”“POST,” or “HEAD”.We will be using the Wireshark packet sniffer [http://www.wireshark.org/] for these labs,allowing us to display the contents of messages being sent/received from/by protocols atdifferent levels of the protocol stack. (Technically speaking, Wireshark is a packetanalyzer that uses a packet capture library in your computer). Wireshark is a free networkprotocol analyzer that runs on Windows, Linux/Unix, and Mac computers.Fengwei Zhang - CS Course: CS 315 Computer Security4
Getting WiresharkThe Kai Linux has Wireshark installed. You can just launch the Kali Linux VM and openWireshark there. Wireshark can also be downloaded from here:https://www.wireshark.org/download.htmlFigure 4: Download Page of WiresharkFengwei Zhang - CS Course: CS 315 Computer Security5
Starting WiresharkWhen you run the Wireshark program, the Wireshark graphic user interface will be shownas Figure 5. Currently, the program is not capturing the packets.Figure 5: Initial Graphic User Interface of WiresharkThen, you need to choose an interface. If you are running the Wireshark on your laptop,you need to select WiFi interface. If you are at a desktop, you need to select the Ethernetinterface being used. Note that there could be multiple interfaces. In general, you canselect any interface but that does not mean that traffic will flow through that interface. TheFengwei Zhang - CS Course: CS 315 Computer Security6
network interfaces (i.e., the physical connections) that your computer has to the networkare shown. The attached Figure 6 was taken from my computer.After you select the interface, you can click start to capture the packets as shown inFigure 7.Figure 6: Capture Interfaces in WiresharkFigure 7: Capturing Packets in WiresharkFengwei Zhang - CS Course: CS 315 Computer Security7
Figure 8: Wireshark Graphical User Interface on Microsoft WindowsThe Wireshark interface has five major components:The command menus are standard pulldown menus located at the top of the window.Of interest to us now is the File and Capture menus. The File menu allows you to savecaptured packet data or open a file containing previously captured packet data, and exitthe Wireshark application. The Capture menu allows you to begin packet capture.The packet-listing window displays a one-line summary for each packet captured,including the packet number (assigned by Wireshark; this is not a packet numbercontained in any protocol’s header), the time at which the packet was captured, thepacket’s source and destination addresses, the protocol type, and protocol-specificinformation contained in the packet. The packet listing can be sorted according to any ofthese categories by clicking on a column name. The protocol type field lists the highestlevel protocol that sent or received this packet, i.e., the protocol that is the source orultimate sink for this packet.Fengwei Zhang - CS Course: CS 315 Computer Security8
The packet-header details window provides details about the packet selected(highlighted) in the packet-listing window. (To select a packet in the packet-listing window,place the cursor over the packet’s one-line summary in the packet-listing window andclick with the left mouse button.). These details include information about the Ethernetframe and IP datagram that contains this packet. The amount of Ethernet and IP-layerdetail displayed can be expanded or minimized by clicking on the right-pointing or downpointing arrowhead to the left of the Ethernet frame or IP datagram line in the packetdetails window. If the packet has been carried over TCP or UDP, TCP or UDP details willalso be displayed, which can similarly be expanded or minimized. Finally, details aboutthe highest-level protocol that sent or received this packet are also provided.The packet-contents window displays the entire contents of the captured frame, in bothASCII and hexadecimal format.Towards the top of the Wireshark graphical user interface, is the packet display filterfield, into which a protocol name or other information can be entered in order to filter theinformation displayed in the packet-listing window (and hence the packet-header andpacket-contents windows). In the example below, we’ll use the packet-display filter fieldto have Wireshark hide (not display) packets except those that correspond to HTTPmessages.Fengwei Zhang - CS Course: CS 315 Computer Security9
Capturing PacketsAfter downloading and installing Wireshark, you can launch it and click the name of aninterface under Interface List to start capturing packets on that interface. For example, ifyou want to capture traffic on the wireless network, click your wireless interface.Test RunDo the following steps:1. Start up the Wireshark program (select an interface and press start to capturepackets).2. Start up your favorite browser (ceweasel in Kali Linux).3. In your browser, go to Wayne State homepage by typing www.wayne.edu.4. After your browser has displayed the http://www.wayne.edu page, stop Wiresharkpacket capture by selecting stop in the Wireshark capture window. This will causethe Wireshark capture window to disappear and the main Wireshark window todisplay all packets captured since you began packet capture see image below:Fengwei Zhang - CS Course: CS 315 Computer Security10
5. Color Coding: You’ll probably see packets highlighted in green, blue, and black.Wireshark uses colors to help you identify the types of traffic at a glance. Bydefault, green is TCP traffic, dark blue is DNS traffic, light blue is UDP traffic, andblack identifies TCP packets with problems — for example, they could have beendelivered out-of-order.6. You now have live packet data that contains all protocol messages exchangedbetween your computer and other network entities! However, as you will notice theHTTP messages are not clearly shown because there are many other packetsincluded in the packet capture. Even though the only action you took was to openyour browser, there are many other programs in your computer that communicatevia the network in the background. To filter the connections to the ones we wantto focus on, we have to use the filtering functionality of Wireshark by typing “http”in the filtering field as shown below:Notice that we now view only the packets that are of protocol HTTP. However, we alsostill do not have the exact communication we want to focus on because using HTTP as afilter is not descriptive enough to allow us to find our connection to http://www.wayne.edu.We need to be more precise if we want to capture the correct set of packets.Fengwei Zhang - CS Course: CS 315 Computer Security11
7. To further filter packets in Wireshark, we need to use a more precise filter. Bysetting the http.host sustech, we are restricting the view to packets that have asan http host the www.wayne.edu website. Notice that we need two equal signs toperform the match “ ” not just one. See the screenshot below:8. Now, we can try another protocol. Let’s use Domain Name System (DNS) protocolas an example here.Fengwei Zhang - CS Course: CS 315 Computer Security12
9. Let’s try now to find out what are those packets contain by following one of theconversations (also called network flows), select one of the packets and press theright mouse button (if you are on a Mac use the command button and click), youshould see something similar to the screen below:Click on Follow UDP Stream, and then you will see following screen.Fengwei Zhang - CS Course: CS 315 Computer Security13
10. If we close this window and change the filter back to “http.host www.wayne.edu”and then follow a packet from the list of packets that match that filter, we shouldget the something similar to the following screens. Note that we click on FollowTCP Stream this time.Fengwei Zhang - CS Course: CS 315 Computer Security14
Questions for the Lab1.2.3.4.5.Carefully read the lab instructions and finish all tasks above.If a packet is highlighted by black, what does it mean for the packet?What is the filter command for listing all outgoing http traffic?Why does DNS use Follow UDP Stream while HTTP use Follow TCP Stream?Using Wireshark to capture the FTP password.There is a FTP server installed on the Kali Linux VM. You need to use a terminalto log into the server and use Wireshark to capture the password. The usernamefor the FTP server is csc5991-student, and the password is [WSU-csc5991.]without the brackets. You will user the username and password to login the FTPserver while Wireshark is running. Note that the FTP server is installed on thelocalhost, make sure you select the right interface for the capturing. You need toexplain to me how you find the password and a screenshot of the passwordpacket. Have fun!Fengwei Zhang - CS Course: CS 315 Computer Security15
Lab 1: Packet Sniffing and Wireshark Introduction The first part of the lab introduces packet sniffer, Wireshark. Wireshark is a free open-source network protocol analyzer. It is used for network troubleshooting and communication protocol analysis. Wireshark captures network packet