实验所用Nmap版本:7.80
1.TCP Connect()扫描
这是默认的方法是,通过试图与目标主机相应的TCP端口建立一个完整的TCP连接,从而判断目标主机端口的开放信息。
指令:namp -sT 域名/IP地址 //-sT可省略
结果:列出开放的端口号
扫描截图:
可以一次扫描多台主机,只要将目标主机域名或者IP地址隔开即可,比如:
nmap www.taobao.com www.baidu.com
nmap 192.168.0.1 192.168.0.2
nmap 192.168.0.1,2 //与上一条指令效果一样
namp -sL Path+Filename //从指定文件中读取主机地址进行扫描
nmap -F www.taobao.com //快速扫描,扫描的端口更少
甚至可以扫描整个网络,使用网络地址即可如:192.168.0.*,当然需要的时间就会很长。
2.半开放扫描
半开放扫描(TCP SYN):只发送一个SYN报文然后等待回应。相对于TCP Connect扫描更加安全,因为不建立一个完整的TCP连接,目标主机一般不会将此类行为记入安全日志,但是需要root权限。
nmap -sS 域名/IP地址
结果:
就发现扫描时间居然比使用-sT方式的时间还要久。
3.UDP端口扫描
使用UDP扫描方式确定目标主机的UDP端口开放情况,也需要root权限。
nmap -sU www.taobao.com
扫描显示所有的UDP端口都是open|filterd的,即开放的或者被防火墙过滤掉了,Nmap不能识别。
后面我又扫描了百度,发现百度只开放了一个500端口,这个端口是为ISAKMP提供服务,全称是Internet Security Association Key Management Protocol,即Internet安全联盟密钥管理协议。另外,自己的电脑是所有的端口都是关闭的。
4.IP协议号支持扫描
确定目标机支持哪些IP协议。指令:
nmap -sO www.taobao.com
结果:
这里我用wireshark进行了抓包,想看一下nmap对目标主机进行了哪些IP协议号进行测试,发现只有ICMP、TCP、UDP,没有发现GRE(通用路由协议)。
5.操作系统扫描
指令:
nmap -O www.taobao.com
结果:
6.防火墙和IDS躲避及欺骗
尝试伪造IP地址,但是没成功,感兴趣的可以自己尝试。
-f:报文分段
--mtu <val>: 指定最大传输单元(数据链路层)
-D <decoy1,decoy2[,ME],...>: 使用诱饵隐蔽扫描(我也看不懂)
-S <IP_Address>: IP源地址欺骗
-e <iface>: 制定接口发送扫描数据
-g/--source-port <portnum>: 指定端口进行发送扫描数据
--data-string <string>: Append a custom ASCII string to sent packets
--data-length <num>: Append random data to sent packets