Example #1
0
def main():
    """
    Main function
    """
    x = Ether() / IP(dst="www.secdev.org") / TCP()
    print(x.summary())
    print(x.show())

    data = 'test_MACsec'
    pkt = Ether(dst="00:00:01:00:00:01",
                src="00:10:94:00:00:02") / MACsec() / data
    sendp(pkt, iface="en0", count=400)
    print(pkt.summary())
    print(pkt.show())

    sa = MACsecSA(sci=b'\x52\x54\x00\x13\x01\x56\x00\x01', an=0, pn=100,
                  key=b'aaaaaaaaaaaaaaaa', icvlen=16, encrypt=1, send_sci=1)
    p = Ether(src='aa:aa:aa:bb:bb:bb', dst='cc:cc:cc:dd:dd:dd')/IP(src='192.168.0.1', dst='192.168.0.2')/ICMP(type='echo-request') / \
        "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
    m = sa.encap(p)
    print(m.type == ETH_P_MACSEC)
    print(m[MACsec].type == ETH_P_IP)
    print(len(m) == len(p) + 16)
    print(m[MACsec].an == 0)
    print(m[MACsec].pn == 100)
    print(m[MACsec].shortlen == 0)
    print(m[MACsec].SC)
    print(m[MACsec].E)
    print(m[MACsec].C)
    print(m[MACsec].sci == b'\x52\x54\x00\x13\x01\x56\x00\x01')
    print(p.show())
Example #2
0
"""
Date: 2022.04.22 09:11:40
LastEditors: Rustle Karl
LastEditTime: 2022.04.23 23:53:21
"""
from scapy.data import *
from scapy.layers.inet import Ether, RandNum
from scapy.layers.l2 import ARP, arping, srp
from scapy.sendrecv import send
"""
scapy -H
"""

# ether = Ether(type=0x0806)
ether = Ether(type=ETH_P_ARP)
ether.show()

arp = Ether() / ARP()
arp.show()

# ----------------------------------------------------------------------

# ARP Ping 在本地以太网络上最快速地发现主机的方法
answer, unanswer = srp(Ether(dst="ff:ff:ff:ff:ff:ff") /
                       ARP(pdst="192.168.0.0/24"),
                       timeout=2)

answer.summary(lambda s, r: r.sprintf("%Ether.src% %ARP.psrc%"))

# 以上两个命令相当于
arping("192.168.0.*", timeout=2)
Example #3
0
    print("Exo 2")
    pad = Padding(b"EVIRUEB sineD")
    packet = BASE_IP_FRAME /\
             ICMP(type='echo-reply')
    packet.add_payload(b"Denis BEURIVE")
    packet /= pad
    packet.show()
    sendp(packet, iface='eno1')

# Exo #3
if False:
    print("Exo 3")
    packet = Ether(dst=MAC) / IP(id=MY_ID, src=DST_IP, dst=DST_IP) / TCP(
        sport=1234, dport=1234)
    packet.add_payload(b"Denis BEURIVE")
    packet.show()
    sendp(packet, iface='eno1')

# Exo #4
if False:
    print("Exo 4")
    packet = Ether(dst=MAC) / IP(id=MY_ID, src=SRC_IP, dst=DST_IP) / UDP(
        dport=5353, len=8)
    packet.add_payload(b"Denis BEURIVE")
    packet.show()
    sendp(packet, iface='eno1')

# Exo #5
if False:
    print("Exo 5")
    packet = Ether(dst=MAC) / IP(id=MY_ID, src='8.8.8.8', dst=DST_IP) / \
Example #4
0
            src='192.168.250.3',
            dst='192.168.111.37') / TCP(
                sport=52724,
                dport=2404,
                seq=2577176935,
                ack=3669025911,
                dataofs=8,
                reserved=0,
                flags='PA',
                window=501,
                urgptr=0,
                options=[('NOP', None), ('NOP', None),
                         ('Timestamp', (3164612021, 91549761))
                         ]) / APDU() / APCI(ApduLen=4, Type=0x01, Rx=10593)
    a = pkt.build()
    pkt.show()
    print('Result:', hexlify(a))

    pkt = APDU()
    pkt /= APCI(ApduLen=25, Type=0x00, Tx=23, Rx=44)
    pkt /= ASDU(
        TypeId=36,
        SQ=0,
        NumIx=1,
        CauseTx=1,
        Test=0,
        OA=1,
        Addr=2,
        IOA=[IOAS[36](IOA=1001, Value=2.3414123, QDS=0x81, CP56Time=ct)])
    pkt.show()
    print('Result:', hexlify(pkt.build()))
Example #5
0
"""
Date: 2022.04.21 11:26:28
LastEditors: Rustle Karl
LastEditTime: 2022.04.21 11:41:49
"""
from scapy.layers.inet import Ether, raw
from scapy.data import *

# 0x800 表示此帧的数据为 IP 数据
# 0x0806 表示此帧为 ARP 请求应答

ether = Ether(dst="ff:ff:ff:ff:ff:ff", src="b4:2e:c4:20:cd:0b", type=0x800)
# ether = Ether(type=ETH_P_IP)
# ether = Ether(type=ETH_P_IPV6)
ether.show()

# ether = Ether(type=0x0806)
ether = Ether(type=ETH_P_ARP)
ether.show()

ether_raw = raw(ether)

print(ether_raw)
print(len(ether_raw))  # 以太网的封包在 IP 数据的基础上增加了共 14 个字节
Example #6
0
def main(p4info_file_path, bmv2_file_path):
    # Instantiate a P4Runtime helper from the p4info file
    p4info_helper = p4runtime_lib.helper.P4InfoHelper(p4info_file_path)

    try:
        # Create a switch connection object for s1 and s2;
        # this is backed by a P4Runtime gRPC connection.
        # Also, dump all P4Runtime messages sent to switch to given txt files.
        s1 = p4runtime_lib.bmv2.Bmv2SwitchConnection(
            name='s1',
            address='127.0.0.1:50051',
            device_id=0,
            proto_dump_file='logs/s1-p4runtime-requests.txt')
        s2 = p4runtime_lib.bmv2.Bmv2SwitchConnection(
            name='s2',
            address='127.0.0.1:50052',
            device_id=1,
            proto_dump_file='logs/s2-p4runtime-requests.txt')

        # Send master arbitration update message to establish this controller as
        # master (required by P4Runtime before performing any other write operation)
        s1.MasterArbitrationUpdate()
        s2.MasterArbitrationUpdate()

        # Install the P4 program on the switches
        s1.SetForwardingPipelineConfig(p4info=p4info_helper.p4info,
                                       bmv2_json_file_path=bmv2_file_path)
        print("Installed P4 Program using SetForwardingPipelineConfig on s1")
        s2.SetForwardingPipelineConfig(p4info=p4info_helper.p4info,
                                       bmv2_json_file_path=bmv2_file_path)
        print("Installed P4 Program using SetForwardingPipelineConfig on s2")

        # Write the rules that tunnel traffic from h1 to h2
        writeInitRules(p4info_helper,
                       ingress_sw=s1,
                       dst_eth_addr="08:00:00:00:02:22",
                       dst_ip_addr="10.0.2.2",
                       port=64)
        writeInitRules(p4info_helper,
                       ingress_sw=s1,
                       dst_eth_addr="08:00:00:00:01:11",
                       dst_ip_addr="10.0.1.1",
                       port=1)

        # Write the rules that tunnel traffic from h2 to h1
        writeInitRules(p4info_helper,
                       ingress_sw=s2,
                       dst_eth_addr="08:00:00:00:01:11",
                       dst_ip_addr="10.0.1.1",
                       port=2)
        writeInitRules(p4info_helper,
                       ingress_sw=s2,
                       dst_eth_addr="08:00:00:00:02:22",
                       dst_ip_addr="10.0.2.2",
                       port=1)

        while 1:
            print('cap')
            for item in s1.stream_msg_resp:
                print(item)
                eth = Ether(item.packet.payload)
                # eth.dst = '08:00:00:00:02:33'
                eth.show()
                request = p4runtime_pb2.StreamMessageRequest()
                request.packet.payload = item.packet.payload
                s2.requests_stream.put(request)

            time.sleep(1)

    except KeyboardInterrupt:
        print(" Shutting down.")
    except grpc.RpcError as e:
        printGrpcError(e)

    ShutdownAllSwitchConnections()
Example #7
0
#puerto origen aeatorio
p=sr(IP(src="192.168.43.55", dst="www.secdev.org")/TCP(sport=RandShort(),dport=[20,21,80,443,3389], flags="S"),inter=0.5,retry=2,timeout=1)
#traceroute
traceroute(["www.google.com"], maxttl=20)
#traceroute con puerto 23
traceroute (["10.1.99.2"],dport=23,maxttl=20)
#paquete por capas
IP()
IP()/TCP()
Ether()/IP()/TCP()
IP()/TCP()/"GET / HTTP/1.1\r\n\r\n"
Ether()/IP(dst="api.tidex.com")/TCP(dport=443)/"GET /api/3/ticker/eth_btc HTTP/1.1\r\nHost: api.tidex.com\r\nConnection: close\r\n\r\n"
Ether()/IP()/IP()/UDP()

#armado de paquetes por capas
a=Ether(); a.show()
b=IP(); b.show()
c=TCP(); c.show()
d=sr(a/b/c,timeout=2)

#enviar paquete por capas
ans,unans=sr(IP(dst="api.tidex.com")/TCP(sport=RandShort(),dport=443)/"GET /api/3/ticker/eth_btc HTTP/1.1\r\nHost: api.tidex.com\r\nConnection: close\r\n\r\n")

#############HTTP
##super importante  
#https://stackoverflow.com/questions/9058052/unwanted-rst-tcp-packet-with-scapy
#iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.43.55 -j DROP
load_layer("http")
req = HTTP()/HTTPRequest(
    Accept_Encoding=b'gzip, deflate',
    Cache_Control=b'no-cache',