Port scanning and network discovery with nmap

http://www.binarytides.com/port-scanning-and-network-discovery-with-nmap/

Port scanning and network discovery with nmap

Nmap

Nmap (Network Mapper) is the most popular port scanner and network discovery tool used. It is available for all major platforms. In this article we are going to learn the basics about nmap and see how it can be used to scan the network and ports.

Project website
http://nmap.org/

Install on Ubuntu

$ sudo apt-get install nmap 

The nmap manual is available at
http://nmap.org/book/man.html

Some nmap commands need to create raw sockets. This needs root privileges on a linux system, for example ubuntu. On windows nmap uses the winpcap packet driver to send raw packets.

Scan network for live hosts - Ping Probe/Ping Sweep

This is the first and most basic form of network scan that can be done with nmap, to detect hosts that are alive and responding on the network.

$ nmap -sP 192.168.1.1-254

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-15 18:45 IST
Nmap scan report for 192.168.1.1
Host is up (0.0069s latency).
Nmap scan report for 192.168.1.2
Host is up (0.0012s latency).
Nmap scan report for 192.168.1.101
Host is up (0.000065s latency).
Nmap done: 254 IP addresses (3 hosts up) scanned in 6.64 seconds 

In the above command we scan all ip addresses from 192.168.1.1 to 192.168.1.254 Thats the range and can be specified by the short syntax of 192.168.1.1-254

The CIDR notation can also be used, for example like this 192.168.1.1/24 Note : In CIDR notation the number after the forward slash indicates the bits of the ip address that stay constant from left site. So 24 means that "192.168.1" stays constant (8 bits x 3)

Avoid DNS resolution

When doing ping sweeps, nmap tries reverse dns resolution of the target ip addresses. This is generally not needed and can be disabled with the -n option.

$ nmap -sP -n 192.168.1.1-255 

Ok so lets move on and do more scanning with the tool.

Port scan a host

To port scan a particular host, the command would be

$ nmap 192.168.1.1

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-15 19:01 IST
Nmap scan report for 192.168.1.1
Host is up (0.058s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
23/tcp open  telnet
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.87 seconds 

Thats the simplest command to issue with nmap. Nmap performs a scan to discover open ports on the target host. It can be an ip address or a host/domain name as well. Nmap provides the port number, state and the service that port number if associated with. For example port 80 is for http. If http port is open then the target system is serving web pages most probably.

If you wish to dig deeper and analyse what nmap is doing behind the scene, you can use a packet sniffer like wireshark to analyse the packets that nmap is generating and sending.

Getting the daemon/service banner or version information

Nmap can try to get the version number of the banner of each of the services that are running on the host. The -sV flag can be used for this

$ nmap -sV localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-15 19:15 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00041s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE   VERSION
21/tcp   open  ftp       vsftpd 2.3.5
22/tcp   open  ssh       OpenSSH 5.9p1 Debian 5ubuntu1 (protocol 2.0)
25/tcp   open  smtp      Postfix smtpd
53/tcp   open  domain    dnsmasq 2.59
80/tcp   open  http      Apache httpd 2.2.22 ((Ubuntu))
631/tcp  open  ipp       CUPS 1.5
3000/tcp open  ntop-http Ntop web interface 4.1.0
3306/tcp open  mysql     MySQL 5.5.24-0ubuntu0.12.04.1
9050/tcp open  tor-socks Tor SOCKS Proxy
Service Info: Host:  enlightened-desktop; OSs: Unix, Linux

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.91 seconds 

Thats lots of information!! Port number, service name, version/banner information etc.

Types of port scan

Nmap does port scanning in a number of ways like tcp connect, syn scan, fin scan etc. The most popular ones are tcp connect and syn scan. In tcp connect scan a full TCP connection is established and in syn scan only half connection is established. When running as non-root on linux, nmap does tcp connect by default

$ nmap 192.168.1.1 

Syn scanning requires root privileges on linux systems. On ubuntu you have to do a sudo. To do a syn scan use the -sS option like this

$ sudo nmap -sS 192.168.1.1 

Syn scanning is faster since it does not establish a full TCP handshake. It is to some extent stealthier as well since old style firewalls may not be able to detect syn scans since full connection is not established. However modern firewalls can very well catch syn packets and detect port scanning attempts and stop the hacker right away. However note that when nmap is run as root the default scanning technique used is syn scan. So the following are equivalent since in both cases nmap is running as root

sudo nmap host
sudo nmap -sS host 

There are other types of port scanning techniques as well but we wont cover them in this article. So for more information check out the nmap manual at http://nmap.org/book/man.html
Check out the -sF, -sX , -sA , -sN flags for more information on them

Scanning specific ports only

Nmap can be instructed to scan on specific ports or a range of port numbers by using the -p switch as follows :

nmap -p1-1000 192.168.1.1/24 

The above command would scan port numbers 1 to 1000 on all machines from 192.168.1.1 - 192.168.1.255

More examples :

$ nmap -p22,23,100-150 192.168.10.0/24 

The above will scan port numbers 22 , 23 and 100 to 150

$ nmap -sU -pT:21,22,23,U:53,137 192.168.10.0/24 

The above will scan TCP ports 21 22 and 23 and udp ports 53 and 137

Skip online check

Nmap by default first check if a host is online or not by doing a ping. If the host is not online then nmap would not port scan it. Many hosts now a days have firewalls installed that block ping requests. In such cases nmap can be instructed to not check if the host is online and that it should start port scan rightaway. This is done using the -PN option

$ nmap 192.168.1.1 -PN 

Operating System detection

Nmap can try to find out the operating system on target system by doing some fingerprinting. This can be done by just using the -O switch. It also needs root privileges, since it uses raw sockets. Also note that if you are running some sort of firewall like firestart on linux or zonealarm on windows, then the firewalls may block raw sockets and as a result nmap would fail to show proper results.

$ sudo nmap -O 192.168.1.1

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-16 12:17 IST
Nmap scan report for 192.168.1.1
Host is up (0.0067s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
23/tcp   open  telnet
80/tcp   open  http
5431/tcp open  park-agent
MAC Address: 00:21:2C:82:08:87 (SemIndia System Private Limited)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.13 - 2.6.28
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.29 seconds 

So nmap is able to detect that the operating system is Linux. It is important to note that OS fingerprint report by nmap may not be very accurate. It tries to discover the operating system by using some TCP header fields, but this technique cannot tell the exact linux distro for example. It can however in most cases give a correct indication as to whether the target is a linux or windows system.

Here is the scan result of a windows machine for example

$ sudo nmap -O ############

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-16 14:20 IST
Nmap scan report for ############ (###.###.###.###)
Host is up (0.39s latency).
Not shown: 987 filtered ports
PORT      STATE SERVICE
21/tcp    open  ftp
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
110/tcp   open  pop3
143/tcp   open  imap
443/tcp   open  https
1433/tcp  open  ms-sql-s
2006/tcp  open  invokator
3306/tcp  open  mysql
3389/tcp  open  ms-term-serv
8443/tcp  open  https-alt
49158/tcp open  unknown
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2008
OS details: Microsoft Windows Server 2008 Beta 3

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 60.22 seconds 

Aggressive scanning

The -A option can be used to perform an aggressive scan which is equal to - "enable OS detection and Version detection, Script scanning and Traceroute". Here is a quick example

$ sudo nmap -A -T4 ##########
[sudo] password for enlightened: 

Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-16 15:02 IST
Nmap scan report for ########## (###.###.###.###)
Host is up (0.38s latency).
Not shown: 989 filtered ports
PORT      STATE SERVICE       VERSION
21/tcp    open  ftp           Microsoft ftpd
25/tcp    open  smtp          MailEnable smptd 4.26--
53/tcp    open  domain        ISC BIND hostmaster
80/tcp    open  http          Microsoft IIS webserver 7.0
|_html-title: Welcome to Homepage
110/tcp   open  pop3          MailEnable POP3 Server
|_pop3-capabilities: OK(K Capability list follows) USER TOP UIDL
143/tcp   open  imap          MailEnable imapd
|_imap-capabilities: IMAP4rev1 IMAP4 CHILDREN IDLE AUTH=LOGIN AUTH=CRAM-MD5
2006/tcp  open  http          Microsoft IIS httpd 7.0
| html-title: Document Moved
|_Requested resource was http://##########/ABC
3306/tcp  open  mysql         MySQL (unauthorized)
3389/tcp  open  microsoft-rdp Microsoft Terminal Service
8443/tcp  open  ssl/http      Microsoft IIS webserver 7.0
|_sslv2: server still supports SSLv2
|_html-title: Site doesn't have a title (text/html).
49158/tcp open  msrpc         Microsoft Windows RPC
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2008
OS details: Microsoft Windows Server 2008 Beta 3
Network Distance: 16 hops
Service Info: Host: CL-T192-200CN.home; OS: Windows

TRACEROUTE (using port 21/tcp)
HOP RTT       ADDRESS
1   8.13 ms   192.168.1.1
2   44.42 ms  117.194.224.1
3   40.74 ms  218.248.162.230
4   70.79 ms  218.248.255.82
5   124.74 ms 115.114.130.33.STATIC-Chennai.vsnl.net.in (115.114.130.33)
6   148.41 ms 172.31.19.146
7   145.28 ms ix-0-100.tcore1.MLV-Mumbai.as6453.net (180.87.38.5)
8   366.30 ms if-2-2.tcore2.MLV-Mumbai.as6453.net (180.87.38.2)
9   375.30 ms if-6-2.tcore1.L78-London.as6453.net (80.231.130.5)
10  372.00 ms if-2-2.tcore2.L78-London.as6453.net (80.231.131.1)
11  428.80 ms if-20-2.tcore2.NYY-NewYork.as6453.net (216.6.99.13)
12  442.52 ms if-1-0-0.mcore3.MTT-Montreal.as6453.net (216.6.99.10)
13  382.34 ms if-0-3-1-0.tcore1.MTT-Montreal.as6453.net (64.86.31.53)
14  364.63 ms 64.86.31.42
15  ...
16  369.24 ms ###.###.###.###

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 107.29 seconds 

For privacy the actual host name its ip address have been hidden. A new parameter -T has been used in the above example. The T parameter can be used to adjust the speed of the scan. It takes values from 0-5. 0 being the slowest and 5 being the fastest. Over here we used 4.

Apart from open ports, and operating system details, we also have the traceroute output.

Saving output to file

Nmap can save the scan results to various kinds of file formats like normal text, xml etc. The options to use are -oN -oX -oS -oG and -oA. The oA option = oN + oX + oG.

Quick example

$ nmap -sP -n 192.168.1.1-255 -oA lan_scan.txt 

The above will create lanscan.txt.gnmap ,lanscan.txt.nmap and lan_scan.txt.xml files

lan_scan.txt.nmap file looks like this

# Nmap 5.21 scan initiated Thu Aug 16 15:33:45 2012 as: nmap -sP -n -oA lan_scan.txt 192.168.1.1-255
Nmap scan report for 192.168.1.1
Host is up (0.0073s latency).
Nmap scan report for 192.168.1.2
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.101
Host is up (0.00021s latency).
# Nmap done at Thu Aug 16 15:33:48 2012 -- 255 IP addresses (3 hosts up) scanned in 2.51 seconds 

Resources

  1. http://nmap.org/book/man.html

转载于:https://my.oschina.net/yisenn/blog/85858

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《光学与激光扫描手册》第二版是一本涵盖光学和激光扫描领域的权威性参考书。第二版的手册主要是对第一版进行了修订和增补,以适应科学技术的发展和应用的需求。 手册的内容分为几个主要部分。首先,手册介绍了光学和激光扫描的基础知识,包括相关的物理原理、光学元件、光学器件和激光器件的工作原理等。第二,手册详细介绍了光学和激光扫描的应用领域,涵盖了医学影像学、材料科学、工业制造、信息技术等多个领域。每个应用领域都有具体的案例分析和实际应用经验分享,以帮助读者更好地理解和应用相关技术。 第二版的手册还增加了一些新的内容。例如,手册增加了关于光学与激光扫描在生命科学研究中的应用和进展的章节。这反映了该领域在生物医学研究、细胞成像和生物分析方面的重要性。此外,手册还增加了对新激光扫描技术和设备的描述,如超快激光扫描和多光子显微镜技术等。 总之,作为光学和激光扫描领域的重要参考文献,第二版的《光学与激光扫描手册》为读者提供了详尽的知识和实用的应用指南。它帮助读者了解光学和激光扫描的基本原理,学习如何应用和操作相关设备,并且还为读者提供了对最新研究和技术的了解。无论是从事光学和激光扫描研究的科学家,还是从事相关应用的工程师和技术人员,都能从这本手册中获益良多。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值