热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nmap扫描命令使用详解

[Ping扫描(PingSweeping)][端口扫描(PortScanning)][隐蔽扫描(StealthScanning)][UDP扫描(UDPScanning)][操作系统识别(OSFingerprinting)][Ident扫描(IdentScanning)][选项(Options)][小结]简介:最近媒体报

 [Ping扫描(Ping Sweeping)]  

[端口扫描(Port Scanning)]  

[隐蔽扫描(Stealth Scanning)] 

[UDP扫描(UDP Scanning)] 

[操作系统识别(OS Fingerprinting)] 

[Ident扫描(Ident Scanning)]  

[选项(Options)] 

[小结] 

简介: 
最 近媒体报道了许多关于入侵网络的新闻,使人们总以为入侵者只需通过简单工具就可获得电脑的访问权限。但实际上,事情并不是想象中的这么简单。黑客想要入侵 一台电脑,首先要有一套完整的计划。在入侵系统之前,黑客必须先找到一台目标主机,并查出哪些端口在监听之后才能进行入侵。 

找出网络 上的主机,测试哪些端口在监听,这些工作通常是由扫描来实现的。扫描网络是黑客进行入侵的第一步。通过使用扫描器(如Nmap)扫描网络,寻找存在漏洞的 目标主机。一旦发现了有漏洞的目标,接下来就是对监听端口的扫描。Nmap通过使用TCP协议栈指纹准确地判断出被扫主机的操作系统类型。 

本文全方位地介绍Nmap的使用方法,可以让安全管理员了解在黑客眼中的站点。并通过使用它,安全管理员可以发现自己网站的漏洞,并逐步完善自己的系统。 

Nmap 是在免费软件基金会的GNU General Public License (GPL)下发布的,可从www.insecure.org/nmap站点上免费下载。下载格式可以是tgz格式的源码或RPM格式。目前较稳定的版本是 2.12。带有图形终端,本文集中讨论Nmap命令的使用。 Nmap的语法相当简单。Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是"-sP"。在确定了目标主机和网络 之后,即可进行扫描。如果以root来运行Nmap,Nmap的功能会大大的增强,因为超级用户可以创建便于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 (fyodor@dhp.com, 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 (fyodor@dhp.com, 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 (fyodor@dhp.com, 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 (fyodor@dhp.com, 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 (fyodor@dhp.com, 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 (fyodor@dhp.com, 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 (fyodor@dhp.com, 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 
小结: 
使用什么样的方法来抵制一个黑客使用Nmap,这样的工具是有的,比如 Scanlogd, Courtney, and Shadow;,然而使用这样的工具并不能代替网络安全管理员。因为扫描只是攻击的前期准备,站点使用它只可以进行严密的监视。 
使用Nmap监视自己的站点,系统和网络管理员能发现潜在入侵者对你的系统的探测。


推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 访问一个网页的全过程
    准备:DHCPUDPIP和以太网启动主机,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此ISP(Intern ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
author-avatar
手机用户2502853557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有