660 likes | 936 Views
Scanning, Sniffing, Spoofing and Man-in-the-middle Attacks. Lesson 13. Scanning. Ping Sweeps Port Scanners Application Scanning Operating System Scanning SNMP scanning Vulnerability Scanning . Ping Sweep. PING (Packet INternet Groper)
E N D
Scanning, Sniffing, Spoofing andMan-in-the-middle Attacks Lesson 13
Scanning • Ping Sweeps • Port Scanners • Application Scanning • Operating System Scanning • SNMP scanning • Vulnerability Scanning
Ping Sweep • PING (Packet INternet Groper) • A utility designed to determine whether or not a remote system is accessible. • Using PING, attackers can send an ICMP echo request to every address within a range to determine which systems are “up and running” • Every system that is up will respond with an echo reply, providing a list of potential targets
Echo Request Echo Request Echo Reply Echo Request PING Sweeps Unused Address 10.1.1.9 Attacker 10.1.1.10 Target List 10.1.1.10 Unused Address 10.1.1.11
PING Sweeps • Less effective today than in the past • Recent rise in DoS attacks which also use ICMP have resulted in administrators setting their systems to drop inbound ICMP echo requests. • Can still be effective for insiders or attackers who have been able to penetrate at least one system. • There are a number of different packages that can be downloaded that accomplish this type of scan.
Port Scanning • A Port Scanner is a program that checks a computer’s TCP/IP stack for ports that are in the LISTEN state. • There are 65,535 possible ports • 1-1023 are considered “well known” • 1024-49151 are called “registered ports” • 49152-65,535 are dynamic or private ports • RFC 793 defines how TCP will react to FIN, ACK, and SYN packets.
RFC 793 If the state is CLOSED (that is, Transmission Control Block does not exist) then all data in the incoming segment is discarded. An incoming segment containing a RESET (RST) is discarded. An incoming segment not containing a RST causes a RST to be sent in response. The acknowledgment and sequence field values are selected to make the reset sequence acceptable to the TCP that sent the offending segment. If the state is LISTEN then first check for an RST, An incoming RST should be ignored. Second check for an ACK. Any acknowledgment is bad if it arrives on a connection still in the LISTEN state. An acceptable reset segment should be formed for any arriving ACK-bearing segment. Third check for a SYN, if the SYN bit is set, check the security. IF the security/compartment on the incoming segment does not exactly match the security/compartment in the TCB then send a reset and return.
Some Well-known ports Port Number Network Service 20 File Transfer Protocol (FTP) Data 21 File Transfer Protocol (FTP) Control 23 Telnet 25 Simple Mail Transfer Protocol (SMTP) 53 Domain Name Server (DNS) 79 Finger 80 World Wide Web (HTTP) 110 Post Office Protocol – Version 3 443 HTTPS
Port Scanning • In a Port Scan, the system will attempt to connect to specific (or all) ports on the remote system to see which respond. • Responding ports are considered “open” and the attacker can then attempt to exploit (especially known services on well-known ports). • Large number of tools available to perform port scanning. nmap is one of the most popular tools that can perform a port scan.
79 80 80 81 82 Port Scanning Attacker Web server Services List HTTP
Types of Port Scanning • TCP SYN Scanning – “half open” scanning. Sends a SYN packet to each remote port. Open ports respond with a SYN/ACK packet. Closed ports usually respond with an RST packet. • TCP FIN Scanning – Sends a FIN packet (normally sent to clear connection when conversation is finished). Closed ports usually respond with an RST packet. Open ports usually ignore FIN packets. • UDP Scanning – often more difficult than TCP since UDP services may not respond. If a ICMP “port unreachable” message is received, however, it is an indication the service is NOT running. • Fragmentation Scanning – break scan up into several smaller packets. This may result in being able to hide the scan from firewalls and IDS. • Relay or bounce scanning – send scan through another system (proxy or forwarding gateway), may confuse/hide origin of attack • Decoy scanning – send a large number of spoofed packets along with your real one so they hide the real scan.
Vulnerability Scanning • One approach to vulnerability scanning is to • Use a port-scanning tool such as nmap to identify the OS and to log all listening ports • May return something like • Linux Kernel 2.2 with ports 21, 25, 53, 80 listening • What the ports are and what vulnerabilities that may exist in them is an exercise left up to the user. • The purpose of a vulnerability scanner is to detect the presence of specific vulnerabilities • Common components for vulnerability scanners • Vulnerability data – information about known vulnerabilities, how knowledgeable is the tool? • Scanning mechanism – the “guts” of the scanner, how accurate is the tool? • Reporting mechanism – interface with user
Types of vulnerability scanners • Commercial scanners: developed and sold by companies (e.g. ISS and Cisco). • Due to development time, often lag freeware scanners. • Freeware scanners: developed and released “in the community” • General-purpose scanners: look for a wide range of vulnerabilities on a large number of operating systems and applications. Often used in a security audit. • Application scanners: written to examine a specific application for vulnerabilities associated with it. • Service scanners: Scanning tool used to examine a specific network service, such as WWW, for common vulnerabilities associated with that service. • Specific vulnerability scanners: written to only check for a specific vulnerability.
Possible information from scanning • Which systems are active • What services are available/listening • What operating system is in use • Which version of an application is running • Which users have an account on the system and which are active • What the security configuration/settings are • Whether certain patches have been installed • Information about specific vulnerabilities • Possibly whether a specific exploit will be successful
Ways to recognize scanning • System log file analysis – look for multiple, short duration connections or connection attempts. • Network traffic – monitor the volume of inbound and outbound network traffic. If you have established a profile of what is normal activity you will be able to recognize spikes in the activity level which may indicate scanning activity. • Firewall and router logs – look for multiple rejections or access violations coming from the same source or group of sources. • Intrusion detection systems – most IDS contain built-in methods for examining traffic to detect scanning attempts.
Defending against Scanning and its effects • Block ports at your router/firewall. • Block ICMP, including echo • Create a DMZ • Use bastion hosts/proxy servers • Use NAT to hide private, internal IP addresses • Remove default/sample materials • Remove unnecessary services • Restrict permissions • Change default headers associated with services • Keep applications and operating systems patched • Establish a “Honeypot” to trap attackers
Scanning Your Own Network • Will provide you with “hackers view” into your network • Will illustrate the most visible vulnerabilities • Scan from both “internal” and “external” vantage points
New Target – Wireless Ethernet • 802.11b • WEP (Wired Equivalent Privacy) • 40-bit encryption key and 24-bit Initialization Vector (64-bit encryption) • 104-bit key plus the 24-bit Initialization Vector (128-bit encryption) • Most Access Points are deployed with no encryption, or with default keys
Sniffing • Sniffers are programs or HW devices that monitor (“listen in to”) traffic flowing across a network. • They can pull in all packets or be selective and only grab packets destined for certain addresses or that carry a certain type of traffic • For a sniffer to work correctly, it needs to view all of the traffic going across a network. Thus, it must be on an internal network or on a main connection into/out of a network.
Computer Network Monitoring • Port Scanning • Keystroke Monitoring • Packet sniffers • takes advantage of “friendly” nature of net. • Grabs packets not destined for system • used by • hackers • sysadmins • Law enforcement agencies
IP Packet 4 8 16 19 32 Version Length Type of Srvc Total Length Identification Flags Fragment Offset Time to live Protocol Header Checksum Source Address Destination Address Options Data
TCP packet 4 8 16 32 Source Port Destination Port Sequence Number Acknowledgement Number Unused U A P R S F R C S S Y I G K H T NN Window Data offset Checksum Urgent Pointer Options Padding Data
Van Eck reception • Relies on the fact that electronic equipment radiates electromagnetic signals which can be intercepted • With the proper equipment signals can be recreated up to 1 kilometer away
Seizing the Signals • Eavesdropping on conversations • “listening in”, the content • Traffic analysis • data about the signals themselves
Eavesdropping • Cellular Intercepts • extremely vulnerable to interception • Pager Intercepts • also fairly simple • Law Enforcement Wiretaps • generally require court order with probable cause • Foreign Intelligence Intercepts • US and others have VERY active program in this arena
Defeating Sniffer Attacks • Detecting and Eliminating Sniffers • Possible on a single box if you have control of the system • Difficult (depending on OS) to impossible (if somebody splices network and adds hardware) from network perspective • Safer Topologies • Sniffers capture data from network segment they are attached to, so – create segments • Encryption • If you sniff encrypted packets, who cares? • (outside of traffic analysis, of course)
Traffic Analysis • Looks at activity, not contents • Pen Registers and Trap & Trace • pen registers provide access to the numbers that are dialed from a phone • trap & trace provides incoming numbers • Location Tracking • possible with cellular phones • can work even when phone not in use
Spoofing • “a sophisticated technique of authenticating one machine to another by forging packets from a trusted source address.”
IP Spoofing • This may simply consist of forging the from address in an IP packet so it appears to have come from somewhere else. • Often used to trick target machine into believing packet is coming from a host it trusts, thus getting the target machine to perform some task. • To do appropriately it may involve sniffing, spoofing, and DoS attack
Two themes present in these definitions • Trust • “the relationship between machines that are authorized to connect to one another.” • Authentication • “the process those machines use to identify each other.” • Generally these two have an inverse relationship: • If a high degree of trust exists between two machines, the amount of authentication is low. • If little trusts exists between the machines, a great deal of authentication is required.
Authentication and Trust • Most common method of authentication is the userid/password combination. • If a user on a local network wants to access another system on the local network, having to supply the password to log on is a nuisance. Consequently, a trusted relationship may be established where one local system will trust the other to have authenticated the user originally and will thus not require additional authentication. • An example of this is the UNIX .rhosts and hosts.equiv files.
Trusted relationships in UNIX • .rhosts file is used to establish a trusted relationship between machines. Used by rlogin, rsh, and rcp to determine which remote hosts and users are considered “trusted” and are allowed to access the host without supplying a password. • rlogin (remote login), rsh (remote shell), rcp (remote copy) • File consists of • A host name, indicating that this user is trusted when accessing the system from the specified host, or • A host name followed by a login name, which indicates that the listed login name is trusted when accessing the system from the specified host
.rhosts example • If user1 had the following .rhosts file in their home directory (/home/user1/.rhosts) system2system4system5 user2system2 user5 • It would mean • user1 could log in from system2 as user1 • user1 could log in from system4 as user1 • user1 could log in from system5 as user2 • user1 could also log in from system2 as user5
/etc/hosts.equiv file example • /etc/hosts.equiv are essentially equivalent to a system-wide .rhosts file and contain lines with hostnames. If system1 contained the /etc/hosts.equiv file: system2system4system5 • It would indicate that any user on system2, system4, or system5 could log into system1 without having to supply a password. • This assumes that an equivalent username exists on system1 as the one being used on the accessing system (i.e. system2, system4, or system5). • A + in the /etc/hosts.equiv file says all systems trusted.