文章目录
- [1. 主机存活探测](#1. 主机存活探测)
- [2. 常见端口扫描、服务版本探测、服务器版本识别](#2. 常见端口扫描、服务版本探测、服务器版本识别)
- [3. 全端口(TCP/UDP)扫描](#3. 全端口(TCP/UDP)扫描)
- [4. 最详细的端口扫描](#4. 最详细的端口扫描)
- [5. 三种TCP扫描方式](#5. 三种TCP扫描方式)
-
- [(1)TCP connect 扫描](#(1)TCP connect 扫描)
- [(2)TCP SYN扫描](#(2)TCP SYN扫描)
- [(3)TCP ACK扫描](#(3)TCP ACK扫描)
1. 主机存活探测
bash
nmap -sP <靶机IP>
-sP
代表
2. 常见端口扫描、服务版本探测、服务器版本识别
推荐加上-v
参数,可以看到扫描过程中的详细信息!!!
bash
nmap -sV -O <靶机IP>
-sV
:扫描默认1000个端口的服务情况和端口开放情况;
-O
:操作系统探测。
注意:
nmap -sV <ip地址>
直接探测服务版本,也会得到服务器版本信息。
nmap -p- -sV <ip地址>
全端口扫描,不加-p-
就是对常见的TCP端口进行扫描。
3. 全端口(TCP/UDP)扫描
bash
nmap -p T:1-65535,U:1-65535 -sS -sU [靶机IP] // 对TCP、UDP均进行全端口扫描
-p
:扫描指定端口;
-sS
:指定使用TCP SYN的方式对目标主机进行扫描;
-sU
:指定使用UDP扫描的方式确定目标主机的UDP端口状况;
4. 最详细的端口扫描
bash
nmap -sS -T4 -A -p- <ip地址>
-p
:扫描指定端口;
-sS
:指定使用TCP SYN的方式对目标主机进行扫描;
-A
:使用进攻性(Aggressive)方式扫描;
-T4
:表示指定扫描过程使用的时序,共有六个级别(0-5),级别越高,扫描速度越快。在网络通信状况良好的情况下推荐使用T4。
-v
:这个参数表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节。
5. 三种TCP扫描方式
bash
-sT:TCP connect扫描
-sS:TCP SYN扫描
-sA:TCP ACK扫描
(1)TCP connect 扫描
命令 :nmap -p 80 -sT <IP地址>
原理 :Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机依次发送TCP ACK、TCP RST+ACK完成三次握手和重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
实验:
(2)TCP SYN扫描
命令 :nmap -p 80 -sS <IP地址>
原理 :Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机发送TCP RST报文以重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
实验:
(3)TCP ACK扫描
命令 :nmap -p 80 -sA <IP地址>
原理 :Nmap向目标端口发送TCP ACK报文,无论目标端口是否处于开放状态,目标机都会返回TCP RST报文。如果Nmap主机能收到此TCP RST报文,则说明目标端口未被防火墙屏蔽。
TCP ACK扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。
实验: