nmap如何使用_nmap使用什么端口扫描

hacker|
123

centos下安装nmap工具及简单用法

1、yum安装nmap

yum install nmap -y

yum install nc -y

nmap 命令参数:nmap -h

2、nmap 常用命令介绍:

udp 检测

nc -vuz 221.23.4.5 6127

快速扫描端口模式,扫描100个最有可能开放的端口 -v 获取扫描的信息

nmap -F -v 192.168.43.118

Tcp SYN Scan (sS) 隐蔽扫描 这是一个不完整的扫描方式,它被称为半开放扫描,Nmap发送SYN包到远程主机,但是它不会产生任何会话,在syn扫描中不需要通过完整3次的握手,因此不会在目标主机上产生任何日志记录,这个就是SYN扫描的优势,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)

Tcp connect() scan(sT) 最常用

如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式,不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect(),Tcp connect()扫描技术只适用于找出TCP和UDP端口,但是这种方式扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现。

UDP scan(sU)

顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口,它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的。

nmap -sU 192.168.43.118

FIN scan (sF)

有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在,目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手,收到RST回复说明该端口关闭,否则说明是open或filtered状态

nmap -sF 192.168.43.118

PING Scan (sP) 扫描在线主机

PING扫描它只用于找出主机是否是存在在网络中的,它不是用来发现是否开放端口的,PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用。

nmap -sP 192.168.43.118

版本检测(sV)

版本检测是用来扫描目标主机和端口上运行的软件的版本,它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本,使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口。

nmap -sV 192.168.43.118

Idle scan (sL)

Idle scan是一种先进的匿名扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包,例如:通过目标网络中的192.168.43.118向主机192.168.43.4发送数据,来获取192.168.1.1开放的端口。

nmap -sL 192.168.43.118 192.168.43.4

有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描),IP protocol scan(IP协议扫描),以上讨论的是几种最主要的扫描方式。

Nmap的OS检测(O)

Nmap最重要的特点之一是能够远程检测操作系统,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统是非常有用的,通过获取的信息你可以知道已知的漏洞

nmap -O 192.168.43.17

ACK扫描:

利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包

nmap -sA -T4 p1521,80 192.168.43.17

使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机

nmap -pA -T4 p1521,80 192.168.43.17

nmap -pA -T4 p1521,80 192.168.43.17

扫描前不进行Ping扫描测试:

nmap -Pn p1521,80 192.168.43.17

通过tcp空扫描以绕过防火墙检测:

nmap -sN 192.168.43.17

打印主机接口和路由

nmap --iflist

按顺序扫描端口:

nmap -r 192.168.43.118

扫描主机检测是否有防火墙过滤:

nmap -PN -p 1521 192.168.43.17

扫描操作系统信息和路由跟踪

使用Nmap,你可以检测远程主机上运行的操作系统和版本。为了启用操作系统和版本检测,脚本扫描和路由跟踪功能,我们可以使用NMAP的“-A“选项。

nmap -A 192.168.43.17

扫描端口时状态介绍:

Open 端口开启,数据有到达主机,有程序在端口上监控

Closed 端口关闭,数据有到达主机,没有程序在端口上监控

Filtered 数据没有到达主机,返回的结果为空,数据被防火墙或者是IDS过滤

UnFiltered 数据有到达主机,但是不能识别端口的当前状态

Open|Filtered 端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中

Closed|Filtered 只发生在IP ID idle扫描

以上总结来源于网络。

linux下通过nmap扫描目标主机开放了哪些端口

安装nmap后(ubuntu通过apt-get install nmap安装),运行下列命令即可

nmap -p0-65535 目标ip地址

常用的扫描类型:

1、-sP(ping的方式扫描,检查主机在线与否,不发送任何报文到目的主机,想知道目标主机是否运行,而不想进行其它扫描,这扫描方式很常用)

2、-sL(仅仅列网段内出主机的状态、端口等信息,查询端口的话用 -p port,port1……)

3、 -PS/PA/PU [portlist](根据给定的端口用TCP或UDP报文探测:对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYNACK包))

4、-sS(TCP同步扫描(TCP SYN):发出一个TCP同步包(SYN),然后等待回对方应)

5、 -sF -sF -sN(秘密FIN数据包扫描、圣诞树 (Xmas Tree)、空(Null)扫描模式使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫 描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统)

6、-sU(UDP扫描:nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的)

7、-P0 (No ping)(这个选项跳过Nmap扫描)

8、-PE/PP/PM

扫描类型的控制

1、sW (对滑动窗口的扫描)

2、-sR(RPC扫描)

3、 -PE; -PP; -PM (ICMP 类型的ping)

4、-PR (ARP 类型的ping-n (无 DNS 解析)

5、-R (为所有的目标做DNS解析)

6、-sV(对服务版本的检测)

常用的对主机的操作

1、-A或者-O(对操作系统的检测)

2、-v(增加信息的详尽程度)

3、-p(ports的范围)

nmap--网络探测和安全审核工具

它曾经在电影《黑客帝国》中出现过,是黑客和网络安全人员经常用到的工具.

nmap是一个开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本。

一、nmap基本功能与结构

主要有如下四个基本功能:

如果希望了解目标主机更多的信息,可以通过完全扫描的方式实现,nmap命令内置了“-A”选项,可以实现对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统识别等完整全面的扫描,命令形式如下:

其中,

主机发现主要用来判断目标主机是否在线,其扫描原理类似于ping命令,通过发送探测数据包到目标主机,如果能收到回复,那么认为目标主机处于在线状态。nmap支持多种不同的主机探测方法,例如发送TCP SYN/ACK包、发送SCTP包、主机发现主要用来判断目标主机是否在线,其扫描原理类似于ping命令,通过发送探测数据包到目标主机,如果能收到回复,那么认为目标主机处于在线状态。nmap支持多种不同的主机探测方法,例如发送TCP SYN/ACK包、发送SCTP包、

端口扫描是nmap最核心的功能,通过端口扫描可以发现目标主机上TCP、UDP端口的开放情况。nmap在默认状态下会扫描1000个最有可能开放的端口,并将侦测到的端口状态分为6类,分别是:

nmap扫描的几种方式

原文 the art of port scanning

这种方式最简单。直接与被扫描的端口建立tcp链接,如果成功,则说明端口开放,如果不成功则说明端口关闭的。这种扫描的特点是与被扫描端口建立完成的tcp链接,完整的tcp三次握手。优点主要是不需要root权限即可扫描端口。因为connect可以在用户态直接调用

这种扫描方式又被称为tcp半开放扫描。顾名思义,这种扫描不需要建立完整的tcp连接,即可扫描端口的状态。发送tcp syn数据包,这个也是tcp握手的第一个包。如果端口开放,则会返回 tcp syn+ack数据包。如果端口关闭,则返回 tcp rst数据包。这样我们就不用进行tcp 握手的第三步,也可以探测端口的状态。这种扫描需要构建raw socket。所以需要root权限

有些时候防火墙绘过滤tcp syn数据包,有些时候会记录syn数据包并检测时候有nmap扫描。这时候可以使用TCP FIN scanning。这种方式很简单。发送tcp FIN数据包到待测端口。如果返回RST数据包,则说明该端口关闭,如果无返回则说明该端口开放。这时tcp协议的一个BUG,所以这种扫描方式不一定百分之百可靠(例如windows),但是这种扫描方式适合大部分 *NIX 系统。

在RFC 793的第65页写到,如果目的端口的是关闭的,并且接受到的tcp数据包如果可能会导致系统错误,则返回RST。如果开放的端口接受到诸如SYN RST ACK,则丢弃或者不做任何处理。根据此RFC描述,我们可以发送不包含SYN RST或者ACK标志的数据包,如果返回RST则说明端口是关闭状态,如果什么都没有返回则说明端口是开放状态。

上面这三种扫描的结果都是一致的,如果接受到到RST,则说明端口是关闭的。如果无响应,则端口可能是开放或者filteted状态。如果返回icmp unreachable error(type 3, code 0, 1, 2, 3, 9, 10, 13),则说明端口一定是filtered的。

这种扫描只设置tcp ack标志位。这种扫描一般来探测防火墙是否过滤被扫描的端口。如果扫描的端口未被防火墙保护,那么无论是开放或者是关闭,都会返回RST。nmap将该端口标记为未被封锁的(unfiltered),但是不能确定该端口是开放或者关闭状态。如果无响应,或者返货icmp error,则该端口一定被防火墙封锁了

tcp窗口扫描,如果接收到RST,则说明端口封锁了。在某些操作系统,开放的端口会返回一个正数的tcp窗口值,如果端口关闭,则返回tcp窗口值为0或者负数。但是这种扫描不是很靠谱

这种扫描为发送同时设置FIN/ACK的数据包。如果返回RST,则说明端口是开放的,如果无响应,则是关闭状态的。

这种是专门扫描ip协议的。扫描类似于udp扫描,如果IP协议号不存在,返回 icmp错误。具体没用过,不太好写

如果udp端口开放,则无响应。如果udp端口关闭,则会返回icmp unreachable error错误。这种扫描需要root权限,因为需要构建raw socket。

这种直接一个一个建立udp连接,如果能建立,则说明端口开放,不能建立则端口关闭呗。

Linux使用nmap扫描端口

安装nmap后(ubuntu通过apt-get install nmap安装),运行下列命令即可

nmap -p0-65535 目标ip地址

常用的扫描类型:

1、-sP(ping的方式扫描,检查主机在线与否,不发送任何报文到目的主机,想知道目标主机是否运行,而不想进行其它扫描,这扫描方式很常用)

2、-sL(仅仅列网段内出主机的状态、端口等信息,查询端口的话用 -p port,port1……)

3、 -PS/PA/PU [portlist](根据给定的端口用TCP或UDP报文探测:对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYNACK包))

4、-sS(TCP同步扫描(TCP SYN):发出一个TCP同步包(SYN),然后等待回对方应)

5、 -sF -sF -sN(秘密FIN数据包扫描、圣诞树 (Xmas Tree)、空(Null)扫描模式使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫 描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统)

6、-sU(UDP扫描:nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的)

7、-P0 (No ping)(这个选项跳过Nmap扫描)

8、-PE/PP/PM

扫描类型的控制

1、sW (对滑动窗口的扫描)

2、-sR(RPC扫描)

3、 -PE; -PP; -PM (ICMP 类型的ping)

4、-PR (ARP 类型的ping-n (无 DNS 解析)

5、-R (为所有的目标做DNS解析)

6、-sV(对服务版本的检测)

常用的对主机的操作

1、-A或者-O(对操作系统的检测)

2、-v(增加信息的详尽程度)

3、-p(ports的范围)

想用nmap扫描主机开放端口的命令是什么

nmap命令

1.  各种代码举例。 扫描单一的一个主机:#nmap nxadmin.com#nmap 192.168.1.2,扫描整个子网:#nmap 192.168.1.1/24,扫描多个目标:#nmap 192.168.1.2 192.168.1.5, 扫描一个范围内的目标:#nmap 192.168.1.1-100 。

2有关IP的代码。扫描和namp在同一目录下的IP为txt的所有主机:#nmap -iL target.txt,关于你扫描的所有主机的列表:#nmap -sL 192.168.1.1/24,扫描除过某一个ip外的所有子网主机:#nmap192.168.1.1/24-exclude192.168.1.1,扫描特定主机上的80,21,23端口:#nmap-p80,21,23192.168.1.1,扫描除过某一个文件中的ip外的子网主机:#nmap192.168.1.1/24-excludefilexxx.txt。

资料拓展:

扫描模式分类:

1.  FINscan(sF)扫描有时不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手:

a href="mailto:root@bt:~#nmap-sF192.168.1.8"root@bt:~#nmap-sF192.168.1.8/a/p pStartingNmap5.51at2012-07-0819:21PKTNmapscanreportfor192.168.1.8Hostisup(0.000026slatency).Notshown:999closedportsPORTSTATESERVICE111/tcpopen|filteredrpcbind

版本检测(sV)版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCPSYN扫描开放了哪些端口:#nmap-sV192.168.1.1。

Idlescan(sL)是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包:#nmap-sL192.168.1.6192.168.1.1。

Idlescan是一种理想的匿名扫描技术,它通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取192.168.1.1开放的端口有需要其它的扫描技术,这里就比如说FTPbounce(FTP反弹,fragmentationscan(碎片扫描),IPprotocolscan(IP协议扫描),以上讨论的是几种最主要的扫描方式。

Nmap的OS检测(O):Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。

Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照:InitiatingSYNStealthScanat10:21Scanninglocalhost(127.0.0.1)[1000ports]Discoveredopenport111/tcpon127.0.0.1CompletedSYNStealthScanat10:21,0.08selapsed(1000totalports)InitiatingOSdetection(try#1)againstlocalhost(127.0.0.1)RetryingOSdetection(try#2)againstlocalhost(127.0.0.1)。

2.  Nmap的操作系统指纹识别技术:设备类型(路由器,工作组等)运行(运行的操作系统)操作系统的详细信息(操作系统的名称和版本)网络距离(目标和攻击者之间的距离跳)如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组织掉ping请求.-PN命令告诉Nmap不用ping远程主机:#nmap-O-PN192.168.1.1/24Nmap检测的基础是有开放和关闭的端口,当OSscan无法检测至少一个开放或关闭的端口时:

Warning:OSScanresultsmaybeunreliablebecausewecouldnotfindatleast1openand1closedportOSScan的结果是不可靠的,因为没有发现至少一个开放或者关闭的端口,这种情况是非常不理想的,应该是远程主机做了针对操作系统检测的防范。

如果Nmap不能检测到远程操作系统类型,那么就没有必要使用-osscan_limit检测,想好通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项,–osscan-guess猜测认为最接近目标的匹配操作系统类型:#nmap-O--osscan-guess192.168.1.1。

3.  Tcp SYN Scan (sS) 这是一个基本的扫描方式,它被称为半开放扫描:#nmap -sS 192.168.1.1,Tcp connect() scan(sT)如果不选择SYN扫描,这个扫描就是默认的扫描模式:#nmap -sT 192.168.1.1,Udp scan(sU)扫描技术用来寻找目标主机打开的UDP端口:#nmap -sU 192.168.PINGScan(sP),PING扫描需要ROOT权限,否则PING扫描将会使用connect()调用:#nmap-sP192.168.1.11.1。

0条大神的评论

发表评论