通过python中的原始套接字发送scapy数据包

斯珀利1987

是否有可能?如是?如何?

这是我的脚本(不起作用):

from scapy.all import *
import socket

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    p=IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(), dport=80)
    s.connect(("192.168.1.254",80))
    s.send(p)
    print ("Request sent!")
except:
    print ("An error occurred.")

- 更新 -

p = bytes(IP(dst="DESTINATIONIP")/TCP(flags="S", sport=RandShort(), dport=80))
    while True:
        try:
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, sockip, sockport, True)
            s = socks.socksocket()
            s.connect((DESTINATIONIP,DESTINATIONPORT))
            s.send(p)
            print ("Request Sent!")
        except:
            print ("An error occurred.")

是否可以通过HTTP代理而不是袜子来发送此syn数据包?

编码器

要使用原始套接字发送虚假数据包,您必须先将数据包转换为原始字节。例如,使用scapy制作的数据包如下所示:

p = IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(),dport=80)

应该使用转换为原始字节bytes(p)这将为您提供以下信息:

'E\x00\x00(\x00\x01\x00\x00@\x06\xf6w\xc0\xa8\x01\t\xc0\xa8\x01\xfe\x97%\x00P\x00\x00\x00\x00\x00\x00\x00\x00P\x02 \x00t\x15\x00\x00'

然后,您可以使用原始套接字发送它。因此,对于您的示例,您可以修改一些代码,例如:

from scapy.all import *
import socket

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    p = IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(),dport=80)/Raw("Hallo world!")
    s.connect(("192.168.1.254",80))
    s.send(bytes(p))
    print "[+] Request Sent!"
except Exception, e:
    raise e

这应该工作!

注意!!!请记住,当您使用套接字(模块)与另一台计算机通信时,套接字会自动构造您的数据包(标头等)并发送您希望发送的内容。但是,当您使用scapy构建数据包时,便会从头开始制作它,因此您要定义其内容以及其标头,层等。因此,在您的示例中,当您发送数据包时,您将以内容有效载荷的形式发送“全部”,甚至是数据包标头(ip-header,tcp-header)。您可以通过运行以下嗅探器进行测试:

#!/usr/bin/env python

from scapy.all import *

def printer(packet):
    if packet.haslayer(Raw):
        print packet.getlayer(Raw).load

print "[+] Sniff started"
while True:
    sniff(store=0, filter="host 192.168.1.254 and port 80", prn=printer, iface="your_interface_here")

好吧,当嗅探器运行时,尝试运行我帖子中的第一段代码(当我使用原始layer = tcp.payload更新数据包时),您会发现不仅数据而且整个数据包都作为数据传输。因此,您可以两次发送标头。这就是为什么套接字具有自己的send方法和scapy自身的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python套接字中接收自定义Scapy数据包

来自分类Dev

通过套接字发送的数据包的尺寸

来自分类Dev

通过GO中的原始套接字读取TCP数据包

来自分类Dev

原始套接字中的TCP数据包-Centos 6.6

来自分类Dev

套接字如何通过erlang中的数据包发送数据?

来自分类Dev

使用Linux原始套接字捕获PTP数据包

来自分类Dev

无法接收到原始套接字的数据包

来自分类Dev

有没有一种简单的方法可以使用Ruby的Socket类通过原始套接字发送数据包?

来自分类Dev

有没有一种简单的方法可以使用Ruby的Socket类通过原始套接字发送数据包?

来自分类Dev

绑定到网络接口后,无法通过python中的套接字发送任何原始数据

来自分类Dev

如何通过RAW套接字发送修改后的IPv6数据包?

来自分类Dev

Python Arp嗅探原始套接字没有回复数据包

来自分类Dev

Python套接字-将数据包发送到服务器并等待响应

来自分类Dev

以太网数据包通过套接字原始文件具有尾部而不是udp标头

来自分类Dev

Python-3.4 Scapy发送ARP数据包

来自分类Dev

Windows上的Python 3.6中的原始套接字数据包嗅探器

来自分类Dev

在 scapy 中通过 src mac 过滤数据包

来自分类Dev

scapy发送数据包获取RST

来自分类Dev

通过ttl Scapy过滤数据包?

来自分类Dev

套接字:读取UDP数据包

来自分类Dev

套接字广播数据包

来自分类Dev

Linux套接字,如何获取发送缓冲区中的字节数/数据包数?

来自分类Dev

如何使用相同的 UDP 套接字来发送和接收数据包?我在这段代码中缺少什么?

来自分类Dev

读取原始套接字是否可以一次返回多个数据包?

来自分类Dev

如何刷新原始AF_PACKET套接字以获取正确的已过滤数据包

来自分类Dev

错误:通信错误:客户端无法发送数据包。套接字已关闭

来自分类Dev

从内核模块发送带有套接字的数据包

来自分类Dev

如何从原始字节创建Scapy数据包

来自分类Dev

scapy数据包操作和原始pkt.time

Related 相关文章

  1. 1

    在Python套接字中接收自定义Scapy数据包

  2. 2

    通过套接字发送的数据包的尺寸

  3. 3

    通过GO中的原始套接字读取TCP数据包

  4. 4

    原始套接字中的TCP数据包-Centos 6.6

  5. 5

    套接字如何通过erlang中的数据包发送数据?

  6. 6

    使用Linux原始套接字捕获PTP数据包

  7. 7

    无法接收到原始套接字的数据包

  8. 8

    有没有一种简单的方法可以使用Ruby的Socket类通过原始套接字发送数据包?

  9. 9

    有没有一种简单的方法可以使用Ruby的Socket类通过原始套接字发送数据包?

  10. 10

    绑定到网络接口后,无法通过python中的套接字发送任何原始数据

  11. 11

    如何通过RAW套接字发送修改后的IPv6数据包?

  12. 12

    Python Arp嗅探原始套接字没有回复数据包

  13. 13

    Python套接字-将数据包发送到服务器并等待响应

  14. 14

    以太网数据包通过套接字原始文件具有尾部而不是udp标头

  15. 15

    Python-3.4 Scapy发送ARP数据包

  16. 16

    Windows上的Python 3.6中的原始套接字数据包嗅探器

  17. 17

    在 scapy 中通过 src mac 过滤数据包

  18. 18

    scapy发送数据包获取RST

  19. 19

    通过ttl Scapy过滤数据包?

  20. 20

    套接字:读取UDP数据包

  21. 21

    套接字广播数据包

  22. 22

    Linux套接字,如何获取发送缓冲区中的字节数/数据包数?

  23. 23

    如何使用相同的 UDP 套接字来发送和接收数据包?我在这段代码中缺少什么?

  24. 24

    读取原始套接字是否可以一次返回多个数据包?

  25. 25

    如何刷新原始AF_PACKET套接字以获取正确的已过滤数据包

  26. 26

    错误:通信错误:客户端无法发送数据包。套接字已关闭

  27. 27

    从内核模块发送带有套接字的数据包

  28. 28

    如何从原始字节创建Scapy数据包

  29. 29

    scapy数据包操作和原始pkt.time

热门标签

归档