• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Программирование для ИБ

Статья Создание ярлыков приложений и ресурсов в Интернет с помощью Python в ОС Windows

  • 3 778
  • 0
Не особенно часто, но иногда требуется создать ярлык для запуска приложения в операционной системе Windows. То есть, файл, который служит указателем на некий объект (программу, файл или команду). Наиболее частым местом для создания ярлыков служит «Рабочий стол». Давайте создадим ярлык для приложения или ссылки на «Рабочем столе» с помощью Python.

000.jpg

Ярлыки бывают нескольких типов, а соответственно имеют различные расширения. Например: ярлык, ссылающийся на ресурс в сети Интернет, имеет расширение «.url»; ярлык, привязанный к программе DOS, имеет расширение «.pif». А вот ярлыки, которые привязаны к файлу или каталогу уже являются бинарными файлами имеющими расширение «.lnk». В рамках данной статьи ярлыки имеющие привязку к программам DOS мы создавать не будем, да это и не требуется в нынешних реалиях. Рассмотрим создание ярлыков имеющих расширение «.url» и расширение «.lnk».

Что понадобиться?...

mypy: основы и немного больше

  • 6 437
  • 0
Статический анализатор типов mypy предотвращает значительное количество возможных ошибок в коде на языке программирования Python. Главная его цель – предоставить возможность писать более надежный и легко поддерживаемый код.

mypy.png

Python:
def greet(name: str) -> str:
    return f"Hello, {name}!"

def add_numbers(x: int, y: int) -> int:
    return x + y

def get_length(s: str) -> int:
    return len(s)

def is_even(n: int) -> bool:
    return n % 2 == 0

Выше приведены простые примеры аннотаций типов функций. После имени аргумента через двоеточие указывается тип аргумента, а через стрелку после аргументов функции указывается тип возвращаемого значения.
Чтобы установить и протестировать mypy требуется сделать следующее:
  1. Устанавливаем mypy командой pip install mypy;
  2. Сохраняем код в файл, для примера, в mpy.py;
  3. Выполняем команду mypy...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 04: ОС Windows и сторонние модули

  • 4 393
  • 0
Что ж, если в трех предыдущих статьях (раз, два, три) мы узнавали информацию об операционной системе с помощью python и библиотек, которые не требуют установки, это: winreg – работа с реестром Windows; subprocess.check_out – запускали утилиту командной строки wmic и парсили ее вывод; wmi – работа с инструментарием управления Windows, то сегодня давайте попробуем использовать сторонние библиотеки для этих целей. Также, как и в предыдущих статьях сравним скорость работы. И, думаю, что подведем некий итог по сбору информации об операционной системе и железе компьютера. Попробуем скомбинировать способы получения информации. Возьмем из каждого способа тот параметр, который недоступен в других и объединим это все в один. После чего, посмотрим на скорость работы объединенного способа.

000.jpg

Что потребуется?

Так как данный скрипт подразумевает в своей работе установку сторонних библиотек, то потребуется установить их довольно много. Ну как много, давайте их все перечислим: pywin32 – с помощью данной библиотеки мы будем получать информацию о материнской плате; py-cpuinfo – эта библиотека позволяет получить подробную информацию о процессоре; GPUtil – библиотека, которая предназначена для получения информации о видеокарте; psutil – это довольно известная библиотека, с помощью которой можно получить множество различной информации о системе, в нашем же случае мы будем получать информацию о HDD/SSD, а также CD/DVD-ROM и сетевых интерфейсах; python-docx – с помощью данной библиотеки мы будем сохранять отчет в документ Microsoft Word.

Статья Отключение от интернета машин в локальной сети с помощью Python

  • 4 463
  • 1
Какое-то время назад я экспериментировал с ARP-спуфингом и обнаружил побочный эффект, который, в общем-то не является секретным, а вполне закономерным, если забыть включить на атакующей машине ip-форвардинг. На атакуемой машине пропадает сеть. Тогда я на это не обратил внимания, но совсем недавно наткнулся на любопытный скрипт, который отключает интернет в локальной сети именно с помощью ARP-спуфинга. Тогда я и вспомнил, что наблюдал это ранее. Давайте попробуем реализовать простой скрипт для воспроизведения этого эффекта с помощью Python.

net.jpg

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

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

Статья Способы получения информации об ОС и железе с помощью Python. Часть 03: ОС Windows и WMI

  • 4 646
  • 0
Эта статья является продолжением двух предыдущих статей: раз, два о способах получения информации об операционной системе и железе компьютера с помощью стандартных модулей Python. И если в первых двух статьях были рассмотрены такие модули как: winreg, для получения информации из реестра; subprocess.check_out для получения вывода консольной утилиты wmic, то здесь мы рассмотрим еще один модуль из стандартных библиотек – wmi.

000.jpg

WMI – это инструментарий управления Windows. Сам по себе инструментарий, это расширенная и адаптированная под Windows технология WBEM. В основе данной технологии лежит идея создания...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 02: ОС Windows и subprocess. Консольная утилита wmic

  • 3 998
  • 10
Эта статья является второй частью, из небольшого цикла статей по получению информации об операционной системе и железе. И если в первой части мы получали информацию из реестра ОС Windows с помощью библиотеки winreg, то в этой статье посмотрим, как можно использовать библиотеку subprocess, в частности метод check_output. Именно с помощью данной библиотеки мы будем выполнять команды в операционной системе и с помощью утилиты wmic получать необходимые данные.

000.png

WMIC, это программа командной строки, которая представляет более удобный интерфейс для инструментария управления Windows, то есть WMI. Она основана на псевдонимах, которые упрощают использование и чтение WMI. Помимо этого, с помощью параметра CLASS можно использовать явный ввод класса схемы WMI без использования...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 01: ОС Windows и модуль winreg

  • 5 658
  • 0
Определение оборудования компьютера, на котором вы работаете, сведения об операционной системе и прочие параметры порою бывают очень нужны. Цели, в которых их можно использовать – самые разнообразные. От простого любопытства, до определения версии чипсета, чтобы подобрать под него необходимое железо для апгрейда. И мы все, за годы использования привыкли пользоваться программами сторонних производителей. Это и не хорошо, и не плохо. Каждый инструмент выполняет свою задачу в нужное время и в нужном месте. Но, для большего понимания того, как и откуда берется информация, в те же самые программы, можно написать свое собственное, небольшое консольное приложение на Python. Давайте рассмотрим несколько вариантов того, как и с помощью каких модулей это можно сделать. А также попробуем оценить быстродействие получившихся скриптов, количество выводимой информации.

000.jpg

А начнем мы написание наших скриптов с попытки получения...

Статья Объединение документов формата Microsoft Word в один с помощью Python

  • 4 635
  • 0
Не могу сказать за всех, а у меня иногда возникает необходимость в объединении нескольких файлов формата «.docx» в один документ. И зачастую это приходиться делать вручную, что занимает довольно много времени, так как большая его часть уходит на открытие документа, копирование и вставку в объединенный документ. Чтобы ускорить данный процесс я попробовал написать небольшой скрипт на Python, который делает все указанные операции в автоматическом режиме.

000.jpg

Первым делом, при решении данной задачи приходит на ум использование библиотеки python-docx. И да, она может помочь решить задачу частично. То есть, если ваши потребности невелики, а документ не содержит картинок и таблиц, то можно воспользоваться решением на основе данной библиотеки. Конечно же, нельзя сказать, что с ее помощью нельзя перенести документ полностью. Однако, здесь потребуется написать отдельный модуль для анализа содержимого документа, который будет определять, какой тип блоков присутствует и на основе этого формировать новый документ. Этого мы делать не будем, так как есть несколько более простое решение. Но, для полноты картины давайте рассмотрим, как можно объединить текст в нескольких документах с помощью python-docx.

Статья Определение технологий используемых сайтом с помощью Wappalyzer и Python

  • 3 187
  • 2
Иногда, при исследовании сайта необходимо знать, какие технологии использовались при его разработке, а также используются в данный момент. Инструментов, которые предоставляют такой функционал не так уж и много. Одним из популярных решений является Wappalyzer. Посмотрим, как можно использовать данный инструмент при определении технологий с помощью Python.

000.jpeg

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

Статья Работа с форматом CSV с помощью Python

  • 8 601
  • 1
О формате CSV, а также о том, как работать с ним с помощью Python существует большое множество статей. И, казалось бы, что такого сложного в том, чтобы прочитать или записать данный формат. Однако, вспоминая себя и то время, когда я только начал изучать Python я хорошо помню некоторое недопонимание этого вопроса. Может быть, поэтому я решил написать эту небольшую статью. Конечно же, рассмотреть все тонкости и нюансы думаю, что не получиться, но вот базовые операции с данным типом файлов я постараюсь описать.

000.jpg

Давайте начнем с определения формата. Что же такое CSV-файл? CSV – это аббревиатура. В более развернутом варианте звучит это так - Comma-Separated Values, то есть, значения, разделенные запятыми. Данный формат был разработан для представления табличных данных. Таким образом, каждая строка таблицы соответствует строке текста. В такой строке содержится одно или несколько полей, которые разделены запятыми.

Данный формат...