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

Nmap使用方法

查看linux服务器开启了哪些端口和服务最好使用netstat命令,但是有些时候不知道打开的端口到底使用了什么服务,可以使用nmap来扫描,nmap软件包需要安装如果是RedHat版本nmap包一般是默认安装的,一下是nmap的使用方法。Ping扫描(PingSweeping)][端口扫描

查看linux服务器开启了哪些端口和服务最好使用netstat命令,但是有些时候不知道打开的端口到底使用了什么服务,可以使用nmap来扫描,nmap软件包需要安装如果是Red Hat版本nmap包一般是默认安装的,一下是nmap的使用方法。

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监视自己的站点,系统和网络管理员能发现潜在入侵者对你的系统的探测.


推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
端庄的一白_167
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有