Linux端口扫描工具nmap and nwatch html
Port scan简介 linux
port Scan的方法介绍 port Scan就是一种经过检测对方服务器的开放端口,侦测对方服务器服务的方法。通常可分为主动式和被动式两种。 主动式就是经过向对方服务器的特定端口发送数据包,根据应答来判断。以nmap 为表明 服务器
被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不该该被称做是端口扫描。以nwatch为表明 网络
优缺点比较 主动式的优势 app
主动式只要在对方没有把通讯阻断的状况下,能够在较短的时间内得到结果 ssh
主动式的缺点 tcp
1 如今带有阻断功能的防火墙愈来愈多,有些防火墙当检测到端口扫描时,会将端口关闭必定的时间,还有的机器使用了不少filter功能,只对特定的IP地址提供服务,这种状况下,主动式的正确性大打折扣。 工具
2 主动式只是在一瞬间对端口进行扫描,只有当服务器那个时候使用的服务才有可能被侦测到。 测试
3 端口扫描是一种广义上的攻击行为,对于末经许可的机器,通常不能施行。 ui
被动式的优势
被动式只是侦听网络,不会成为网络攻击,它长期运行,能够侦测到一个长时间间内,服务器的变化。
被动式的缺点
因为它不会主动发出请求包,即便端口开着,若是没有发生实际的通讯,被动式也没法侦测到服务
3。nmap的安装
debian apt-get install nmap
fedora core yum install nmap
others 下载源代码,编译
4。nmap的使用方法
下面是Nmap支持的四种最基本的扫描方式:
* TCP connect()端口扫描(-sT参数)。
* TCP同步(SYN)端口扫描(-sS参数)。
* UDP端口扫描(-sU参数)。
* Ping扫描(-sP参数)
若是要勾画一个网络的总体状况,Ping扫描和TCP SYN扫描最为实用。
* Ping扫描经过发送ICMP(Internet Control Message Protocol,Internet控制消息协议)回应请求数据包和TCP应答(Acknowledge,简写ACK)数据包,肯定主机的状态,很是适合于检测指定网段内正在运行的主机数量。
* TCP SYN扫描一会儿不太好理解,但若是将它与TCP connect()扫描比较,就很容易看出这种扫描方式的特色。在TCP connect()扫描中,扫描器利用操做系统自己的系统调用打开一个完整的TCP链接也就是说,扫描器打开了两个主机之间的完整握手过程(SYN, SYN-ACK,和ACK)。一次完整执行的握手过程代表远程主机端口是打开的。
* TCP SYN扫描建立的是半打开的链接,它与TCP connect()扫描的不一样之处在于,TCP SYN扫描发送的是复位(RST)标记而不是结束ACK标记(即,SYN,SYN-ACK,或RST):若是远程主机正在监听且端口是打开的,远程主机用 SYN-ACK应答,Nmap发送一个RST;若是远程主机的端口是关闭的,它的应答将是RST,此时Nmap转入下一个端口。
-sS 使用SYN+ACK的方法,使用TCP SYN,
-sT 使用TCP的方法, 3次握手全作
-sU 使用UDP的方法
-sP ICMP ECHO Request 送信,有反应的端口进行调查
-sF FIN SCAN
-sX
-sN 所有FLAG OFF的无效的TCP包送信,根据错误代码判断端口状况
-P0 无视ICMP ECHO request的结果,SCAN
-p scan port range 指定SCAN的目端口的范围
1-100, 或者使用25,100的方式
-O 侦测OS的种类
-oN 文件名 一般格式文件输出
-oX 文件名 经过DTD,使用XML格式输出结果
-oG 文件名,grep容易的格式输出
-sV 服务的程序名和版本SCAN
实例:
nmap -v target.com
这样对target.com上全部的保留TCP端口作了一次扫描,-v表示用详细模式。
nmap -sS -O target.com/24
这将开始一次SYN的半开扫描,针对的目标是target.example.com所在的C类子网,它还试图肯定在其上运行的是什么系统。这须要root权限,由于用到了半开扫描以及系统侦测。
结果实例:
debianlinux:/etc/init.d# nmap 192.168.1.1
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-08-30 00:01 JST
Interesting ports on 192.168.1.1
(The 1658 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
1720/tcp filtered H.323/Q.931
3128/tcp open squid-http
5。nwatch的安装 nwatch 须要的包
Perl 5.005_03以上
Net::Pcap
Ndiff 0.05 bata2 以上
libpcap
debian: apt-get install nwatch
6.nwatch的使用方法
-d 网络设备名,默认为eth0
-h host/network[:port][t,u]
t,u 能够指定TCP或UDP 默认为TCP
-o 输出文件名
-fi 时间(秒) 把数据写盘时间,默认为300秒
-si 数据Break时间(秒),默认为86400(一天)
LINK
nmap
数据写盘时间,默认为300秒-si 数据Break时间(秒),默认为86400(一天)LINKnmap http://www.insecure.org/nmap/
NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工 具包,其基本功能有三个,一是探测一组主机是否在线;其次是 扫描主机端口,嗅探所提供的网络服务;还能够推断主机所用的操做系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。 Nmap 还容许用户定制扫描技巧。一般,一个简单的使用ICMP协议的ping操 做能够知足通常需求;也能够深刻探测UDP或者TCP端口,直至主机 所使用的操做系统;还能够将全部探测结果记录到各类格式的日志中, 供进一步分析操做。
进行ping扫描,打印出对扫描作出响应的主机,不作进一步测试(如端口扫描或者操做系统探测):
nmap -sP 192.168.1.0/24
仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24
探测目标主机开放的端口,能够指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探测主机:
nmap -PU 192.168.1.0/24
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个彻底的TCP链接,执行得很快:
nmap -sS 192.168.1.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每一个目标端口:
nmap -sU 192.168.1.0/24
肯定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探测目标主机的操做系统:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文档中的例子:
nmap -v scanme.nmap.org
这个选项扫描主机scanme.nmap.org中 全部的保留TCP端口。选项-v启用细节模式。
nmap -sS -O scanme.nmap.org/24
进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试肯定每台工做主机的操做系统类型。由于进行SYN扫描 和操做系统检测,这个扫描须要有根权限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于肯定系统是否运行了sshd、DNS、imapd或4564端口。若是这些端口 打开,将使用版本检测来肯定哪一种应用在运行。
nmap -v -iR 100000 -P0 -p 80
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来肯定主机是否工做很是浪费时间,并且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。
host -l company.com | cut -d -f 4 | nmap -v -iL -
进行DNS区域传输,以发现company.com中的主机,而后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不一样的命令。
其余选项:
-p <port ranges> (只扫描指定的端口)
单个端口和用连字符表示的端口范 围(如 1-1023)均可以。当既扫描TCP端口又扫描UDP端口时,能够经过在端口号前加上T: 或者U: 指定协议。 协议限定符一直有效直到指定另外一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描 UDP 端口53,111,和137,同时扫描列出的TCP端口。
-F (快速 (有限的端口) 扫描)
原文:http://hi.baidu.com/ostech/item/92c5e4248e29b94e47996284