Detecting a Scan
Host and network scanning cannot go unnoticed because they are usually just a symptom of other possible exploits and attacks to come. This section covers the use of a Cisco Intrusion Detection System IDS-4215 sensor to monitor and detect a network that has been scanned with NMap. As explained earlier, NMap is a tool of choice for penetration testers when it comes to port scanning. This is primarily because of its extreme flexibility and versatility of the types of scans it can perform.
Building up a defense barricade to protect against NMap scans involves several components. Before this chapter delves into scan detection, you need to examine these necessary security components, as discussed in the sections that follow.
Intrusion Detection
IDSs are similar to home security systems (burglar alarms) that monitor entry or breach into your home or office. Like the home security systems, IDSs log an alarm entry into the network. Unlike most home systems, however, you can configure an IDS to actually fight back with TCP RSTs and SHUN commands in the efforts to stop further entry or damage to the network. Location it critical with these systems, just like a standard security camera is to a security guard. That is why most IDSs are located where they can see as much traffic as possible.
Anomaly Detection Systems
Anomaly detection systems (also called profile-based detection systems) are designed to watch user or network profiles. For example, an anomaly detection system alarms if it notices a network that normally is at 30 percent utilization peak up to 90 percent for a long period.
Misuse Detection System
Misuse detection uses pattern matching. These systems contain a database of hundreds of patterns and signatures that are used to match with traffic on a network cable. You can compare misuse detection to standard disk antivirus software, where the antivirus software scans your hard drive looking for patterns in programs and files that represent malicious alterations. Misuse detection reads frames and packets off a cable instead of a hard drive. These are the most commonly used detection systems today. However, they can quickly become out of date as new attacks emerge that are not within the signature database.
Host-Based IDSs
Host-based IDSs are installed locally on a host computer and are used to check that local system only for items such as system calls, audit logs, error messages, and network traffic. The benefit of host-based IDS systems is the protection and warning they can provide to a specific system. However, they are not designed to protect the entire campus network; only the specific host is protected. Figure 5-22 illustrates how to deploy a host-based IDS.
Figure 5-22 Host-Based IDS Deployment
Network-Based IDSs
Network-based IDSs such as the Cisco 4200 series appliances are dedicated to one task—monitoring the entire network. They are located at check points or special ports where they can monitor network traffic that is directed to any host. Figure 5-23 illustrates how to deploy a network-based IDS.
Figure 5-23 Network-Based IDS Deployment
Network Switches
Switches appeared shortly after the network hubs came into the scene. They provide the same star topology as hubs; however, they do not interconnect all computers to the same bus. When computers communicate, switches are designed to monitor the Layer 2 frames and develop a MAC address table. This increases switch performance by creating an internal map of computers to specific interface ports. Now when computers need to communicate across the switch, their frames are forwarded only to the specific interface that contains the destination host, as Figure 5-24 illustrates.
Figure 5-24 Switched Network
Because of this basic design where traffic is forwarded only where it is needed, lower-cost switches are difficult to effectively locate an IDS on. Higher-cost programmable switches typically support what is known as switched port analyzer (SPAN) ports or port monitoring. (These terms are used interchangeably.) SPAN functionality allows the network administrator to select the specific ports to which they want to forward copies of all traffic. These ports in turn are where the IDS is connected
As Figure 5-25 illustrates, the switch on the right is configured for SPAN. Traffic going into ports 0/1 through 0/4 is copied to the destination port of 0/5. Port 0/5 is subsequently connected to the monitoring interface (port 0) on the IDS sensor.
Figure 5-25 SPAN Port in Use
Examples of Scan Detection
The sections that follow take you through some specific examples of detecting port scans that are executed with NMap. The examples use a basic install of the Cisco 4215 IDS Sensor attached to the network with IDS Event Viewer (IEV) software to monitor sensor alarms in real-time.
Detecting a TCP Connect() Scan
NMap TCP Connect() scan, as mentioned earlier, is a reliable port scanning technique that determines the status of open or closed ports. IDS sensors, however, are keen on detecting normal TCP connections that do not actually send data and sound off an alarm. Example 5-4 shows the syntax used and the output returned in scanning a Windows 2003 Server.
Example 5-4. Using NMap TCP Connect Scan on a Windows 2003 Server
C:\>NMap -sT -vv -P0 192.168.200.100 Starting NMap 3.81 ( http://www.insecure.org/NMap ) at 2005-03-21 19:19 GMT Standard Time Initiating Connect() Scan against WEB1 (192.168.200.100) [1663 ports] at 19:19 Discovered open port 53/tcp on 192.168.200.100 Discovered open port 23/tcp on 192.168.200.100 Discovered open port 1433/tcp on 192.168.200.100 Discovered open port 1026/tcp on 192.168.200.100 Discovered open port 1031/tcp on 192.168.200.100 Discovered open port 1025/tcp on 192.168.200.100 Discovered open port 139/tcp on 192.168.200.100 Discovered open port 1434/tcp on 192.168.200.100 Discovered open port 445/tcp on 192.168.200.100 Discovered open port 135/tcp on 192.168.200.100 Discovered open port 1029/tcp on 192.168.200.100 The Connect() Scan took 52.38s to scan 1663 total ports. Host WEB1 (192.168.200.100) appears to be up ... good. Interesting ports on WEB1 (192.168.200.100): (The 1652 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE 23/tcp open telnet 53/tcp open domain 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1026/tcp open LSA-or-nterm 1029/tcp open ms-lsa 1031/tcp open iad2 1433/tcp open ms-sql-s 1434/tcp open ms-sql-m
Now that you have scanned successfully, look at the Cisco IEV real-time output in Figure 5-26. As you can see, the sensor accurately detected the scan.
Figure 5-26 TCP Connect() Scan Detected
Detecting a SYN Scan
SYN scans are a little more difficult to detect because they are just trying to leave a connection open and relying on the timeout to clear the connections. Example 5-5 displays the syntax used and output generated when scanning the same Windows 2003 Server.
Example 5-5. SYN Scan on a Windows 2003 Server
C:\>NMap -sS -vv -P0 192.168.200.100 Starting NMap 3.81 ( http://www.insecure.org/NMap ) at 2005-03-21 19:22 GMT Standard Time Initiating SYN Stealth Scan against WEB1 (192.168.200.100) [1663 ports] at 19:22 Discovered open port 23/tcp on 192.168.200.100 Discovered open port 53/tcp on 192.168.200.100 Discovered open port 445/tcp on 192.168.200.100 Discovered open port 1031/tcp on 192.168.200.100 Discovered open port 1025/tcp on 192.168.200.100 Discovered open port 1433/tcp on 192.168.200.100 Discovered open port 139/tcp on 192.168.200.100 Discovered open port 1026/tcp on 192.168.200.100 Discovered open port 135/tcp on 192.168.200.100 Discovered open port 1434/tcp on 192.168.200.100 Discovered open port 1029/tcp on 192.168.200.100 The SYN Stealth Scan took 0.11s to scan 1663 total ports. Host WEB1 (192.168.200.100) appears to be up ... good. Interesting ports on WEB1 (192.168.200.100): (The 1652 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 23/tcp open telnet 53/tcp open domain 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1026/tcp open LSA-or-nterm 1029/tcp open ms-lsa 1031/tcp open iad2 1433/tcp open ms-sql-s 1434/tcp open ms-sql-m MAC Address: 00:50:56:EE:EE:EE NMap finished: 1 IP address (1 host up) scanned in 0.344 seconds Raw packets sent: 1663 (66.5KB) | Rcvd: 1663 (76.5KB)
As stated earlier, SYN scans leave the connection open. This is an expected anomaly that takes place between two computers if one goes down or just never returns the last ACK. SYN scans are harder for sensors to typically detect because of their natural occurrence "in the wild"; however, should you flood the network with them, it will trigger an alarm, as seen in Figure 5-27. Notice that the alarm signature is the same as an –sT connection scan. However, only 1 alarm was detected as opposed to 6 to 8 alarms triggered in a normal –sT scan. This proves that –sS scans are less detected.
Figure 5-27 SYN Scan Detected
Detecting FIN, NULL, and Xmas-Tree Scans
Now that you have seen two basic scans in action—TCP Connect() and SYN scans—this section investigates the three inverse scans. These scans usually result in poor port scanning reliability against Windows computers because they always return an RST state in response. This shows all ports closed, even if they are really open. Example 5-6 shows the scan syntax and output against the Windows 2003 Server. As you can see, all ports scanned are returning closed.
Example 5-6. Conducting FIN, NULL, and Xmas-Tree Scans
C:\>NMap -sF -vv -P0 192.168.200.100 Starting NMap 3.81 ( http://www.insecure.org/NMap ) at 2005-03-21 19:26 GMT Standard Time Initiating FIN Scan against WEB1 (192.168.200.100) [1663 ports] at 19:26 The FIN Scan took 0.09s to scan 1663 total ports. Host WEB1 (192.168.200.100) appears to be up ... good. All 1663 scanned ports on WEB1 (192.168.200.100) are: closed MAC Address: 00:50:56:EE:EE:EE NMap finished: 1 IP address (1 host up) scanned in 0.312 seconds Raw packets sent: 1663 (66.5KB) | Rcvd: 1663 (76.5KB) C:\>NMap -sN -vv -P0 192.168.200.100 Starting NMap 3.81 ( http://www.insecure.org/NMap ) at 2005-03-21 19:24 GMT Stan dard Time Initiating NULL Scan against WEB1 (192.168.200.100) [1663 ports] at 19:24 The NULL Scan took 0.08s to scan 1663 total ports. Host WEB1 (192.168.200.100) appears to be up ... good. All 1663 scanned ports on WEB1 (192.168.200.100) are: closed MAC Address: 00:50:56:EE:EE:EE NMap finished: 1 IP address (1 host up) scanned in 0.312 seconds Raw packets sent: 1663 (66.5KB) | Rcvd: 1663 (76.5KB) C:\>NMap -sX -vv -P0 192.168.200.100 Starting NMap 3.81 ( http://www.insecure.org/NMap ) at 2005-03-21 19:27 GMT Stan dard Time Initiating XMAS Scan against WEB1 (192.168.200.100) [1663 ports] at 19:27 The XMAS Scan took 0.08s to scan 1663 total ports. Host WEB1 (192.168.200.100) appears to be up ... good. All 1663 scanned ports on WEB1 (192.168.200.100) are: closed MAC Address: 00:50:56:EE:EE:EE NMap finished: 1 IP address (1 host up) scanned in 0.312 seconds Raw packets sent: 1663 (66.5KB) | Rcvd: 1663 (76.5KB)
However, the sensor detects inverse scans quite well and even displays the actual scan being executed. Figure 5-28 shows the real-time alarms detecting FIN scans, NULL packets, and an OOB error that is generated as a side effect of the Xmas-Tree scan.
Figure 5-28 Inverse Scans Detected
Detecting OS Guessing
The last detection to perform is operating system detection. NMap uses the –O switch to signal operating system detection against a target. Example 5-7 shows the scan syntax and output used against the Windows 2003 Server.
Example 5-7. Scanning to Determine the Target Operating System
C:\>NMap -O -vv -P0 192.168.200.100 Starting NMap 3.81 ( http://www.insecure.org/NMap ) at 2005-03-21 19:28 GMT Stan dard Time Initiating SYN Stealth Scan against WEB1 (192.168.200.100) [1663 ports] at 19:28 Discovered open port 23/tcp on 192.168.200.100 Discovered open port 53/tcp on 192.168.200.100 Discovered open port 1434/tcp on 192.168.200.100 Discovered open port 139/tcp on 192.168.200.100 Discovered open port 1031/tcp on 192.168.200.100 Discovered open port 445/tcp on 192.168.200.100 Discovered open port 1029/tcp on 192.168.200.100 Discovered open port 1025/tcp on 192.168.200.100 Discovered open port 1026/tcp on 192.168.200.100 Discovered open port 1433/tcp on 192.168.200.100 Discovered open port 135/tcp on 192.168.200.100 The SYN Stealth Scan took 0.09s to scan 1663 total ports. For OSScan assuming port 23 is open, 1 is closed, and neither are firewalled Host WEB1 (192.168.200.100) appears to be up ... good. Interesting ports on WEB1 (192.168.200.100): (The 1652 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 23/tcp open telnet 53/tcp open domain 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1026/tcp open LSA-or-nterm 1029/tcp open ms-lsa 1031/tcp open iad2 1433/tcp open ms-sql-s 1434/tcp open ms-sql-m MAC Address: 00:50:56:EE:EE:EE Device type: general purpose Running: Microsoft Windows 2003/.NET|NT/2K/XP OS details: Microsoft Windows 2003 Server or XP SP2P OS Fingerprint: TSeq(Class=TR%IPID=I%TS=0) T1(Resp=Y%DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) T3(Resp=Y%DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) T4(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=) T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) T6(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=) T7(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(Resp=Y%DF=N%TOS=0%IPLEN=B0%RIPTL=148%RIPCK=E%UCK=E%ULEN=134%DAT=E) TCP Sequence Prediction: Class=truly random Difficulty=9999999 (Good luck!) TCP ISN Seq. Numbers: 69D80142 413B414C 4E54B424 74F4775C 1DE05ABB AC9A1054 IPID Sequence Generation: Incremental NMap finished: 1 IP address (1 host up) scanned in 1.062 seconds Raw packets sent: 1676 (67.3KB) | Rcvd: 1677 (77.4KB)
The interesting thing about this scan is that it did not succeed in guessing the exact operating system. However, it does narrow it down to just Windows 2003 Server or XP with SP2. By using a little deductive reasoning and looking at the ports that are open, such as TCP 23, which is used for a Telnet server, you would lean more toward the Windows 2003 server rather than XP. Looking at the error generated in Figure 5-29, you can see Cisco IDS detect the OS guessing with an error called NMap fingerprinting. Yes, this scan is easily detectable.
Figure 5-29 OS Guessing Detected