nmap基本使用
主机发现就是确定主机是否存活。端口扫描就是寻找存活主机所开放的端口,并且确定端口上所运行的服务。甚至可以更进一步确定目标主机操作系统类型以及更加详细的信息。nmap被誉为“扫描器之王”
官网下载地址:https://nmap.org
基本参数用法
-sP ping扫描(不进行端口扫描)
-p 指定端口扫描
-sT TCP全连接扫描
-sS SYN半连接扫描
-sF FIN扫描
-sN Null扫描
-sX Xmas扫描
-O 探测目标主机版本
-sV 显示服务详细版本
-A 全面扫描
-oN 将扫描结构保存成txt格式
-oX 将扫描结构保存成xml格式
-T1,-T2,-T2,-T4,-T5 扫描速度
扫描在线主机
扫描内网中所有在线的主机
nmap -sP 192.168.10.1/24
简单扫描
扫描一台主机的端口
不指定端口的情况下,只扫描tcp 1000 端口
nmap 192.168.10.1
**
指定端口扫描
nmap 192.168.10.1 -p 80
nmap 192.168.10.1 -p 80,3306,3389
nmap 192.168.10.1 -p 1-100
nmap 192.168.10.1 -p 1-100,3306,3389
nmap 192.168.10.1-p 1-65535
nmap 192.168.10.1 -p-
**
TCP全连接扫描
nmap -sT 192.168.10.1 -p 80
扫描原理
1:端口开放的情况:
2:nmap 发送一个SYN = 1,如果目标回ACK=1,SYN=1 ,nmap 回ACK = 1 ,
3:此时就会建立完整的三次握手连接,nmap 判断该端口开放
4:端口关闭情况
5:nmap 发送一个SYN=1,如果目标直接回RST=1,nmap 判断该端口关闭。
优缺点
1:准确
2:留下大量的,密集日志记录
SYN半连接扫描
nmap -sS 192.168.10.1 -p 80
扫描原理
1:端口开放:
2:nmap发送一个SYN=1,如果目标直接回ACK=1,SYN=1 ,nmap判断该端口开放,并主动重置连接
3:端口关闭的情况:
4:nmap 发送一个SYN=1,如果目标直接回RST=1,nmap判断端口关闭
优缺点
1:快速
2:没有TCP 全连接扫描准确
隐蔽扫描
适用与Linux系统
1:FIN扫描 -SF
2:Null扫描 -sN
3:xmas扫描 -sX
其他扫描
获取目标操作系统(不是很准确)
nmap -O 192.68.10.1 -p 80
获取服务版本
nmap 192.68.10.1 -p 80 -sV
全面扫描
nmap -A 192.168.16.113 -p-
保存结果扫描
nmap -A 192.168.16.113 -p- -oN 113.nmap.A
常见端口号
21 ftp
22 ssh
23 telnet
25 smtp
80 http
443 https
1433 SQLServer(MSSQL)
1521 oracle
3306 mysql
3389 rdp
7001 weblogic
TCP包头格式
URG -------- 紧急指针 ---------数据以“插队方法‘,送到上层。--------
ACK -------- 确认位 -------- 收到数据或请求后响应时发送ACK--------
PSH -------- 推送 --------将数据推送给上层--------
RST --------重置连接 --------重置连接 | 断开连接
SYN --------同步位 --------请求建立连接
FIN --------结束位 --------关闭连接
三次握手
建立连接
1:A -> B:你好,在吗?我想跟你聊天。(SYN = 1)
2:B -> A:好的,我在!我也想跟你聊天。(ACK=1,SYN=1)
3:A -> B:收到,我们开始聊天吧。(ACK = 1
四次挥手
1:A -> B:我们可以结束聊天了。(FIN=1,ACK=1)
2:B -> A:好的!(ACK=1)
3:B -> A:我要结束聊天了(FIN=1,ACK=1)
4:A -> B:好的!(ACK=1