信息对抗技术-网络扫描
信息对抗技术
韩宏
网络扫描技术
什么是网络扫描技术?
网络扫描技术的概念 网络扫描技术是一种基于Internet远程目 标网络或本地主机安全性脆弱点的技术。通 过网络扫描,发现各种TCP/IP端口的分配、 开放的服务、Web服务软件版本和这些服务及 软件呈现在Internet上的安全漏洞 。
网络扫描具体分那些步骤
网络扫描的知名利器
STROBE:并行的TCP端口扫描器,能很快识 别制定机器上正运行什么服务 NMAP:目前功能最齐全的扫描器 SATAN:主要扫描远程主机的已知漏洞 XSCAN:网络漏洞扫描软件,支持各种插件、 多线程扫描和图形界面
网络扫描技术分类
网络安全扫描技术包括有PING扫描、操作 系统探测、端口扫描以及漏洞扫描等。这些技 术在网络安全扫描的3个阶段中各有体现。 PING扫描用于网络安全扫描的第1阶段,可 以帮助我们识别系统是否处于活动状态。
TCP/IP相关问题
连接端及标记 IP地址和端口被称作套接字,它代表一个TCP 连接的一个连接端。为了获得TCP服务,必须 在发送机的一个端口上和接收机的一个端口上 建立连接。连接端互相发送数据包。
TCP/IP相关问题
应用层 传输层 网络层 链路层 物理层
Ether
应用层 (IP:port)端到端(IP:port) (IP)点对点(IP) 链路层 物理层
网络扫描技术分类
端口扫描、操作系统探测用于网络安全扫 描的第2阶段,其中操作系统探测顾名思义 就是对目标主机运行的操作系统进行识别; 而端口扫描是通过与目标系统的TCP/IP端口 连接,并查看该系统处于监听或运行状态的 服务。网络安全扫描第3阶段采用的漏洞扫 描通常是在端口扫描的基础上,对得到的信 息进行相关处理,进而检测出目标系统存在 的安全漏洞。
端口扫描技术的原理
主动探测:端口扫描向目标主机的TCP/IP服 务端口发送探测数据包,并记录目标主机的 响应。通过分析响应来判断服务端口是打开 还是关闭,就可以得知端口提供的服务或信 息。
端口扫描技术的原理
被动探测:端口扫描也可以通过捕获本地主 机或服务器的流入流出IP数据包来监视本地 主机的运行情况,它仅能对接收到的数据进 行分析,帮助我们发现目标主机的某些内在 的弱点,而不会提供进入一个系统的详细步 骤。
大部分TCP/IP实现遵循以下原则:
当一个包含ACK的数据包到达一个监听端口时, 数据包被丢弃,同时发送一个RST数据包。
ACK
客户端
RST 端口监听 丢弃数据包
大部分TCP/IP实现遵循以下原则:
当一个SYN位关闭的数据包到达一个监听端口 时,数据包被丢弃。 当一个SYN数据包到达一个监听端口时,正常 的三阶段握手继续,回答一个SYN|ACK数据包。
客户端
Ack=k+1
1.客户发送SYN连接建立请求报文,指定服务器端口初始序列
号,进入SYN_SEND状态 2.服务器发送ACK、SYN报文进行响应,进入SYN_RECV状态, 如果客户指定的服务端口没有激活(不处于侦听状态),服务器 发送RESET报文复位连接 3.客户收到SYN+ACK报文,则发送相应的ACK应答报文,连接建 立,进入ESTABLISHED状态
一次完整的网络安全扫描分为3个阶段: (1)第1阶段:发现目标主机或网络。 (2)第2阶段:发现目标后进一步搜集目标信 息,包括操作系统类型、运行的服务以及服 务软件的版本等。如果目标是一个网络,还 可以进一步发现该网络的拓扑结构、路由设 备以及各主机的信息。
网络扫描具体分那些步骤
(3)第3阶段:根据搜集到的信息判断或者 进一步测试系统是否存在安全漏洞。
th_sport; th_dport; th_seq; th_ack; th_vl:4,th_off:4; th_flags; 0x01 0x02 0x04 0x08 0x10 0x20 th_win; th_cksum; th_urg;
端口扫描的几大武器!
//构造TCP首部,添入我们想要的内容 void MakeupTcp( unsigned char flags,unsigned long saddr,unsigned long daddr,unsigned short sport,unsigned dport,int seq,int ack,short win_size) { tcp->th_sport=htons(sport); tcp->th_dport=htons(dport); tcp->th_seq=(seq)?htonl(seq):htonl(88888); tcp->th_ack=(ack)?htonl(ack):htonl(99999); tcp->th_urg=0; tcp->th_off=sizeof(struct tcphdr)/sizeof(unsigned long); tcp->th_win=(win_size)?htons(win_size):htons(16384); tcp->th_flags=flags; tcp->th_cksum=0; }
Ether
传输层 网络层 链路层 物理层
IP地址+端口=套接字,代表通信的一个连接端,
主机之间通信就是在两个端(套接字)上互发数据,
TCP/IP相关问题
一个TCP数据包包括一个TCP头,后面是TCP选 项和数据。一个TCP头包含6个标志位。它们 的意义分别为: SYN: 标志位用来建立连接,让连接双方同步 序列号。如果SYN=1而ACK=0,则表示该数 据包为连接请求,如果SYN=1而 ACK=1则表 示接受连接。
端口扫描的几大武器!
怎么才能“控制”TCP首部的标志位?我们 需要怎样做呢?
端口扫描的几大武器!
为了能“控制”TCP的首部,随心所欲的修 改TCP的标志位。我们要使用原始数据协议 (RAW SOCKET)来创建套接字。我们的目 的只有一个就是能够自己构造TCP首部。 下面是TCP首部构造的一些代码:
TCP/IP相关问题
FIN: 表示发送端已经没有数据要求传输了, 希望释放连接。 RST: 用来复位一个连接。RST标志置位的数 据包称为复位包。一般情况下,如果TCP收到 的一个分段明显不是属于该主 机上的任何一 个连接,则向远端发送一个复位包。
TCP/IP相关问题
URG: 为紧急数据标志。如果它为1,表示本 数据包中包含紧急数据。此时紧急数据指针 有效。 ACK: 为确认标志位。如果为1,表示包中的 确认号时有效的。否则,包中的确认号无效。 PSH: 如果置位,接收端应尽快把数据传送给 应用层。
全TCP连接 入侵者向目标系统的目标端口发起连接,能建 立连接,则表示端口开启,反之不然。 步骤: 1、给目标系统的某个端口发送一个SYN包 2、参看目标系统返回的包类型,如果是 SYN/ACK分组,则发送一个ACK应答以结束三次 握手,如果是RST/ACK 分组,意味着端口不处 于侦听状态,连接被复位。
//tcp 首部结构的定义 struct tcphdr { unsigned short unsigned short unsigned int unsigned int unsigned char unsigned char #define TH_FIN #define TH_SYN #define TH_RST #define TH_PSH #define TH_ACK #define TH_URG unsigned short unsigned short unsigned short };
端口扫描策略
随机端口扫描 慢扫描 分布式协同扫描
TCP/IP相关问题
在了解端口扫描的具体方式之前,让我们先 来了解与TCP/IP相关的一些知识点。 TCP 协议是一个面向连接的可靠传输协议, 一次成功的连接需要分三步完成,这就是 “TCP三次握手”
TCP三次握手
Syn=j Syn=k,Ack=j+1
端口扫描的几大武器!
TCP SYN扫描(半连接,只进行前2次握手) 在这种技术中,扫描主机向目标主机的选择 端口发送SYN数据段。如果应答是RST,那么说明 端口是关闭的,按照设定就探听其它端口;如果 应答中包含SYN和ACK,说明目标端口处于监听状 态。由于所有的扫描主机都需要知道这个信息, 传送一个RST给目标机从而停止建立连接。SYN扫 描的优点在于即使日志中对扫描有所记录,但是 尝试进行连接的记录也要比全扫描少得多。缺点 是在大部分操作系统下,发送主机需要构造适用 于这种扫描的IP包。
端口扫描技术
什么是端口? 通过端口扫描我们能得到什么?? 端口扫描技术的原理又是怎样的呢???
端口扫描技术
一个端口就是一个潜在的通信通道,也就 是一个入侵通道。对目标计算机进行端口扫描, 能得到许多有用的信息,从而发现系统的安全 漏洞。它使扫描者了解系统目前向外界提供了 哪些服务,从而为系统的入侵提供了一种手段。
大部分TCP/IP实现遵循以下原则:
当一个SYN或者FIN数据包到达一个关闭的端口, TCP丢弃数据包同时发送一个RST数据包。
SYN或FIN
客户端
Байду номын сангаас
RST 端口关闭 丢弃数据包
大部分TCP/IP实现遵循以下原则:
当一个RST数据包到达一个监听端口,RST 被丢弃。
RST
客户端
端口监听 丢弃数据包
端口扫描的几大武器!
(2)绑定套接字到本地网卡。 (3)设置套接字的I/O模式为能够接收所有 经过本机网卡的数据包(不论是不是发给本 机的。 下面是这部分的一些代码: