Купить этот выпуск:

590 руб

один раз и навсегда

Также ты можешь подписаться на «Хакер», чтобы читать эти и любые другие материалы

Python для хакера

Изучаем Python на практических примерах

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

В подборку вошли двадцать статей, разбитые на пять разделов. Первый из них расскажет об азах языка. Серия статей Ивана Сараева «Python с абсолютного нуля» объясняет самые базовые концепции программирования: переменные, циклы, функции, типы данных и тому подобные вещи. А в статье «Пять простых примеров, которые сподвигнут тебя изучить Python» перечислены короткие, но очень мощные примеры использования языка.

В следующих частях подборки мы реализуем реальные проекты, по большей части имеющие прямое отношение к информационной безопасности. Имей в виду: перейти к ним сразу после освоения основ может быть непросто, тебе будут попадаться незнакомые конструкции. Мы в «Хакере» считаем, что учиться на практике всегда веселее, но, если ты запасешься парой справочников или возьмешь за правило выяснять все подробности в официальной документации, это поможет впитывать знания эффективнее.

Итак, начинаем с простых проектов: ты научишься собирать информацию о системе, напишешь своего бота для Telegram (или, как вариант, одного из пяти, описанных в другой статье), простейший вирус и обратный шелл.

Вторая практическая часть посложнее. Мы напишем (полностью безопасный!) троян, научимся делать запросы к облачным антивирусам, использовать нейросети для распознавания образов, автоматизировать поиск эксплоитов, осуществлять ARP- и DNS-спуфинг и работать со сложными веб-формами.

В разделе «Продвинутый уровень» мы собрали еще более крутые проекты. Здесь мы расскажем, как анализировать малварь при помощи Python, автоматизировать атаки в Burp Suite, атаковать сети Wi-Fi, бороться с брутфорсом и писать на Python для микроконтроллеров.

И наконец, в последнем разделе мы рассматриваем продвинутые фичи самого Python. Поговорим об отличиях Python 3 от Python 2, научимся делать структуры данных по всем правилам Python, рассмотрим асинхронные возможности Python 3, померяем скорость работы приложения профилировщиком и обсудим, какие есть виды интерпретаторов Python. Скучать не придется!

Содержание
(Подписчикам доступно 25 статей)

Первые шаги в Python

Python с нуля, урок 1

Учимся кодить без скучных книжек

Чтобы ломать, много ума не надо: можно качнуть Kali Linux, юзать готовые программки, копипастить код с форумов и вслепую качать скрипты с GitHub. Но потолок хакера, пока он не научится писать и понимать код, будет низким. В этой статье я попытаюсь в доступной форме научить тебя основам. Начинаем с абсолютного нуля!

Python с нуля, урок 2

Учимся работать со строками, файлами и интернетом

Однажды крокодилу Гене и Чебурашке поручили написать сочинение на тему «Как я провел лето». Все лето друзья пили пиво, и наивный Гена так и написал, поэтому Чебурашке пришлось заменить некоторые слова. А поскольку Чебурашка был кодером на Питоне, то сделал он это при помощи строковой функции...

Python с нуля, урок 3

Работаем с ОС, изучаем регулярные выражения и функции

Сегодня мы поработаем с файловой системой ОС, освоим могущественные заклинания под названием «регулярные выражения», изучим тонкости создания и вызова функций и под конец напишем простенький сканер SQL-уязвимостей. И всё это в одном недлинном уроке!

Пять простых примеров

Примеры, которые сподвигнут тебя изучить Python

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

Практика. Легкий уровень

Разведка змеем

Собираем информацию о системе с помощью Python

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

Телеграфирует робот

Пишем бота для Telegram на Python

В начале лета у мессенджера Telegram, созданного командой основателя «Вконтакте» Павла Дурова, появился программный интерфейс для разработки ботов. Неплохой повод для экспериментов с диалоговыми интерфейсами!

Питоном по телеграму!

Пишем пять простых Telegram-ботов на Python

В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.

Ядовитый питон

Пишем на Python простейшую малварь: локер, шифровальщик и вирус

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

Reverse shell на Python

Осваиваем навыки работы с сетью на Python на примере обратного шелла

Необходимость передавать сообщения между двумя компьютерами, подключенными к сети, встречается не только при разработке приложений, но и при пентесте или участии в CTF. Проникнув на чужую машину, мы как-то должны передавать ей команды. Именно для этого нужен reverse shell, или «обратный шелл», который мы сейчас и напишем.

Практика. Средний уровень

Идеальная форма

Обрабатываем сложные формы на Python с помощью WTForms

Обработка HTML-форм в веб-приложениях — несложная задача. Проблемы начинаются, когда форма разрастается: нужно следить за полями, их ID, атрибутами name, корректно маппить атрибуты на бэкенде при генерации и процессинге данных... Разработка превращается в постоянную рутину. Однако есть способы сделать работу с формами удобной.

Крадущийся питон

Создаем простейший троян на Python

В этой статье я расскажу, как написать на Python простейший троян с удаленным доступом, а для большей скрытности мы встроим его в игру. Даже если ты не знаешь Python, ты сможешь лучше понять, как устроены такие вредоносы, и поупражняться в программировании.

Тотальная проверка

Используем API VirusTotal в своих проектах

Ты наверняка не раз пользовался услугами сайта virustotal.com, чтобы проверить, не содержат ли бинарники вредоносных функций, либо протестировать собственные наработки. У этого сервиса есть бесплатный API, работу с которым на Python мы и разберем в этой статье.

YOLO!

Используем нейросеть, чтобы следить за людьми и разгадывать капчу

You only look once, или YOLO, — эффективный алгоритм, который позволяет выделять объекты на изображении. В этой статье мы используем его, чтобы написать на Python программу для определения числа людей в помещении, а по дороге опробуем его в разгадывании капчи.

Ищем эксплоиты

Сканим уязвимые серверы и автоматизируем пентест с помощью Python

Проект Vulners за пару лет превратился из агрегатора данных о багах в довольно популярный инструмент пентестера. Это уже полноценный тулкит для поиска эксплоитов, API для Python, плагины для Burp Suite и Chrome, серверный агент. Vulners удобно встраивается в сценарии атак, на нем пишут сканеры уязвимостей. В этой статье мы посмотрим, что может предложить Vulners, а также научимся использовать всю мощь его Python API в повседневных задачах.

Scapy для начинающих

Укрощаем строптивого змея

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

Практика. Продвинутый уровень

Малварь на просвет

Используем Python для динамического анализа вредоносного кода

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

Шаг за шагом

Автоматизируем многоходовые атаки в Burp Suite

При атаке на веб-приложение иногда нужно составлять цепочки действий: перебор паролей, подбор второго фактора аутентификации, переиспользование ресурсов. Для этого есть разные инструменты. Какой выбрать, если, например, нужно тысячи раз выполнять HTTP-запросы внутри одной сессии? Я выберу Burp Suite, и вот почему.

Это не перебор!

Пишем утилиту для взлома Wi-Fi на Python

Бывает, что возникает необходимость подключиться к Wi-Fi, не зная пароль, — скажем, когда ты сидишь в кафе и стесняешься спросить его или, например, когда тебя наняли, чтобы провести пентест сети организации. Технология WPS уже давно помогает хакерам и в том и в другом. В этой статье мы посмотрим, как самостоятельно реализовать атаку, основанную на слабостях алгоритмов генерации WPS PIN.

Python для микроконтроллеров

Учимся программировать одноплатные компьютеры на языке высокого уровня

Шутники говорят, что после трудового дня за компьютером типичный программист едет домой, садится за ПК и таким образом отдыхает. А ведь истина на самом деле куда ужаснее этой шутки: многие из нас, приходя с работы, посвящают оставшееся до сна время... программированию микроконтроллеров. :) Обывателям не понять, но Arduino, Teensy или ESP — действительно очень неплохое хобби. Их единственный недостаток — необходимость программировать на достаточно низком уровне, если не на Assembler, то на Arduino C или Lua. Но теперь в списке ЯП для микроконтроллеров появился Python. Точнее, MicroPython. В этой статье я постараюсь максимально продемонстрировать его возможности.

Python’ом по брутфорсу

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

Большинство пользователей до сих пор ставят себе на аккаунты простые пароли — комбинации даты рождения, имени любимого футболиста, клички питомца, не подозревая, что вся эта информация находится в открытом доступе. Используя ее, брутфорсер может значительно облегчить себе задачу угона аккаунтов. Чтобы этому противодействовать, вводят антибрутфорс (АБФ). Как работает АБФ, как вычислить взломщика-брутфорсера, кластеризовать его вредоносные запросы и пресечь их расскажем в этой статье. Использовать будем Python.

Интересное о Python

Переходим на Python 3

Как попрощаться с Python 2.7 и кодить дальше

В этом году анонсирован последний выпуск Python 2.7, после чего Python Software Foundation перестанет поддерживать ветку 2.7. Множество популярных библиотек и фреймворков тоже прекращают официальную поддержку Python 2, а целый ряд дистрибутивов Linux уже не включают его в набор пакетов по умолчанию.

Python по всем правилам

Делаем свою структуру данных совместимой с фичами Python

Если ты пишешь на Python, то наверняка видел в стандартных библиотеках определения методов, обернутых в двойные подчеркивания. Эти «магические» методы образуют многие из полезных интерфейсов, которыми ты постоянно пользуешься, — например, когда получаешь значение по номеру элемента или выводишь что-то через print. Сейчас я покажу, как эти методы использовать и в своих программах.

Async/await

Асинхронные возможности в Python 3+

16 марта 2014 года произошло событие, которое привело к довольно бодрым холиварам, — вышел Python 3.4, а вместе с ним и своя внутренняя реализация event loop’а, которую окрестили asyncio. Идея была такая: чтобы не зависеть от внешних реализаций отлова неблокирующих событий на сокетах, надо встроить ее в сам язык! Давай посмотрим, что в итоге получилось.

Профилировщики для Python

Измеряем скорость выполнения наших приложений

В прошлой статье («Python на стероидах», 198-й номер) мы поговорили о профилировании Python-приложений. Судя по полученному фидбэку, тема оказалась интересной, и, выходит, теперь, когда мы уже попробовали все на практике, настало время познакомиться с теорией :). В этой статье я постараюсь рассказать о том, что вообще такое производительность ПО, как и зачем ее измерять, и закончу тему с профилированием. В следующий раз мы углубимся в тему тестирования производительности ПО в теории и на практике.

Разборки в террариуме

Изучаем виды интерпретаторов Python

Сам по себе Python, несомненно, является языком программирования. Но многие ошибочно считают, что Python — это всегда та самая штука, которая идет в комплекте с большинством *nix-систем и запускается, если набрать python в консоли. А как же оно на самом деле?