端口扫描工具nmap

nmap 使用介绍

nmap是目前为止最广为使用的国外端口扫描工具之一。我们可以从[url]http://www.insecure.org/[/url]进行下载,可以很容易的安装到Windows和unix操作系统中,包括mac os x(通过configure、make 、make install等命令)也可以直接从http://www.insecure.org/下载windows二进制(包括所需要的winpcap)也可以从http://www.nmapwin.org/获得nmap的图形windows。

扫描主机

$ nmap -sT 192.168.1.18
Starting nmap 3.48([url]http://www.insecure.org/nmap/[/url])at 2007-10-10 18:13 EDT
Interesting ports on gamebase(192.168.1.18)
port                  state                serverice
22/tcp              open                ssh
111/tcp            open                sunrpc
 ..........
$ nmap -sR 192.168.1.18
Startingnmap 3.48([url]http://www.insecure.org/nmap/[/url])at 2007-10-10 18:13 EDT
Interesting ports on gamebase(192.168.1.18)
port                  state                serverice
22/tcp              open                ssh
111/tcp            open                sunrpc
 ..........

我们可以使用ping扫描的方法(-sP),与fping的工作方式比较相似,它发送icmp回送请求到指定范围的ip地址并等待响应。现在很多主机在扫描的时候都做了处理,阻塞icmp请求,这种情况下。nmap将尝试与主机的端口80进行连接,如果可以接收到响应(可以是syn/ack,也可以是rst),那么证明主机正在运行,反之,则无法判断主机是否开机或者是否在网络上互连。

扫描tcp端口

这里-sR是怎样在打开的端口上利用RPC命令来判断它们是否运行了RPC服务。

nmap可以在进行端口扫描的tcp报文来做一些秘密的事情。首先,要有一个SYN扫描(-sS),它只做建立TCP连接的前面一些工作,只发送一个设置SYN标志的TCP报文,一个RESET报文,那么nmap假设这个端口是关闭的,那么就不做任何事情了。如果接收到一个响应,它并不象正常的连接一样对这个报文进行确认,而是发送一个RET报文,TCP的三次握手还没有完成,许多服务将不会记录这次连接。

有的时候,nmap会告诉我们端口被过滤,这意味着有防火墙或端口过滤器干扰了nmap,使其不能准确的判断端口是打开还是关闭的,有的防火墙只能过滤掉进入的连接。

扫描协议

如果试图访问另一端无程序使用的UDP端口,主机将发回一个icmp“端口不可达”的提示消息,IP协议也是一样。每个传输层的IP协议都有一个相关联的编号,使用最多的是ICMP(1)、TCP(6)和UDP(17)。所有的IP报文都有一个“协议”域用于指出其中的传输层报文头所使用的协议。如果我们发送一个没有传输层报文头的原始IP报文并把其协议域编号为130[该编号是指类似IPSEC协议的被称为安全报文外壳或SPS协议],就可以判断这个协议是否在主机上实现了。如果我们得到的是ICMP协议不可达的消息,意味着该协议没有被实现,否则就是已经实现了,用法为-sO.

隐蔽扫描行为

nmap给出了几个不同的扫描选项,其中一些可以配套着隐藏扫描行为,使得不被系统日志、防火墙和IDS检测到。提供了一些随机的和欺骗的特性。具体例子如下:

FTP反弹,在设计上,FTP自身存在一个很大的漏洞,当使用FTP客户机连接到FTP服务器时,你的客户机在TCP端口21上与FTP服务器对话,这个TCP连接称为控制连接。FTP服务器现在需要另一条与客户机连接,该连接称为数据连接,在这条连接上将传送实际的文件数据,客户机将开始监听另一个TCP端口上从服务器发挥的数据连接,接下来执行一个PORT命令到服务器,告诉它建立一条数据连接到客户机的IP地址和一个新打开的端口,这种操作方法称为主动传输。许多客户机使用网络地址转换或通过防火墙与外界连接,所以主动传输FTP就不能正常工作,因为由服务器建立的客户机的连接通常不允许通过。

被动传输是大多数FTP客户机和服务器所使用的方法,因为客户机既建立控制连接又建立数据连接,这样可以通过防火墙或NAT了。

FTP的PORT命令,用来告诉FTP连接的服务器,使得与刚刚打开的用于数据连接的端口之间建立一个连接。由于我们不仅指定端口而且指定连接所用的IP地址,所以客户端也可以通过PORT命令让服务器连接到任何地方。所以我们一样可以让nmap用这个方法进行防火墙穿透。nmap做的所有工作是与一台服务器建立一个主动模式的FTP连接,并发送一个包含它试图扫描的主机IP地址和端口号的PORT命令。

nmap -b [email protected] -p 6000 192.168.1.226
nmap 与ftp服务器的对话的例子:
server:220  target ftp server version 4 ready
client:user  anonymous
server: 331 Guest login ok ,send e-mail as password
client:pass 
server :230 login successful
client:PORT 192,168,1.226,23,112
server:200 PORT command successful
client:LIST
server:150 Opening ASCII connection for ‘/bin/ls‘
server:226 Transfer complete

PORT命令起作用,可以制造是别人进行端口扫描,扫描任何FTP服务器所能访问的主机,绕过防火墙和端口过滤器,但还是存在一些危险的,如果对方登陆到了你的这个匿名FTP服务器上,从日志查找到相应的匿名FTP连接,从而知道你的IP地址,这样就直接暴露了。

nmap -sI 空闲扫描,主要是欺骗端口扫描的源地址。

nmap -f 可以把TCP头分片的IP报文进行一些隐蔽的扫描。不完整的TCP报文不被防火墙阻塞也不被IDS检测到。

nmap-D
选择几台肉鸡,并使用-D标志在命令行中指定它们。namp通过诱骗的IP地址来进行欺骗式端口扫描,而系统管理员可以同时看到不同的端口扫描,而只有一个是真实的,很好的保护了自己。

os指纹识别
这个是nmap最有用的功能之一,就是可以鉴别远程主机。通过简单的执行网络扫描,nmap通常可以告诉你远程主机所运行的OS,甚至详细到版本号。当你指定-Q标志时,nmap将用几种不同的技术从主机返回IP报文中寻找这些鉴别信息。通过发送特别设计的TCP和UDP头,nmap可以得到远程主机对TCP/IP协议栈的处理方法。它将分析结果与保存在文件中的已知特征信息进行比较。

OS鉴别选项也可以让nmap对TCP报文进行分析以决定另外一些信息,如系统的启动时间,TCP序列号,预测的序列号使我们更容易截获报文并猜测序列号从而伪造TCP连接。

nmap命令使用详细解释

-P0 -PT -PS -PU -PE -PP -PM -PB 当nmap进行某种类型的端口或协议扫描时,通常都会尝试先ping 主机,这种尝试可使nmap不会浪费时间在那些未开机的主机上,但是许多主机与防火墙会阻塞ICMP报文,我们希望能通过控制使用。

-P0  告诉nmap不ping 主机,只进行扫描

-PT  告诉nmap使用TCP的ping

-PS  发送SYN报文。

-PU  发送一个udp ping

-PE  强制执行直接的ICMP ping

-PB  这是默认类型,可以使用ICMP ping 也可以使用TCP ping .

-6   该标志允许IPv6支持

-v  -d  使用-v选项可得到更详细的输出,而-d选项则增加调试输出。

-oN  按照人们阅读的格式记录屏幕上的输出,如果是在扫描多台机器,则该选项很有用。

-oX  以xml格式向指定的文件记录信息

-oG  以一种易于检索的格式记录信息,即每台主机都以单独的行来记录所有的端口和0s信息。

-oA  使用为基本文件名,以普通格式(-oN)、XML格式(-oX)和易于检索的格式(-oG)jilu  xinxi

-oM  把输出格式化为机器可阅读的文件

-oS  把输出进行傻瓜型排版

--resume如果你取消了扫描,但生成了供人或者供机器阅读的文件,那么可以把该文件提供给nmap继续让它扫描。

-iR-iL可以不在命令行中指定目标主机,而是使用-iR选项随即产生待扫描的主机,或者使用-iL选项从一个包含主机名或IP地址列表的文件中读取目标主机,这些主机名或IP地址使用空格、制表符或换行隔开。

-F nmap只扫描在nmap内建的服务文件中已知的端口,如果不指定该选项,nmap将扫描端口1-1024及包含在nmap-services文件中的所有其他端口。如果用-sO选项扫描协议,nmap将用它内建的协议文件(nmap-protocols文件)而不是默认地扫描所有256个协议。

-A nmap使用所有的高级扫描选项

-p 参数可以是一个单独的端口、一个用逗号隔开的端口列表、一个使用“-”表示的端口范围或者上述格式的任意组合。如果没有指定该选项,nmap将对包含前1024个端口的所有端口进行一次快速扫描。

-e在多穴主机中,可以指定你用来进行网络通信的网络接口。

-g可以选择一个源端口,从该端口执行所有的扫描。

--ttlnmap其发送的任何报文在到中间路由器的跳后会失效。

--packet-trace 可以显示扫描期间nmap发送和接收的各个报文的详细列表,这对调试非常有用。要与-o选项之一联合使用,需要根权限,以将所有的数据记录到文件。

--scanflags可以使用这个选项手工的指定欲在扫描报文中设置的TCP标志。也可以指定TCP标志的OOred值的整数形式,或者标志的字符串表示形式。

以上介绍的就是nmap在windows下和unix中的命令介绍。

时间: 2024-07-31 09:22:58

端口扫描工具nmap的相关文章

『安全工具』Nmap 强悍的端口扫描工具

作为时下流行的端口扫描工具,Nmap有因其扫描的隐密性有“端口扫描之王”之称 上图是黑客帝国(The Matrix)中崔妮蒂用Nmap等工具入侵发电站的能源管理系统 0x 01 Nmap介绍 Nmap是一款用于网络发现和安全审计的安全工具,常用于端口扫描. 用法: nmap [扫描类型] [参数] 目标IP 1. 扫描类型 -sT TCP 连接扫描,会在目标主机中记录大量的链接请求和错误信息 -sS SYN扫描,只完成三次握手前两次,很少有系统记入日志,默认使用,需要root(admin)权限

网络扫描工具nmap

本文目录: 1.1 选项说明 1.2 尝试一次扫描 1.3 扫描目标说明 1.4 端口状态说明 1.5 时间参数优化 1.6 扫描操作系统类型 1.7 快速扫描存活的主机 1.8 快速扫描端口 nmap一般就用来扫描主机是否在线(特别是扫描局域网内存活的机器).开放了哪些端口.其他的功能用的比较少,做渗透的人可能要了解的多些. 1.1 选项说明 nmap需要自行安装. shell> yum -y install nmap 使用nmap -h可以查看选项和用法.选项非常多,这是功能强大的工具带来的

端口扫描之王——nmap

端口扫描是网络安全工作者的必备的利器,通过对端口的扫描,了解网站中出现的漏洞以及端口的开放情况,对网站安全方面有着不可或缺的贡献,目前在市面上主要的端口扫描工具是X_Scan.SuperScan.nmap,其中在这里主推的是nmap,因为nmap具有以下的这一些优点: 1.多种多样的参数,丰富的脚本库,满足用户的个人定制需求,其中脚本库还提供了很多强大的功能任你选择 2.强大的可移植性,基本上能在所有的主流系统上运行,而且代码是开源的 3.详细的文档说明,和强大的社区团队进行支持,方面新人上手

五款优秀的端口扫描工具

在使用阿里云服务器,搭建阿里云VPC专有网络之后,关闭不必要的端口,并进行验证. 端口摘要: 端口扫描器是一种检测服务器或主机虚拟端口是开启或关闭的工具.端口允许同一台计算机上的不同应用程序同时共享网络资源.连接本地局域网或互联网的计算机运行着许多不同服务,它们监听着常用或不常用的端口.端口数的范围从0到65535,0到1023的端口数最常用,它们中有许多是为FTP.SSH.HTTP.telnet.DNS和NNTP等服务保留的,1024到49151端口是注册端口,49152到65535则分配给动

扫描工具——Nmap用法详解

Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp. Nmap可以完成以下任务: 主机探测 端口扫描 版本检测 系统检测 支持探测脚本的编写 Nmap在实际中应用场合如下: 通过对设备或者防火墙的探测来审计它的安全性 探测目标主机所开放的端口 通过识别新的服务器审计网络的安全性 探测网络上的主机 端口扫描工具,即借助工具,试图了解所扫描IP提供的计算机网络服务类型(网络服务均与端口号相关),从而发现攻击弱点,常见服务对应端口号: 服务 端口号 HTTP 80 HTTPS

告别脚本小子【编写端口扫描工具】

前言Windows系统默认开放了很多端口,通常这些端口意味着该主机运行着大家都知道的服务,比如TCP端口21-FTP服务,TCP端口80-HTTP服务,有些服务就有可能存在公开的漏洞,因此可以说主机上每一个开放的端口都可能成为一条入侵的捷径.当然,网上存在很多端口扫描工具,但是我们总不能只知道使用别人的工具,一是这些工具别人编写的时候有没有加入后门,二是如果只会用别人的工具,最终也只能是一个脚本小子,所以我们自己来编写一款实用的端口扫描工具. 一.基础知识 1.1.线程 线程,有时被称为轻量级进

端口扫描工具

简单的多线程端口扫描工具 可以接收IP地址作为参数,如果不接参数,则默认扫描本机的端口 1 #!/usr/bin/python 2 3 import socket 4 import time 5 import argparse 6 import threading 7 8 def arg_process(): 9 argparser=argparse.ArgumentParser(description="Port Scaner") 10 argparser.add_argument(

使用Java开发多线程端口扫描工具(二)

一 介绍 这一篇文章是紧接着上一篇文章(http://www.zifangsky.cn/2015/12/使用java开发多线程端口扫描工具/)写的,端口扫描的原理不用多少,我在上一篇文章中已经说过了,至于目的大家都懂得.在这一篇文章里,我主要是对端口扫描工具的继续完善,以及写出一个比较直观的图形界面出来,以方便我们测试使用.界面如下: 这个工具主要是实现了以下几点功能:(1)两种扫描方式,一种是只扫描常见端口,另一种是设置一个起始和结束端口,依次探测.当然,原理很简单,用for循环就可以了:(2

nmap端口扫描工具使用

(一)Port scan简介 port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法.一般可分为主动式和被动式两种. 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断,以nmap 为代表. 被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描.以nwatch为代表 (二)优缺点比较  (1)主动式的优点 主动式只要在对方没有把通信阻断的情况下,可以在较短