270 likes | 281 Views
CIT 480 : Securing Computer Systems. Scanning. Topics. Port Scanning Stealth Scanning Version Identification OS Fingerprinting. Port Scanning. Port scanning is a method of discovering potential input channels on a host by proving the TCP and UDP ports on which services may be listening.
E N D
CIT 480: Securing Computer Systems Scanning CIT 480: Securing Computer Systems
Topics • Port Scanning • Stealth Scanning • Version Identification • OS Fingerprinting CIT 480: Securing Computer Systems
Port Scanning Port scanning is a method of discovering potential input channels on a host by proving the TCP and UDP ports on which services may be listening. CIT 480: Securing Computer Systems
nmap TCP connect() scan > nmap -sT scanme.nmap.org Starting Nmap 6.40 ( http://nmap.org ) at 2013-10-26 Nmap scan report for scanme.nmap.org (74.207.244.221) Host is up (0.11s latency). Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 1720/tcp filtered H.323/Q.931 9929/tcp open nping-echo done: 1 IP address (1 host up) scanned in 9.92 seconds CIT 480: Securing Computer Systems
Scanning Techniques • TCP connect() scan • TCP SYN scan • TCP FIN scan • TCP Xmas scan • TCP Null scan • TCP ACK scan • Fragmentation Scan • FTP bounce scan • Idle Scan • UDP scan CIT 480: Securing Computer Systems
TCP connect() scan • Use connect() system call on each port, following normal TCP connection protocol (3-way handshake). • connect() will succeed if port is listening. • Advantages: fast, requires no privileges • Disadvantages: easily detectable and blockable. CIT 480: Securing Computer Systems
TCP SYN Scan • Send SYN packet and wait for response • SYN+ACK • Port is open • Send RST to tear down connection • RST • Port is closed • Advantage: less likely to be logged or blocked • Disadvantage: requires root privilege CIT 480: Securing Computer Systems
TCP FIN scan • Send TCP FIN packet and wait for response • No response • Port is open • RST • Port is closed. • Advantages: more stealthy than SYN scan • Disadvantages: MS Windows doesn’t follow standard (RFC 793) and responds with RST in both cases, requires root privilege. CIT 480: Securing Computer Systems
Xmas and Null Scans • Similar to FIN scan with different flag settings. • Xmas Scan: Sets FIN, URG, and PUSH flags. • Null Scan: Turns off all TCP flags. CIT 480: Securing Computer Systems
TCP ACK Scan • Does not identify open ports • Used to determine firewall type • Packet filter (identifies responses by ACK bit) • Stateful • Send TCP ACK packet to specified port • RST • Port is unfiltered (packet got through) • No response or ICMP unreachable • Port is filtered CIT 480: Securing Computer Systems
Fragmentation Scan • Modify TCP stealth scan (SYN, FIN, Xmas, NULL) to use tiny fragmented IP datagrams. • Advantages: increases difficulty of scan detection and blocking. • Disadvantages: does not work on all Oses, and may crash some firewalls/sniffers. CIT 480: Securing Computer Systems
FTP Bounce Scan FTP protocol supports proxy ftp • Client requests server send file to another IP, port. • If server can open connection, port is open. Advantages: • Hide identity of scanning host. • Bypass firewalls by using ftp server behind firewall. Disadvantages: • Most ftp servers no longer support proxying. • Printer ftp servers often do still support. CIT 480: Securing Computer Systems
Idle Scan Use intermediate idle host to do scan. • Idle host must increment IP ID for each packet. • Idle host must not receive traffic from anyone other than attacker. Scan Process • Attacker connects to idle host to obtain initial IP ID X. • Send SYN packet to port Y of target with spoofed IP of idle host. • If port is open, target host will send SYN+ACK to idle host. • Idle host with send RST packet with IP ID X+1 to target. • Attacker connects with SYN to idle host to obtain updated IP ID. • Idle host sends back SYN+ACK to attacker. • Note that this action will increment IP ID by 1. • If IP ID is X+2, then port Y on target is open. Advantages: hides scanner IP address from target. CIT 480: Securing Computer Systems
UDP Scans Send 0-byte UDP packet to each UDP port UDP packet returned • Port is open ICMP port unreachable • Port is closed Nothing • Port listed as open|filtered • Could be that packet was lost. • Could be that server only returns UDP on valid input. Disadvantages: • ICMP error rate throttled to a few packets/second (RFC 1812), making UDP scans of all 65535 ports very slow. • MS Windows doesn’t implement rate limiting. CIT 480: Securing Computer Systems
Version Scanning • Port scanning reveals which ports are open • Guess services on well-known ports. • How can we do better? • Find what server: vendor and version • telnet/netcat to port and check for banner • Version scanning CIT 480: Securing Computer Systems
Banner Checking with netcat > nc www.nku.edu 80 GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Sun, 07 Oct 2007 19:27:08 GMT Server: Apache/1.3.34 (Unix) mod_perl/1.29 PHP/4.4.1 mod_ssl/2.8.25 OpenSSL/0.9.7a Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 127 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>400 Bad Request</TITLE> </HEAD><BODY> <H1>Bad Request</H1> Your browser sent a request that this server could not understand.<P> client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /<P> </BODY></HTML> CIT 480: Securing Computer Systems
Version Scanning • If port is TCP, open connection. • Wait for service to identify self with banner. • If no identification or port is UDP, • Send probe string based on well-known service. • Check response against db of known results. • If no match, test all probe strings in list. CIT 480: Securing Computer Systems
nmap version scan > nmap -sV scanme.nmap.org Starting Nmap 6.40 ( http://nmap.org ) at 2013-10-26 17:11 EDT Nmap scan report for scanme.nmap.org (74.207.244.221) Host is up (0.10s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp open sshOpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0) 80/tcp open http Apache httpd 2.2.14 ((Ubuntu)) 1720/tcp filtered H.323/Q.931 9929/tcp open nping-echo Nping echo Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel CIT 480: Securing Computer Systems
More nmap Tools Set source port • Bypass firewall by using allowed source port. • Use port 80 for TCP, port 53 for UDP scans. Decoys • Send additional scans from list of decoys. • Spoof IP addresses of decoy hosts. • Defender has to investigate decoys + attacker. CIT 480: Securing Computer Systems
Defences Prevention • Disable unnecessary services. • Block ports at firewall. • Use a stateful firewall instead of packet filter. Detection • Network Intrusion Detection Systems. • Port scans often have distinct signatures. • IPS can react to scan by blocking IP address. CIT 480: Securing Computer Systems
OS Fingerprinting Identify OS by specific features of its TCP/IP network stack implementation. • Explore TCP/IP differences between OSes. • Build database of OS TCP/IP fingerprints. • Send set of specially tailored packets to host • Match results to identical fingerprint in db to identify operating system type and version. CIT 480: Securing Computer Systems
nmap OS fingerprint examples > sudonmap -O scanme.nmap.org Device type: general purpose Running: Linux 2.6.X|3.X OS CPE: cpe:/o:linux:linux_kernel:2.6 OS details: Linux 2.6.38 - 3.0 Uptime guess: 12.224 day TCP Sequence Prediction: Difficulty=202 (Good luck!) IP ID Sequence Generation: All zeros > sudonmap –v -O 192.168.1.1 Device type: general purpose Running: Linux 2.4.X OS CPE: cpe:/o:linux:linux_kernel:2.4 OS details: Linux 2.4.18 - 2.4.35 (likely embedded) Uptime guess: 29.789 days TCP Sequence Prediction: Difficulty=196 (Good luck!) IP ID Sequence Generation: All zeros CIT 480: Securing Computer Systems
OS Fingerprinting Techniques FIN probe • RFC 793 requires no response • MS Windows, BSDI, Cisco IOS send RST Bogus flag probe • Bit 7 of TCP flags unused • Linux <2.0.35 keeps flag set in response TCP ISN sampling • Different algorithms for TCP ISNs IP Identification • Different algorithms for incrementing IPID CIT 480: Securing Computer Systems
Passive Fingerprinting • Identify OSes of hosts on network by sniffing packets sent by each host. • Use similar characteristics as active techniques: • TTL • MSS • Initial Window Size • Don’t Fragment bit • Tools: p0f CIT 480: Securing Computer Systems
Fingerprinting Defences Detection • NIDS Blocking • Firewalling • Some probes can’t be blocked. Deception • IPpersonality changes Linux TCP/IP stack signature to that of another OS in nmap db. CIT 480: Securing Computer Systems
Scanning Tools Summary CIT 480: Securing Computer Systems
References • Fyodor, NMAP documentation, http://nmap.org/docs.html. • Fyodor, “Remote OS detection via TCP/IP Stack FingerPrinting,” Phrack 54, http://www.insecure.org/nmap/nmap-fingerprinting-article.html • Gordon “Fyodor” Lyon, Nmap Network Scanning, 2008. • Ed Skoudis, Counter Hack Reloaded, Prentice Hall, 2006. CIT 480: Securing Computer Systems