Nmap读书笔记-Nmap基础

  之前阅读了李华峰的《Nmap网络安全审计技术揭秘》,主要学习了一下常用的命令,nse脚本.现在整一下笔记.

Nmap简介

  网络安全人员经常使用的一个神奇就是Nmap,是一个全方面的安全和网络工具组件.主要的功能:
(1)主机发现功能: 判断目标是否处于开机并连接到网络的状态.
(2)端口扫描: 判断目标端口是否开放.
(3)服务及版本检测: 判断运行服务的服务类型和版本.
(4)操作系统检测: 判断目标的操作系统类型和版本.
  还可以实现一些高级审计技术,例如伪造发起扫描端的身份,进行隐蔽扫描,规避目标的安全防御设备(如防火墙),对系统进行安全漏洞检测等.还有强大的NSE脚本.

基本操作

1.Nmap <目标地址>

1
Nmap 192.168.0.1

2.扫描范围的确定
(1)对连续范围内的主机内进行扫描

1
Nmap -sn 192.168.0.1-255

(2)对整个子网进行扫描

1
Nmap -sn 192.168.0.1/24

(3)对多个不连续的主机进行扫描

1
Nmap -sn 192.168.0.1 192.168.0.2 192.168.0.3

(4)在扫描时排除指定的目标
命令语法: Nmap <目标> –exclude <目标>

1
Nmap -sn 192.168.0.0/24 --exclude 192.168.0.2

(5)对一个文本文件中的地址列表进行扫描
命令语法: Nmap -iL <文本文件>

1
Nmap -sn -iL List.txt

List.txt示例:

1
2
3
192.168.0.1
192.168.0.2
192.168.0.3

(6)随机确定扫描目标
Nmap -iR <目标数量>

1
Nmap -sn -iR 3

主机发现

(1)使用ARP协议进行主机发现
命令语法:Nmap -PR <目标>

1
Nmap -sn -PR 192.168.0.1

(2)使用ICMP协议进行主机发现

1
2
3
4
5
6
# 通过ICMP响应请求和应答进行主机发现
Nmap -sn -PE 192.168.0.1
# 通过ICMP时间戳请求和应答进行主机发现
Nmap -sn -PP 192.168.0.1
# 通过ICMP地址掩码请求和应答进行主机发现
Nmap -PM 192.168.0.1

(3)使用TCP协议进行主机发现

1
2
3
4
# SYN扫描
Nmap -sn -PS 192.168.0.1
# ACK扫描
Nmap -sn -PA 192.168.0.1

(4)使用UDP进行主机发现

1
Nmap -sn -PU 192.168.0.1

(5)使用SCTP进行主机发现

1
Nmap -sn -PY 192.168.0.1

(6)使用IP协议进行主机发现
Nmap允许向目标主机发送IP数据包来检测目标主机是否活跃,理论上可以使用的协议多达上百个,如果不指定的话,Nmap默认使用ICMP(IP协议编号1),IGMP(IP协议编号2)和IP-in-IP(IP协议编号4)三个协议.另外也可以用-PO来指定所要使用协议的编号,默认的IP扫描方式:

1
2
3
Nmap -sP -PO 192.168.0.1
实际上相当于
Nmap -sP -PO 1,2,4 192.168.0.1

如果希望使用TCP和UDP,可使用

1
Nmap -sP -PO 6,17 192.168.0.1

另外这种情形发送的数据包内容都是空的,容易被检测出来,可以使用–data-length参数来发送添加了随机数据的数据包.
(7)DNS选项
不想在自己的DNS器中留下这次查询的记录,可以使用–dns-servers参数.命令语法:
Nmap –dns-servers [server1, server2,etc] <目标>

1
Nmap --packet-trace -R --dns-servers 202.99.160.68 192.168.0.1

端口扫描

1.端口状态定义:
open: 表明在该端口有应用程序接收TCP连接或者UDP报文;
closed: closed不意味着没有任何反应,状态为closed的端口是可访问的,可以接收Nmap探测报文并做出响应.相比较而言,没有应用程序在open上监听.
filtered: Nmap无法确定该端口是否开放,因为探测数据包被路由器,防火墙等设备或者工具过滤掉了.

2.各种端口扫描:
(1)SYN扫描
是最流行的扫描方式,也是默认的扫描方式,扫描速度极快,也不容易被网络中安全设备发现.

1
Nmap -sS 192.168.0.1

(2)Connect扫描
类似SYN扫描,完成TCP三次握手,无须root或者administrator权限

1
Nmap -sT 192.168.0.1

(3)UDP扫描
UDP应答状态:
open: 从目标端口得到任意UDP应答
open|filtered: 如果目标主机没有给出应答
closed: ICMP端口无法抵达错误
filtered: ICMP无法抵达错误

1
Nmap -sU 192.168.0.1

(4)TCP FIN扫描
按照RFC 793规定,对于所有关闭的端口,目标系统应该返回RST标志.

1
Nmap -sF 192.168.0.1

(5)TCP NULL扫描

1
Nmap -sN 192.168.0.1

(6)Xmas Tree扫描
扫描方法是向目标端口发送一个含有FIN,URG和PUSH标志的数据包.

1
Nmap -sX 192.168.0.1

(7)扫描指定的端口
-F: 扫描常见的100端口

1
Nmap -F 192.168.0.1

-p: 指定某一个端口

1
Nmap -p 80 192.168.0.1

-p: 使用名字来指定扫描端口

1
namp -p smtp,http 192.168.0.1

-p:U:,T: 使用协议指定扫描端口

1
nmap -sU -sT -p U:53,T:25 192.168.0.1

-p *: 扫描所有端口

1
Nmap -p * 192.168.0.1

–top-ports: 扫描常用的端口

1
Nmap --top-ports 10 192.168.0.1

  大概基础的就是这些,还有一些操作在Zenmap中进行配置时查看语法解释,后面有时间会记录一下学习NSE脚本的过程.

0%