使用python中scapy 实施TCP 全开扫描

该博客介绍了一段Python代码,利用Scapy库进行TCP端口扫描。通过接收命令行参数作为目标IP和端口,代码发送SYN包并分析响应,判断目标端口是开放还是关闭。如果收到SYN+ACK,它会发送ACK+RESET以建立连接。如果收到RST标志,表示端口关闭。
部署运行你感兴趣的模型镜像
import sys
from scapy.all import *   // 引入sys 和scapy两个模块
if len(sys.argv)!=3:      // 输入的如果不是三个元素会报错,注意sys.argv函数返回的是是个列表
    print("synty error")
    sys.exit(1)
dst_ip=sys.argv[1]     //目标ip地址
dst_port=int(sys.argv[2])//目标端口
src_port=RandShort()     //自动获取一个源端口
resp=sr1(IP(dst=dst_ip)/TCP(sport=src_port,dport=dst_port,flags="S"))  //构建TCP数据包,“S”是全开扫描。
if(str(type(resp)) == "<class 'NoneType'>"):   //这是返回数据包无类型情况
    print("The port is %s Closed"%(dst_port))
elif(resp.haslayer(TCP)):      //返回数据包如果是TCP包
    if(resp.getlayer(TCP).flags == 0x12):    //flags==0x12代表返回的是SYN+ACK数据包
        send_rst = sr1(IP(dst=dst_ip)/TCP(sport=src_port,dport=dst_port,flags="AR"))  //发送ACK+RESET数据包建立连接
        print("The port is %s Open"%dst_port)
    elif(resp.getlayer(TCP).flags == 0x14):  //flags==0x12代表返回的是reset数据包,对方拒绝建立连接
        print("The port is %s Close"%dst_port)

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值