#!/usr/bin/env python3 """本地 SIP 攻击模拟""" import socket def send_sip_register(target_ip, target_port, sip_id, local_ip="127.0.0.1", local_port=50600): message = f"""REGISTER sip:{target_ip} SIP/2.0\r Via: SIP/2.0/UDP {local_ip}:{local_port};rport;branch=z9hG4bK-test-{sip_id}\r From: ;tag=12345\r To: \r Call-ID: test-{sip_id}@{local_ip}\r CSeq: 1 REGISTER\r Contact: \r Max-Forwards: 70\r User-Agent: Python-Test\r Expires: 3600\r Content-Length: 0\r \r """ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(2) try: sock.sendto(message.encode(), (target_ip, target_port)) response, _ = sock.recvfrom(4096) return response.decode() except socket.timeout: return "Timeout" finally: sock.close() IP_POOL = ("1.113.12.33","1.113.12.34","1.113.12.35") if __name__ == "__main__": LOCAL_IP = "1.113.12.33" # 模拟IP TARGET_IP = "127.0.0.1" # 本地测试(服务器地址) TARGET_PORT = 5061 # SIP端口 # 模拟攻击:连续发送20个请求 for i in range(50): sip_id = str(7000 + i) response = send_sip_register(TARGET_IP, TARGET_PORT, sip_id) print(f"[{sip_id}] {response.split(chr(13))[0] if response else 'No response'}")