Утилита, написанная мной на языке программирования Python, позволяет получить профили и пароли от Wi-Fi, к которым был подключен компьютер.
А это законно?
Чтобы разобраться в этом вопросе, давайте представим реальную ситуацию, которая произошла со мной.
Я подрабатываю педагогом по программированию, и в один момент мне, как специалисту, увлекающемуся кибербезопасностью, поступил запрос на проведение мероприятия в одной престижной школе.
Перед мероприятием я попросил передать системному администратору запрос на установку необходимого софта. И что вы думаете!? Системный администратор, в лучших традициях, проигнорировал этот запрос. Благо со мной был мой верный ПК, на котором уже все было предустановлено.
Оставалась только одна проблема:
Мне нужно было подключить свой ПК к любой работающей сети. Прямого кабеля, конечно же, не было, а пароля от Wi-Fi я естественно не знал. К такой ситуации я не был готов, но навыки владения ПК подсказывали мне, что нужно искать пароль в настройках любого подключенного ноутбука, которыми был оснащен кабинет по информатике.
Так как в тот момент я только начинал свою карьеру, найти нужные консольные команды за пару минут было нереально, а куда именно нужно залезть, чтобы получить нужный мне ключ от Wi-Fi, я не мог вспомнить. Да и в разных версиях Windows эта процедура выглядит по-разному. В итоге я провозился минут 10-20, чтобы достичь нужной мне цели.
Эта ситуация добавила мне навыков и сподвигла к написанию данной утилиты, и поверьте мне, она не раз еще спасала меня и моих учеников. На этом моменте давайте вернемся к изначально поставленному вопросу о законности: Если вам предоставили доступ к компьютеру, то к вам в руки автоматически попадают и все его настройки. Как уже можно догадаться, все ключи и пароли можно посмотреть в настройках примерно тут:
Но здесь есть одно жирное "но"! Как я уже упоминал ранее, на разных версиях расположение настроек визуально отличается, и можно потерять уйму времени, ковыряясь в них.
Благо на этот случай есть более профессиональный способ найти всё через консоль.
- win+R
- Oткрыть: cmd
- Дале в терминал вбиваем следующую команду:
netsh wlan show profiles
- Копируем интересующий нас профиль
- Дополняем команду следующими аргументами:
netsh wlan show profile имя_профиля key=clear
После ввода этих двух команд вы получите примерно такую картину:
Вот мы и подобрались к вешенки на торте.
Согласитесь, во втором примере всё-таки нужно помнить название утилиты и её аргументы. Вдобавок, профилей может быть несколько, и что, теперь каждый перебирать вручную?
На самом деле проще будет создать один раз простой скрипт на Python. В принципе, так я и сделал.
Актуальный исходный код можно посмотреть на github, а сейчас давайте разберем основу.
В Python есть встроенная библиотека subprocess. Первым делом мы её и импортируем. Эта библиотека позволяет запускать команды командной строки.
Далее в конструкции try - except пробуем уже знакомыми нам командами собрать профили и получить от них пароли, попутно отфильтровав ненужную нам информацию. Исключение выдаст ошибку, если не найдёт ни одного профиля. Вот и вся магия.
Чтобы данный код работал на других машинах, где не предустановлен Python, я его скомпилировал и исполняемый файл любезно предоставил в моём телеграмм-канале: Ссылка
Заключение
В ускорении получения нужной нам информации нет ничего противозаконного. Сам код работает таким образом, что при желании системного администратора утилита не будет срабатывать, да и в серьёзных организациях Wi-Fi и так под запретом.
При этом утилита, как показывает практика, не раз сможет облегчить ситуацию там, где это возможно!