1、浅谈nmap
1)Nmap(Network Mapper),对网络端口进行扫描和嗅探,主要有以下4个功能:
主机发现。
检测主机开放端口。
检测软件和版本。
检测操作系统类型。
2)常用参数:
-A使用进攻性方式扫描
-T4指定扫描过程使用的时序, 有6个级别(0-5),级别越高,扫描速度越快。
-v 显示详情
-PE 一般nmap都会通过icmp协议先ping主机,ICMP echo检测主机是否在线。
-Pn 不ping主机的方式,进行扫描
-sn 只进行主机发现,不进行端口扫描
-sS使用TCP SYN方式扫描TCP端口
-sU扫描UDP端口
–top-ports 100表示扫描最有可能开放的100个端口
-sT TCP connect()扫描
-sX设置FIN,PSH,和URG标志位为1
-sN 不设置任何标志位(tcp标志头是0)
2、结合iptables和wireshark防止端口扫描和嗅探
1)nmap图形化工具,下载地址http://www.nmap.com.cn/ ,该网站有使用手册
2)主机发现和防范
A)nmap -sn 192.168.XX.100-120
B)用wireshark抓取,发现使用了icmp协议进行ping,如有reply返回,说明主机在线。
c)防止主机探测,可以直接在iptables的input链上禁止icmp协议
#直接drop掉
iptables -A INPUT -d 目标IP -p icmp -j DROP
#或者记录日志
iptables -A INPUT -d 目标IP -p icmp -j LOG --log-prefix “icmpnmap”
3)端口扫描和防范
A)nmap -A -Pn T4 192.168.XX.XX
可以检测到有打开端口,会被利用。
B)用wireshark抓取到异常的tcpflag
抓取到网络拥塞的情况
c) 防止主机探测,可以直接在iptables的input链上过滤异常的tcpflag
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT_DEFAULT_WEB -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
d)再看几种常用的方式:
TCP SYN scanning
发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;
如果收到RST包,说明该端口是关闭的.
如果没有收到回复,那么判断该端口被屏蔽。
TCP connect scanning
使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭
TCP ACK scanning
ACK扫描探测报文只设置ACK标志位。当扫描未被过滤的系统时, open(开放的)和closed(关闭的) 端口 都会返回RST报文。Nmap把它们标记为 unfiltered(未被过滤的),意思是 ACK报文不能到达,但至于它们是open(开放的)或者 closed(关闭的) 无法确定。不响应的端口 或者发送特定的ICMP错误消息(类型3,代号1,2,3,9,10, 或者13)的端口,标记为 filtered(被过滤的)。(引用http://www.nmap.com.cn的描述)
-sX扫描,设置FIN,PSH,和URG标志位为1,
-sN 没有任何标志位
3)使用nmap进行软件检测和操作系统检测
建立在主机探测和端口扫描的基础上,故建议先防范前两步