МЕНЮ

Программирование на Python для сетевых инженеров и безопасниковЕщё каких-то 2-3 года назад начинающим специалистам по безопасности можно было вполне ограничиться знанием законодательной базы, наличием вышки (причём не обязательно даже технической) и имея за плечами какой-никакой опыт взаимодействия с компьютером на уровне пользователя претендовать на место в серьёзной компании. Однако сегодня, живя в послепандемийной реальности, в которой работодатели избалованы претендентами, прошедшими 100500 онлайн-курсов на всевозможных learning-платформах, подобная база у соискателя вызовет лишь насмешку. Но, что спрашивается делать тем, кто последнее время только и вкладывал силы в получение заветной корочки в ВУЗе и зубрёжку законов? Какой скилл следует прокачать, чтобы иметь возможность метить на место с зарплатой в несколько тысяч долларов?

Zip File, мамкины хаЦкеры, с вами Денчик и сегодня мы разберёмся с тем, какой главный навык необходим современным сетевым инженерам и безопасникам для того, чтобы получая официально огромную гору бабла, сидеть и пердеть в мягком офисном кресле.

Речь идёт конечно о навыках системного программирования на языке Python. Т.к. порог вхождения в Питон сейчас максимально низкий, а выхлоп из этой истории можно получить сравнимый со стоимостью подпрыгнувших акций Теслы в прошлом году.

Вводный выпуск про основы написания кода на Python я уже делал. Если ещё не видели, то обязательно посмотрите. Для начинающих – это будет даже покручу волшебной таблетки старины Морфиуса. 

Ну а сегодня мы более детально погрузимся в тему и подробно поговорим о наиболее популярном менеджере установки пакетов PIP, затронем небезызвестный nmap.

А также разберём пару вспомогательных библиотек, позволяющих плотно взаимодействовать с WiFi устройствами. Так что, если вы любите программирование, вардрайвинг и не прочь отлично провести ближайшие пол часа. Устраивайтесь по удобней, наливайте себе питьё по забористее, и будем начинать.

PIP

Окей. Перво-наперво, давайте разберёмся с тем, что же скрывается под загадочной аббревиатурой pip. Говоря простым языком, pip - это штука позволяющая ставить на ваш интерпретатор внешние зависимости из ПайПай. 

Эта история становится актуальна в случае, когда стандартного функционала Python, в частности имеющихся в нём библиотек становится недостаточно для реализации ваших задач.

В этом случае нам на помощь приходят сторонние модули, написанные частными разработчиками или целыми сообществами разработчиков на чистом Питоне.

Т.е. если вы вдруг захотите поделиться с миром скриптами, написанными в рамках домашней работы к предыдущему видео из цикла «Информационная безопасность с нуля до Джуна», вам нужно просто опубликовать это дело в Python Packege Index.

И тогда, любой желающий, запустив соответствующую команду для установки пакета активирует цепочку действий, первым шагом в которой Python найдёт в базе ПайПай нужную библиотеку, скачает и импортирует в состав интерпретатора.

Помимо команд для установки и удаления вам ещё пригодится непосредственно ознакомиться с полным списком пакетов или уточнить установлен ли какой-то конкретно.

Также очень важно помнить об установке зависимостей. Все они записываются в файл текстовый файл requirements и при необходимости докачиваются из сети.

Кстати, если вы параноите по поводу безопасности и в рамках вашей работы требуется писать библиотеки, которые будут распространяться только в стенах организации, где вы батрачите на пузатого дядю с 8 до 5, не отчаивайтесь.

Можно поднять локальный аналог ПайПай. Например, тот же Nexus. В нём будут поститься дистрибутивы собранных вами библиотек. Ну а затем при необходимости вы в переменных окружения пропишите этот так называемый экстра-индекс URL и эта история непременно добавится в поиск.

Nmap

Начиная с версии 3.4 пакет PIP, о котором мы ранее говорили по умолчанию ставится вместе с питоном. Причём вместе с ПайПом, хорошим тоном считается ещё и установить виртуальное окружение.

Т.е., по сути, создать отдельную изолированную среду для ваших проектов. Это нужно для того, чтобы каждый проект мог иметь свои собственные зависимости и не зависеть от других наработок. 

Рабочую команду для установки в системе Ubuntu Linux вы сейчас видите около моей стрёмной физиономии. Вообще если вы ещё сидите на Винде, но пытаетесь замахиваться на программирование, то настоятельно рекомендую озаботиться вопросом освоения Unix-подобной ОСи.

Сам я сижу на MacOS, но это лишь потому, что у меня в кои то веки появилось бабло и мне нравится бороться с головняками и подбирать костыли. Это нехило так развивает.

Но большинству из вас больше подойдёт старушка Ubuntu. С ней никогда не будет проблем, она достаточно проста в освоении и все команды, зависимости и прочие вещи для неё гуглятся на раз два. 

Так вот, возвращаясь к Nmap. Для того, чтобы установить данную библиотеку для сканирования уязвимостей в сетях вам понадобится активировать виртуальное окружение. 

Без этого, команда аля pip3 install python3-nmap попросту не сработает. Т.к. терминал не понимает, что нужно помимо стандартный команд воспринимать ещё и команды, связанные с Пипом.

Для того, чтобы исправить данную ситуацию необходимо ввести source, затем указать путь к папке виртуального окружения, по умолчанию это Venv, после имени каталога через слеш пишем bin/activate.

Крайний файл как раз и является скриптом, активирующим виртуальное окружение. И вот только после всех этих танцев с бубном вы уже можете непосредственно установить утилиту Nmap.

С её помощью вы можем получить информацию о том, по каким портам ломятся клиенты, какой у них MAC, IP и прочие весьма и весьма полезные данные.

В качестве примера предлагаю вам рассмотреть простенький Python-скрипт для SYN-сканирования. Для этого потребуется запустить параллельно ещё одну виртуальную машину. В идеале, какую-нибудь песочницу типа Metasploitable.

Теперь по скрипту. В первой строчке мы импортируем (т.е. подключаем) модуль, затем создаём объект, и ниже обозначаем параметры для переменной result в которую запишется результат.

Если вам лень поднимать виртуалку, можете в обучающих целях вместо IPшника тачки прописать скажем google.com или yandex.ru. Кстати, очень важный нюанс. Скрипт нужно обязательно выполнять от имени суперпользователя.

После того, как он у нас отработает можно ввести print result и посмотреть результат нашего чудо-запроса. Он будет выглядеть плюс-минус следующим образом.

Как видим в данной переменной содержится словарь. О том, что такой словарь мы с вами уже говорили в одном из прошлых уроков, так что, если не вдупляете о чём речь, переходим по всплывшей подсказке и лицезреем видосик.

В словаре можно индивидуально обращаться к каждому его полю. Но как правило, всё что волнует мамкиных безопасников это конечно открытость портов, по которым теоретически можно провести какую-либо атаку.

Так что вот вам в качестве бонуса простенький цикл, применив который вы получите из словаря список всех открытых портов. Учить все порты наизусть от вас, разумеется, никто не требует, но основные знать всё же надо.

Так, если речь заходит о сервере, то в нём HTTP запросы обслуживаются 80 портом, а HTTPs 443-им. HTTP гоняет незашифрованный трафик, а HTTPs - соответственно зашифрованный.

Т.е. если на сайте или в приложении есть форма приёма оплаты, в которой банковская операция происходит без шифрования – вы как безопасник должны отвесить разработчику от души хорошую оплеуху и указать на этот косяк.

Вообще видов сканирования в Nmap’е довольно много. С их помощью можно определять подсети, узнавать версию ОС, сканировать отдельные диапазоны портов, которые относятся только к определённому протоколу.

Короче, если есть время – обязательно поковыряйте эту историю на досуге более плотно. Nmap – это прямо мастхэв, как для сетевиков, так и для безопасников. Хочешь – не хочешь, а разобраться придётся.

PyWiFi 

Переходим ко второму Python модулю для работы с сетями. Как понятно из названия, PyWifi ориентирован сугубо на узлы, функционирующие в беспроводной среде.

После установки данного модуля уже знакомой нам командой install, его необходимо подключить в наш скрипт прописав import pywifi и import time. Теперь с ним можно спокойно работать.

Добавим его внутрь скрипта, затем выберем первый беспроводной интерфейс вызвав метод interfaces, и на всякий случай точно убедимся, что выбран правильный инт.

Следующим блоком уже можно дать команду на начало сканирования. Тут есть нюанс. Iface Scan требуется время на получение информации о сетях. Поэтому нужно пару секунд сна, дабы эта инфа обработалась. 

После этого уже можно разобраться с выводом результатов. Сам результат будет представлен в виде ssid’ов сеток с mac-адресами. Можете сами попробовать, если ручки прямые и написать в комментах, какие забавные имена сеток удалось спарсить.

Scapy

Ну и напоследок поговорим о самом интересном Python скрипте, предназначенном ни много ни мало для перехвата трафика. Давайте создадим так называемый sniffer, который: а) Постоянно сканирует канал по умолчанию.

Б) Перехватывает передаваемую информацию. В) Отбрасывает всю мусорную служебную информацию и Г) Выводит перехваченные данные на экран. Звучит в принципе просто.

Ставим сам модуль Scapy и подключаем его в наш скрипт. Далее внутри скриптика задаём имя нужного интерфейса, который будет слушать трафик в округе.

Затем создадим функцию для обработки сетевых пакетов. Как и говорил ранее, первым делом отбросим всю служебную информацию. А затем, если будет найдено что-то стоящее, эта инфа будет выведена нам на экран.

В основной части скрипта укажем функцию для анализа пакетов, время для анализа и количество перехватываемых пакетов. Простенький Сниффер готов. Можете проверять.

Dos-атака

Ну и коль мы затронули Scapy, с моей стороны будет неправильно умолчать о возможности деаутентификации клиента посредством данной утильки. Т.е., по сути, она позволяет провести полноценную Dos-атаку. 

На практике делать этого ни в коем случае конечно же не нужно. Ибо атаковать подобным образом чужие устройства – это наказуемое законом деяние.

Поэтому, все работы должны проводиться исключительно на вашем собственном оборудовании. Да и то, только в том случае, если вы полностью уверены в своих навыках.

Если оборудование есть и руки прямые, тогда задаём в скрипте MAC-адреса точки доступа и клиента, формируем пакет 802.11, готовим его к передаче фрейма для откидки клиента иии… готовимся составлять компанию господину Навальному. 

Окей, друзья. Нынче мы рассмотрели практические аспекты использования языка Python для работы с PIP, Nmap, Scapy и pyWiFi. Очень надеюсь, что вам понравился данный формат и вы узнали для себя что-то полезное.

Дико извиняюсь за то, что не мучаю вас часами унылым окошком ПайЧарма. Хотя понимаю, как подобный высеры лихо заходят аудитории на ютубе. Но у меня с этим связана детская травма.

Я, знаете ли, спал. Спал на абсолютно всех уроках по программированию и мечтал о том, что, когда вырасту и стану большим и сильным, непременно попробую сделать подобные лекции в наименее унылом формате.

А уж получилось у меня или нет – судить только вам. Так что давайте, построже. Напишите в комментах какой я бездарный, криворукий, тупой. С бицепсом больше башки.

И вообще лучше б не лез в блогинг, а ушёл на завод. Нужно ж страну с колен поднимать, а ватник то не надёван. Ладненько. Я чёт к концу съёмочного процесса всегда скатываюсь в какую-то дичь.

Если хотите поддержать канал и помочь с его дальнейшим развитием, то обратите внимание на мои авторские курсы по различным IT направлениям. Так, добрую половину 2022 года мы с внешним специалистом создавали для вас курс по работе с распределённой системой контроля версий GIT.

Наверняка вы слышали о ней сотни раз, но на практике если и взаимодействовали с ней, то очень поверхностно. На самом деле это большая ошибка. Ведь сейчас Git – это прям мастхев тема. 

Представьте себе типичную ситуацию, рубитесь вы в крутую игрушку, доходите до финала, проигрываете и респаунитесь на ближайшей контрольной точке в которой разрабы разрешили засейвиться.

Так вот, программировать без GIT’а в 2022 году, это всё равно, что убрать из игры контрольные точки, и после каждого проигрыша начинать игру заново, а в нашем случае полностью переписывать код с нуля.

Именно поэтому, продвинутые программисты используют специальные система контроля версий. Она страхует вас от ошибок и возвращает код в то состояние, когда всё работало.

Более подробно о данной теме мы можете узнать, изучив мой авторский курс «Git - это просто». Ссылка на него будет в описании под этим видосом, а также в качестве бонуса, всем досмотревшим, ловите скидочный промокод на 15%. Введёте его при покупке и сэкономите себе на пару бутылок живительной жидкости.

Ну а с вами, как обычно, был Денчик. В заключении, по традиции, желаю всем удачи, успеха и самое главное, отличного настроения. Берегите себя и своих близких, развивайте полезные навыки позволяющие зарабатывать больше бабла, прокачивайте свой мозг изучая новые языки программирования.

И главное, помните мудрость троллей из нижнего интернета. Следить за политикой — дело кандомов. Не тратьте зря время. Освойте Питона. До встречи в домашнем задании к данному видео, мои кайфные друже. Всем пока.

Не можешь понять, куда делись видео по взломам и хакингу? Они переехали в наш уютный паблик в телеге

telegram chanel

Хочешь больше контента? Подписывайся на YouTube-канал!

Курс «Диплом за неделю»

Пособие «Библия вардрайвинга»

Курс Cisco «CCNA: Introduction to Networks»

© 2022. IT-спец. Денис Курец.