update rtp script
This commit is contained in:
parent
64e05eed86
commit
47f34e486b
65
final/scripts/rtp1.py
Normal file
65
final/scripts/rtp1.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
import sys
|
||||||
|
from scapy.all import sniff, send, IP, IPv6, Packet, Raw, Ether, sendp, base64_bytes, hex_bytes,bytes_base64
|
||||||
|
from scapy.layers.inet import UDP
|
||||||
|
from scapy.layers.rtp import RTP, bind_layers
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
def invert_byte(byte):
|
||||||
|
return ~byte & 0xFF
|
||||||
|
|
||||||
|
def modify_packet(packet: Packet):
|
||||||
|
global modifications
|
||||||
|
global seen
|
||||||
|
|
||||||
|
|
||||||
|
udp: Packet = packet[UDP]
|
||||||
|
# udp.show()
|
||||||
|
if RTP in udp:
|
||||||
|
rtp: Packet = udp[RTP]
|
||||||
|
# load: bytes = rtp.load
|
||||||
|
if rtp.payload_type == 96:
|
||||||
|
print("96")
|
||||||
|
# payload: bytes = rtp.payload.load
|
||||||
|
# pretty = bytes_base64(payload)
|
||||||
|
# print(payload)
|
||||||
|
# hex: str = payload.hex()
|
||||||
|
# new_hex = hex[::-1]
|
||||||
|
# print(hex)
|
||||||
|
# print()
|
||||||
|
# print(new_hex)
|
||||||
|
# print(type(new_payload))
|
||||||
|
# rtp.payload = Raw(hex_bytes(new_hex))
|
||||||
|
original_payload = bytes(rtp.payload)
|
||||||
|
new_payload_hex = "deadbeef" # New payload in hex format
|
||||||
|
new_payload = bytes.fromhex(new_payload_hex)
|
||||||
|
rtp.payload = Raw(new_payload)
|
||||||
|
udp.len = len(udp)
|
||||||
|
udp.chksum = None # Recalculate checksum
|
||||||
|
# payload[6] = invert_byte(payload[6])
|
||||||
|
else:
|
||||||
|
print('npe')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
seen += 1
|
||||||
|
sendp(packet, iface=sys.argv[1])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
modifications = 0
|
||||||
|
seen = 0
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print(f"Usage: {sys.argv[0]} <interface>")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
interface = sys.argv[1]
|
||||||
|
|
||||||
|
start_time = datetime.now()
|
||||||
|
print(f"Script started at: {start_time.strftime('%Y-%m-%d %H:%M:%S')}")
|
||||||
|
bind_layers(UDP, RTP, sport=6970)
|
||||||
|
packets = sniff(filter="udp port 6970", iface=interface, timeout=60*1, prn=modify_packet)
|
||||||
|
|
||||||
|
end_time = datetime.now()
|
||||||
|
print(f"Script ended at: {end_time.strftime('%Y-%m-%d %H:%M:%S')}")
|
||||||
|
print(f"{modifications} ip(v6) packets modified")
|
||||||
|
print(f"{seen} total ip(v6) packets seen")
|
Reference in New Issue
Block a user