Scapy的基础学习和使用

scapy基本使用

参考

什么是scapy

Scapy是一个强大的,用Python编写的交互式数据包处理程序,它能让用户发送、嗅探、解析,以及伪造网络报文,从而用来侦测、扫描和向网络发动攻击。Scapy可以轻松地处理扫描(scanning)、路由跟踪(tracerouting)、探测(probing)、单元测试(unit tests)、攻击(attacks)和发现网络(network discorvery)之类的传统任务。它可以代替hping,arpspoof,arp-sk,arping,p0f 甚至是部分的Nmap,tcpdumptshark 的功能。

下载

基本函数介绍

  • ls()查看支持的网络协议

    在这里插入图片描述

    有很多,基本的协议都可以

    ls(协议)可以产看协议的参数

在这里插入图片描述在这里插入图片描述

  • lsc()查看函数

在这里插入图片描述

  • send

    发送三层报文

    尝试构造IP包

    在这里插入图片描述

    发送

在这里插入图片描述

Wireshark本机监听,成功构造

在这里插入图片描述

发送的是三层报文

  • sendp()

    构造二层报文

    构造一个数据链路层包
    在这里插入图片描述

    构造一个arp包

    在这里插入图片描述

    发送
    在这里插入图片描述

    可以看到已经成功发送了
    在这里插入图片描述

    内容为abc

在这里插入图片描述

  • src

    发送三层报文并查看返回报文

    先构造一个icmp包

在这里插入图片描述wireshark查看
在这里插入图片描述

  • srcp

    二层并接受返回报文

    在这里插入图片描述
    在这里插入图片描述

常用脚本

ping扫描

扫描单个主机

#!/usr/bin/env python
import sys
from scapy.all import *
print "pinging the target...."
ip = sys.argv[1]
icmp = IP(dst=ip)/ICMP()
ans, unans = sr(icmp)
if ans == None:
    print "This host is down"
else:
    print "This host is up"
    print ans

扫描网段

#!/usr/bin/env python
import sys
from scapy.all import *
print "pinging..."
ip = sys.argv[1]
icmp = IP(dst=ip)/ICMP()
ans, unans = sr(icmp)
if ans:
    ans.summary(lambda (s, r): r.sprintf("%IP.src% is alive"))

版本二

#!/usr/bin/python
from scapy.all import *

TIMEOUT = 2
conf.verb = 0
for ip in range(0, 11):
    packet = IP(dst="192.168.124." + str(ip), ttl=20)/ICMP()
    reply = sr1(packet, timeout=TIMEOUT)
    if not (reply is None):
         print reply.src, "is online"
    else:
         print "Timeout waiting for %s" % packet[IP].dst

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值