Как опытный разработчик, использующий Python практически во всех областях деятельности, предлагаю Вам обратить внимание на пять лучших библиотек Python, которые можно рекомендовать для пентестеров. Часть из них инструменты, а часть — библиотеки, но сомневаться в том, что они полезны при проведении пентестов не приходится.
Мы кратко рассмотрим, что такое Python, а затем более подробно расскажем почему пентестеры активно используют этот язык программирования, и пройдемся по списку топ-5 библиотек по пентесту.
Итак, что такое Python?
Python — это язык программирования общего назначения, интерпретируемый, объектно-ориентированный, поддерживающий функциональное программирование.
Особое внимание в Python уделяется удобочитаемости кода и разделению блоков кода с отступами, что позволяет быстро создавать проекты. При этом есть и недостаток, свойственный всем интерпретируемым языкам программирования — время выполнения кода больше, по сравнению с компилируемыми языками программирования.
Так почему же пентестеры используют Python?
Он относительно прост по сравнению с другими языками и поддерживается всеми основными платформами: Linux, Mac OS X и Windows. Не говоря уже от том, что он обладает невероятно широким набором встроенных библиотек, что, в свою очередь, уменьшает количество необходимых строк кода. А знаете что в нем самое лучшее? У него очень активное сообщество разработчиков — а это значит, что постоянно создаются тысячи сторонних библиотек, что расширяет встроенную функциональность языка для выполнения практически любой задачи.
Лучшие 5 библиотек Python для пентестеров (и маленький бонус) на мой взгляд:
- Impacket
- Python Nmap (libnmap)
- Scapy / dpkt + pcapy
- Requests / BeautifulSoup
- Mona
- Бонус: socket
Core Impacket
Impacket представляет собой набор классов Python для работы с сетевыми протоколами и обеспечивает низкоуровневый программный доступ к пакетам, а для некоторых протоколов — полную их реализацию.
В чем польза? Он легко взаимодействует с внутреннмими протоколами Windows, такими как SMB, MSSQL, NetBios и DCERPC. Он также отлично подходит для сбора информации о Windows и разработки эксплойтов (он даже поддерживает аутентификацию на основе хэша).
Какие проекты используют эту библиотеку: CrackMapExec, SMBMap, Ranger, Polenum, Pupy, Veil-Framework, PorLa, перечислять можно очень долго…
Скачать можно по ссылке.
Python Nmap
Данная библиотека упрощает программный анализ результатов сканирования Nmap.
В чем польза? Каждый пентестер использует Nmap. Python-Nmap предоставляет простой метод для анализа результатов сканирования и выполнения пользовательских атак на определенные хосты. Стоит упомянуть, что она отлично подходит для импорта результатов Nmap в другие инструменты для создания отчетов.
Какие проекты используют эту библиотеку: удивительно, но мало, однако стоит присмотреться к этой отличной библиотеке!
Скачать можно по ссылке.
Scapy / dpkt + pcapy
Это мощный Python-инструмент для работы с пакетами и библиотеками. Он подделывает/декодирует пакеты большого количества протоколов, позволяет отправлять и захватывать их, сопоставлять запросы и ответы и многое другое.
В чем польза? Программно реализуется функциональность таких инструментов, как Nmap, Wireshark, hping, arpspoof, tcpdump и т.д. Этот инструмент также отлично подходит для атак на нестандартные толстые клиенты и весьма полезен в качестве учебного пособия при изучении сетевых протоколов низкого уровня.
Какие проекты используют эту библиотеку: Pupy, airodump-iv, WiFi-analyzer
Скачать можно по ссылкам: scapy dpkt pcapy
Requests / BeautifulSoup
Requests позволяет программистам легко отправлять запросы HTTP/1.1 без необходимости ручного формирования или кодирования. Кроме того, BeautifulSoup — это библиотека Python для извлечения данных из файлов HTML и XML.
В чем польза? Идеально подходит для создания пользовательских полезных нагрузок и атак на веб-приложения, когда такие инструменты, как Burp, не могут обеспечить простое решение. Также, в сочетании с BeautifulSoup, позволяет быстро выделить важные детали в ответе сервера.
Какие проекты используют эту библиотеку: Reddit, DirSearch, EyeWitness, SQLMap, theHarvester.
Скачать можно по ссылкам: Requests BeautifulSoup
Mona
Mona.py — это плагин для отладчика Immunity Debugger, разработанный Corelan Team. Он помогает в разработке эксплойтов.
В чем польза? Mona упростила такие задачи, как определение смещений, плохих символов, гаджетов ROP и генерацию функционального кода эксплойта.
Какие проекты используют эту библиотеку: Отладчик Immunity Debugger (PyCommander).
Скачать можно по ссылке.
Socket
Низкоуровневая библиотека сетевых интерфейсов, позволяющая системам общаться по сети.
В чем польза? Socket является основой (почти) каждого инструмента, который мы рассмотрели в списке пяти лучших! Это широкоиспользуемая библиотека, на которую опирается множество других инструментов, но её простой (наподобие доступа к файлу) ввод-вывод сильно облегчает создание клиент-серверных приложений.
Какие проекты используют эту библиотеку: не будет преувеличением сказать, что практически все те, что работают с сетевыми интерфейсами, то есть десятки тысяч инструментов полагаются на простой Socket.
Скачать можно по ссылке.
В следующих статьях мы рассмотрим подробное применение перечисленных сегодня инструментов в собственных разработках.