-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBuildC2.py
More file actions
38 lines (33 loc) · 941 Bytes
/
Copy pathBuildC2.py
File metadata and controls
38 lines (33 loc) · 941 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from scapy.all import *
from scapy.layers.http import *
settings = {
"src": "127.0.0.1",
"dst": "8.8.8.8"
}
def buildLayers(layers):
p=Ether()/IP(src=settings["src"],dst=settings["dst"])
for layer in layers.split(":")[2:]:
try:
layer == layer.replace(" ","")
if layer == "HTTP 1":
layer = "HTTP"
l = globals()[layer]()
p.add_payload(l)
except:
return p
return p
def setPayload(packet,layers,data):
p = packet
l = layers.split(":")
for layer in l[:-1]:
if packet.haslayer(layer):
p = p[layer]
else:
p = getattr(p,layer)
p.setfieldval(l[-1],data)
return packet
layers = "Ethernet:IP:TCP:HTTP:HTTPResponse:Raw:load"
packet = buildLayers(layers)
data = "Hello"
packet = setPayload(packet,layers,data)
packet.show()