1、简介功能
nmap是一个网络连接端扫描软件,也就是Network Mapper
1.、探测一组主机是否在线
2.、扫描主机端口,嗅探所提供的网络服务
3.、推断主机所用的操作系统
2、原理
扫描类型主要有TCP的全连接扫描(会被扫描主机留下记录),半连接扫描(TCP-SYN 不会留下记录)
TCP全连接(TCP扫描):通过建立TCP的三次握手连接来进行信息的传递
半连接扫描(SYN扫描):是一种秘密的扫描方式,没有形成三次握手,不建立一个正常的TCP连接,所以不被记录
ping扫描:ping扫描通过发送ICMP回应请求数据包和TCP应答数据包,被扫描的主机发出一样的数据包,通过分析数据包确定主机的状态
UDP扫描:是用来扫描目标主机的UDP端口是否打开,因为是针对UDP端口的,发送UDP数据包到目标主机,并等待回应,如果返回不可达的错误信息,说明端口关闭,如果得到正确的回应,说明端口是开放的,但扫描速度比较慢
3、常用方法
(1)、简单的扫描
命令:nmap + IP地址或网站地址
(2)、使用ping扫描
命令:nmap -sP IP
命令:nmap -Pn IP
(禁止ping扫描后,跳过主机(防火墙)发现的过程进行端口扫描)
(3)、nmap通过sS方式(即SYN扫描),-T表示扫描级别(1到5级,5级扫描速度最快,但也最容易被发现),-sV表示服务器版本(-O表示操作系统检测)
命令:nmap -sS -sV -T4 IP
命令:nmap -sT -sV -T4 IP
(TCP扫描)
(4)、UDP端口扫描
命令:nmap -sU IP
(5)、nmap扫描经常开放的top100端口
命令:nmap --top-ports 100 IP
命令:nmap -p 21,22,8080 IP
(-p指定扫描8080端口)
(6)、全面扫描方式
命令:nmap -A -T4 IP
(7)、批量扫描网段(即从192.168.1.0到192.168.1.255)
命令:nmap 192.168.1.0/24
(8)、配合脚本扫描
命令:nmap --script=vuln IP
脚本类型:
- vuln:负责检测是否有有常见漏洞;
- broadcast:在局域网内探查更多服务开启状态;
- brute:提供暴力破解方式;
- discovery:对网络进行更多的信息,如SMB枚举,SNMP查询等
4、内网扫描常用
nmap -PN -sV --top-ports 50 --open <ip>
# 快速扫描,PN穿透防火墙进行扫描nmap -PN --script smb-vuln* -p 139,445 <ip>
# 扫描smb漏洞nmap -PN -sC -sA -A <ip>
# 经典扫描,-sC表示使用nmap脚本进行探测nmap -PN -sC -sV -p- -A <ip>
# 完成扫描