23 декабря 2020

🕵 Python для этичного хакинга: изучаем основы

Telegram: @vladared
Базовые знания языка программирования Python нужны этичным хакерам для работы со множеством инструментов и написания своих. Наша статья будет полезна и разработчикам, которые хотят усилить безопасность своего кода.
🕵 Python для этичного хакинга: изучаем основы

Почему язык программирования Python хорош для работы в кибербезопасности?

  • Знания этого языка программирования позволяют понимать, как работают инструменты на Питоне, и как их использовать по полной.
  • Python легко выучить.
  • Обширное комьюнити с большой вероятностью поможет разрешить почти любой вопрос.
  • Доступно очень много бесплатных библиотек для Python.
  • Можно отказаться от некоторых платных инструментов – их функциональность нетрудно реализовать на Питоне самостоятельно.

В материале собраны различные тулзы и обучающие материалы, которые помогут начать оптимизировать свою работу с помощью языка программирования Python.

Исследование сетей с Python

1. Можно написать собственный несложный сканер, который будет проверять открытые порты. Цель такой программы: подключиться к сайту, серверу или интернету вещей через выбранные порты.

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

Здесь подробнее описывается практическое решения в коде.

2. Простой сканер сети можно запустить с помощью библиотеки scapy, который будет исследовать сеть через ARP-запросы.

3. Расширяем возможности Nmap.

Nmap (или Network Mapper) – это сканер компьютерных сетей, также он анализирует уязвимости. После его работы вы получаете карту с данными о хостах и сервисах конкретной сети.

Чтобы работать с Nmap с помощью языка программирования Python, нужно сначала загрузить на компьютер саму программу, а потом импортировать модуль «nmap» в ваш блокнот. Подробные примеры с кодом можно изучить в этой книге: Beginning ethical hacking with Python.

Веб-приложения

Для взаимодействия с веб-сервисами с помощью Питона используется библиотека urllib2.

1. Поиск незащищенных файлов на распространенных CMS-платформах.

2. Для более сложных систем вроде кастомного веб-приложения или большого онлайн магазина лучше подойдет брутфорс-атака на каталоги и возможные расположения файлов. С помощью Python вы будете перебирать все известные названия файлов и местонахождения файлов.

3. Также можно брутфорсить формы аутентификации.

4. Расширение возможностей Burp Suite (ознакомиться с этим инструментов и скачать его можно на PortSwigger). Используя язык программирования Python, в интерфейс Burp можно добавлять новые панели и автоматизировать некоторые задачи.

Например: перехваченный от Burp Proxy HTTP-запрос можно будет использовать как базу для создания фаззера в режиме мутации, которые можно запустить в Burp Intruder. Или: с помощью Microsoft Bing API (поможет найти все сайты, привязанные к конкретному IP) показать все виртуальные хосты, расположенные по тому же IP-адресу, что и сайт-мишень + все субдомены.

Подробнее с примерами кода – в Black Hat Python.

SQL-инъекции

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

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

В этом туториале рассматривается, как с помощью библиотеки Beautiful Soup распознать, есть ли в приложении уязвимость к SQL-инъекциям.

🕵 Python для этичного хакинга: изучаем основы

Троянские задачи на Windows

1. Кейлогер с библиотекой PyHook позволяет фиксировать все действия с клавиатурой. Более того, есть возможность идентифицировать, какие процессы работают, когда пользователь нажимает клавиши. Например, можно понять, когда вводится никнейм, пароли или другая полезная информация.

2. Создаем скриншоты экрана вашей мишени. Для этого потребуется установка пакета PyWin32, который позволит делать нативные запросы в Windows API для захвата всего экрана устройства.

3. Определяем песочницу антивирусника, чтобы случайно в нее не попасться. Простая программа на Питоне позволит понять, запущен ли ваш троян в песочнице. Она отследит, когда пользователь последний раз взаимодействовал с антивирусом, и соотнесет с тем, как долго тот был запущен.

Подробнее с примерами кода – в Black Hat Python.

Форензика с Python

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

Для этой задачи есть Python-фреймворк Volatility (скачать можно здесь). Он активно используется специалистами по реагированию, судебными экспертами и аналитиками вредоносного ПО для задач, вроде проверки объектов ядра, изучения и сброса процессов. Также Volatility применяют атакующие специалисты, чтобы усложнить процесс расследования совершенных ими нарушений.

Повышение привилегий в Windows

С языком программирования Python можно, например, создать простую программу для мониторинга процессов с WMI API; автоматически получить необходимые привилегии на процессы, которые вы отслеживаете; автоматически вставлять код в файлы-мишени.

Подробнее с примерами кода – в Black Hat Python.

Криптография

Шифровать и расшифровывать текст можно и вручную. Python используется как один из инструментов для ускорения этого процесса.

Чтобы зашифровать определенный текст, например, с помощью шифра Цезаря, на Python есть модуль pyperclip, который вам в этом поможет.

Расшифровка происходит тоже с этим модулем. Поскольку в Цезаре ограниченное количество ключей (26), программа просто перебирает возможные варианты. Уже среди выдачи вы легко сможете определить ключ – напротив него будет понятный текст на английском, а не набор букв.

Конечно, язык программирования Python позволяет зашифровывать и расшифровывать и гораздо более сложные шифры.

Подробнее в книге: Hacking Secret Ciphers with Python. Все очень понятно объясняется и про криптографию, и про Python. Подойдет для новичков. От самых простых шифров к самым сложным с практическими примерами шифрования и расшифровки.

Brute-force атака

Когда у вас есть хешированный пароль и файл со всеми возможными паролями, Python поможет быстро найти пароль, который соответствует хешу (или его отсутствие в файле).

🕵 Python для этичного хакинга: изучаем основы

Сбор данных о мишени

1. Существует очень много инструментов (например, xinit) для получения информации об IP и номере телефона, но с парой библиотек Python вы можете это сделать самостоятельно.

2. Модуль BeautifulSoup извлекает информацию из HTML и XML-файлов. Например, он он может достать все ссылки на странице. Здесь инструкция, как собрать все внутренние и внешние ссылки с веб-страницы и со всего сайта, а библиотека request-html извлечет со страницы все e-mail. Подробнее в туториале.

3. Часто пентестерам нужно собрать и исследовать на уязвимости все субдомены конкретного сайта. С помощью библиотеки requests можно значительно ускорить эту задачу, автоматически перебрав все стандартные субдомены. Для этого потребуется загрузить файл с разными вариантами. Желательно, чтобы их было около 10 000 – это увеличит шансы найти существующие субдомены сайта, который вы исследуете.

4. Зная Python, можно расширить возможности поиска по уязвимостям интернета вещей через Shodan API.

5. Можно извлекать метаданные из фотографии (например, GPS, модель камеры, владелец, дата и время снимка) с помощью библиотеки Pillow.

Анонимность

1. Постоянно изменяемый mac-адрес.

Mac-адрес назначается устройству производителем, и его нельзя поменять навсегда. С помощью Python есть возможность поменять mac-адрес на всю сессию работы. Чтобы не обновлять его вручную, Питон позволяет запустить цикл.

2. На Питоне нетрудно создать программку, которая будет отслеживать, собирает ли сайт куки или идентификаторы сеанса. Сниппет можно найти среди шпаргалок для пентестеров.

Что почитать

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

Python for hackers. Автор показывает основные виды атак с помощью Питона, а также объясняет, как их избежать. Описываются базовые принципы безопасного кода: все темы подкреплены практическими примерами на Python.

Black Hat Python. Здесь покрываются темы расследования сетей, атаки веб-приложений и техники повышения привилегий в Windows. В книге вы также найдете домашние задания для саморазвития. Она подойдет как для начинающих – читать всю книгу, так и для программистов с опытом – просмотреть отдельные главы.

Beginning ethical hacking with Python. Несмотря на название в книге мало описывается именно применение языка программирования Python в этичном хакинге. Она больше для новичков и в Питоне, и в кибербезопасности.

Python Pentest Cheat Sheetшпаргалка по Python для пентеста. Есть, например, сниппет для сбора всех ссылок с сайта (с помощью BeautifulSoup), сканирования портов с Nmap, а также программа, которая отслеживает, собирает ли сайт куки или идентификаторы сеанса.

Automate the boring stuff with python. Простые примеры, как Python помогает ускорить обыденные действия, вроде открытия вкладок или поиска адреса на карте. В книге можно найти много решений для применения в пентесте, вроде анализа метаданных файлов или парсинга данных.

***

Как научиться программировать на Python максимально быстро и качественно?

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

На курсе «Основы программирования на Python» с преподавателем вы научитесь:

  • работать в двух интегрированных средах разработки — PyCharm и Jupyter Notebook;
  • парсить веб-страницы;
  • создавать ботов для Telegram и Instagram;
  • работать с данными для различных материалов и дальнейшего анализа;
  • тестировать код.

Плюс положите 5 проектов в портфолио.

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ