共计 3948 个字符,预计需要花费 10 分钟才能阅读完成。
1、NMap 工具
主要功能:探测主机是否在线、扫描主机开放端口和嗅探网络服务,用于网络探测和安全扫描。
NMap 支持很多扫描技术,例如:UDP、TCPconnect()、TCPSYN(半开扫描)、ftp 代理(bounce 攻击)、反向标志、ICMP、FIN、ACK 扫描、SYN 扫描和 null 扫描。
命令格式:Nmap [扫描类型] [通用选项] {扫描目标说明}
扫描类型:
-sT | TCP connect()扫描,这是最基本的 TCP 扫描方式,用来建立一个 TCP 连接,如果成功则认为目标端口正在监听,否则认为目标端口没有监听程序。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。 |
-sS | TCP同步扫描(TCP SYN),只向目标发出 SYN 数据包,如果收到 SYN/ACK 响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口没有监听程序。所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要 root 权限来定制 SYN 数据包。 |
-sF,-sX,-sN | 秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空(Null) 扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包,通过这种扫描,可间接用于检测防火墙的健壮性。 |
-sP | ping扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是 ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后续的扫描。 |
-sU | UDP扫描,如果你想知道在某台主机上提供哪些 UDP 服务,可以使用此选项。 |
-sA | ACK扫描,这项高级的扫描方法通常可以用来穿过防火墙。 |
-sW | 滑动窗口扫描,非常类似于 ACK 的扫描。 |
-sR | RPC扫描,和其它不同的端口扫描方法结合使用。 |
-b | FTP反弹攻击(bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口扫描。 |
通用选项:
-n | 不做反向 DNS 解析,以加快扫描速度 |
-P0 | 在扫描之前,不 ping 主机;有些网络防火墙可能禁止 ICMP 请求包,使用这种扫描类型可以跳过 ping 测试 |
-PT | 扫描之前,使用 TCP ping 确定哪些主机正在运行。 |
-PS | 对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。 |
-PI | 设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。 |
-PB | 这是默认的 ping 扫描选项。它使用 ACK(-PT)和 ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。 |
-O | 这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操作系统类型。 |
-I | 打开 nmap 的反向标志扫描功能。 |
-f | 使用碎片 IP 数据包发送 SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。 |
-v | 强烈推荐使用这个选项,它会给出扫描过程中的详细信息。 |
-S <IP> | 在一些情况下,nmap 可能无法确定你的源地址(nmap 会告诉你)。在这种情况使用这个选项给出你的 IP 地址。 |
-g port | 设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为 DNS(53)或者 FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为 20 或者 53,就可以摧毁防火墙的防护。 |
-oN | 把扫描结果重定向到一个可读的文件 logfilename 中。 |
-oS | 扫描结果输出到标准输出。 |
-A | 打开操作系统探测和版本探测。 |
扫描目标:
目标地址 | 可以为 IP 地址,CIRD 地址等。如 192.168.1.2,222.247.54.5/24 |
-iL filename | 从 filename 文件中读取扫描的目标。 |
-iR | 让 nmap 自己随机挑选主机进行扫描。 |
-p | 端口,这个选项让你选择要进行扫描的端口号的范围。可使用逗号分隔多个端口,减号连接一个端口范围,在列表前指定 T:表示 TCP 端口,U:表示 UDP 端口 |
-exclude | 排除指定主机。 |
-exclude file | 排除指定文件中的主机。 |
端口的三种状态:
Open:意味着目标主机能够在这个端口使用 accept()系统调用接受连接。
filtered:表示防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止 nmap 探测其是否打开。
unfiltered:表示这个端口关闭,并且没有防火墙 / 包过滤软件来隔离 nmap 的探测企图。
举例说明:
1、探测指定网段是否有 FTP 服务的主机,不做 DNS 反向解析
nmap -sS –n –p 21192.168.0.0/24
2、探测指定服务器是否启有特定端口的服务
nmap –n –p T:21-25,80,110,3389–sS 192.168.0.1 192.168.0.2
3、使用 TCP 连接扫描探测指定服务器,即使无法 ping 通也仍然继续探测
4、nmap -sT –PO 192.168.0.1
5、探测指定服务器的操作系统类型
nmap –O –n 192.168.0.1
6、探测局域网段中各主机开启了哪些服务
nmap –sS 192.168.0.0/24
7、探测 192.168.0.0 和 172.16.0.0/16 网段中有哪些主机在运行
nmap –sP –n 192.168.0.0/24 172.16.0.0/16
2、TCPDump 工具
主要功能:捕获和分析数据包。
TcpDump 可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助你去掉无用的信息。
命令格式:tcpdump [选项] [-c 数量] [-i 网络接口] [-w 文件名] [表达式]
常用选项:
-l:使标准输出变为缓冲行形式;
-c:抓包次数;
-nn:直接以 IP 及 Port Number 显示,而非主机名与服务名称;
-s:< 数据包大小 > 设置每个数据包的大小;
-i:指定监听的网络接口;
-r:从指定的文件中读取包;
-w:输出信息保存到指定文件;
-a:将网络地址和广播地址转变成名字;
-d:将匹配信息包的代码以人们能够理解的汇编格式给出;
-e:在输出行打印出数据链路层的头部信息;
-f:将外部的 Internet 地址以数字的形式打印出来;
-t:在输出的每一行不打印时间戳;
-v:输出稍微详细的报文信息;加一个 v 更详细。
四种表达式:过滤报文条件
1、关于类型的关键字,主要包括 host,net,port, 例如 host210.27.48.2,指明 210.27.48.2 是一台主机,net 202.0.0.0 指明 202.0.0.0 是一个网络地址,port 23 指明端口号是 23。如果没有指定类型,缺省的类型是 host。
2、确定传输方向的关键字,主要包括 src, dst ,dst or src, dst and src , 这些关键字指明了传输的方向。例如 src210.27.48.2 , 指明 ip 包中源地址是 210.27.48.2, dst net 202.0.0.0 指明目的网络地址是 202.0.0.0。如果没有指明方向关键字,则缺省是 src or dst 关键字。
3、协议的关键字,主要包括 ip,arp,tcp,udp 等类型。
4、三种逻辑运算,与运算是 ’and’,’&&’; 或运算是 ’or’ ,’||’;非运算是 ‘not ‘ ‘! ‘。
其他重要的关键字如下:broadcast,less(小于),greater(大于)
举例说明:
1、截获 eth0 网卡 10 次收发所有数据包并将抓包结果保存到 test 文件, 再读取 test 抓包结果文件
tcpdump –i eth0 –c 10 –w test
tcpdump –r test
2、截获来访问 80 端口的所有数据包(指定端口范围 portrange 1-1024)
tcpdump port 80
3、截获所有来自主机 114.254.151.51 的进出所有数据包
tcpdump host 114.254.151.51
4、截获 ip 包中源地址是 114.254.151.51 的(目的是 dst)
tcpdump src 114.254.151.51
5、截获主机 114.254.151.51 和主机 114.254.151.52 的通信
tcpdum host 114.254.151.51 and 114.254.151.52
6、截获 tcp 协议并且源地址 114.254.151.51 来访问 80 的端口
tcpdump tcp and src 114.254.151.51 and port 80
7、截获主机 114.254.151.51 除了和 114.254.151.52 之外的所有 ip 包
tcpdump ip host 114.254.151.51 and ! 114.254.151.52
8、截获长度大于 1000 数据包, 对于 DDOS 攻击时,可以使用
tcpdump greater 1000
相关阅读:
Linux 下的端口扫描工具 nmap http://www.linuxidc.com/Linux/2012-12/75752.htm
nmap 详解 – 网络扫描和嗅探工具包 http://www.linuxidc.com/Linux/2012-08/67593.htm
nmap 应用技巧 http://www.linuxidc.com/Linux/2012-08/68602.htm
RedHat Enterprise Linux 5 下 nmap 的一次曲折安装 http://www.linuxidc.com/Linux/2011-01/31085.htm
Linux 中让 nmap 命令跟防火墙捉迷藏 http://www.linuxidc.com/Linux/2009-09/21924.htm