Nmap详解

本文详细介绍Nmap网络扫描工具的基本功能、参数用法及高级技巧,包括主机发现、端口扫描、版本侦测、操作系统侦测等核心功能,以及如何利用Nmap进行隐蔽扫描、探测防火墙和漏洞侦测。

Nmap简介

Nmap也就是Network Mapper,网络发现(Network Discovery)和安全审计,是一款网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员比用的软件之一,以及用以评估网络系统保安,nmap的核心功能有:主机发现、端口扫描、版本侦测、操作系统侦测、防火墙/IDS规避、NSE脚本引擎。

注意 : 

victim/24  表示 :C类网络

victim/16  表示 : B类网络

 

Nmap包含四项基本功能:

  • 主机发现 (Host Discovery)
  • 端口扫描 (Port Scanning)
  • 版本侦测 (Version Detection)
  • 操作系统侦测 (Operating System Detection)

 

nmap参数及其意义

nmap –iflist : 查看本地主机的接口信息和路由信息
-A :选项用于使用进攻性方式扫描
-T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4
-oX test.xml: 将扫描结果生成 test.xml 文件,如果中断,则结果打不开
-oA test.xml:  将扫描结果生成 test.xml 文件,中断后,结果也可保存
-oG test.txt:  将扫描结果生成 test.txt 文件
-sn : 只进行主机发现,不进行端口扫描
-O : 指定Nmap进行系统版本扫描
-sV: 指定让Nmap进行服务版本扫描
-p <port ranges>: 扫描指定的端口
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况
-script <script name> : 指定扫描脚本
-Pn : 不进行ping扫描
-sP :  用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping



-PI :  设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。
-iL 1.txt : 批量扫描1.txt中的目标地址
 
-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况
-sO: 使用IP protocol 扫描确定目标机支持的协议类型
-PO : 使用IP协议包探测对方主机是否开启 
-PE/PP/PM : 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机
-PS/PA/PU/PY : 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现


-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态
-e eth0:指定使用eth0网卡进行探测
-f : --mtu <val>: 指定使用分片、指定数据包的 MTU.
-b <FTP relay host>: 使用FTP bounce scan扫描方式
-g: 指定发送的端口号
-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)
-v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态
-n : 表示不进行DNS解析;
-D  <decoy1,decoy2[,ME],...>: 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址
-R :表示总是进行DNS解析。 
-F : 快速模式,仅扫描TOP 100的端口 
-S <IP_Address>: 伪装成其他 IP 地址
--ttl <val>: 设置 time-to-live 时间


--badsum: 使用错误的 checksum 来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或 IDS/IPS)
--dns-servers  : 指定DNS服务器
--system-dns : 指定使用系统的DNS服务器   
--traceroute : 追踪每个路由节点 
--scanflags <flags>: 定制TCP包的flags
--top-ports <number> :扫描开放概率最高的number个端口
--port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数
--version-trace: 显示出详细的版本侦测过程信息
--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)
--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统
--data-length <num>: 填充随机数据让数据包长度达到 Num
--ip-options <options>: 使用指定的 IP 选项来发送数据包
--spoof-mac <mac address/prefix/vendor name> : 伪装 MAC 地址
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
--version-trace: 显示出详细的版本侦测过程信息


一:探索目标主机是否在线

主机发现常用参数如下  :

-sn: Ping Scan 只进行主机发现,不进行端口扫描。


-PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机。
-PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现。 
 
-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。 
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。

-PO[protocollist]: 使用IP协议包探测对方主机是否开启。  
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。  
--dns-servers <serv1[,serv2],...>: 指定DNS服务器。   
--system-dns: 指定使用系统的DNS服务器   
--traceroute: 追踪每个路由节点 

案例 : 

获取开放指定端口的服务器列表(Get list of servers with a specific port open)

# nmap -sT -p 80 -oG – 192.168.1.* | grep open

改变-p的参数可指定端口,查看nmap主页寻找指定地址范围的不同方式。

获取网络中所有存活的主机:Find all active IP addresses in a network

nmap -sP 192.168.0.*

ping一个范围内的IP地址(Ping a range of IP addresses)

nmap -sP 192.168.1.100-254

寻找一个给定子网中未使用的ip(Find unused IPs on a given subnet)

nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp

扫描本地网络中的conficker病毒(Scan for the Conficker virus on your LAN ect.)

nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 

扫描网络中的非法接入点   (Scan Network for Rogue APs.)

nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8

列出一个子网中的DNS反向记录(List of reverse DNS records for a subnet)

nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==”not”)print”(“$2″) no PTR”;else print$3″ is “$2}’ | grep ‘(‘

这个命令是使用nmap字在子网中查询DNS反向信息。它会生成子网中的ip地址列表和相应的PTR纪录。你可以在CDIR符号中输入子网 (i.e. /24 for a Class C),如果你需要查询一个特定的DNS服务器,你可以在-sL后边添加“–dns-servers x.x.x.x”,一些安装版的namp可能需要sudo,我也希望awk是大多数发行版的标准。

 

当探测公网 ip时
nmap -sn
Nmap会发送四种不同类型的数据包来探测目标主机是否在线。

ICMP echo request
a TCP SYN packet to port 443(https)
a TCP ACK packet to port 80(http)
an ICMP timestamp request

 例:  nmap  -sn   133.133.100.30 

29dbd74fba877bd328723e7dc600aba2518.jpg

13507d888fc1a2672c50d95c953c4a2106c.jpg

 

nmap  -PE/-PP/-PM
-PE 的ICMP Echo扫描简单来说是通过向目标发送ICMP Echo数据包来探测目标主机是否存活,但由于许多主机的防火墙会禁止这些报文,所以仅仅ICMP扫描通常是不够的。                                             

                nmap   -PE   133.133.100.30
990b3d493233fe2fdffeab8ad0c3d92b6b5.jpg

-PP 的ICMP time stamp时间戳扫描在大多数防火墙配置不当时可能会得到回复,可以以此方式来判断目标主机是否存活。倘若目标主机在线,该命令还会探测其开放的端口以及运行的服务!                                                                                   

      nmap  nmap  -PP  133.133.100.30
8848cb4444fec0d4d978345d19eb8e920e4.jpg

  • -PM 的ICMP address maskPing地址掩码扫描会试图用备选的ICMP等级Ping指定主机,通常有不错的穿透防火墙的效果       
  • nmap  -PM  133.133.100.30

8c6cfaccb2f139e9f5fcb8c41de7b6c77ec.jpg

 

当探测内网ip时

nmap -sn

使用 nmap  -sn  内网ip   这个命令会发送arp请求包探测目标ip是否在线,如果有arp回复包,则说明在线。此命令可以探测目标主机是否在线,如果在线,还可以得到其MAC地址。但是不会探测其开放的端口号。

nmap  -PE/-PP/-PM

 

 探测该主机所在网段内所有主机的在线情况,使用的是  nmap  -sn   网段/子网掩码 。

例:nmap  -sn  10.96.10.0/24  或  nmap  -sn  10.96.10.100-200


探测10.96.10.0 这个网段内主机的在线情况,返回在线主机的ip和MAC地址
d2e99d2700b94421e10ba581a90a5b4e847.jpg

e8a7418dff20eff56e3572ce6d07ac4c9cc.jpg

 

端口扫描及其原理
端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。

默认情况下,Nmap会扫描1000个最有可能开放的TCP端口

Nmap通过探测将端口划分为6个状态:

  • open:端口是开放的。
  • closed:端口是关闭的。
  • filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
  • unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
  • open|filtered:端口是开放的或被屏蔽。
  • closed|filtered :端口是关闭的或被屏蔽
     
开放:这表明一个应用程序侦听此端口上的连接。

关闭:这表示收到了探头,但没有应用程序侦听此端口。

已过滤:这表明探针没有收到,无法建立连接。它也表明探针被某些筛选给丢弃。

未过滤:这表明探针接收但无法建立连接。

打开/过滤:这表示该端口进行过滤或打开,但NMAP的无法建立连接。

关闭/过滤:这表示该端口进行过滤或关闭,但NMAP的无法建立连接。

 

TCP SYN 扫描(-sS)      这是Nmap默认的扫描方式

TCP connent 扫描(-sT)         向目标主机的端口发起连接,如果无法连接,说明该端口关闭。TCP connect是TCP SYN无法使用才考虑使用的方式

TCP ACK 扫描(-sA)         向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口。

TCP FIN/Xmas/NULL 扫描(-sN/sF/sX)           FIN扫描向目标主机的端口发送的TCP FIN 包或Xmas tree包或NULL包,如果收到对方的RST回复包,那么说明该端口是关闭的;没有收到RST包说明该端口可能是开放的或者被屏蔽了。其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有的flags都为0的TCP包。

UDP扫描(-sU)       用于判断UDP端口的情况,向目标主机的UDP端口发送探测包,如果收到回复ICMP port unreachable就说明该端口是关闭的;如果没有收到回复,那说明该UDP端口可能是开放的或者屏蔽的。

其他方式(-sY/-sZ)

 

简单扫描(nmap ip)

nmap   202.207.236.2

Nmap会以默认TCP SYN扫描方式进行,仅判断目标端口是否开放,若开放,则列出端口对应的服务名称。

a6656e4bd5b5c0f06066087251333e7920b.jpg

0d3ce1c1c2361f1116f99fe942a91bda7af.jpg

 

扫描整个网络寻找目标,通过使用“-sP”命令,进行ping扫描。缺省的情况下,Nmap给每个扫描到的主机一个ICMP echo 和 一个 TCP ACK,主机对任何一种的响应都会被Nmap得到

扫描连续的IP地址

命令:NMAP 192.168.2.1-192.168.2.100

找出网络中的在线主机

扫描47.98.124.91网络,表示扫描整个子网。

#nmap -sP 47.98.124.91/24

9c078d8c3b4e92328f6b0303897596e9807.jpg

识别防火墙和逃过防火墙扫描,查找服务对于的端口过滤或关闭

# nmap -sC -p22,80 -T4 192.168.1.2
# nmap -sC -p22,80 192.168.1.2

4ccbbe353a11cfb4eea3114b54664897258.jpg

扫描主机检测是否有防火墙保护

扫描主机检测其是否受到数据包过滤软件或防火墙的保护。

[root@localhost ~]# nmap -PN 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:30 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.399 seconds

 

TCP Ack Ping扫描

这种类型的扫描将只扫描确认(ACK)数据包。

选项-PA对指定主机进行TCP Ack Ping扫描。

命令:NAMP -PA 目标

cdcb39f30907514c4193ed55cacaf7aaaee.jpg

 

禁用反向DNS解析

选项-n用于禁用反向DNS解析

命令:NMAP -n 目标

5166a1ea4aa3e9ba0c39cadc42b3a881371.jpg

 

选择DNS查找方法

选项-system-dns指示NMAP使用主机系统自带的DNS解析器,而不是其自身内部的方法。

命令:NMAP -system-dns 目标

手动指定DNS服务器

选项-dns-servers用于扫描时手动指定DNS服务器进行查询。

语法:NMAP -dns-server server1 server2 目标

 

扫描TCP连接端口

连接扫描使用"-sT" 命令如下 :

#nmap -sT 192.168.7.12

90a2bde62797af90b78f1afb02c96c84405.jpg

 

隐蔽扫描

开放的端口会发送一个SYN包(是TCP协议中的第一个包)开始一次SYN的扫描。任何开放的端口都将有一个SUN|ACK响应。

如果是关闭的端口,对最初的 SYN信号的响应也会是RST ,使用"-sS"命令将发送一个SYN扫描探测主机或网络。

#nmap -sS 192.168.163.1

7eeda2ffc17e59ee5513c39fb0cc0d532ad.jpg

UDP扫描

查看哪些端口对UDP是开放的。

Nmap将发送一个O字节的UDP包到每个端口,如果主机返回端口不可达,则表示端口是关闭的。

# namp -sU 192.168.163.1

4be6ae1b3370c7ed313249672f0dede44e1.jpg

 

操作系统识别

一个常见的选项是 TCP/IP上指纹 ,带有"-O" 选项决定远程操作系统的类型。

扫描带有SYN扫描的指纹验证堆栈的系统

# nmap -sS -O 192.168.163.1

6e6b961b4274bb21368cb1c2fa0be0f15fd.jpg

 

Ident扫描

一个以root运行的WEB服务器。如果目标机运行了identd,一个攻击者使用Nmap通过 "-I" 选项的TCP 连接,就可以发现哪个用户拥有http守护进程。

# nmap -sT -p 80 -I -O www.baidu.com

56c9a127141de471e48c6d0d626dd3d83cf.jpg

      Apache运行在root,是不安全的实践,可以通过把/etc/indeed.conf中的auth服务注销来阻止ident请求,并重新启动ident。另外也可以使用ipchains或者常用的防火墙,在网络边界上执行规则来终止ident请求,这可以阻止类路不明的人探测你的网站用户拥有哪些进程。

 

扫描指定的端口

使用"-p" 选项,可以指定扫描端口。比如,探测Web服务器的FTP (21) ,telnet (port 23),DNS (port 53),http (port 80),使用SYN扫描。

# nmap -sS -p 21,23,53,80 -O -v www.qq.com

 

 

全面扫描(nmap -A ip)

nmap   -A  202.207.236.2

      不仅列出目标主机开放的端口号,对应的服务,还较为详细的列出了服务的版本,其支持的命令,到达目标主机的每一跳路由等信息。在进行完全扫描时,扫描机与目标主机之间存在大量的数据流量交互,扫描时长随之增加。完全扫描不仅仅是TCP协议上的通信交互,还有例如ICMP、HTTP、NBSS、TDS、POP等等协议的交互,这些协议的交互是因为在完全扫描开始时首先对目标主机的开放端口进行了确认,之后再根据不同对应的不同服务进行服务版本信息探测、账户信息等信息的探测!
2c7e7a713740cb5b5219d3a42a6d469eaa7.jpg

探测主机是否在线:全面扫描时探测主机是否在线和简单扫描完全一致
探测端口是否打开:全面扫描时探测主机端口开放和简单扫描完全一致
探测端口服务具体版本:每个协议都不一样,总之就是确定端口开放了之后,和该端口进行更多的数据交互,以获得更多的信息。在下一节的版本探测中有更深入的研究
探测主机系统:在下一节的系统探测中有更深入的研究。


探测指定端口的开放状态

           在默认情况下,Nmap对端口的扫描方式是从小到大进行的,或者是参照 nmap-services 中文件列出的端口进行扫描。-p选项可以指定一个端口号或者一个端口范围。若既想扫描TCP端口又想扫描UDP端口,则需要在端口号前加上T:或U:来分别代表TCP和UDP协议。注意,要既扫描TCP又扫描UDP,则需要指定-sU及至少一个TCP扫描类型(-sS(半连接扫描),-sT(全连接扫描)等),如果没有给定协议限定符,端口号会被加到所有协议列表。

例: nmap  -p  80-445  10.96.10.246     扫描目标主机的80-445端口的开放情
a7a03d5391d2a2c7619071a208d19f70e73.jpg

指定一个端口范围,Nmap会默认以TCP SYN方式扫描目标端口,若既想扫描目标TCP端口又想扫描UDP的端口,则需要指定扫描方式以及端口。

 

参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;

例: nmap  -sS   -sU  -p  T:80,U:445   10.96.10.246     以半连接的TCP SYN方式扫描目标主机的80端口,以UDP方式扫描目标主机的445端口

515cd78cb7daead31692a15c3f2d169d014.jpg

扫描目标主机所有信息

扫出目标所开放的端口、服务器版本信息、系统版本等(给我的感觉就是把所有基础扫描的命令都用一遍),T表示扫描速度(0-5)(paranoid|sneaky|polite|normal|aggressive|insane)六个档位

-T4表示时间级别配置4级

#nmap  -T 4 -A  192.168.6.201

480364d2ac2ebf6dc7a379cb5a3e0d810b3.jpg

1620

无ping扫描

nmap -v -Pn 192.168.6.201无ping扫描,有些防火墙禁止ping可以使用此选项(前提确定主机是存活的),v代表显示扫描过程。

bd9c96fd0ed85db6e1da4f0e1fdf8242a1f.jpg

1620

 

探测N个最有可能开放的端口

例:nmap -sS -sU --top-ports 100 10.96.10.246

参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;--top-ports 100表示扫描最有可能开放的100个端口(TCP和UDP分别100个端口)。

6f0db0f16c59415b06b64d05488ec3874e6.jpg

 

版本侦测用法

扫描端口服务器版本

例:  nmap  -sV  10.96.10.246

4ea1ba190cf20f3caf2de4fc8a5df967fd3.jpg

 

OS侦测用法

实例: 

nmap -F -Pn -D 10.96.10.100,10.96.10.110,ME  -e eth0  -g 5555 202.207.236.3
 

-F参数表示快速扫描100个端口,-Pn不进行ping扫描,-D表示使用ip诱骗方式掩饰真实ip,使用的是10.96.10.100和10.96.10.110,ME表示自己真实的ip,这里是10.96.10.234,-e 参数指定eth0网卡发送数据包,-g参数指定发送的端口号
 

 

排除一些远程主机后再扫描

[root@localhost ~]# nmap 192.168.0.* --exclude 192.168.0.100
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:16 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 255 IP addresses (1 host up) scanned in 5.313 seconds
You have new mail in /var/spool/mail/root

扫描主机侦测防火墙

root@localhost ~]# nmap -sA 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:27 EST
All 1680 scanned ports on server2.tecmint.com (192.168.0.101) are UNfiltered
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.382 seconds
You have new mail in /var/spool/mail/root

 

执行快速扫描

你可以使用“-F”选项执行一次快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口。

[root@localhost ~]# nmap -F 192.168.0.101

查看Nmap的版本

你可以使用“-V”选项来检测你机子上Nmap的版本。

[root@localhost ~]# nmap -V

顺序扫描端口

使用“-r”选项表示不会随机的选择端口扫描。

[root@localhost ~]# nmap -r 192.168.0.101

打印主机接口和路由

你可以使用nmap的“–iflist”选项检测主机接口和路由信息。

[root@localhost ~]# nmap --iflist
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:07 EST
************************INTERFACES************************
DEV  (SHORT) IP/MASK          TYPE     UP MAC
lo   (lo)    127.0.0.1/8      loopback up
eth0 (eth0)  192.168.0.100/24 ethernet up 08:00:27:11:C7:89
 
**************************ROUTES**************************
DST/MASK      DEV  GATEWAY
192.168.0.0/0 eth0
169.254.0.0/0 eth0

nmap列举出了你系统上的接口以及它们各自的路由信息。

 

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

有时候包过滤防火墙会阻断标准ICMP ping请求,在这种情况下,我们可以使用TCP ACKTCP Syn方法来扫描远程主机。

[root@localhost ~]# nmap -PS 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:51 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds
You have new mail in /var/spool/mail/root

使用TCP ACK扫描远程主机上特定的端口

[root@localhost ~]# nmap -PA -p 22,80 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:02 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.166 seconds
You have new mail in /var/spool/mail/root

使用TCP Syn扫描远程主机上特定的端口

[root@localhost ~]# nmap -PS -p 22,80 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:08 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 0.165 seconds
You have new mail in /var/spool/mail/root

执行一次隐蔽的扫描

[root@localhost ~]# nmap -sN 192.168.0.101
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 19:01 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE         SERVICE
22/tcp   open|filtered ssh
80/tcp   open|filtered http
111/tcp  open|filtered rpcbind
957/tcp  open|filtered unknown
3306/tcp open|filtered mysql
8888/tcp open|filtered sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
 
Nmap finished: 1 IP address (1 host up) scanned in 1.584 seconds
You have new mail in /var/spool/mail/root

端口扫描演示

nmap –sS –sU –T4 –top-ports 300 192.168.1.100

参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;-T4表示时间级别配置4级;--top-ports 300表示扫描最有可能开放的300个端口(TCP和UDP分别有300个端口)。

 

NSE脚本引擎

nmap的脚本库的路径:/usr/share/nmap/scripts  ,该目录下的文件都是nse脚本

考虑以下几个方面

  • 网络发现(Network Discovery)
  • 更加复杂的版本侦测(例如 skype 软件)
  • 漏洞侦测(Vulnerability Detection)
  • 后门侦测(Backdoor Detection)
  • 漏洞利用(Vulnerability Exploitation)
    
    例如:
    nmap -script   smb-vuln-ms17-010  192.168.10.34  #可以探测该主机是否存在ms17_010漏洞
    nmap --max-parallelism 800--script http-slowloris scanme.nmap.org  #可以探测该主机是否存在http拒绝服务攻击漏洞
    nmap -script http-iis-short-name-brute 192.168.10.34  #探测是否存在IIS短文件名漏洞
    nmap -script mysql-empty-password 192.168.10.34  #验证mysql匿名访问
    nmap -p 443 -script ssl-ccs-injection 192.168.10.34   #验证是否存在openssl CCS注入漏
     ———————————————— 
    版权声明:本文为优快云博主「谢公子」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.youkuaiyun.com/qq_36119192/article/details/82079150

    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MTE5MTky,size_16,color_FFFFFF,t_70

 

 

 

参考: 

安全扫描工具:Nmap的系统结构及扫描流程解析 :   http://www.win8pc.com/news/281.html

Nmap详解 : https://blog.youkuaiyun.com/qq_36119192/article/details/82079150

Nmap 用法详解,分分钟找到漏洞  :  http://app.myzaker.com/news/article.php?pk=5a9df3181bc8e0555500000a

 

 

转载于:https://my.oschina.net/u/3803405/blog/3100556

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值