如何使用scapy创建代理

How to create a proxy with scapy

我想使用 scapy 创建一个代理来演示代理在现实世界中的使用方式。我在这里试图完成的是客户端发送这些数据包,以便我可以检查正在发送的数据并让代理在中间转发这些数据包。

我在此处在线阅读了创建发送 http 请求的脚本,但我希望它发送所有数据而不仅仅是 http 请求。 https://www.endpoint.com/blog/2015/04/29/raw-packet-manipulation-with-scapy

import logging 
logging.getLogger("scapy").setLevel(1)  

from scapy.all import *  

def make_test(x,y):     
    request = "GET / HTTP/1.1\r\nHost: " + y  + "\r\n"     
    p = IP(dst=x)/TCP()/request     
    out = sr1(p)     
    if out:         
        out.show() 
    if __name__ == "__main__":
    interact(mydict=globals(), mybanner="Scapy HTTP Tester")

我也在这里看到了如何转发流量 Scapy forwarding packages

#!/usr/bin/python

import sys
import time
from scapy.all import sniff, sendp, ARP, Ether

if len(sys.argv) < 3:
    print sys.argv[0] + " <target> <spoof_ip>"
    sys.exit(0)

iface = "wlan1"
target_ip = sys.argv[1]
fake_ip = sys.argv[2]

ethernet = Ether()
arp = ARP(pdst=target_ip, psrc=fake_ip, op="is-at")
packet = ethernet / arp

while True:
    sendp(packet, iface=iface)
    time.sleep(10)

是否有任何在线指南或任何脚本已经概述了如何使用 scapy 发送和转发数据包?

这里是 code/examples 的完整教程和指南。这是一个循序渐进的指南,包含丰富的信息。

https://github.com/robert/how-to-build-a-tcp-proxy