Python协议攻击脚本(一): Scapy的使用
Python协议攻击脚本(一): Scapy基本的使用
文章目录
- Python协议攻击脚本(一): Scapy基本的使用
- 简介
- 安装
- Linux
- Mac
- Windows
- 基本使用
- 交互式
- 模块使用
简介
Scapy官网
Scapy是一个Python程序,使用户能够发送,嗅探和剖析并伪造网络数据包。此功能允许构建可以探测,扫描或攻击网络的工具。Scapy可以轻松处理大多数经典任务,如扫描,跟踪路由,探测,单元测试,攻击或网络发现。它可以取代hping,arpspoof,arp-sk,arping,p0f甚至是Nmap,tcpdump和tshark的某些部分。
安装
详见Scapy官方文档
捆绑 | 包含 | Pip命令 |
---|---|---|
默认 | 只有Scapy |
pip install scapy
|
基本 | Scapy和IPython。强烈推荐 |
pip install --pre scapy[basic]
|
完成 | Scapy及其所有主要依赖项 |
pip install --pre scapy[complete]
|
Linux
- 安装Python 2.7或3.4+。
- 安装tcpdump并确保它在$ PATH中。(它仅用于编译BPF过滤器())
-ddd option
- 确保你的内核选择了Packet套接字(
CONFIG_PACKET
) - 如果您的内核<2.6,请确保选择了Socket过滤
CONFIG_FILTER
Debian / Ubuntu /
python3
sudo apt-get install python3 python3-pip tcpdump
pip3 install --pre scapy[basic]
python
sudo apt-get install python python-pip tcpdump
pip install --pre scapy[basic]
kali
默认已安装,但是安装在Python2.7下
如果需要在Python3中使用:
apt-get install python3 python3-pip
pip3 install scapy
Mac
使用Homebrew安装
更新Homebrew:
brew update
安装Python绑定:
brew install --with-python libdnet brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb sudo brew install --with-python libdnet sudo brew install https://raw.githubusercontent.com/secdev/scapy/master/.travis/pylibpcap.rb
使用MacPorts安装
更新MacPorts:
$ sudo port -d selfupdate
安装Python绑定:
$ sudo port install py-libdnet py-pylibpcap
Windows
Scapy主要是针对类Unix系统开发的,在这些平台上运行得最好。但最新版本的Scapy支持Windows开箱即用。因此,您也可以在Windows机器上使用几乎所有Scapy的功能。
- Python:Python 2.7.X或3.4+。安装后,将Python安装目录及其Scripts子目录添加到PATH。根据您的Python版本,默认值分别为
C:\Python27
和C:\Python27\Scripts
。 - Npcap:建议使用默认值。Scapy也可以使用Winpcap
安装Npcap
Npcap下载
安装Scapy
Dos中输入:
pip install --pre scapy[basic] #需要配置Python的环境变量,如上
基本使用
交互式
主要用来做测试,或者进行简单操作
Linux从终端启动
Windows cmd中启动
列出用户命令lsc()
>>> lsc()
sr : Send and receive packets at layer 3
sr1 : Send packets at layer 3 and return only the first answer
srp : Send and receive packets at layer 2
srp1 : Send and receive packets at layer 2 and return only the first answer
srloop : Send a packet at layer 3 in loop and print the answer each time
srploop : Send a packet at layer 2 in loop and print the answer each time
sniff : Sniff packets
p0f : Passive OS fingerprinting: which OS emitted this TCP SYN ?
arpcachepoison : Poison target's cache with (your MAC,victim's IP) couple
send : Send packets at layer 3
sendp : Send packets at layer 2
traceroute : Instant TCP traceroute
arping : Send ARP who-has requests to determine which hosts are up
ls : List available layers, or infos on a given layer
lsc : List user commands
queso : Queso OS fingerprinting
nmap_fp : nmap fingerprinting
report_ports : portscan a target and output a LaTeX table
dyndns_add : Send a DNS add message to a nameserver for "name" to have a new "rdata"
dyndns_del : Send a DNS delete message to a nameserver for "name"
[...]
常用的方法
sr : 发送和接受三层的包 #三层:网络层
sr1 : 发送和接受返回的第一个三层的包
srp1 : 发送和接受二层的包
srp1 : 发送和接受返回的第一个二层的包
sniff : 嗅探数据包
send : 发送三层的包
sendp : 发送二层的包
rdcap : 打开pcap文件 #eg:wirshark保存的文件
wrpcap : 写入到pcap文件
列出支持的协议ls()
,
>>> ls()
AH : AH
AKMSuite : AKM suite
ARP : ARP
ASN1P_INTEGER : None
ASN1P_OID : None
ASN1P_PRIVSEQ : None
ASN1_Packet : None
ATT_Error_Response : Error Response
ATT_Exchange_MTU_Request : Exchange MTU Request
ATT_Exchange_MTU_Response : Exchange MTU Response
ATT_ExecWriteReq : None
ATT_ExecWriteResp : None
[...]
常用的就主要是
Ether 以太网协议
ARP ARP协议
IP IP协议
UDP UDP协议
TCP TCP协议
ICMP ICMP协议
[...]
列出协议的字段
>>> ls(ARP)
hwtype : XShortField = (1)
ptype : XShortEnumField = (2048)
hwlen : FieldLenField = (None)
plen : FieldLenField = (None)
op : ShortEnumField = (1)
hwsrc : MultipleTypeField = (None)
psrc : MultipleTypeField = (None)
hwdst : MultipleTypeField = (None)
pdst : MultipleTypeField = (None)
获得帮助help(send)
>>> help(send)
Help on function send in module scapy.sendrecv:send(x, inter=0, loop=0, count=None, verbose=None, realtime=None, return_packets=False, socket=None, *args, **kargs)Send packets at layer 3send(packets, [inter=0], [loop=0], [count=None], [verbose=conf.verb], [realtime=None], [return_packets=False], # noqa: E501[socket=None]) -> None
构造一个icmp包
>>> packet =IP(src='192.168.1.115',dst='192.168.1.1')/ICMP()
>>> packet
<IP frag=0 proto=icmp src=192.168.1.1 dst=192.168.1.2 |<ICMP |>>
pkt.show()
数据包详细
>>> packet.show()
###[ IP ]### version= 4ihl= Nonetos= 0x0len= Noneid= 1flags= frag= 0ttl= 64proto= icmpchksum= Nonesrc= 192.168.1.115dst= 192.168.1.1\options\
###[ ICMP ]### type= echo-requestcode= 0chksum= Noneid= 0x0seq= 0x0
send()
发送包
>>> send(packet,count=1)
WARNING: Mac address to reach destination not found. Using broadcast.
.
Sent 1 packets.
sr1()
发送并接受答复包
>>> icmp = sr1(packet)
Begin emission:
.....Finished sending 1 packets..
.*
Received 8 packets, got 1 answers, remaining 0 packets
>>>icmp.show()
###[ IP ]###version= 4ihl= 5tos= 0x0len= 28id= 12962flags=frag= 0ttl= 64proto= icmpchksum= 0xc47asrc= 192.168.1.1dst= 192.168.1.115\options\
###[ ICMP ]###type= echo-replycode= 0chksum= 0xffffid= 0x0seq= 0x0
pkt.getlayer()
获取数据包某层
>>> icmp[ICMP]
<ICMP type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |>
>>> icmp.getlayer(ICMP)
<ICMP type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |>
.fields
获取数据包字段
>>> icmp.fields
{'options': [],'version': 4,'ihl': 5,'tos': 0,'len': 28,'id': 12962,'flags': <Flag 0 ()>,'frag': 0,'ttl': 64,'proto': 1,'chksum': 50298,'src': '192.168.1.1','dst': '192.168.1.115'}
>>> icmp.fields['src']
'192.168.1.1'
>>> icmp.src
'192.168.1.1'
sniff()
嗅探
>>> sniff(filter='tcp',count=5) #捕获5个包
<Sniffed: TCP:5 UDP:0 ICMP:0 Other:0>
>>> sniff(stop_filter=lambda x: x.haslayer(TCP)) #检测到TCP则停止
<Sniffed: TCP:1 UDP:0 ICMP:0 Other:0>
wirshark()
在Wirshark中打开
>>> packet = sniff(count=5)
>>> wireshark(packet)
模块使用
from scapy.all import *packet =IP(src='192.168.1.1',dst='192.168.1.2')/ICMP()
send(packet,count=1)
Python协议攻击脚本(一): Scapy的使用相关推荐
- python网站攻击脚本_Python scapy 实现一个简易 arp 攻击脚本
scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常被用到网络攻击和测试中. scapy的安装在Linux非常便利,但在Windows下比较复杂 ...
- Python 协议攻击脚本(六): STP攻击
文章目录 STP 数据包抓包 STP欺骗 STP Dos 编写脚本 STP欺骗 STP Dos 完整代码 STP 生成树协议(英语:Spanning Tree Protocol,STP),是一种工作在 ...
- python ddos攻击脚本_python版本DDOS攻击脚本
今天为了休息下,换换脑子,于是就找到了我之前收藏的一篇python的文章,是关于ddos攻击的一个脚本,正好今天有空,就实践下了. 附上源码pyDdos.py:#!/usr/bin/env pytho ...
- python arp脚本_Python scapy 实现一个简易 arp 攻击脚本
scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常被用到网络攻击和测试中. scapy的安装在Linux非常便利,但在Windows下比较复杂 ...
- python编写ARP拒绝服务攻击脚本
python编写ARP拒绝服务攻击脚本 原理:每台主机上都会有一张ARP表,记录主机的IP地址和 Mac地址,Mac地址有动态和 静态的: 网关:区分你是在哪个局域网 局域网中的通信是通过交换机实现的 ...
- python模拟ddos攻击_python版DDOS攻击脚本
本文实例为大家分享了python版DDOS攻击脚本,供大家参考,具体内容如下 于是就找到了我之前收藏的一篇python的文章,是关于ddos攻击的一个脚本,正好今天有空,就实践下了. 附上源码pyDd ...
- python电脑攻击_python写的ARP攻击代码实例 -电脑资料
注:使用这个脚本需要安装scapy 包 最好在linux平台下使用,因为scapy包在windows上安装老是会有各种问题 复制代码代码如下: #coding:utf-8 #example :sudo ...
- python写的脚本怎么用,如何用python写脚本
如何用python写脚本 以Python2.7操作为例:1.首先需要打开电脑桌面,按开始的快捷键,点击Python2.7如图所示的选项进入. 相关推荐:<Python入门教程>2.打开之后 ...
- python 多种运行脚本方式
python 多种运行脚本方式 文章目录 python 多种运行脚本方式 1. 脚本与模块 2. 什么是 Python 解释器? 3. 如何以交互方式运行 Python 代码 4. 解释器如何运行 P ...
最新文章
- python3 requests content和text 区别
- AI:2020年6月22日北京智源大会演讲分享之认知神经基础专题论坛——14:20-15:00方方教授《Maps and Functions of Human Attention》
- 广西计算机学业水平考试,2017年6月广西信息技术学业水平考试(1)-2017广西信息技术会考真题...
- mvc框架异常处理机制
- 开源项目面试重要吗_开源是最重要项目的骨干
- 如何手工配置DBControl
- Linux下双网卡绑定bond0
- 不得不会的10点Java基础知识
- 解决IE9,hack 设置背景图无效
- cad快看_CAD快速看图可以图纸对比吗?可以!
- jQuery视频格式的验证
- Android 使用MediaRecorder录音调用stop()方法的时候报错
- java实现大文件切割分片
- 乌班图nginx访问php 变成下载
- 微信小程序上传图片(预览 删除 限制图片大小、张数)
- lxqt lxde_面向极简主义者的Linux桌面:LXQt和LXDE入门
- APP设计:(一)app界面常用设计规范
- 大数据python试卷_大数据分析的python基础-中国大学mooc-试题题目及答案
- Laragon 自定义域名
- javamail调用阿里企业邮箱实现推送包括多个附件
热门文章
- 微信小程序动态添加view
- 161116、springmvc自己实现防止表单重复提交(基于注解)
- GITHUB实用有趣工具推荐
- java split 冒号_Java中字符串split() 的使用方法,没你想的那么简单
- RSD 教程 —— 3 观察数据
- C语言链表课程设计(工资管理系统)
- APP被苹果 App Store拒之门外的79个原因!
- 记一次·ulimit: open files: cannot modify limit:不允许操作
- a^x求导是怎么来的呢?
- 增强现实与虚拟现实_增强现实相关的法律问题