专栏名称: Python中文社区
致力于成为国内最好的Python开发者学习交流平台,这里有关于Python的国内外最新消息,每日推送有趣有料的技术干货和社区动态。 官方网站:www.python-cn.com
目录
相关文章推荐
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历 ·  2 天前  
Python爱好者社区  ·  1885页的Python完全版电子书 ·  2 天前  
Python爱好者社区  ·  多模态,杀疯了 ·  昨天  
Python爱好者社区  ·  推荐我的抖音变现俱乐部! ·  4 天前  
Python爱好者社区  ·  张雪峰公司今年的年终奖... ·  4 天前  
51好读  ›  专栏  ›  Python中文社区

Python渗透测试之tcp几种端口扫描的讲解

Python中文社区  · 公众号  · Python  · 2017-03-08 11:59

正文

專 欄

exploit ,Python中文社区专栏作者,Python渗透测试与安全爱好者。 希望与作者交流或者对文章有任何疑问的可以与作者联系:
QQ: 1585173691
Email:[email protected]
github:github.com/webYFDT

在上半节内容中我们了解了IP协议的基础,本节我们将进入TCP的讲解并给出自己写的一个python脚本。好了话不多说,开始我们的主题吧!

tcp数据包格式
TCP是传输层的协议,它的数据包格式如下:

1、源端口号
2、目标端口
3、seq 用于表示这个数据包携带的数据是这个数据流哪个位置的数据,用于数据排序
4、ack 接受方向发送方确认已经收到的数据
5、跟ip头部的4位首部长度一样(见本期上半节内容),最少值为5(20字节,即选项处没数据),最大15(60字节,即选项处数据为40字节)
6、保留位,wirshake抓包没发现此字段,但是发现它与标志字段合并了
7、6位标标志字段:

(源自百度百科)
8、可以看作tcp的缓冲区,根据mss大小,用于确定一次性发送分组的个数
9、校验和,与IP校验和字段是一样的(见本期内容上半节讲解)
10、当标志位设置了URG时,表示这个紧急指针有效,表示紧急指针开始的数据才是正常数据
11、选项字段
12、数据
此处没有总长度字段是因为可通过ip头部总长度减去ip头部得到tcp总长度,而udp有总长度字段是为了32位对齐

TCP建立连接:
表现形式为三次握手,客户机发送SYN标志位的数据包,对方返回SYN,ACK标志位的字段,客户机收到包后返回ACK确认包,在这三次握手后就建立起tcp连接了:

3次握手实例:

端口:
每一个端口对应一个服务,有时我们可以根据端口知道后面运行着什么服务,例如端口22开放表示开放着ssh服务。

SYN扫描:
SYN扫描又称半开扫描,发送一个‘标志位’为S的TCP数据包到目标服务器的某个端口,如果端口开放,就会返回一个标志位为SYN,ACK的TCP数据包,如果端口关闭就返回标志位为RST的数据包。

SYN扫描速度比较快,但容易被防火墙过滤,且丢包无法被发现

FIN扫描:
本机发送一个标志位为F的TCP数据包到目标服务器的某个端口,如果端口开放,就不会做出回应,如果端口关闭就返回标志位为RST的TCP数据包。

FIN扫描速度快,且不易被过滤,难以被发现,但是对windows系统无效,无论端口是否开放,windows都返回RST包。

NULL扫描:
与FIN扫描类似,本机发送一个标志位为空的TCP数据包到目标服务器的某个端口,如果端口开放,就不会做出回应,如果端口关闭就返回标志位为RST的TCP数据包。
NULL扫描速度快,且不易被过滤,难以被发现,但是对windows系统无效

XMAS扫描:
XMAS扫描,又称圣诞树扫描,因为它像圣诞树一样挂了很多标志位,本机发送一个标志位为“FIN,URG,PSH”的TCP数据包到目标服务器的某个端口,如果端口开放,就不会做出回应,如果端口关闭就返回标志位为RST的TCP数据包。

XMAS扫描速度快,且不易被过滤,难以被发现,但是对windows系统无效。

脚本效果展示(以SYN扫描为例):
我ubuntu(192.168.1.113)的TCP对外只开了22端口(ssh服务)

现在我运行我的脚本(先扫描小范围端口,以便用wireshark抓包进行分析)

下面我以FIN扫描1-250端口来查看效果(FIN,NULL,XMAS扫描当没有数据包返回时都进行了再次两次重传进行验证)

脚本代码片段展示:

好了,本期内容讲解完毕,完整代码可在作者的github主页里找到(第一期的主机存活扫描及arp欺骗工具的代码都在里面,地址: https://github.com/webYFDT/python_scan ),并且已上传至Python中文社区小密圈,欢迎下载本文源码研究。


优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。

100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。
扫描下方二维码,注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会!








请到「今天看啥」查看全文


推荐文章
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历
2 天前
Python爱好者社区  ·  1885页的Python完全版电子书
2 天前
Python爱好者社区  ·  多模态,杀疯了
昨天
Python爱好者社区  ·  推荐我的抖音变现俱乐部!
4 天前
Python爱好者社区  ·  张雪峰公司今年的年终奖...
4 天前
木雕  ·  扭曲的崖柏,美到了天际~~~
7 年前
金融混业观察  ·  归来仍是操纵 谢风华的前半生
7 年前
中国房地产总裁战略商学院  ·  租满7年,房子就归你,这样的房子谁不想要?
7 年前