参考文章:https://zhuanlan.zhihu.com/p/585377081
https://blog.csdn.net/smli_ng/article/details/105964486
1.主机探测
1.扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」,扫描256个ip。本质上是Ping扫描,能Ping通有回包,就判定主机在线。
nmap -sP 192.168.1.0/24,看在192.168.1这个网段还有没有其他主机.
2.扫描指定IP地址(ping 扫描)
nmap -sn 192.168.3.74
2.端口探测
1.指定端口
nmap 192.168.1.1 默认扫描1000个端口
nmap 192.168.1.1 -p80,443 检测80和443端口
nmap 192.168.1.1 -p80-65535 检测80到65535的端口
nmap 192.168.1.1 -p- 检测1到65535的端口
2.指定扫描方式
1.使用 -sT 参数进行TCP全连接扫描。(默认nmap扫描方式)
「全连接扫描」使用完整的三次握手建立链接,能够建立链接就判定端口开放,否则判定端口关闭。
nmap 192.168.1.1 -p 80 -sT
2.使用 -sU 扫描UDP开放的端口。
nmap 192.168.1.1 -p 80 -sU
3.使用 -sS 参数进行SYN半链接扫描。
「半链接扫描」只进行两次握手,对方返回确认帧(ACK=1)就判定端口开放,否则判定端口关闭。
nmap 192.168.31.180 -p 80 -sS
4.使用FIN扫描
有的时候TCP SYN不是最佳的扫描默认,目标主机可能有IDS/IPS系统的存在,防火墙可能过滤掉SYN数据包。而发送一个
FIN标志的数据包不需要完成TCP的握手。
nmap -sF 192.168.3.74
5.扫描版本
扫描端口时,默认显示端口对应的服务,但不显示服务版本。
想要识别具体的「服务版本」,可以使用 -sV 参数。
nmap 192.168.31.180 -p 80 -sV
6.扫描主机操作系统
想要识别「操作系统版本」,可以使用 -O 参数,并非准确.
Nmap扫描出的系统版本并完全准确,仅供参考。
当识别不出具体版本时,Nmap会以概率的形式列举出可能的操作系统,如上图所示
nmap 192.168.31.180 -p 80 -O
7.批量扫描ip
nmap -iL target.txt
8.导出扫描结果
1.将扫描结果导出为「文本格式」,结果原样保存。
nmap 192.168.31.180 -p 80 -oN result.txt
2.将扫描结果导出为「xml格式」,结果的保存格式会发生变化。
nmap 192.168.31.180 -p 80 -oX result.xml