nmap 用途:
检测活在网络上的主机(主机发现)
检测主机上开放的端口(端口发现或枚举)
检测到相应的端口(服务发现)的软件和版本
检测操作系统,硬件地址,以及软件版本
检测脆弱性的漏洞(Nmap的脚本)
#nmap –help 帮助
nmap使用举例:
- 扫描主机选择
#nmap 192.168.1.2 //扫描单一的一个主机
#nmap 192.168.1.2 192.168.1.5 //扫描多个目标,命令如下:
#nmap 192.168.1.1/24 //扫描整个子网
#nmap 192.168.1.1-100 //扫描一个范围内的目标,如下:
#nmap -iL target.txt //扫描一个地址列表
#nmap 192.168.1.1/24 -exclude 192.168.1.1 //扫描一个子网不包含莫主机
#nmap 192.168.1.1/24 -excludefile xxx.txt //扫描一个子网不包含莫些主机
#nmap -p80,21,23 192.168.1.1 //扫描主机特定端口
#nmap -sL 192.168.1.1/24 //查看子网主机列表, 发送dns 请求到网关,不与目标通讯 - 扫描方式选择
#nmap -sS 192.168.1.1 //syn scan
#nmap -sT 192.168.1.1 //tcp scan
#nmap -sU 192.168.1.1 //udp scan
#nmap -sF 192.168.1.1 //fin scan
#nmap -sP 192.168.1.1 //ping scan
#nmap -sI 192.168.1.2 192.168.1.1 //idle scan
#nmap -sV 192.168.1.1 //version detect
#nmap -O 192.168.1.1 //os detect
Nmap 使用 CIDR (无类别域间路由, Classless Inter-Domain Routing )格式来扫描整个子网
192.168.1.1/24: 24 表示前24bit 地址是相同的。为子网地址
1.Tcp SYN Scan (sS)
它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。Nmap发送SYN包到远程主机,
但是它不会产生任何会话.因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是SYN扫描的优势.
2.Tcp connect() scan(sT)
Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().Tcp connect()扫描技术只适用于找出TCP和UDP端口.
3.Udp scan(sU)
顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,
UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,
如果得到正确的适当的回应,说明端口是开放的.
4.FIN scan (sF)
有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。
发送一个设置了FIN标志的数据包并不需要完成TCP的握手.
FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一),FIN扫描发送的包只包含FIN标识,
它只用于找出主机是否是存在在网络中的.它不是用来发现是否开放端口的.
PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用.
5.Idle scan (sI)
Idle scan是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包.
#nmap -sI 192.168.1.6 192.168.1.1
Idle scan是一种理想的匿名扫描技术,通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取192.168.1.1开放的端口
还有其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描), IP protocol scan(IP协议扫描),
以上讨论的是几种最主要的扫描方式.
6.版本检测(sV)
版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,
不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口.
7.Nmap的OS检测(O)
Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,
通过获取的信息你可以知道已知的漏洞。
Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。
Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照。
如果远程主机有防火墙,IDS和IPS系统,你可以使用-Pn命令来确保不ping远程主机,
因为有时候防火墙会过滤掉ping请求.-Pn命令告诉Nmap不用ping远程主机。
# nmap -O -Pn 192.168.1.1
给出已知的操作系统信息
#nmap -O –osscan-limit 192.168.1.1
可以猜测主机系统
#nmap -O –osscan-guess 192.168.1.1