1.使用nmap
2.关于ARP
---------------
nmap----是一个网络探测工具开源和分析工具。它的目的是快速扫描大型网络,虽然对单个主机工作正常。Nmap的使用原始IP数据包 以新颖的方式来确定哪些主机在 网络上可用,什么服务(应用程序名称和版本)的主机产品,什么操作系统(和OS版本)他们正在运行,什么类型的 数据包过滤器/防火墙正在使用,和其他几 十个特点。虽然Nmap通常用于安全管理,许多系统和网络管理员发现它很有用常规任务如网络库存,管理服务升级计划,并监视主机或服务的正常运行时间。
其中关键的信息是端口的扫描,显示的是该端口对应的协议、服务名称和状态,当然nmap扫描也受到一些防火墙的限制,使nmap无法确切的判断服务的开启与否,但是这个nmap确实很好用的,尤其是系统管理员来说!
-------安装Linux后,会发现Linux终会有很都应用工具,这些工具的强大用能让Linux网络工程师与系统管理员喜欢得不得了,就比如说NMAP工具。NMAP工具主要的功能就是可以用来判断网络布局、主机打开的端口与服务等等。
而这些信息的话对于管理员提高系统的安全性又具有至关重要的作用。NMAP为建立使用安全服务和停运不被使用能够服务的政策奠定了良好的基础。
如上图就是NMAP运行的命令结果。他可以通过对特定主机进行扫描,以发现其所采用的操作系统、所打开的端口与采用的服务等等。不过SMAP是 在shell下运行的一个命令其没有直观的界面。为此对于不少Linux系统管理员来说这是一个难以跨越的障碍。我刚开始的时候也特别不习惯,很羡慕 Windows下面的一些局域网扫描工具,如流光扫描等等。这些工具都提供了友好的图形化操作界面。不过后来我用惯了这个命令之后,反而离不开这个 NMAP命令了。因为经过多次使用,我发现了很多其他扫描工具难以实现的功能。只要灵活使用这个命令,相比其他扫描工具来说,系统管理员会有更大的收获。 废话就不说了,我转入正题,谈谈如何巧用NMAP来收集局域网中的主机信息。
-------------常用的扫描类型----------
1、-sP(ping的方式扫描,检查主机在线与否,不发送任何报文到目的主机,
想知道目标主机 是否运行,而不想进行其它扫描,这扫描方式很常用)
2、-sL(仅仅列网段内出主机的状态、端口等信息,查询端口的话用 -p port,port1......)
3、 -PS/PA/PU [portlist](根据给定的端口用TCP或UDP报文探测:对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYNACK包))
4、-sS(TCP同步扫描(TCP SYN):发出一个TCP同步包(SYN),然后等待回对方应)
5、 -sF -sF -sN(秘密FIN数据包扫描、圣诞树 (Xmas Tree)、空(Null)扫描模式使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫 描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统)
6、-sU(UDP扫描:nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的)
7、-P0 (No ping)(这个选项跳过Nmap扫描)
8、-PE/PP/PM
-------------扫描类型的控制------------
1、sW (对滑动窗口的扫描)
2、-sR(RPC扫描)
3、 -PE; -PP; -PM (ICMP 类型的ping)
4、-PR (ARP 类型的ping-n (无 DNS 解析)
5、-R (为所有的目标做DNS解析)
6、-sV(对服务版本的检测)
----------------------常用的对主机的操作-------------
1、-A或者-O(对操作系统的检测)
2、-v(增加信息的详尽程度)
3、-p(ports的范围)
==============================================
一、扫描一批主机。
若你正在负责你们公司局域网的安全,那么就需要知道企业局域网中哪些主机开启了不需要的服务与端口。这会为局域网的安全埋下安全隐患。为此就需要对局域网的主机进行扫描,以收集开发的端口与启用的服务信息。
NMAP命令就可以实现这个目的。因为NMAP命令支持CIDR风格的地址。
----如系统管理员可以采用192.168.0.0/24的形式来表示一 串IP地址。这是一种通过子网掩码来表示IP地址串的一种方法。但是很显然,CIDR命名方法虽然比较简单但是不够灵活。
----如现在企业中 192.168.0.4是一台文件服务器。在扫描的时候,系统管理员不希望NMAP命令扫描这台主机,以免信息外漏给攻击者提供方便。为此在实际工作中对 局域网主机进行扫描的时侯,往往需要过滤某些特定的主机。
----另外也不希望对192.168.0.0等特殊的地址进行扫描,因为这些是广播地址,不对标特定的 主机。现在市面上的扫描软件基本上都支持CIDR风格的IP地址。但是NMAP却可以把某些特定的IP地址过滤掉,或者只收集一些特定IP地址主机的信 息。
如NMAP命令后面可以利用逗号来分隔多个IP地址,还可以通过范围列表来选定特定IP地址的主机。不过当需要扫描的主机比较多时,通过手工输 入的方式将会很麻烦。
-----而NMAP命令最值得我推荐的就是可以从一个列表中制定需要扫描的IP地址信息。也就是说,系统管理员可以预先把需要收集信息的主机 的IP地址保存在一个文件中。然后让NMAP命令从这个文件中读取IP地址信息。这即省去了输入的麻烦,提高了工作效率;而且这个文件还可以重复使用。
-----如 利用“nmap –iL 文件名”的方式即可。我现在在企业中是利用DHCP服务器来管理IP地址的。IP地址分配即有动态的、又有静态的。我会定期对局域网内的主机进行扫描,以 防止用户打开了不安全的端口。
在扫描的时候如果主机比较多,需要花费比较多的时间。为此我是采用循环扫描的方式,如一次扫描50台主机等等,一个月刚好循 环一次。为了达到这个目的,我就从DHCP服务器中导出了所有在用的IP地址列表,然后制作成一个文本文件。
注意NMAP命令不支持EXCEL格式的文 件,所以需要把这个列表转换成文本格式的文件。然后我就可以利用“nmap –iL 文件名”命令来扫描文件中规定IP地址的主机,收集有用的信息,以保障局域网内主机的安全。
二、过滤特定的主机。
在企业网络中,有些IP地址对应着特殊的服务。无论是出于安全考虑还是性能方面的考虑,都不希望NMAP命令对这些IP地址所对应的主机进行扫 描。
-----如192.168.0.2可能是企业局域网中的一台网络打印机。对这个IP地址进行扫描往往没有多大实际的价值,除了浪费时间就是增加系统管理员的阅 读量。为此系统管理员希望在使用这个命令进行扫描的时候,能够过滤一些特定的主机,以缩短扫描的时间、简化扫描的结果。NMAP命令支持用户的这种需求。
如系统管理员可以通过exclued参数来排除不需要收集信息的主机。如nmap exclude 192.168.0.2,192.168.0.3就表示用户不需要对这两个IP地址的主机进行扫描。也就是说如果扫描范围内有一些主机不需要扫描,则可以 利用逗号把它们分开,并通过Exclued参数来实现过滤。这个参数后面不但可以接IP地址,而且还可以接主机名、CIDR格式的IP地址名等等。通常情 况下扫描的网络中如果包含正在执行关键任务的服务器、对端口扫描反应强烈的应用程序,这功能通常很有用。
但是当过滤的主机比较多时,如果采用一个个的输入IP地址来实现,也是非常不方便的。如果系统管理员正在这么做的话,那对于这个命令可能还只是 一知半解。其实这个Exclued参数还有一个同父异母的兄弟,即excludefile。顾名思义,这个参数后面可以接一个文本文件。在这个文本文件中 包含的IP地址都将会被过滤掉。它的实际作用,跟Exclued参数一样,只是其所排除的目标主机信息是从一个文件中取得的,而不是在命令行中输入的。这 个文件中的IP地址或者主机名字可以用换行符、空格、或者制表符分隔。显然通过文件的形式来保存需要过滤的主机信息,不但可以提高扫描的效率,而且在下次 扫描时还可以重复利用。
我现在特别喜欢使用NMAP命令来收集相关的主机信息,最主要的就是看中这个功能。可以让NMAP命令从特定的文件中读取IP地址或者主机名字 信息,然后通过参数选项来实现从列表中收集主机信息或者过滤某些特定的主机。这可以在很大程度上提高我们的工作效率,提高NMAP命令的灵活性。
三、随机选择目标主机收集信息。
有时候出于研究或者测试的需要,要随即的选择IP地址进行扫描,并收集端口、服务等相关信息。
---Nmap命令也支持对网络上的主机进行随即扫描。 这主要是借助于iR选项,这个选项后面需要跟一个整数类型的数字。
只有如此这个命令收集起来的信息才具有参考的价值。另外值得称道的是,使用者选项的时候,如果其生成的主机地址中包含了组播或者未分 配的IP地址的话,则这个命令会自动略过。显然这是一个很人性化的设计。
再次强调一下,对网络上的主机进行扫描的话,会一件“害人害己”的事情。
另外NMAP命令虽然是一个在Linux操作系统上运行的开源扫描工具。
这就是NMAP工具的强大功能。
---------------------一个扫描的实例----------
[root@localhost ~]# nmap -sP 59.69.131.0/24(检查这个网段的主机哪个在线,下边是部分截取)
Host 59.69.131.250 appears to be up.(这个主机在线)
Host 59.69.131.251 appears to be up.
Host 59.69.131.252 seems to be a subnet broadcast address (returned 1 extra pings). Note -- the actual IP also responded.(这个很可能用于一个子网的最后一个ip地址:用于广播(broadcast),所以还可以以此来推算子网掩码)
Host 59.69.131.253 appears to be up.
Host 59.69.131.254 appears to be up.
Host 59.69.131.255 appears to be up.
Nmap finished: 256 IP addresses (56 hosts up) scanned in 82.089 seconds
[root@localhost ~]# nmap -O 59.69.131.255(检测这个主机的操作系统类型和开放的端口)
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2011-03-12 06:19 CST
Warning: OS detection will be MUCH less reliable because we did not find at least 1 open and 1 closed TCP port
Interesting ports on 59.69.131.255:
Not shown: 1665 closed ports
PORT STATE SERVICE
113/tcp filtered auth
135/tcp filtered msrpc
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
389/tcp filtered ldap
445/tcp filtered microsoft-ds
539/tcp filtered apertus-ldp
593/tcp filtered http-rpc-epmap
1023/tcp filtered netvenuechat
1025/tcp filtered NFS-or-IIS
1068/tcp filtered instl_bootc
1720/tcp filtered H.323/Q.931
4444/tcp filtered krb524
6667/tcp filtered irc
Too many fingerprints match this host to give specific OS details
Nmap finished: 1 IP address (1 host up) scanned in 29.099 seconds
这个实现的功能太多了暂时没发现操作系统的确切类型(换一个ip会有不同的结果哦)
最后总结下常用的nmap参数
1、nmap -sP 59.69.139.0/24(扫描在线的主机)
2、nmap -sS 59.69.139-10 -p 80,22,23,52-300(SYN的扫描方式,可以加ip和端口的限制)
3、nmap -sV 59.69.139.1 -p1-65535(探测端口的服务和版本(Version) )
4、nmap -O 192.168.1.1或者nmap -A 192.168.1.1(探测操作系统的类型和版本)
以上是常用的操作,更详尽的可以找男人(man)啦!