Python程序设计-安全渗透测试模块-Scapy模块

Scapy是一个强大的Python网络模块,常用于网络扫描和攻击工具。它可以构造、发送、监听和解析网络数据包,提供交互式命令行。Scapy支持分层构造数据包,如Ether、IP、TCP等,并可通过ls()函数查看类属性。发送函数send()、sendp()、sr()、sr1()和srp()分别用于不同层次的数据包发送和接收。fuzz()函数用于发送随机填充的数据包,sniff()用于捕获数据包。此外,Scapy可用于端口扫描,通过ACK或SYN扫描检测端口状态。
摘要由CSDN通过智能技术生成

简介

  • Scapy是一个由Python语言编写的强大工具,它是大量程序编写人员最喜爱的一个网络模块。目前很多优秀的网络扫描和攻击工具都使用了这个模块。
  • 也可以在自己的程序中使用这个模块来实现对网络数据包的发送、监听和解析。
  • 这个模块相比起Nmap来说,更为底层。可以更为直观地了解到网络中的各种扫描和攻击行为,例如,要检测某一个端口是否开放,只需提供给Nmap一个端口号,而Nmap就会给出一个开放或者关闭的结果,但是并不知道Nmap是怎么做的。
  • 如果想对网络中的各种问题进行深入研究,Scapy无疑是一个更好的选择,可以利用它来产生各种类型的数据包并发送出去,Scapy也只会把收到的数据包展示给你,而并不会告诉你这意味着什么,一切都将由你来判断。

基本用法

Scapy提供了和Python一样的交互式命令行。Scapy可以作为Python的一个模块存在,但是Scapy本身就是一个可以运行的工具,它自己具备一个独立的运行环境,因而可以不在Python环境下运行。
在这里插入图片描述

基本操作

  • 在Scapy中,每一个协议就是一个类。
  • 只需要实例化一个协议类,就可以创建一个该协议的数据包。例如,如果要创建一个IP类型的数据包,就可以使用如下命令。
ip = IP()

在这里插入图片描述

  • IP数据包最重要的属性就是源地址和目的地址,这两个属性可以使用src和dst来设置。
  • 例如,要构造一个发往“192.168.1.101”的IP数据包,可以使用如下语句。
ip = IP(dst="192.168.1.101")

在这里插入图片描述

  • 这个目标dst的值可以是一个IP地址,也可以是一个IP范围,
  • 例如192.168.1.0/24,这时产生的就不是1个数据包,而是256个数据包。
    在这里插入图片描述
  • 如果要查看其中每一个数据包,可以使用
p for p in ip

在这里插入图片描述

采用分层形式来构造数据包

  • 通常最下面的一个协议为Ether,然后是IP,再之后是TCP或者是UDP。
  • IP()函数无法用来构造ARP请求和应答数据包,可以使用Ether(),
  • 这个函数可以设置发送方和接收方的MAC地址。
  • 产生一个广播数据包,执行命令如下
Ether(dst="ff:ff:ff:ff:ff:ff")

在这里插入图片描述

  • Scapy中的分层通过符号“/”实现,一个数据包是由多层协议组合而成,这些协议之间就可以使用“/”分开,按照协议由底而上的顺序从左向右排列
  • 例如,可以使用以下命令来完成一个TCP数据包,
Ether()/IP()/TCP(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值