IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP与UDP及NMAP扫描 -> 正文阅读

[网络协议]TCP与UDP及NMAP扫描

TCP与UDP
TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层通信协议;UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。
建立TCP连接的三次握手:
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。

扫描的分类
常规扫描,通过TCP的三次连接进行扫描;
在这里插入图片描述

半打开扫描,没有完成三次连接进行扫描;
在这里插入图片描述

UDP扫描,由扫描主机发出 UDP 数据包给目标主机的UDP Port ,并等待目标主机 Port 送回ICMP Unreachable信息。
在这里插入图片描述

nmap简介
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。
一、Nmap功能 基本功能有三个:
1.探测主机是否在线;
2.扫描主机端口,嗅探所提供的网络服务
3.推断主机操作系统
主机探测: 探测网路上的主机,例如列出相应TCP和ICMP请求,icmp请求,开放特别端口的主机
端口扫描: 探测目标主机所开放的端口
版本检测: 探测目标主机的网络服务,判断其服务名称和版本号
系统检测: 探测目标主机的操作系统及网络设备的硬件特性
支持探测脚本的编写: 使用Namp的脚本引擎(NSE)和Lua编程语言
第二部分 主机发现扫描技术
一、主机发现 发送简单的ICMP回声请求报文,这些探测的目的是获得相应以显示某个IP地址是否是活
动的(正在被某主机或者网络设备使用),主机发现能够找到零星分布与IP地址海洋上的那些机器。
二、网络原理简介
紧急标识URGent: 当URG=1时,表明此报文应尽快传送,而不要按本来的列队次序传送,与"紧急指
针"字段共同使用。
紧迫标识PSH: 当PSH = 1时,表明请求远程TCP将本报文段立即传送给其应用层,而不要等到全部缓存
都填满了之后再向上交付。
确认标识ACK: 只有当ACK=1时,确认序号字段才有意义。
复位标识ReSet: 当RST=1时,表明出现严重错误,必须释放链接,然后再重建传输连接。复位标识还用
来拒绝一个不法的报文或拒绝打开一个连接;
同步标识SYN: 在建立连接时使用,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意
建立连接,在发还的报文段中使SYN=1和ACK=1.所以,SYN=1默认是一个连接请求。
终止标识FINal:
用来释放一个连接,当FIN=1时,表明欲发送的字节串已经发送完成,并请求释放传输连接。
ICMP差错报文 1.ICMP目标不可达消息 2.ICMP重定向消息 3.ICMP超时消息 4.源抑制消息
ICMP查询报文 1.ICMP回送消息(echo) 2.ICMP地址掩码消息(Adress mask) 3.ICMP时间戳消息 (Time stamp)
三、Nmap选项详解
命令 解释
p (用于选择ping的类型)可以被结合使用
可以使用不同的TCP端口/标识位和ICMP码发送许多探测报文,目的是增加穿透防守严密的防火墙的机会。
P0(无ping) 完全跳过Nmap发现阶段。用-P0禁止主机发现会使Namp对每一个指定的目标IP地址进行所要求的扫描。所以,如果在命令行指定一个B类目标地址空间(/16),所有63336个IP地址都会被扫描。
PS(TCP、SYN、PING) 发送一个设置了SYN标志位的空TCP报文。默认目的端口是80,但不同的端口也可以作为选项指定。 在 Nmap的源码nmap.h中,找到 #defifine DEFAULT_TCP_PROBE_PORT 80 我们可以将80端口改成我们 想要的端口,重新编译,从而可以修改Nmap的扫描的默认端口。
PA(TCP、ACK、ping) ACK报文标识确认一个建立连接的尝试,但该连接尚未完全建立。默认端口80,也可以指定目标端口列表.
-PU[portlist] (UDP Ping)
发送一个空的(除非指定了–data-length)UDP报文到给定的端口。如果不指定,默认是31338
优势:可以穿越只过滤TCP的防火墙和过滤器。
-n(不用域名解析) 不对发现的IP地址进行反向域名解析
-R(为所有目标解析域名) 对目标IP地址作反向域名解析

第三部分 Nmap扫描目标
Nmap支持CIDR风格的地址,可以附加一个/在一个IP地址或主机名后面,Nmap将会扫描所有和该参考
IP地址具有相同比特的所有IP地址或主机。
-iL (从列表中输入)
用-iL把文件名作为选项传给Nmap。列表中的项可以是Nmap在命令行上接受的任何格式(IP地址,主机名,CIDR、IPv6或八字节范围),每一项必须以一个或多个空格,制表符或换行符隔开。
nmap -PR --send-ip 180.175.10.1-254其中ip就是我们存放IP地址的文件,ip文件的内容如下:
-iR (随机选择目标)
告诉Nmap生成多少个IP
–exclude (排除主机/网络)
–excludefifile (排除文件中的列表)
排除的目标文件中的IP是以换行符、空格或制表符分隔的。

第四部分 端口扫描技术
-sS (TCP SYN扫描)
SYN扫描是默认的、执行快、不易被注意到,因为它从来不完成RCP连接
-sT (TCP connect扫描)
-sU (UDP扫描)
-sA (TCP ACK扫描)
-sW (TCP窗口扫描)
-sN -sF-sX (TCP null, FIN, and Xmas)
-sM (TCP Maimon扫描)
-sO (IP协议扫描)
-sL (Idlescan,空闲扫描)
对目标进行真正的TCP端口盲扫描
–scanflags (定制的TCP扫描)
-b (FTP弹跳扫描)
-p (只扫描指定的端口) 当扫描TCP端口又扫描UDP端口时,可以在端口号前加上T:或者U:指定协议
-F (快速(有限的端口)扫描)
-r (按随机顺序扫描端口)

第五部分 扫描结果
open(开放的)
closed(关闭的) 关闭的端口对于Nmap也是可访问的,但没有应用程序在其上监听。
open|fifiltered(开放或者被过滤的)
closed|fifiltered(关闭或者被过滤的)

Nmap官网:
Nmap: the Network Mapper - Free Security Scanner https://nmap.org/
nmap_百度百科 https://baike.baidu.com/item/nmap/1400075
常用扫描类型及参数说明
iR 随机选择目标

-iL 从文件中加载IP地址

-sL 简单的扫描目标

-sn Ping扫描-禁用端口扫描

-Pn 将所有主机视为在在线,跳过主机发现

-PS[portlist] (TCP SYN ping) 需要root权限

-PA[portlist] (TCP ACK ping)

-PU[portlist] (UDP ping)

-PY [portlist] (SCTP ping)

-PE/PP/PM ICMP回显,时间戳和网络掩码请求探测

-PO[协议列表] IP协议Ping

-n/-R 从不执行DNS解析/始终解析[默认:有时]

–dns-servers 指定自定义DNS服务器

–system-dns 使用OS的dns服务器

–traceroute 跟踪到每个主机的跃点路径

扫描技术

-sS 使用TCP的SYN进行扫描

-sT 使用TCP进行扫描

-sA 使用TCP的ACK进行扫描

-sU UDP扫描

-sI Idle扫描

-sF FIN扫描

-b<FTP中继主机> FTP反弹扫描

端口规格和扫描顺序

-p 扫描指定端口

–exclude-ports 从扫描中排除指定端口

-f 快速模式-扫描比默认扫描更少的端口

-r 连续扫描端口-不随机化

–top-ports 扫描最常用的端口

服务/版本探测

-sV 探测服务/版本信息

–version-intensity 设置版本扫描强度(0-9)

–version-all 尝试每个强度探测

–version-trace 显示详细的版本扫描活动(用于调试)

脚本扫描

-SC 等效于 --script=defult

–script = , 以逗号分隔的目录,脚本文件或脚本类别

–script-args = <n1=v1, n2=v2> 为脚本提供参数

–script-args-file=文件名 从文件名中加载脚本参数

–script-trace 显示发送和接受的所有数据

–script-updatedb 更新脚本数据库

–script-help= 显示有关脚本的帮助

操作系统检测

-o 启用os检测

–osscan-limit 将os检测限制为可能的目标

–osscan-guess 推测操作系统检测结果

时间和性能

–host-timeout 设置超时时间

–scan-delay 设置探测之间的时间间隔

-T <0-5> 设置时间模板,值越小,IDS报警几率越低

防火墙/IDS规避和欺骗

-f 报文分段

-s 欺骗源地址

-g 使用指定的本机端口

–proxies <url,port> 使用HTTP/SOCK4代理

-data 想发送的数据包中追加自定义的负载

–data-string 将自定义的ACSII字符串附加到发送数据包中

–data-length 发送数据包时,附加随机数据

–spoof-mac MAC地址欺骗

–badsum 发送带有虚假TCP/UNP/STCP校验和的数据包

输出

-oN 标准输出

-oX XMl输出

-oS script jlddi3

-oG grepable

-oA 同时输出三种主要格式

-v 信息详细级别

-d 调试级别

–packet-trace 跟踪发送和接收的报文

–reason 显示端口处于特殊状态的原因

–open 仅显示开放的端

杂项

-6
-A 启动Os检测,版本检测,脚本扫描和traceroute

-V 显示版本号

-h 帮助信息

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:47:35  更:2021-08-10 13:48:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:22:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码