我正在尝试在 Kali Linux 中的 Pycharm 中制作一个程序,该程序将按顺序:
- 禁用接口
- 跑
airmon-ng check kill
- 跑
iwconfig interface mode monitor
- 跑
ifconfig interface up
- 打印是否有效
我正在使用一些我用来为我正在学习的 Udemy 课程制作 MAC 地址更改器的代码,但我不确定它是否会使过程更快或更混乱。我想我明白了大部分,但我有点挂了。
在我运行它之后,它似乎已经工作了。iwconfig 说它处于监视模式,ifconfig 说它已启动。但是,当它完成时,它会给我我编写的错误消息。它真的显示错误吗?
我尝试重新使用用于制作 MAC 地址更改器的代码以尝试节省一些时间,并且我尝试if is true
在最后编写一个语句来测试监控模式是否打开。
监控模式代码:
monitor_mode(options.interface)
...
def monitor_mode(interface):
print("[+] Activating Monitor Mode for " + interface)
subprocess.call(["ifconfig", interface, "down"])
subprocess.call(["airmon-ng", "check", "kill"])
subprocess.call(["iwconfig", interface, "mode", "monitor"])
subprocess.call(["ifconfig", interface, "up"])
options = get_arguments()
monitor_mode(options.interface)
if monitor_mode is True:
print("[+] Interface switched to monitor mode.")
else:
print("[-] Error.")
原始 mac_changer 代码:
def change_mac(interface, new_mac):
print("[+] Changing MAC Address for " + interface + " to " + new_mac)
subprocess.call(["ifconfig", interface, "down"])
subprocess.call(["ifconfig", interface, "hw", "ether", new_mac])
subprocess.call(["ifconfig", interface, "up"])
def get_current_mac(interface):
ifconfig_result = subprocess.check_output(["ifconfig", interface])
mac_address_search_result = re.search(r"\w\w:\w\w:\w\w:\w\w:\w\w:\w\w", ifconfig_result)
if mac_address_search_result:
return mac_address_search_result.group(0)
else:
print("[-] Could not read MAC address.")
options = get_arguments()
current_mac = get_current_mac(options.interface)
print("Current MAC = " + str(current_mac))
change_mac(options.interface, options.new_mac)
current_mac = get_current_mac(options.interface)
if current_mac == options.new_mac:
print("[+] MAC successfully changed to " + current_mac)
else:
print("[-] MAC unchanged.")
我希望我的 monitor_mode 程序通过 关闭wlan0
、运行airmon-ng check kill
、将 wlan0 开启监控模式iwconfig
,然后wlan0
重新启动。
相反,它只是这样做了,但它打印了我给它的错误消息,尽管没有其他任何东西表明它确实是一个失败。