本文整理汇总了Python中scapy.layers.inet.Ether方法的典型用法代码示例。如果您正苦于以下问题:Python inet.Ether方法的具体用法?Python inet.Ether怎么用?Python inet.Ether使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类scapy.layers.inet
的用法示例。
在下文中一共展示了inet.Ether方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: generate_tcp_packet
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def generate_tcp_packet(ip_src: str = "192.168.64.32", ip_dst: str = "192.168.64.48",
mac_src: str = "56:6D:D9:BC:70:1C", ttl: int = 64,
mac_dst: str = "F4:2B:95:B3:0E:1A", port_src: int = 1337, port_dst: int = 6442,
tcpflags: str = "S", payload: str = ""):
"""
Builds a TCP packet with the values specified by the caller.
:param ip_src: the source IP address of the IP header
:param ip_dst the destination IP address of the IP header
:param mac_src: the source MAC address of the MAC header
:param ttl: the ttl value of the packet
:param mac_dst: the destination MAC address of the MAC header
:param port_src: the source port of the TCP header
:param port_dst: the destination port of the TCP header
:param tcpflags: the TCP flags of the TCP header
:param payload: the payload of the packet
:return: the corresponding TCP packet
"""
ether = Ether(src=mac_src, dst=mac_dst)
ip = IP(src=ip_src, dst=ip_dst, ttl=ttl)
tcp = TCP(sport=port_src, dport=port_dst, flags=tcpflags)
packet = ether / ip / tcp / Raw(load=payload)
return packet
示例2: get_mblk_info
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def get_mblk_info(self, mblk_addr):
print("{:-^{width}}".format("mblk info at %s" % hex(mblk_addr), width=80))
mblk_data = self.get_mem_dump(mblk_addr, 0x38) # 0x38 is length
mblk = mBlk(mblk_data)
mblk.show()
print("##clblk at %s" % hex(mblk.pClBlkAddr))
clblk_hdr_data = self.get_mem_dump(mblk.pClBlkAddr, 0x20) # 0x38 is length
clBlk_hdr = clBlk(clblk_hdr_data)
clBlk_hdr.show()
mData = self.get_mem_dump(mblk['mBlkHdr'].mData, mblk['mBlkHdr'].mLen)
print("## mData at: %s with length: %s" % (hex(mblk['mBlkHdr'].mData), hex(mblk['mBlkHdr'].mLen)))
if mData[:2] == "\x45\x00":
mPacket = IP(mData)
elif mData[:2] == "\x41\x41":
mPacket = Raw(mData)
else:
mPacket = Ether(mData)
mPacket.show()
示例3: packets_to_convs
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def packets_to_convs(exploit_raw_packets):
"""
Classifies a bunch of packets to conversations groups. A conversation is a set of packets go between host A
(IP,port) to host B (IP,port)
:param exploit_raw_packets: A set of packets contains several conversations.
:return conversations: A set of arrays, each array contains the packet of specific conversation
:return orderList_conversations: An array contains the conversations ids (IP_A,port_A, IP_b,port_B) in the
order they appeared in the original packets.
"""
conversations = {}
order_list_conversations = []
for pkt_num, pkt in enumerate(exploit_raw_packets):
eth_frame = inet.Ether(pkt[0])
ip_pkt = eth_frame.payload
ip_dst = ip_pkt.getfieldval("dst")
ip_src = ip_pkt.getfieldval("src")
tcp_pkt = ip_pkt.payload
port_dst = tcp_pkt.getfieldval("dport")
port_src = tcp_pkt.getfieldval("sport")
conv_req = (ip_src, port_src, ip_dst, port_dst)
conv_rep = (ip_dst, port_dst, ip_src, port_src)
if conv_req not in conversations and conv_rep not in conversations:
pkt_list = [pkt]
conversations[conv_req] = pkt_list
# Order list of conv
order_list_conversations.append(conv_req)
else:
if conv_req in conversations:
pkt_list = conversations[conv_req]
pkt_list.append(pkt)
conversations[conv_req] = pkt_list
else:
pkt_list = conversations[conv_rep]
pkt_list.append(pkt)
conversations[conv_rep] = pkt_list
return conversations, order_list_conversations
示例4: generate_attack_packets
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def generate_attack_packets(self) -> None:
ip_attacker = self.get_param_value(self.IP_SOURCE)
mac_attacker = self.get_param_value(self.MAC_SOURCE)
ip_amplifier = self.get_param_value(self.IP_DESTINATION)
mac_amplifier = self.get_param_value(self.MAC_DESTINATION)
ip_victim = self.get_param_value(self.IP_VICTIM)
timestamp_next_pkt = self.get_param_value(self.INJECT_AT_TIMESTAMP)
self.attack_start_utime = timestamp_next_pkt
attack_duration = self.get_param_value(self.ATTACK_DURATION)
attack_ends_time = timestamp_next_pkt + attack_duration
_, src_ttl, _ = self.get_ip_data(ip_attacker)
sport = Util.generate_source_port_from_platform('linux')
# Use MAC of the actual source, but the IP of the victim
attacker_ether = inet.Ether(src=mac_attacker, dst=mac_amplifier)
attacker_ip = inet.IP(src=ip_victim, dst=ip_amplifier, ttl=src_ttl, flags='DF')
while timestamp_next_pkt <= attack_ends_time:
request_udp = inet.UDP(sport=sport, dport=Memcd.memcached_port)
request_memcd = Memcd.Memcached_Request(Request=b'stats\r\n', RequestID=inet.RandShort())
request = (attacker_ether / attacker_ip / request_udp / request_memcd)
request.time = timestamp_next_pkt
self.add_packet(request, ip_victim, ip_amplifier)
timestamp_next_pkt = self.timestamp_controller.next_timestamp()
示例5: generate_udp_packet
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def generate_udp_packet(ip_src: str = "192.168.64.32", ip_dst: str = "192.168.64.48",
mac_src: str = "56:6D:D9:BC:70:1C", ttl: int = 64,
mac_dst: str = "F4:2B:95:B3:0E:1A", port_src: int = 1337, port_dst: int = 6442,
payload: str = ""):
"""
Builds an UDP packet with the values specified by the caller.
:param ip_src: the source IP address of the IP header
:param ip_dst the destination IP address of the IP header
:param mac_src: the source MAC address of the MAC header
:param ttl: the ttl value of the packet
:param mac_dst: the destination MAC address of the MAC header
:param port_src: the source port of the UDP header
:param port_dst: the destination port of the UDP header
:param payload: the payload of the packet
:return: the corresponding UDP packet
"""
ether = Ether(src=mac_src, dst=mac_dst)
ip = IP(src=ip_src, dst=ip_dst, ttl=ttl)
udp = UDP(sport=port_src, dport=port_dst)
packet = ether / ip / udp / Raw(load=payload)
return packet
#################################################
######## IP address generation ########
#################################################
示例6: discover_local_device
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def discover_local_device(self):
self.sniff_mac_address = get_if_hwaddr(self.nic)
p = threading.Thread(target=self.sniff_answer)
p.setDaemon(True)
p.start()
# wait sniff start
time.sleep(0.2)
packet = Ether(src=self.sniff_mac_address, dst="ff:ff:ff:ff:ff:ff")/IP(src=get_if_addr(self.nic), dst="255.255.255.255")/UDP(sport=44818, dport=44818)/ENIPHeader(Command=0x0063)
sendp(packet, iface=self.nic)
self.sniff_finished.wait(self.timeout + 1)
示例7: add_msdu
# 需要导入模块: from scapy.layers import inet [as 别名]
# 或者: from scapy.layers.inet import Ether [as 别名]
def add_msdu(self, msdu):
msdu_len = len(msdu)
total_len = msdu_len + 6 + 6 + 2
padding = "\x00" * (4 - (total_len % 4)) # Align to 4 octets
if self.num_subframes > 0:
self.data /= padding
self.data = self.data / Ether(src=self.src_mac, dst=self.recv_mac, type=msdu_len) / msdu
self.num_subframes += 1