Nmap-examples: Difference between revisions

From I Will Fear No Evil
Jump to navigation Jump to search
(Created page with "Origional source of these commands: [https://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ | Nmap command examples] <pre> ### Scan a single ip address ### nm...")
 
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Examples==
Origional source of these commands: [https://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ | Nmap command examples]
Origional source of these commands: [https://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ | Nmap command examples]


<pre>


### Scan a single ip address ###
 
=Scan a single ip address=
nmap 192.168.1.1
nmap 192.168.1.1
   
   
## Scan a host name ###
=Scan a host name=
nmap server1.cyberciti.biz
nmap server1.cyberciti.biz
   
   
## Scan a host name with more info###
=Scan a host name with more info=
nmap -v server1.cyberciti.biz
nmap -v server1.cyberciti.biz




2. Scan multiple IP address or subnet (IPv4)
=Scan multiple IP address or subnet (IPv4)=


nmap 192.168.1.1 192.168.1.2 192.168.1.3
nmap 192.168.1.1 192.168.1.2 192.168.1.3
Line 31: Line 33:
nmap 192.168.1.0/24
nmap 192.168.1.0/24


3. Read list of hosts/networks from a file (IPv4)
=Read list of hosts/networks from a file (IPv4)=


The -iL option allows you to read the list of target systems using a text file. This is useful to scan a large number of hosts/networks. Create a text file as follows:
The -iL option allows you to read the list of target systems using a text file. This is useful to scan a large number of hosts/networks. Create a text file as follows:
Line 37: Line 39:


Append names as follows:
Append names as follows:
 
<pre>
server1.cyberciti.biz
server1.cyberciti.biz
192.168.1.0/24
192.168.1.0/24
Line 43: Line 45:
10.1.2.3
10.1.2.3
localhost
localhost
 
</pre>
The syntax is as follows:
The syntax is as follows:


nmap -iL /tmp/test.txt
nmap -iL /tmp/test.txt


4. Excluding hosts/networks (IPv4) from nmap scan examples
=Excluding hosts/networks (IPv4) from nmap scan examples=


When scanning a large number of hosts/networks you can exclude hosts from a scan:
When scanning a large number of hosts/networks you can exclude hosts from a scan:
 
<pre>
nmap 192.168.1.0/24 --exclude 192.168.1.5
nmap 192.168.1.0/24 --exclude 192.168.1.5
nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254
nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254
 
</pre>
OR exclude list from a file called /tmp/exclude.txt
OR exclude list from a file called /tmp/exclude.txt


nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt
nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt


5. Turn on OS and version detection scanning script (IPv4) with nmap
=Turn on OS and version detection scanning script (IPv4) with nmap=
 
<pre>
nmap -A 192.168.1.254
nmap -A 192.168.1.254
nmap -v -A 192.168.1.1
nmap -v -A 192.168.1.1
nmap -A -iL /tmp/scanlist.txt  
nmap -A -iL /tmp/scanlist.txt  
 
</pre>
6. Find out if a host/network is protected by a firewall using namp command
=Find out if a host/network is protected by a firewall using namp command=


## nmap command examples for your host ##
## nmap command examples for your host ##
<pre>
nmap -sA 192.168.1.254
nmap -sA 192.168.1.254
nmap -sA server1.cyberciti.biz
nmap -sA server1.cyberciti.biz
 
</pre>
7. Scan a host when protected by the firewall
=Scan a host when protected by the firewall=


In this Nmap command examples we are going to scan a router/wifi device having 192.168.1.1 as IP:
In this Nmap command examples we are going to scan a router/wifi device having 192.168.1.1 as IP:
 
<pre>
nmap -PN 192.168.1.1
nmap -PN 192.168.1.1
nmap -PN server1.cyberciti.biz
nmap -PN server1.cyberciti.biz
 
</pre>
8. Scan an IPv6 host/address examples
=Scan an IPv6 host/address examples=


The -6 option enable IPv6 scanning with the namp command. The syntax is:
The -6 option enable IPv6 scanning with the namp command. The syntax is:
 
<pre>
nmap -6 IPv6-Address-Here
nmap -6 IPv6-Address-Here
nmap -6 server1.cyberciti.biz
nmap -6 server1.cyberciti.biz
nmap -6 2607:f0d0:1002:51::4
nmap -6 2607:f0d0:1002:51::4
nmap -v A -6 2607:f0d0:1002:51::4
nmap -v A -6 2607:f0d0:1002:51::4
 
</pre>
9. Scan a network and find out which servers and devices are up and running
=Scan a network and find out which servers and devices are up and running=


This is known as host discovery or ping scan:
This is known as host discovery or ping scan:
Line 94: Line 97:


Here is how it looks:
Here is how it looks:
 
<pre>
Host 192.168.1.1 is up (0.00035s latency).
Host 192.168.1.1 is up (0.00035s latency).
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
Line 103: Line 106:
MAC Address: 00:11:32:11:15:FC (Synology Incorporated)
MAC Address: 00:11:32:11:15:FC (Synology Incorporated)
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.80 second
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.80 second
 
</pre>
10. How do I perform a fast scan using the namp?
=How do I perform a fast scan using the namp?=
 
<pre>
nmap -F 192.168.1.1
nmap -F 192.168.1.1
nmap -6 -F IPv6_Address_Here
nmap -6 -F IPv6_Address_Here
 
</pre>
Practical Examples of NMAP Commands for Linux System
==Practical Examples of NMAP Commands for Linux System==
11. Display the reason a port is in a particular state
=Display the reason a port is in a particular state=
 
<pre>
nmap --reason 192.168.1.1
nmap --reason 192.168.1.1
nmap --reason server1.cyberciti.biz
nmap --reason server1.cyberciti.biz
 
</pre>
Outputs:
Outputs:
 
<pre>
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 21:16 IST
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 21:16 IST
Nmap scan report for router (192.168.2.254)
Nmap scan report for router (192.168.2.254)
Line 131: Line 134:
   
   
Nmap done: 1 IP address (1 host up) scanned in 4.85 seconds
Nmap done: 1 IP address (1 host up) scanned in 4.85 seconds
 
</pre>
12. Only show open (or possibly open) ports using nmap command in Linux
=Only show open (or possibly open) ports using nmap command in Linux=


Run:
Run:
 
<pre>
nmap --open 192.168.1.1
nmap --open 192.168.1.1
nmap --open server1.cyberciti.biz
nmap --open server1.cyberciti.biz
nmap --open 192.168.2.18
nmap --open 192.168.2.18
 
</pre>
Scan outputs from my CentOS 7 Linux server:
=Scan outputs from my CentOS 7 Linux server=
 
<pre>
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 21:17 IST
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 21:17 IST
Nmap scan report for centos7 (192.168.2.18)
Nmap scan report for centos7 (192.168.2.18)
Line 152: Line 155:
   
   
Nmap done: 1 IP address (1 host up) scanned in 5.07 seconds
Nmap done: 1 IP address (1 host up) scanned in 5.07 seconds
 
</pre>
13. Show all packets sent and received
=Show all packets sent and received=
 
<pre>
nmap --packet-trace 192.168.1.1
nmap --packet-trace 192.168.1.1
nmap --packet-trace server1.cyberciti.biz
nmap --packet-trace server1.cyberciti.biz
 
</pre>
14. Show host interfaces and routes
=Show host interfaces and routes=


This is useful for debugging (ip command or route command or netstat command like output using the nmap command on Linux)
This is useful for debugging (ip command or route command or netstat command like output using the nmap command on Linux)
 
<pre>
nmap --iflist
nmap --iflist


Line 185: Line 188:
10.0.0.0/0      ppp0
10.0.0.0/0      ppp0
0.0.0.0/0        eth0  192.168.1.2
0.0.0.0/0        eth0  192.168.1.2
 
</pre>
15. How do I scan specific ports using nmap?
=How do I scan specific ports using nmap?=


nmap -p [port] hostName
nmap -p [port] hostName
Line 205: Line 208:
   
   
## Combine all options ##
## Combine all options ##
<pre>
nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1
nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.cyberciti.biz
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.cyberciti.biz
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.1.254
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.1.254
</pre>
## Scan all ports with * wildcard ##
## Scan all ports with * wildcard ##
nmap -p "*" 192.168.1.1
nmap -p "*" 192.168.1.1
   
   
## Scan top ports i.e. scan $number most common ports ##
## Scan top ports i.e. scan $number most common ports ##
<pre>
nmap --top-ports 5 192.168.1.1
nmap --top-ports 5 192.168.1.1
nmap --top-ports 10 192.168.1.1
nmap --top-ports 10 192.168.1.1
Line 234: Line 239:
   
   
Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds
Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds
 
</pre>
16: The fastest way to scan all your devices/computers for open ports ever
=The fastest way to scan all your devices/computers for open ports ever=
 
<pre>
nmap -T5 192.168.1.0/24
nmap -T5 192.168.1.0/24
nmap -T5 {sub/net}
nmap -T5 {sub/net}
</pre>


17. How do I detect remote operating system with the help of nmap?
=How do I detect remote operating system with the help of nmap=


You can identify a remote host apps and OS using the -O option:
You can identify a remote host apps and OS using the -O option:
 
<pre>
nmap -O 192.168.1.1
nmap -O 192.168.1.1
nmap -O  --osscan-guess 192.168.1.1
nmap -O  --osscan-guess 192.168.1.1
Line 298: Line 304:


Also see Fingerprinting a web-server and a dns server command line tools for more information.
Also see Fingerprinting a web-server and a dns server command line tools for more information.
18. How do I detect remote services (server / daemon) version numbers?
</pre>
=How do I detect remote services (server / daemon) version numbers=


Open the terminal and then type the following nmap command:
Open the terminal and then type the following nmap command:
Line 305: Line 312:


Sample outputs:
Sample outputs:
 
<pre>
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:34 IST
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:34 IST
Interesting ports on 192.168.1.1:
Interesting ports on 192.168.1.1:
Line 313: Line 320:
80/tcp open  http?
80/tcp open  http?
1 service unrecognized despite returning data.
1 service unrecognized despite returning data.
 
</pre>
19. Scan a host using TCP ACK (PA) and TCP Syn (PS) ping
=Scan a host using TCP ACK (PA) and TCP Syn (PS) ping=


If firewall is blocking standard ICMP pings, try the following host discovery methods:
If firewall is blocking standard ICMP pings, try the following host discovery methods:
 
<pre>
nmap -PS 192.168.1.1
nmap -PS 192.168.1.1
nmap -PS 80,21,443 192.168.1.1
nmap -PS 80,21,443 192.168.1.1
nmap -PA 192.168.1.1
nmap -PA 192.168.1.1
nmap -PA 80,21,200-512 192.168.1.1
nmap -PA 80,21,200-512 192.168.1.1
</pre>


20. Scan a host using IP protocol ping
=Scan a host using IP protocol ping=


nmap -PO 192.168.1.1
nmap -PO 192.168.1.1


21. Scan a host using UDP ping
=Scan a host using UDP ping=


This scan bypasses firewalls and filters that only screen TCP:
This scan bypasses firewalls and filters that only screen TCP:
 
<pre>
nmap -PU 192.168.1.1
nmap -PU 192.168.1.1
nmap -PU 2000.2001 192.168.1.1
nmap -PU 2000.2001 192.168.1.1
 
</pre>
22. Find out the most commonly used TCP ports using TCP SYN Scan
=Find out the most commonly used TCP ports using TCP SYN Scan=


### Stealthy scan ###
### Stealthy scan ###
Line 352: Line 360:
nmap -sM 192.168.1.1
nmap -sM 192.168.1.1


23. Scan a host for UDP services (UDP scan)
=Scan a host for UDP services (UDP scan)=


Most popular services on the Internet run over the TCP protocol. DNS, SNMP, and DHCP are three of the most common UDP services. Use the following syntax to find out UDP services:
Most popular services on the Internet run over the TCP protocol. DNS, SNMP, and DHCP are three of the most common UDP services. Use the following syntax to find out UDP services:
 
<pre>
nmap -sU nas03
nmap -sU nas03
nmap -sU 192.168.1.1
nmap -sU 192.168.1.1
Line 375: Line 383:
   
   
Nmap done: 1 IP address (1 host up) scanned in 1099.55 seconds
Nmap done: 1 IP address (1 host up) scanned in 1099.55 seconds
 
</pre>
24. Scan for IP protocol
=Scan for IP protocol=


This type of scan allows you to determine which IP protocols (TCP, ICMP, IGMP, etc.) are supported by target machines:
This type of scan allows you to determine which IP protocols (TCP, ICMP, IGMP, etc.) are supported by target machines:
Line 382: Line 390:
nmap -sO 192.168.1.1
nmap -sO 192.168.1.1


25. Scan a firewall for security weakness
=Scan a firewall for security weakness=


The following scan types exploit a subtle loophole in the TCP and good for testing security of common attacks:
The following scan types exploit a subtle loophole in the TCP and good for testing security of common attacks:
Line 399: Line 407:


See how to block Xmas packkets, syn-floods and other conman attacks with iptables.
See how to block Xmas packkets, syn-floods and other conman attacks with iptables.
26. Scan a firewall for packets fragments
=Scan a firewall for packets fragments=
 
<pre>
The -f option causes the requested scan (including ping scans) to use tiny fragmented IP packets. The idea is to split up the TCP header over
The -f option causes the requested scan (including ping scans) to use tiny fragmented IP packets. The idea is to split up the TCP header over
several packets to make it harder for packet filters, intrusion detection systems, and other annoyances to detect what you are doing.
several packets to make it harder for packet filters, intrusion detection systems, and other annoyances to detect what you are doing.
Line 407: Line 415:
nmap -f fw2.nixcraft.net.in
nmap -f fw2.nixcraft.net.in
nmap -f 15 fw2.nixcraft.net.in
nmap -f 15 fw2.nixcraft.net.in
 
</pre>
## Set your own offset size with the --mtu option ##
## Set your own offset size with the --mtu option ##
nmap --mtu 32 192.168.1.1
nmap --mtu 32 192.168.1.1


27. Cloak a scan with decoys
=Cloak a scan with decoys=


The -D option it appear to the remote host that the host(s) you specify as decoys are scanning the target network too. Thus their IDS might report 5-10 port scans from unique IP addresses, but they won’t know which IP was scanning them and which were innocent decoys:
The -D option it appear to the remote host that the host(s) you specify as decoys are scanning the target network too. Thus their IDS might report 5-10 port scans from unique IP addresses, but they won’t know which IP was scanning them and which were innocent decoys:
 
<pre>
nmap -n -Ddecoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip
nmap -n -Ddecoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip
nmap -n -D192.168.1.5,10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5
nmap -n -D192.168.1.5,10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5
 
</pre>
28. Scan a firewall for MAC address spoofing
=Scan a firewall for MAC address spoofing=


### Spoof your MAC address ##
### Spoof your MAC address ##
Line 431: Line 439:
nmap -v -sT -PN --spoof-mac 0 192.168.1.1
nmap -v -sT -PN --spoof-mac 0 192.168.1.1


29. How do I save output to a text file?
=How do I save output to a text file=


The syntax is:
The syntax is:
 
<pre>
nmap 192.168.1.1 > output.txt
nmap 192.168.1.1 > output.txt
nmap -oN /path/to/filename 192.168.1.1
nmap -oN /path/to/filename 192.168.1.1
nmap -oN output.txt 192.168.1.1
nmap -oN output.txt 192.168.1.1
 
</pre>
30. Scans for web servers and pipes into Nikto for scanning
=Scans for web servers and pipes into Nikto for scanning=
 
<pre>
nmap -p80 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -
nmap -p80 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -
nmap -p80,443 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -
nmap -p80,443 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -
31. Speed up nmap
</pre>
 
=Speed up nmap=
<pre>
Pass the -T option to the nmap command:
Pass the -T option to the nmap command:
nmap -v -sS -A -T4 192.168.2.5
nmap -v -sS -A -T4 192.168.2.5
Line 522: Line 531:
Nmap done: 1 IP address (1 host up) scanned in 46.02 seconds
Nmap done: 1 IP address (1 host up) scanned in 46.02 seconds
           Raw packets sent: 2075 (95.016KB) | Rcvd: 50 (3.084KB)
           Raw packets sent: 2075 (95.016KB) | Rcvd: 50 (3.084KB)
 
</pre>
32. Not a fan of namp command line tools?
=Not a fan of namp command line tools?=


So far, we have seen Nmap command examples using the Linux and Unix command-line options. However, not everyone is super comfortable with the CLI. Hence, we can use the GUI app named Zenmap, which is the official network mapper front end/GUI tool:
So far, we have seen Nmap command examples using the Linux and Unix command-line options. However, not everyone is super comfortable with the CLI. Hence, we can use the GUI app named Zenmap, which is the official network mapper front end/GUI tool:


    Zenmap is the official Nmap Security Scanner GUI. It is a multi-platform (Linux, Windows, Mac OS X, BSD, etc.) free and open source application which aims to make Nmap easy for beginners to use while providing advanced features for experienced Nmap users. Frequently used scans can be saved as profiles to make them easy to run repeatedly. A command creator allows interactive creation of Nmap command lines. Scan results can be saved and viewed later. Saved scan results can be compared with one another to see how they differ. The results of recent scans are stored in a searchable database.  
Zenmap is the official Nmap Security Scanner GUI. It is a multi-platform (Linux, Windows, Mac OS X, BSD, etc.) free and open source application which aims to make Nmap easy for beginners to use while providing advanced features for experienced Nmap users. Frequently used scans can be saved as profiles to make them easy to run repeatedly. A command creator allows interactive creation of Nmap command lines. Scan results can be saved and viewed later. Saved scan results can be compared with one another to see how they differ. The results of recent scans are stored in a searchable database.  


You can install zenmap using the following apt-get command or apt command:
You can install zenmap using the following apt-get command or apt command:
<pre>
$ sudo apt-get install zenmap
$ sudo apt-get install zenmap


Line 571: Line 581:
     20 Linux Server Hardening Security Tips.
     20 Linux Server Hardening Security Tips.
</pre>
</pre>
[Category:nmap]
=Example getting only port numbers from search=
<pre>
nmap 192.168.15.58 -sT | grep ^[0-9] | sed 's|/.*||'
22
111
2049
3333
5666
8080
8081
9090
</pre>
[[Category:nmap]]

Latest revision as of 11:26, 4 February 2024

Examples

Origional source of these commands: | Nmap command examples


Scan a single ip address

nmap 192.168.1.1

Scan a host name

nmap server1.cyberciti.biz

Scan a host name with more info

nmap -v server1.cyberciti.biz


Scan multiple IP address or subnet (IPv4)

nmap 192.168.1.1 192.168.1.2 192.168.1.3

    1. works with same subnet i.e. 192.168.1.0/24

nmap 192.168.1.1,2,3

You can scan a range of IP address too:

nmap 192.168.1.1-20

You can scan a range of IP address using a wildcard:

nmap 192.168.1.*

Finally, you scan an entire subnet:

nmap 192.168.1.0/24

Read list of hosts/networks from a file (IPv4)

The -iL option allows you to read the list of target systems using a text file. This is useful to scan a large number of hosts/networks. Create a text file as follows: cat > /tmp/test.txt

Append names as follows:

server1.cyberciti.biz
192.168.1.0/24
192.168.1.1/24
10.1.2.3
localhost

The syntax is as follows:

nmap -iL /tmp/test.txt

Excluding hosts/networks (IPv4) from nmap scan examples

When scanning a large number of hosts/networks you can exclude hosts from a scan:

nmap 192.168.1.0/24 --exclude 192.168.1.5
nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254

OR exclude list from a file called /tmp/exclude.txt

nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt

Turn on OS and version detection scanning script (IPv4) with nmap

nmap -A 192.168.1.254
nmap -v -A 192.168.1.1
nmap -A -iL /tmp/scanlist.txt 

Find out if a host/network is protected by a firewall using namp command

    1. nmap command examples for your host ##
nmap -sA 192.168.1.254
nmap -sA server1.cyberciti.biz

Scan a host when protected by the firewall

In this Nmap command examples we are going to scan a router/wifi device having 192.168.1.1 as IP:

nmap -PN 192.168.1.1
nmap -PN server1.cyberciti.biz

Scan an IPv6 host/address examples

The -6 option enable IPv6 scanning with the namp command. The syntax is:

nmap -6 IPv6-Address-Here
nmap -6 server1.cyberciti.biz
nmap -6 2607:f0d0:1002:51::4
nmap -v A -6 2607:f0d0:1002:51::4

Scan a network and find out which servers and devices are up and running

This is known as host discovery or ping scan:

nmap -sP 192.168.1.0/24

Here is how it looks:

Host 192.168.1.1 is up (0.00035s latency).
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
Host 192.168.1.2 is up (0.0038s latency).
MAC Address: 74:44:01:40:57:FB (Unknown)
Host 192.168.1.5 is up.
Host nas03 (192.168.1.12) is up (0.0091s latency).
MAC Address: 00:11:32:11:15:FC (Synology Incorporated)
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.80 second

How do I perform a fast scan using the namp?

nmap -F 192.168.1.1
nmap -6 -F IPv6_Address_Here

Practical Examples of NMAP Commands for Linux System

Display the reason a port is in a particular state

nmap --reason 192.168.1.1
nmap --reason server1.cyberciti.biz

Outputs:

Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 21:16 IST
Nmap scan report for router (192.168.2.254)
Host is up, received arp-response (0.00026s latency).
Not shown: 995 filtered ports
Reason: 995 no-responses
PORT    STATE SERVICE REASON
22/tcp  open  ssh     syn-ack ttl 64
53/tcp  open  domain  syn-ack ttl 64
80/tcp  open  http    syn-ack ttl 64
443/tcp open  https   syn-ack ttl 64
666/tcp open  doom    syn-ack ttl 64
MAC Address: 00:08:A2:0D:05:41 (ADI Engineering)
 
Nmap done: 1 IP address (1 host up) scanned in 4.85 seconds

Only show open (or possibly open) ports using nmap command in Linux

Run:

nmap --open 192.168.1.1
nmap --open server1.cyberciti.biz
nmap --open 192.168.2.18

Scan outputs from my CentOS 7 Linux server

Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-07 21:17 IST
Nmap scan report for centos7 (192.168.2.18)
Host is up (0.00015s latency).
Not shown: 998 filtered ports, 1 closed port
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 00:01:C0:1B:28:7E (CompuLab)
 
Nmap done: 1 IP address (1 host up) scanned in 5.07 seconds

Show all packets sent and received

nmap --packet-trace 192.168.1.1
nmap --packet-trace server1.cyberciti.biz

Show host interfaces and routes

This is useful for debugging (ip command or route command or netstat command like output using the nmap command on Linux)

nmap --iflist

Detailed report created by the Namp command:

Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 02:01 IST
************************INTERFACES************************
DEV    (SHORT)  IP/MASK          TYPE        UP MAC
lo     (lo)     127.0.0.1/8      loopback    up
eth0   (eth0)   192.168.1.5/24   ethernet    up B8:AC:6F:65:31:E5
vmnet1 (vmnet1) 192.168.121.1/24 ethernet    up 00:50:56:C0:00:01
vmnet8 (vmnet8) 192.168.179.1/24 ethernet    up 00:50:56:C0:00:08
ppp0   (ppp0)   10.1.19.69/32    point2point up
 
**************************ROUTES**************************
DST/MASK         DEV    GATEWAY
10.0.31.178/32   ppp0
209.133.67.35/32 eth0   192.168.1.2
192.168.1.0/0    eth0
192.168.121.0/0  vmnet1
192.168.179.0/0  vmnet8
169.254.0.0/0    eth0
10.0.0.0/0       ppp0
0.0.0.0/0        eth0   192.168.1.2

How do I scan specific ports using nmap?

nmap -p [port] hostName

    1. Scan port 80

nmap -p 80 192.168.1.1

    1. Scan TCP port 80

nmap -p T:80 192.168.1.1

    1. Scan UDP port 53

nmap -p U:53 192.168.1.1

    1. Scan two ports ##

nmap -p 80,443 192.168.1.1

    1. Scan port ranges ##

nmap -p 80-200 192.168.1.1

    1. Combine all options ##
nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.cyberciti.biz
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.1.254
    1. Scan all ports with * wildcard ##

nmap -p "*" 192.168.1.1

    1. Scan top ports i.e. scan $number most common ports ##
nmap --top-ports 5 192.168.1.1
nmap --top-ports 10 192.168.1.1

Sample outputs:

Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:23 IST
Interesting ports on 192.168.1.1:
PORT     STATE  SERVICE
21/tcp   closed ftp
22/tcp   open   ssh
23/tcp   closed telnet
25/tcp   closed smtp
80/tcp   open   http
110/tcp  closed pop3
139/tcp  closed netbios-ssn
443/tcp  closed https
445/tcp  closed microsoft-ds
3389/tcp closed ms-term-serv
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
 
Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds

The fastest way to scan all your devices/computers for open ports ever

nmap -T5 192.168.1.0/24
nmap -T5 {sub/net}

How do I detect remote operating system with the help of nmap

You can identify a remote host apps and OS using the -O option:

nmap -O 192.168.1.1
nmap -O  --osscan-guess 192.168.1.1
nmap -v -O --osscan-guess 192.168.1.1

Sample outputs:

Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:29 IST
NSE: Loaded 0 scripts for scanning.
Initiating ARP Ping Scan at 01:29
Scanning 192.168.1.1 [1 port]
Completed ARP Ping Scan at 01:29, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:29
Completed Parallel DNS resolution of 1 host. at 01:29, 0.22s elapsed
Initiating SYN Stealth Scan at 01:29
Scanning 192.168.1.1 [1000 ports]
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 22/tcp on 192.168.1.1
Completed SYN Stealth Scan at 01:29, 0.16s elapsed (1000 total ports)
Initiating OS detection (try #1) against 192.168.1.1
Retrying OS detection (try #2) against 192.168.1.1
Retrying OS detection (try #3) against 192.168.1.1
Retrying OS detection (try #4) against 192.168.1.1
Retrying OS detection (try #5) against 192.168.1.1
Host 192.168.1.1 is up (0.00049s latency).
Interesting ports on 192.168.1.1:
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
Device type: WAP|general purpose|router|printer|broadband router
Running (JUST GUESSING) : Linksys Linux 2.4.X (95%), Linux 2.4.X|2.6.X (94%), MikroTik RouterOS 3.X (92%), Lexmark embedded (90%), Enterasys embedded (89%), D-Link Linux 2.4.X (89%), Netgear Linux 2.4.X (89%)
Aggressive OS guesses: OpenWrt White Russian 0.9 (Linux 2.4.30) (95%), OpenWrt 0.9 - 7.09 (Linux 2.4.30 - 2.4.34) (94%), OpenWrt Kamikaze 7.09 (Linux 2.6.22) (94%), Linux 2.4.21 - 2.4.31 (likely embedded) (92%), Linux 2.6.15 - 2.6.23 (embedded) (92%), Linux 2.6.15 - 2.6.24 (92%), MikroTik RouterOS 3.0beta5 (92%), MikroTik RouterOS 3.17 (92%), Linux 2.6.24 (91%), Linux 2.6.22 (90%)
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=5.00%D=11/27%OT=22%CT=1%CU=30609%PV=Y%DS=1%G=Y%M=BCAEC5%TM=50B3CA
OS:4B%P=x86_64-unknown-linux-gnu)SEQ(SP=C8%GCD=1%ISR=CB%TI=Z%CI=Z%II=I%TS=7
OS:)OPS(O1=M2300ST11NW2%O2=M2300ST11NW2%O3=M2300NNT11NW2%O4=M2300ST11NW2%O5
OS:=M2300ST11NW2%O6=M2300ST11)WIN(W1=45E8%W2=45E8%W3=45E8%W4=45E8%W5=45E8%W
OS:6=45E8)ECN(R=Y%DF=Y%T=40%W=4600%O=M2300NNSNW2%CC=N%Q=)T1(R=Y%DF=Y%T=40%S
OS:=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%R
OS:D=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=
OS:0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID
OS:=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)
Uptime guess: 12.990 days (since Wed Nov 14 01:44:40 2012)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=200 (Good luck!)
IP ID Sequence Generation: All zeros
Read data files from: /usr/share/nmap
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.38 seconds
           Raw packets sent: 1126 (53.832KB) | Rcvd: 1066 (46.100KB)

Also see Fingerprinting a web-server and a dns server command line tools for more information.

How do I detect remote services (server / daemon) version numbers

Open the terminal and then type the following nmap command:

nmap -sV 192.168.1.1

Sample outputs:

Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:34 IST
Interesting ports on 192.168.1.1:
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     Dropbear sshd 0.52 (protocol 2.0)
80/tcp open  http?
1 service unrecognized despite returning data.

Scan a host using TCP ACK (PA) and TCP Syn (PS) ping

If firewall is blocking standard ICMP pings, try the following host discovery methods:

nmap -PS 192.168.1.1
nmap -PS 80,21,443 192.168.1.1
nmap -PA 192.168.1.1
nmap -PA 80,21,200-512 192.168.1.1

Scan a host using IP protocol ping

nmap -PO 192.168.1.1

Scan a host using UDP ping

This scan bypasses firewalls and filters that only screen TCP:

nmap -PU 192.168.1.1
nmap -PU 2000.2001 192.168.1.1

Find out the most commonly used TCP ports using TCP SYN Scan

      1. Stealthy scan ###

nmap -sS 192.168.1.1

      1. Find out the most commonly used TCP ports using TCP connect scan (warning: no stealth scan)
      2. OS Fingerprinting ###

nmap -sT 192.168.1.1

      1. Find out the most commonly used TCP ports using TCP ACK scan

nmap -sA 192.168.1.1

      1. Find out the most commonly used TCP ports using TCP Window scan

nmap -sW 192.168.1.1

      1. Find out the most commonly used TCP ports using TCP Maimon scan

nmap -sM 192.168.1.1

Scan a host for UDP services (UDP scan)

Most popular services on the Internet run over the TCP protocol. DNS, SNMP, and DHCP are three of the most common UDP services. Use the following syntax to find out UDP services:

nmap -sU nas03
nmap -sU 192.168.1.1

Sample outputs:

Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 00:52 IST
Stats: 0:05:29 elapsed; 0 hosts completed (1 up), 1 undergoing UDP Scan
UDP Scan Timing: About 32.49% done; ETC: 01:09 (0:11:26 remaining)
Interesting ports on nas03 (192.168.1.12):
Not shown: 995 closed ports
PORT     STATE         SERVICE
111/udp  open|filtered rpcbind
123/udp  open|filtered ntp
161/udp  open|filtered snmp
2049/udp open|filtered nfs
5353/udp open|filtered zeroconf
MAC Address: 00:11:32:11:15:FC (Synology Incorporated)
 
Nmap done: 1 IP address (1 host up) scanned in 1099.55 seconds

Scan for IP protocol

This type of scan allows you to determine which IP protocols (TCP, ICMP, IGMP, etc.) are supported by target machines:

nmap -sO 192.168.1.1

Scan a firewall for security weakness

The following scan types exploit a subtle loophole in the TCP and good for testing security of common attacks:

    1. TCP Null Scan to fool a firewall to generate a response ##
    2. Does not set any bits (TCP flag header is 0) ##

nmap -sN 192.168.1.254

    1. TCP Fin scan to check firewall ##
    2. Sets just the TCP FIN bit ##

nmap -sF 192.168.1.254

    1. TCP Xmas scan to check firewall ##
    2. Sets the FIN, PSH, and URG flags, lighting the packet up like a Christmas tree ##

nmap -sX 192.168.1.254

See how to block Xmas packkets, syn-floods and other conman attacks with iptables.

Scan a firewall for packets fragments

The -f option causes the requested scan (including ping scans) to use tiny fragmented IP packets. The idea is to split up the TCP header over
several packets to make it harder for packet filters, intrusion detection systems, and other annoyances to detect what you are doing.

nmap -f 192.168.1.1
nmap -f fw2.nixcraft.net.in
nmap -f 15 fw2.nixcraft.net.in
    1. Set your own offset size with the --mtu option ##

nmap --mtu 32 192.168.1.1

Cloak a scan with decoys

The -D option it appear to the remote host that the host(s) you specify as decoys are scanning the target network too. Thus their IDS might report 5-10 port scans from unique IP addresses, but they won’t know which IP was scanning them and which were innocent decoys:

nmap -n -Ddecoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip
nmap -n -D192.168.1.5,10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5

Scan a firewall for MAC address spoofing

      1. Spoof your MAC address ##

nmap --spoof-mac MAC-ADDRESS-HERE 192.168.1.1

      1. Add other options ###

nmap -v -sT -PN --spoof-mac MAC-ADDRESS-HERE 192.168.1.1


      1. Use a random MAC address ###
      2. The number 0, means nmap chooses a completely random MAC address ###

nmap -v -sT -PN --spoof-mac 0 192.168.1.1

How do I save output to a text file

The syntax is:

nmap 192.168.1.1 > output.txt
nmap -oN /path/to/filename 192.168.1.1
nmap -oN output.txt 192.168.1.1

Scans for web servers and pipes into Nikto for scanning

nmap -p80 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -
nmap -p80,443 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -

Speed up nmap

Pass the -T option to the nmap command:
nmap -v -sS -A -T4 192.168.2.5

Sample outputs:

Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-15 01:52 IST
NSE: Loaded 143 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 01:52
Completed NSE at 01:52, 0.00s elapsed
Initiating NSE at 01:52
Completed NSE at 01:52, 0.00s elapsed
Initiating ARP Ping Scan at 01:52
Scanning 192.168.2.15 [1 port]
Completed ARP Ping Scan at 01:52, 0.01s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 01:52
Scanning dellm6700 (192.168.2.15) [1000 ports]
Discovered open port 5900/tcp on 192.168.2.15
Discovered open port 80/tcp on 192.168.2.15
Discovered open port 22/tcp on 192.168.2.15
Completed SYN Stealth Scan at 01:53, 4.62s elapsed (1000 total ports)
Initiating Service scan at 01:53
Scanning 3 services on dellm6700 (192.168.2.15)
Completed Service scan at 01:53, 6.01s elapsed (3 services on 1 host)
Initiating OS detection (try #1) against dellm6700 (192.168.2.15)
Retrying OS detection (try #2) against dellm6700 (192.168.2.15)
NSE: Script scanning 192.168.2.15.
Initiating NSE at 01:53
Completed NSE at 01:53, 30.02s elapsed
Initiating NSE at 01:53
Completed NSE at 01:53, 0.00s elapsed
Nmap scan report for dellm6700 (192.168.2.15)
Host is up (0.00044s latency).
Not shown: 996 filtered ports
PORT     STATE  SERVICE VERSION
22/tcp   open   ssh     (protocol 2.0)
| fingerprint-strings: 
|   NULL: 
|_    SSH-2.0-OpenSSH_7.4p1 Ubuntu-10
| ssh-hostkey: 
|   2048 1d:14:84:f0:c7:21:10:0e:30:d9:f9:59:6b:c3:95:97 (RSA)
|_  256 dc:59:c6:6e:33:33:f2:d2:5d:9b:fd:b4:9c:52:c1:0a (ECDSA)
80/tcp   open   http    nginx 1.10.0 (Ubuntu)
| http-methods: 
|_  Supported Methods: GET HEAD
|_http-server-header: nginx/1.10.0 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
443/tcp  closed https
5900/tcp open   vnc     VNC (protocol 3.7)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port22-TCP:V=7.40%I=7%D=5/15%Time=5918BCAA%P=x86_64-apple-darwin16.3.0%
SF:r(NULL,20,"SSH-2\.0-OpenSSH_7\.4p1\x20Ubuntu-10\n");
MAC Address: F0:1F:AF:1F:2C:60 (Dell)
Device type: general purpose
Running (JUST GUESSING): Linux 3.X|4.X|2.6.X (95%), OpenBSD 4.X (85%)
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:2.6.32 cpe:/o:openbsd:openbsd:4.0
Aggressive OS guesses: Linux 3.11 - 4.1 (95%), Linux 4.4 (95%), Linux 3.13 (92%), Linux 4.0 (90%), Linux 2.6.32 (89%), Linux 2.6.32 or 3.10 (89%), Linux 3.2 - 3.8 (89%), Linux 3.10 - 3.12 (88%), Linux 2.6.32 - 2.6.33 (87%), Linux 2.6.32 - 2.6.35 (87%)
No exact OS matches for host (test conditions non-ideal).
Uptime guess: 0.000 days (since Mon May 15 01:53:08 2017)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=252 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.44 ms dellm6700 (192.168.2.15)

NSE: Script Post-scanning.
Initiating NSE at 01:53
Completed NSE at 01:53, 0.00s elapsed
Initiating NSE at 01:53
Completed NSE at 01:53, 0.00s elapsed
Read data files from: /usr/local/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 46.02 seconds
           Raw packets sent: 2075 (95.016KB) | Rcvd: 50 (3.084KB)

Not a fan of namp command line tools?

So far, we have seen Nmap command examples using the Linux and Unix command-line options. However, not everyone is super comfortable with the CLI. Hence, we can use the GUI app named Zenmap, which is the official network mapper front end/GUI tool:

Zenmap is the official Nmap Security Scanner GUI. It is a multi-platform (Linux, Windows, Mac OS X, BSD, etc.) free and open source application which aims to make Nmap easy for beginners to use while providing advanced features for experienced Nmap users. Frequently used scans can be saved as profiles to make them easy to run repeatedly. A command creator allows interactive creation of Nmap command lines. Scan results can be saved and viewed later. Saved scan results can be compared with one another to see how they differ. The results of recent scans are stored in a searchable database.

You can install zenmap using the following apt-get command or apt command:

$ sudo apt-get install zenmap

Sample outputs:

[sudo] password for vivek: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  zenmap
0 upgraded, 1 newly installed, 0 to remove and 11 not upgraded.
Need to get 616 kB of archives.
After this operation, 1,827 kB of additional disk space will be used.
Get:1 http://debian.osuosl.org/debian/ squeeze/main zenmap amd64 5.00-3 [616 kB]
Fetched 616 kB in 3s (199 kB/s)                       
Selecting previously deselected package zenmap.
(Reading database ... 281105 files and directories currently installed.)
Unpacking zenmap (from .../zenmap_5.00-3_amd64.deb) ...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Processing triggers for man-db ...
Setting up zenmap (5.00-3) ...
Processing triggers for python-central ...

Type the following command to start zenmap:
$ sudo zenmap

Sample outputs
Fig.02: zenmap in action

Fig.02: zenmap in action
How do I detect and block port scanning on Linux and Unix/BSD servers?

Try the following resources:

    How to use psad tool to detect and block port scan attacks in real time.
    Debian / Ubuntu Linux: Install and Configure Shoreline Firewall (Shorewall).
    CentOS / Redhat Iptables Firewall Configuration Tutorial.
    Linux: 20 Iptables Examples For New SysAdmins.
    20 Linux Server Hardening Security Tips.

Example getting only port numbers from search

nmap 192.168.15.58 -sT | grep ^[0-9] | sed 's|/.*||'
22
111
2049
3333
5666
8080
8081
9090