欢迎来到云服务器

网络技术

Nmap命令使用实例

    在目标机上,Nmap运行灵活。使用Nmap进行单机扫描或是整个网络的扫描很简单,只要将带有"/mask"的目标地址指定给Nmap即可。地址是"victim/24", 则目标是c类网络,地址是"victim/16", 则目标是B类网络。

    另外,Nmap允许你使用各类指定的网络地址,比如 192.168.7.*,是指192.168.7.0/24, 或 192.168.7.1,4,8-12,对所选子网下的主机进行扫描。

    Ping扫描(Ping Sweeping)

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

    举例:扫描192.168.7.0网络:

    # nmap -sP 192.168.7.0/24

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Host (192.168.7.11) appears to be up.

    Host (192.168.7.12) appears to be up.

    Host (192.168.7.76) appears to be up.

    Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1 second

    如果不发送ICMP echo请求,但要检查系统的可用性,这种扫描可能得不到一些站点的响应。在这种情况下,一个TCP"ping"就可用于扫描目标网络。

    一

    个TCP"ping"将发送一个ACK到目标网络上的每个主机。网络上的主机如果在线,则会返回一个TCP RST响应。使用带有ping扫描的TCP 

    ping选项,也就是"PT"选项可以对网络上指定端口进行扫描(本文例子中指的缺省端口是80(http)号端口),它将可能通过目标边界路由器甚至是

    防火墙。注意,被探测的主机上的目标端口无须打开,关键取决于是否在网络上。

    # nmap -sP -PT80 192.168.7.0/24

    TCP probe port is 80

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Host (192.168.7.11) appears to be up.

    Host (192.168.7.12) appears to be up.

    Host (192.168.7.76) appears to be up.

    Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1 second

    当潜在入侵者发现了在目标网络上运行的主机,下一步是进行端口扫描。

    Nmap支持不同类别的端口扫描TCP连接, TCP SYN, Stealth FIN, Xmas Tree,Null和UDP扫描。

    端口扫描(Port Scanning)

    一个攻击者使用TCP连接扫描很容易被发现,因为Nmap将使用connect()系统调用打开目标机上相关端口的连接,并完成三次TCP握手。黑客登录到主机将显示开放的端口。一个tcp连接扫描使用"-sT"命令如下。

    # nmap -sT 192.168.7.12

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Interesting ports on (192.168.7.12):

    Port State Protocol Service

    7 open tcp echo

    9 open tcp discard

    13 open tcp daytime

    19 open tcp chargen

    21 open tcp ftp

    ...

    Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds

    隐蔽扫描(Stealth Scanning)

    如

    果一个攻击者不愿在扫描时使其信息被记录在目标系统日志上,TCP SYN扫描可帮你的忙,它很少会在目标机上留下记录,三次握手的过程从来都不会完全实

    现。通过发送一个SYN包(是TCP协议中的第一个包)开始一次SYN的扫描。任何开放的端口都将有一个SYN|ACK响应。然而,攻击者发送一个RST

    替代ACK,连接中止。三次握手得不到实现,也就很少有站点能记录这样的探测。如果是关闭的端口,对最初的SYN信号的响应也会是RST,让NMAP知道

    该端口不在监听。"-sS"命令将发送一个SYN扫描探测主机或网络:

    # nmap -sS 192.168.7.7

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Interesting ports on saturnlink.nac.net (192.168.7.7):

    Port State Protocol Service

    21 open tcp ftp

    25 open tcp smtp

    53 open tcp domain

    80 open tcp http

    ...

    Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

    虽

    然SYN扫描可能不被注意,但他们仍会被一些入侵检测系统捕捉。Stealth FIN,Xmas树和Null scans可用于躲避包过滤和可检测进入

    受限制端口的SYN包。这三个扫描器对关闭的端口返回RST,对开放的端口将吸收包。一个 FIN "-sF"扫描将发送一个FIN包到每个端口。

    然而Xmas扫描"-sX"打开FIN, URG和PUSH的标志位,一个Null scans "-sN"关闭所有的标志位。因为微软不支持TCP标准,所以FIN, Xmas Tree和Null scans在非微软公司的操作系统下才有效。

    UDP扫描(UDP Scanning)

    如

    果一个攻击者寻找一个流行的UDP漏洞,比如 rpcbind漏洞或cDc Back Orifice。为了查出哪些端口在监听,则进行UDP扫描,即可

    知哪些端口对UDP是开放的。Nmap将发送一个O字节的UDP包到每个端口。如果主机返回端口不可达,则表示端口是关闭的。但这种方法受到时间的限制,

    因为大多数的UNIX主机限制ICMP错误速率。幸运的是,Nmap本身检测这种速率并自身减速,也就不会产生溢出主机的情况。

    # nmap -sU 192.168.7.7

    WARNING: -sU is now UDP scan -- for TCP FIN scan use -sF

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Interesting ports on saturnlink.nac.net (192.168.7.7):

    Port State Protocol Service

    53 open udp domain

    111 open udp sunrpc

    123 open udp ntp

    137 open udp netbios-ns

    138 open udp netbios-dgm

    177 open udp xdmcp

    1024 open udp unknown

    Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds

    操作系统识别(OS Fingerprinting)

    通

    常一个入侵者可能对某个操作系统的漏洞很熟悉,能很轻易地进入此操作系统的机器。一个常见的选项是TCP/IP上的指纹,带有"-O"选项决定远程操作系

    统的类型。这可以和一个端口扫描结合使用,但不能和ping扫描结合使用。Nmap通过向主机发送不同类型的探测信号,缩小查找的操作系统系统的范围。指

    纹验证TCP包括使用FIN探测技术发现目标机的响应类型。BOGUS的标志探测,发现远程主机对发送的带有SYN包的不明标志的反应,TCP 初始序列

    号(ISN)取样发现ISN数值的样式,也可以用另外的方式决定远程操作系统。有一篇权威的关于指纹(fingertprinting)的文章,作者:

    Fyodor,也是namp的作者,参见地址:http://www.insecure.org/nmap/nmap-fingerprinting-

    article.html

    Nmap's操作系统的检测是很准确也是很有效的,举例:使用系统Solaris 2.7带有SYN扫描的指纹验证堆栈。

    # nmap -sS -O 192.168.7.12

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Interesting ports on comet (192.168.7.12):

    Port State Protocol Service

    7 open tcp echo

    9 open tcp discard

    13 open tcp daytime

    19 open tcp chargen

    21 open tcp ftp

    ...

    TCP Sequence Prediction: Class=random positive increments

    Difficulty=17818 (Worthy challenge)

    Remote operating system guess: Solaris 2.6 - 2.7

    Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

    Ident扫描(Ident Scanning)

    一

    个攻击者常常寻找一台对于某些进程存在漏洞的电脑。比如,一个以root运行的WEB服务器。如果目标机运行了identd,一个攻击者使用Nmap通过

    "-I"选项的TCP连接,就可以发现哪个用户拥有http守护进程。我们将扫描一个Linux WEB服务器为例:

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

    Starting nmap V. 2.12 by Fyodor (

    [[email protected]][email protected][/email]

    , www.insecure.org/nmap/)

    Interesting ports on www.yourserver.com (xxx.xxx.xxx.xxx):

    Port State Protocol Service Owner

    80 open tcp http root

    TCP Sequence Prediction: Class=random positive increments

    Difficulty=1140492 (Good luck!)

    Remote operating system guess: Linux 2.1.122 - 2.1.132; 2.2.0-pre1 - 2.2.2

    Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

    如果你的WEB服务器是错误的配置并以root来运行,象上例一样,它将是黎明前的黑暗。

    Apache

    运行在root下,是不安全的实践,你可以通过把/etc/indeed.conf中的auth服务注销来阻止ident请求,并重新启动ident。另

    外也可用使用ipchains或你的最常用的防火墙,在网络边界上执行防火墙规则来终止ident请求,这可以阻止来路不明的人探测你的网站用户拥有哪些

    进程。

    选项(Options)

    除了以上这些扫描,Nmap还提供了无数选项。有一个是"-PT",,我们已经介绍过了。在目标机或网络上常见的未经过滤的端口,进行TCP "ping"扫描。

    另

    一个选项是"-P0"。在缺省设置下试图扫描一个端口之前,Nmap将用TCP ping" 和 ICMP echo命令ping一个目标机,如果

    ICMP 和TCP的探测扫描得不到响应,目标主机或网络就不会被扫描,即使他们是运行着的。而"-P0"选项允许在扫描之前不进行ping,即可进行扫

    描。

    你应该习惯使用"-v"命令,它详细列出所有信息,能和所有的扫描选项一起使用。你能反复地使用这个选项,获得有关目标机的更多信息。

    使用"-p "选项,可以指定扫描端口。比如 ,攻击者想探测你的web服务器的ftp(port 21),telnet (port 23), dns (port 53), http (port 80),想知道你所使用的操作系统,它将使用SYN扫描。

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

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号