SYN扫描实践

本文介绍了TCP SYN扫描的原理和在Windows上利用WinSock实现TCP SYN扫描的过程,包括创建SOCKET_RAW套接字、设置IP_HDRINCL属性、发送SYN数据包以及抓包判断。同时,提到了从XP到Win10中SOCKET_RAW的使用限制,如需要管理员权限等。
摘要由CSDN通过智能技术生成

端口扫描——SYN TCP端口是否开始扫描

一、废话

最近开始了安全的学习。对于新知识面,没有头绪的我,直接就是去图书馆借了一本《网络攻击原理与技术》连一峰,王航 编著。这本书虽然是2004年的书。但是,图书馆里面关于安全的书里面。我也只看中了这本。因为,只有这本详细的讲解了技术原理。对于安全的。我一直奉行一条学习原则——原理必须搞懂,搞懂原理,拿出几个特殊的进行实践(写代码)。

二、什么是端口扫描

  • 目的:端口扫描是为了,进行网络信息的搜集和判断。(能判断操作系统类型等等)
  • 我看来:端口扫描,直接来看,就是能够判断,哪些通信TCP端口处于listen状态、哪些UDP端口是开放的。有些特殊的软件,使用着固定的端口,比如MYSQL的默认端口3306。并用其他方式,探测到软件版本。从而,通过此软件版本的漏洞,发起攻击。端口就成为了入侵的通道

三、端口扫描的方式

  1. TCP SYN (SYN也就是TCP连接建立时第一个握手包)
    发送SYN,接收端口,如果是listen状态就会返回ACK数据包。
  2. TCP FIN (FIN是TCP状态位之一,用于关闭连接时发送)
    发送FIN,如果端口是开放的,会忽略这个包。否则会回复一个RST包。
    但是,某些操作系统在TCP堆栈实现中存在漏洞,不能保证完全准确(来自书本,待考证,毕竟是2004年的,我需要实践验证
  3. 分片扫描
    发送扫描数据包时,人为地将数据包分成许多IP分片,将内容分隔开,敏感内容可以通过某些包过滤程序。
    原理:IP头的Identification后面16位usFlagAndOffset用于IP分片发送。
    有趣的是,有些程序不能正确的处理IP分片,分片扫描可能会使得目标系统崩溃,(待考证)
  4. TCP reverse ident
    使用的是ident协议(RFC1413)通过TCP连接得到进程所有者的用户名,即使这个进程不是连接的发起方。

四、TCP SYN扫描原理

这里写图片描述
这就是TCP连接的建立过程。可以看出,。我发送SYN包,Identification(seq=x, Identification更形象,因为,这个序列表是IP包的唯一标识,防止数据重复获取),如果,服务器端口开放。则服务器端口,将返回给我一个SYN ACK包,并且ack=x+1。如果接收到这样的数据包,也就是端口处于开放状态。

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值