Я пытаюсь создать программу на Pycharm в Kali Linux, которая будет по порядку:
- Отключен интерфейс
- Выполнить
airmon-ng check kill
- Пробег
iwconfig interface mode monitor
- Выполнить
ifconfig interface up
- Распечатать, сработало или нет
Я использую часть кода, который использовал для смены MAC-адресов для курса Udemy, который я прохожу, но я не уверен, ускоряет ли он процесс или просто сбивает с толку. Я думаю, что понимаю большинство из них, но я немного повесил трубку.
После того, как я его запустил, похоже, он заработал 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
в исходное состояние.
Вместо этого он сделал именно это, но напечатал сообщение об ошибке, которое я дал ему, хотя больше ничего не говорит о том, что это действительно был сбой.