2019-03-15

nmap基础用法

nmap系统漏洞扫描之王,也就是Network Mapper,是Linux下常用的网络扫描和嗅探工具包,现在支持多个平台。

其基本功能有三个: (1)是扫描主机端口,嗅探所提供的网络服务 (2)是探测一组主机是否在线 (3)还可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本

nmap端口状态解析

open : 应用程序在该端口接收 TCP 连接或者 UDP 报文。 closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。 filtered :由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。 unfiltered :未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。 open | filtered :无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN, Null 等扫描会引起。 closed|filtered:(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的

nmap有windows和linux

Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统 从下面官网可以下载exe程序包和zip包

https://nmap.org/download.html#windows

nmap常用参数

nmap扫描速度要比nc快 面是一些基本的命令和它们的用法的例子:扫描单一的一个主机,命令如下:

前期准备

准备两台机器 主机A:ip地址 10.0.1.161 主机B:ip地址 10.0.1.162

B机器安装nmap的包(这个工具比较强大,习惯上每台机器都安装)

yum install nmap -y  

端口扫描部分

前期准备 B机器使用nmap去扫描A机器,扫描之前,A机器先查看自己上面有哪些端口在被占用

A机器上查看本地ipv4的监听端口

netstat参数解释: -l (listen) 仅列出 Listen (监听) 的服务 -t (tcp) 仅显示tcp相关内容 -n (numeric) 直接显示ip地址以及端口,不解析为服务名或者主机名 -p (pid) 显示出socket所属的进程PID 以及进程名字 --inet 显示ipv4相关协议的监听

查看IPV4端口上的tcp的监听

netstat -lntp --inet

[root@A ~]# netstat -lntp --inet Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2157/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1930/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2365/master tcp 0 0 0.0.0.0:13306 0.0.0.0:* LISTEN 21699/mysqld tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2640/rsync tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 21505/rpcbind [root@A ~]#

过滤掉监控在127.0.0.1的端口

[root@A ~]# netstat -lntp --inet | grep -v 127.0.0.1 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2157/sshd tcp 0 0 0.0.0.0:13306 0.0.0.0:* LISTEN 21699/mysqld tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2640/rsync tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 21505/rpcbind [root@A ~]#

扫描tcp端口

B机器上使用nmap扫描A机器所有端口(-p后面也可以跟空格) 下面表示扫描A机器的1到65535所有在监听的tcp端口。 nmap 10.0.1.161 -p1-65535 指定端口范围使用-p参数,如果不指定要扫描的端口,Nmap默认扫描从1到1024再加上nmap-services列出的端口 nmap-services是一个包含大约2200个著名的服务的数据库,Nmap通过查询该数据库可以报告那些端口可能对应于什么服务器,但不一定正确。 所以正确扫描一个机器开放端口的方法是上面命令。-p1-65535 注意,nmap有自己的库,存放一些已知的服务和对应端口号,假如有的服务不在nmap-services,可能nmap就不会去扫描,这就是明明一些端口已经是处于监听状态,nmap默认没扫描出来的原因,需要加入-p参数让其扫描所有端口。 虽然直接使用nmap 10.0.1.161也可以扫描出开放的端口,但是使用-p1-65535 能显示出最多的端口 区别在于不加-p 时,显示的都是已知协议的端口,对于未知协议的端口没显示

[root@B ~]# nmap 10.0.1.161 -p1-65535

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:11 CST Nmap scan report for 10.0.1.161 Host is up (0.00017s latency). Not shown: 65531 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync 13306/tcp open unknown MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 2.49 seconds [root@B ~]#

如果不加-p1-65535,对于未知服务的端口(A机器的13306端口)就没法扫描到

[root@B ~]# nmap 10.0.1.161

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:12 CST Nmap scan report for 10.0.1.161 Host is up (0.000089s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds [root@B ~]#

扫描一个IP的多个端口

连续的端口可以使用横线连起来,端口之间可以使用逗号隔开 A机器上再启动两个tcp的监听,分别占用7777和8888端口,用于测试,加入&符号可以放入后台

[root@A ~]# nc -l 7777& [1] 21779 [root@A ~]# nc -l 8888& [2] 21780 [root@A ~]#

[root@B ~]# nmap 10.0.1.161 -p20-200,7777,8888

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:32 CST Nmap scan report for 10.0.1.161 Host is up (0.00038s latency). Not shown: 179 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 7777/tcp open cbt 8888/tcp open sun-answerbook MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds [root@B ~]#

扫描udp端口

先查看哪些ipv4的监听,使用grep -v排除回环接口上的监听 netstat -lnup --inet |grep -v 127.0.0.1 

[root@A ~]# netstat -lnup --inet |grep -v 127.0.0.1 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:111 0.0.0.0:* 21505/rpcbind udp 0 0 0.0.0.0:631 0.0.0.0:* 1930/cupsd udp 0 0 10.0.1.161:123 0.0.0.0:* 2261/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 2261/ntpd udp 0 0 0.0.0.0:904 0.0.0.0:* 21505/rpcbind [root@A ~]#

-sU:表示udp scan , udp端口扫描 -Pn:不对目标进行ping探测(不判断主机是否在线)(直接扫描端口) 对于udp端口扫描比较慢,扫描完6万多个端口需要20分钟左右

[root@B ~]# nmap -sU 10.0.1.161 -Pn

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:16 CST Stats: 0:12:54 elapsed; 0 hosts completed (1 up), 1 undergoing UDP Scan UDP Scan Timing: About 75.19% done; ETC: 10:33 (0:04:16 remaining) Stats: 0:12:55 elapsed; 0 hosts completed (1 up), 1 undergoing UDP Scan UDP Scan Timing: About 75.29% done; ETC: 10:33 (0:04:15 remaining) Nmap scan report for 10.0.1.161 Host is up (0.0011s latency). Not shown: 997 closed ports PORT STATE SERVICE 111/udp open rpcbind 123/udp open ntp 631/udp open|filtered ipp MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 1081.27 seconds [root@B ~]#

扫描多个IP用法

中间用空格分开

[root@B ~]# nmap 10.0.1.161 10.0.1.162

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:18 CST Nmap scan report for 10.0.1.161 Host is up (0.000060s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap scan report for 10.0.1.162 Host is up (0.0000070s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind

Nmap done: 2 IP addresses (2 hosts up) scanned in 0.26 seconds [root@B ~]#

也可以采用下面方式逗号隔开 nmap 10.0.1.161,162

[root@B ~]# nmap 10.0.1.161,162

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:19 CST Nmap scan report for 10.0.1.161 Host is up (0.00025s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap scan report for 10.0.1.162 Host is up (0.0000080s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind

Nmap done: 2 IP addresses (2 hosts up) scanned in 0.81 seconds [root@B ~]#

扫描连续的ip地址

[root@B ~]# nmap 10.0.1.161-162

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:20 CST Nmap scan report for 10.0.1.161 Host is up (0.00011s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap scan report for 10.0.1.162 Host is up (0.0000030s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind

Nmap done: 2 IP addresses (2 hosts up) scanned in 0.25 seconds [root@B ~]#

扫描一个子网网段所有IP

[root@B ~]# nmap 10.0.3.0/24

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:21 CST Nmap scan report for 10.0.3.1 Host is up (0.020s latency). Not shown: 997 closed ports PORT STATE SERVICE 23/tcp open telnet 6666/tcp open irc 8888/tcp open sun-answerbook

Nmap scan report for 10.0.3.2 Host is up (0.012s latency). Not shown: 997 closed ports PORT STATE SERVICE 21/tcp filtered ftp 22/tcp filtered ssh 23/tcp open telnet

Nmap scan report for 10.0.3.3 Host is up (0.018s latency). Not shown: 997 closed ports PORT STATE SERVICE 21/tcp filtered ftp 22/tcp filtered ssh 23/tcp open telnet

Nmap done: 256 IP addresses (3 hosts up) scanned in 14.91 seconds [root@B ~]#

扫描文件里的IP

如果你有一个ip地址列表,将这个保存为一个txt文件,和namp在同一目录下,扫描这个txt内的所有主机,用法如下

[root@B ~]# cat ip.txt 10.0.1.161 10.0.1.162 [root@B ~]# nmap -iL ip.txt

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:23 CST Nmap scan report for 10.0.1.161 Host is up (0.00030s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap scan report for 10.0.1.162 Host is up (0.0000070s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind

Nmap done: 2 IP addresses (2 hosts up) scanned in 0.68 seconds [root@B ~]#

扫描地址段是排除某个IP地址

nmap 10.0.1.161-162 --exclude 10.0.1.162 用法如下

[root@B ~]# nmap 10.0.1.161-162 --exclude 10.0.1.162

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:24 CST Nmap scan report for 10.0.1.161 Host is up (0.0022s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.53 seconds [root@B ~]#

扫描时排除多个IP地址

排除连续的,可以使用横线连接起来 nmap 10.0.1.161-163 --exclude 10.0.1.162-163

[root@B ~]# nmap 10.0.1.161-163 --exclude 10.0.1.162-163

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:25 CST Nmap scan report for 10.0.1.161 Host is up (0.00023s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 873/tcp open rsync MAC Address: 00:0C:29:56:DE:46 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.56 seconds [root@B ~]#

排除分散的,使用逗号隔开

nmap 10.0.1.161-163 --exclude 10.0.1.161,10.0.1.163

[root@B ~]# nmap 10.0.1.161-163 --exclude 10.0.1.161,10.0.1.163

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:27 CST Nmap scan report for 10.0.1.162 Host is up (0.0000030s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds [root@B ~]#

扫描多个地址时排除文件里的IP地址

(可以用来排除不连续的IP地址) 把10.0.1.161和10.0.1.163添加到一个文件里,文件名可以随意取 下面扫描10.0.1.161到10.0.1.163 这3个IP地址,排除10.0.1.161和10.0.1.163这两个IP nmap 10.0.1.161-163 --excludefile ex.txt

[root@B ~]# cat ex.txt 10.0.1.161 10.0.1.163 [root@B ~]# nmap 10.0.1.161-163 --excludefile ex.txt

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 10:29 CST Nmap scan report for 10.0.1.162 Host is up (0.0000050s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds [root@B ~]#

好了

2012-06-17

nmap常用命令及参数说明

nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取被扫描主机正在运行以及提供什么服务等信息。 nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。本文详细介绍了NMap的详细使用选项,并给出了几个实用实例,nmap是入侵和网络安全检测的必备工具。

nmap BT5(BackTrack--Information Gathering--Network Analysis--Network Scanners-nmap) -sP 渗透内网之后判断当前网络那些主机在线 nmap -sP 192.168.1/255

-vv 现实详细的扫描过程 -sS 使用SYN半开式扫描,这种扫描方式使得扫描结果更加正确(又称半开放,或 隐身扫描) nmap -vv -sS IP -O 大写O代表OS 判断主机操作系统 nmap -O IP 延时策略 -T(0-5) 默认为3 0 即Paranoid模式。为了避开IDS的检测使扫描速度极慢,nmap串所有的扫描, 每隔至少5分钟发送一个包 1 即Sneaky模式。也差不多,只是数据包的发送间隔是15秒 2 即Polite模式。不增加太大的网络负载,串行每个探测,并使每个探测间隔 0.4秒 3 即Normal模式。nmap的默认选项,在不使网络过载或者主机/端口丢失的情况 下尽可能快速地扫描 4 即Aggressive模式。设置5分钟的超时限制,对每台主机的扫描时间不超过5分 钟,并且对每次探测回应的等待时间不超过1.5秒。 5 即lnsane模式。只适合快速的网络或者不在意丢失默些信息,每台主机的超时 限制为75秒,对每次探测只等待0.3秒。 nmap -sS -T1 IP

-sV 探测端口的服务类型/具体版本等信息 nmap -vv -sV IP -p 端口号 对某个端口的服务版本进行详细探测 有助于升入的针对性攻击, 比如缓冲溢出攻击 nmap -vv -sV IP -p 21

适用于内外网的探测,以内网操作为示例(外网参数同)    简单端口扫描: nmap -vv -sT(sS、sF、sU、sA) 192.168.0.1 -D 127.0.0.1 (-D伪造的地址)    OS检测: nmap -vv -sS -O 192.168.0.1    RPC鉴别: nmap -sS -sR 192.168.0.1 Linux上的portmap就是一个简单的RPC服 务,监听端口为111(默认) Ping扫射:nmap -sP 172.16.15.0/24

十条常用nmap命令行格式

1)获取远程主机的系统类型及开放端口 Get info about remote host ports and OS detection nmap -sS -P0 -sV -O 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描) -P0 允许你关闭 ICMP pings. -sV 打开系统版本检测 -O 尝试识别远程操作系统 -sS TCP SYN scanning (also known as half-open, or stealth scanning) -P0 option allows you to switch off ICMP pings. -sV option enables version detection -O flag attempt to identify the remote operating system Other option: -A 同时启用操作系统指纹识别和版本检测 -A option enables both OS fingerprinting and version detection -v use -v twice for more verbosity. nmap -sS -P0 -A -v < target > 2)列出开放了指定端口的主机列表 Get list of servers with a specific port open nmap -sT -p 80 -oG – 192.168.1.* | grep open Change the -p argument for the port number. See “man nmap” for different ways to specify address ranges. 3)在网络寻找所有在线主机 Find all active IP addresses in a network nmap -sP 192.168.0.* 或者也可用以下命令: nmap -sP 192.168.0.0/24 指定 subnet

4)Ping 指定范围内的 IP 地址 Ping a range of IP addresses nmap -sP 192.168.1.100-254 nmap accepts a wide variety of addressing notation, multiple targets/ranges, etc. 5)在某段子网上查找未占用的 IP Find unused IPs on a given subnet nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp 6)在局域网上扫找 Conficker 蠕虫病毒 Scan for the Conficker virus on your LAN ect. nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254 replace 192.168.0.1-256 with the IP’s you want to check. 7)扫描网络上的恶意接入点 rogue APs. Scan Network for Rogue APs. nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt- timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8 I’ve used this scan to successfully find many rogue APs on a very, very large network. 8)使用诱饵扫描方法来扫描主机端口 Use a decoy while scanning ports to avoid getting caught by the sys admin sudo nmap -sS 192.168.0.10 -D 192.168.0.2 Scan for open ports on the target device/computer (192.168.0.10) while setting up a decoy address (192.168.0.2). This will show the decoy ip address instead of your ip in targets security logs. Decoy address needs to be alive. Check the targets security log at /var/log/secure to make sure it worked.

9)为一个子网列出反向 DNS 记录 List of reverse DNS records for a subnet nmap -R -sL 209.85.229.99/27 | awk '{if($3=="not")print"("$2") no PTR";else print$3" is "$2}' | grep '('

10)显示网络上共有多少台 Linux 及 Win 设备? How Many Linux And Windows Devices Are On Your Network? sudo nmap -F -O 192.168.1.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) devices"

2008-10-08

如何选择局域网中的通信协议

做过网络人都知道,要实现网络间的正常通信就必需选择合适的通信协议,否则轻则就会造成网络的接入速度太慢,工作不稳定,重则根本无法接通。今天我把我实际工作积累的此方面经验与大家分享,希望对还在迷茫中的您所有帮助!  由于一些误导,有很多朋友误认为通信协议就是TCP/IP协议,只要安装了它任何网络都可正常连通,认为其它协议没有用,事实上,不同的网络协议都有其存在的必要。每一协议都有它所依赖的主要操作系统,不能随便选取。在一个网络中运行良好的协议,在另一个却未必能行得通,下面就本人这么几年来在局域网组建中选择网络通信协议的经验谈一谈各种主流操作系统下协议的选择与配置。  要很好地选择与配置协议就一定要先了解目前各主要协议所适用的范围。在目前Internet时代,也许大家听的最多,用得最多还是TCP/IP协议,在很大程度上,似乎它就是协议的代名字,甚至有些朋友认为不管它三七二十一,统统装上TCP/IP协议就一定能实现成功连网,其实不然,或许您真的一装上它网络就能连通,那只不过是碰得好,您的网络太单一,而且正好是只需要安装TCP/IP协议就能连通的网络类型,要是再复杂一点,如我下所说种种网络类型,您未必那么幸运。还是先谈各协议的主要用途和特点吧。一、 通信协议的种类和特点  目前常见的通信协议主要有:NetBEUI、IPX/SPX、NWLink、TCP/IP,在这几种协议中用得最多、最为复杂的当然还是TCP/IP协议,最为简单的是NetBEUI协议,它简单得不需要任何设置即可成功配置。1、 NetBEUI协议  NetBEUI协议它的全称是:NetBIOS Extend User Interface,即用户扩展接口,它是由IBM于1985年公司开发的,它是一种体积小、效率高、速度快的通信协议,同时它也是微软最为喜爱的一种协议。它主要适用于早期的微软操作系统如:DOS、LAN Manager、Windows3.x和Windows for Workgroup,但微软在当今流行的WIN9X和WINNT中仍把它视为固有缺省协议,由此可见它并不是我们所认为是“多余”的,而且在有的操作系统中连网还是必不可少的,如在用WIN9X和WINME组网进入NT网络时一定不能仅用TCP/IP协议,还必需加上“NetBEUI”协议,否则就无法实现网络连通,不信试试看!  因为它的出现比较早,也就有它的局限性,NetBEUI是专门为几台到百多机所组成的单段网络而设计的,它不具有跨网段工作的能力,也就是说它不具有“路由”功能,如果您在一服务器或工作站上安装了多个网卡作网桥时,将不能使用NetBEUI作为通信协议,这一点必需记清楚!  NetBEUI通信协议的特点就是:a、体积小,因原来就要是DOS、LAN Manger等较低版本的操作系统,故它对系统的要求不高,运行后占用系统资源最少;b、上面已讲过,也恐是因为主要服务的对象较低版本的操作系统,它不具有路由功能,不能实现跨网络通信;c、因为简单,对系统要求低,也就适合初学组网人员学习使用。2、 IPX/SPX协议  IPX/SPX协议的全称为:Internetwork Packet Exchange/Sequences Packet Exchange,网际包交换/顺序包交换。它是NOVELL公司为了适应网络的发展而开发的通信协议,它的体积比较大,但它在复杂环境下有很强的适应性,同时它也具有“路由”功能,能实现多网段间的跨段通信。当用户接入的是NetWare服务器时,IPX/SPX及其兼容协议应是最好的选择。但如在Windows环境中一般不用它,特别要强调的是在NT网络和WIN9X对等网中无法直接用IPX/SPX进行通信。  IPX/SPX的工作方式较简单,不需要任何配置,它可通过“网络地址”来识别自己的身份。在整个协议中IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据传输是否成功,而SPX在协议中负责对整个传输的数据进行无差错处理。在NT中提供了两个IPX/SPX的兼容协议:NWLink IPX/SPX 兼容协议、NWLink NetBIOS,两者统称为NWLink 通信协议。它继承了IPX/SPX协议的优点,更适应了微软的操作系统和网络环境,当需要利用Windows系统进入NetWare服务器时,NWLink通信协议是最好的选择。3、 TCP/IP协议  TCP/IP协议的全称是:Transmission Control Protocol /Internet Protocol,即传输控制协议/网际协议。它是微软公司为了适应不断发展的网络,实现自己主流操作系统与其它系统间不同网络的互连而收购开发的,它是目前最常用的一种协议(包括INTERNET),也可算是网络通信协议的一种通信标准协议,同时它也是最复杂、最为庞大的一种协议。TCP/IP协议最早用于UNIX系统中,现在是Internet的基础协议。  TCP/IP通信协议具有很灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站,正因为的灵活性也带来了它的复杂性,它需要针对不同网络进行不同设置,且每个节点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。但是在局域网中微软为了简化TCP/IP协议的设置,在NT中配置了一个动态主机配置协议(DHCP),它可客户端自动分配一个IP地址,避免了出错。  TCP/IP通信协议当然也有“路由”功能,它的地址是分级的,不同于IPX/SPX协议,这样系统就很容易找到网上的用户,IPX/SPX协议用的是一种广播协议,它经常会出现广播包堵塞,无法获得最佳网络带宽。但特别要注意的一点就是在用WIN9X和WINME组网进入NT网络时一定不能仅用TCP/IP协议,还必需加上“NetBEUI”协议,否则就无法实现网络连通。二、 协议选择的原则我们在选择网络通信协议时为了尽量做到一次成功,最好遵循以下原则:1、 所选择的协议要与网络结构、功能一致如果您的网络有网桥等类似路由设备,则必需选择具有路由功能的协议,如IPX/SPX、TCP/IP等,绝对不能选择NetBEUI作为通信协议。但是您的网络没有路由选择功能,只是单一的网段,能用NetBEUI作为通信协议的尽量选用,因为此协议占用系统资源最少,运行速度最快,如在DOS下与NT服务器相连,则最好选用NetBEUI作为通信协议,它比TCP/IP协议快且稳定,这一点我是深有体会的。以前我们公司在DOS通常用TCP/IP作为协议,但总是出现死机,有时根本连不上网,但改用NetBEUI作为通信协议后,系统性能一下得到了提高。要注意的一点是如果用NetBEUI作为通信协议,则在您的NT服务器上同时也要装上此协议,否则根本行不通!还有就是在WIN9X(包括WINME)要实现与NT服务器成功连网则必需在客户和服务端安装上NetBEUI协议,否则可能连不上网,这一点我也做过多次试验。当然对于较复杂的网络还是选择TCP/IP协议好。2、 尽量选用一种协议如果可能的话最好只选用一种通信协议,因为每一仲协议都要占用系统的内存资源的,会影响系统的工作效率的,在绝大多数情况下一种协议是完全可以满足连网需求的。3、 保持协议的一致性当您的网络要与其它网络进行通信时,要注意的是两个网络在协议的选择方面尽量一致,因为如果不一致,会导致在通信时互不相认,不过一般现在的通信协议标准中TCP/IP协议为绝大多数协议所接纳、兼容,不过安装TCP/IP协议一般是不会有这种不相认的现象出现的。

Telnet命令模式

除了在Telnet是如何工作的例子介绍的以外,Telnet还有很多的特点。Telnet可发送除了"escape"的任何字符到远程主机上。因为"escape"字符在Telnet中是客户机的一个特殊的命令模式,它的默认值是"Ctrl-]"。但要注意不要与键盘上的Esc键混淆,我们可以设定"escape"为任意某个字符,只是对Telnet来说以为着该字符不可能再被传送到远程主机上,而Esc键是一非打印字符,Telnet用它来删除远程系统中的命令。而且还应记住,"escape"字符并不总以"Ctrl-]"来表示。 可以仅仅键入Telnet,后面不带机器字句。这种情况下所看到的是Telnet>,这是告知Telnet在等待键入命令,比如键入问号"?"那么就得到一个有用的命令表:telnet: ?Commands may be abbreviated, Command are:open connect to a siteclose close currect connectionquit exit telnetdisplay display operating parameterssend transmit special characters ('send ?' for more)set set operating parameters('set ?' for more)status print status informationtoggle toggle operating parameters('toggle ?' for more)mode try to enter line-by-line or character-at-a-time mode? print help information 虽然命令很多,甚至还有子命令,但只有一些是常用的。现在介绍以下的几个:Close: 该命令用语终止连接。它自动切断与远程系统的连接,也可以用它退出Telnet,在冒失的进入一个网络主机时,想退出的话,就可以用到这个命令。open: 用它来与一个命名机器连接,要求给出目标机器的名字或IP地址。如果未给出机器名,Telnet就将要你选择一个机器名。必须注意,在使用"Open"命令之前应该先用"close"来关闭任何已经存在的连接。Set ECHO: 用于本地的响应是On或是Off。作用是是否把输出的内容显示在屏幕上。和DOS的ECHO基本上是一样。如果机器是处于ECHO ON的话,想改变为OFF,那么就可以输入SET ECHO,想再改变回ECHO OFF,那么就再键入SET ECHO就可以了。(这儿说的比较简短,如果有不明白的,可以与我联系)Set escape char: 建立"escape"字符到某个特殊的符号,若想用某种控制符号来代替,可以用"asis"或者键入符号"^"加字母b(如:^b)。在正常工作时,是不需要用"escape"这个字符的,并且这个被用作"escape"的符号不应该再被使用。这类似于许多程序中对键盘上的每一个键设定其真正的涵义。但如果正在运行一个 daisy-chained 应用系统,那么可以重新议定"escape"字符的特征便是很有用的。例如:用Telnet从系统A到系统B,接着又用Telnet注册进入系统C。如果正在系统C上工作时出了故障,那么当"escape"代表符是相同时,就没法中断系统B到系统C的连接。键入"escape"代表符,将总是处于系统A的命令模式。如果在每个Telnet部分使用不同的"escape"代表符,便可以通过键入适当的符号,来选择其中一个命令模式,这也可以用于其他的应用中(像终端仿真)。Quit: 用它可顺利地推出Telnet程序。Z: 用语保留Telnet但暂时回到本地系统执行其他命令。并且在Telnet中的连接以及其他的选择在Telnet恢复时仍被保留。Carriage Return: 用于不具体的一个命令从命令模式返回到所连接的远程机器上。另外,还有许多其他的命令可以推出命令模式。下面举一个例子,是从注册进入到porky.math.ukans.edu ,然后进入命令模式,然后返回porky::telnet porky.math.ukans.edu Trying 129.237.128.11... Connected to porky.math.ukans.edu. Escape character is '^]'. SunOS UNIX(porky) login:wl password: Last Login: Tue Mar 28 05:35 from ns.bta.net.cn SunOS Release 4.1.3_U1(SLIPPERY1) #3: Sun Nov 20 23:47:23 CST 1999 No match. if:Expression syntax. porky/serv/wl

Nmap端口扫描基础说明

虽然Nmap这些年来功能越来越多, 它也是从一个高效的端口扫描器开始的,并且那仍然是它的核心功能。 nmap 这个简单的命令扫描主机上的超过 1660个TCP端口。 。许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多。 它把端口分成六个状态: open(开放的), closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者 closed|filtered(关闭或者被过滤的)。

这些状态并非端口本身的性质,而是描述Nmap怎样看待它们。例如, 对于同样的目标机器的135/tcp端口,从同网络扫描显示它是开放的,而跨网络作完全相同的扫描则可能显示它是 filtered(被过滤的)。

Nmap所识别的6个端口状态。

open(开放的)

应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。

closed(关闭的)

关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态,下面讨论。

filtered(被过滤的)

由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。

unfiltered(未被过滤的)

未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。

open|filtered(开放或者被过滤的)

当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。

closed|filtered(关闭或者被过滤的)

该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。