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

Статья Эксплуатация python приложений: Инкапсуляция.

  • 3 593
  • 1
link removed

Привет! В то время как другие языки программирования, такие как Java, позволяют программисту создавать приватные переменные и атрибуты, Python в настоящее время не имеет встроенного приватного типа. Эта техника известна как инкапсуляция. В ней вы пытаетесь скрыть информацию в своих классах от пользователей. Инкапсуляция в Python, как и многие функции языка, очень проста в реализации. Вам просто нужно добавить два символа подчеркивания (_) во время объявления переменной. Как я уже говорил в предыдущей статье «Эксплуатация python приложений», лучший способ понять суть эксплуатации - это увидеть, как она происходит.

python-incapsulation-1.png


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

Статья Эксплуатация python приложений: функция input.

  • 4 852
  • 1
link removed

Привет! Эта маленькая статья расскажет об уязвимости в Python приложении. Эта уязвимость заключается в неправильном использовании функции input(). Для тех из вас, кто использует Python версии 3.x, эта уязвимость не относиться. В Python 3 функция raw_input() была удалена, и ее функциональность была перенесена на новую встроенную функцию, известную как input(). В отличие от Python 2.x, которые существуют как с функцией input(), так и с функцией raw_input(). Поэтому эта статья применима только к программам, написанным на Python 2.x.

Функция eval() в Python получает критику за потенциально опасное неправильное использование. Функция eval() оценивает строку текста, которая передается в качестве ее параметра, принимая возможный второй аргумент для глобальных значений, используемых во время оценки. Кроме того, функция input() в Python 2.x это тоже самое, что написать eval(raw_input()). Это делает функцию input() очень опасной.

Лучший способ понять эту уязвимость...

Статья Эксплуатация python приложений: модуль pickle.

  • 4 489
  • 1
Все части

Привет! Если вы программируете на Python, вы, вероятно, знакомы с библиотекой сериализации pickle, которая обеспечивает эффективную двоичную сериализацию и загрузку типов данных Python. Будем надеяться, что вы также знакомы с предупреждением, которое находится в начале документации о pickle. Вот оно:

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

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

Статья Пишем простой кейлогер на C: Заключительная часть (передача дампа по TCP)

  • 5 909
  • 5
Всем доброго времени суток!

В продолжение первой и второй частей сегодня допишем последнее - дешифратор той каши, что у нас получалась на первых этапах.

Сначала объявим адресные пространства, как всегда:

upload_2017-5-25_11-53-46.png


Потом напишем подпрограмму, которая будет принимать наш Base64, декодировать его обратно в AES, а из него уже будем получать "неформатированный" вывод.

Функция расшировки обратна функции шифрования из первой части (входной параметр это string cipherText).

upload_2017-5-25_11-55-37.png


Главное, чтобы совпадали параметры salt, initialVector, keySize и hashAlgorithm.

Далее идут такие строки. Обращаем внимание на последнюю: она конвертирует Base64 в байты:
upload_2017-5-25_13-5-32.png


ибо как мы помним у...

книга GRAY HAT PYTHON с переводом

  • 15 942
  • 17
Попалась такая интересная книга "GRAY HAT PYTHON" по самостоятельному изучению Python в домашних условиях от Justin Seitz, переведенная на русский язык.

Книга направлена на изучения языка Python с точки зрения пентестера. Всем приятного изучения ;)

Статья Python-скрипт Pypayload

  • 3 344
  • 0
Приветствую! В этой небольшой статье я хочу показать небольшой скрипт, написанный на языке Python. Целью его является автоматизация процесса создания полезных нагрузок с помощью Msfvenom.

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

Итак, PyPayload:

upload_2016-12-23_13-51-34.png


Устанавливаем программу:

> git clone https://github.com/ex0dus-0x/pypayload

> cd pypayload

> ls –a

> chmod a+x pypayload.py

upload_2016-12-23_13-52-22.png


Запустим программу:

> su necro (программа не работает от root’a)

> sudo python pypayload.py


На данный момент в программе 16 доступных опций:

· windows/meterpreter/reverse_tcp

· windows/meterpreter/bind_tcp

· windows/meterpreter/reverse_http

· windows/meterpreter/reverse_https

·...

Jarvis. Python Voice Controlled Assistant

  • 8 428
  • 13
Всем привет! В этой статье я покажу, как установить голосового помощника Jarvis на Kali Linux OS.

Для начала устанавливаем, необходимы пакеты:
> apt-get install libasound-dev libjack-jackd2-dev portaudio19-dev python-pyaudio build-essential python-dev libespeak1
upload_2016-12-10_22-32-46.png


Затем скачиваем Jarvis с Github:

> git clone https://github.com/m4n3dw0lf/Jarvis


upload_2016-12-10_22-33-24.png


> cd Jarvis

> pip install -r requirements.txt

upload_2016-12-10_22-33-47.png


После установки всех необходимых зависимостей, запустим Jarvis:

> ./jarvis.py –h

Теперь можно начинать общение :)

Спасибо за внимание.

Python Script MITMAP

  • 5 959
  • 4
Всем привет! В этой стать я хочу вас ознакомить с очередным инструментом для пентестинга. В этот раз, это будет скрипт, написанный на Python под названием MITMAP. По словам разработчиков, его основное назначения – это создание поддельной точки доступа и сниффинг данных из эфира.

Требования:

· Kali Linux / Raspbian с привилегиями root.

· Wi-Fi адаптер и интернет адаптер или 2 Wi-fi карты.

Установим программу:
> git clone https://github.com/xdavidhu/mitmAP
> cd mitmAP
> ls –a
> chmod a+x mitmAP.py
upload_2016-12-10_22-9-34.png


Теперь запустим программу, но делать это необходимо не от root’a а от пользователя, состоящего в группе sudo.

> sudo python3 mitmAP.py


upload_2016-12-10_22-10-2.png


После установки зависимостей, задаем программе настройки в соответствии с выбранным сценарием атаки.

upload_2016-12-10_22-10-23.png


В итоге создастся точка доступа с выбранными вами параметрами, и запустится Wireshark для сбора и анализа...

Ваши программы на Python

  • 31 994
  • 50
В этой теме вы можете размещать свои программы написанные на Python3

Представлю свой калькулятор написанный еще когда я только начал изучать Python3
калькулятор имеет 5 видов действий и ничего экстраординарного )
умножение , деление , сложение , вычитание , степень
скрипт сохранен в качестве раритета ) и не думаю что будет изменятся
Python:
print("Калькулятор")
print("1)Умножение 2)Деление 3)Сложение 4)Вычитание 5)Степень")
choose = int(input("Выберите действие "))
while choose == 1:
    print("Умножение")
    x = int(input("Введите первое число "))
    y = int(input("Введите второе число "))
    z = x * y
    print("Результат", z)
while choose == 2:
    print("Деление")
    x = int(input("Введите первое число "))
    y = int(input("Введите второе число "))
    z = x / y
    print("Результат", z)
while choose == 3:
    print("Сложение")
    x = int(input("Введите первое число "))
    y = int(input("Введите второе число "))
    z = x + y...

Статья Создание Динамических Массивов в C++: Полное Руководство для Разработчиков

  • 83 067
  • 0
Создание динамического массива в языке c#

На днях мне попалась задача, для решения которой требовалось создать динамический массив. Обычно я привык вместо массивов использовать обобщенные списки List<T>, которые по умолчанию являются динамическими. Но, по условию задачи требовалось работать именно с массивом, который не является таковым, поэтому возникла небольшая проблема, решение которой описано в этой статье.

В языке c# под словом массив подразумевается объект с заранее заданным неизменяемым размером. То есть, к примеру, если Вы создали массив, который содержит пять элементов, то увеличить данный размер динамически Вы уже не сможете, так как он является фиксированным. В этом можно легко убедиться, воспользовавшись свойством IsFixedSize.
C#:
int [] numbers = new int [5];
bool fix = numbers.IsFixedSize;  //true
С помощью данного свойства Вы можете определить, имеет ли созданный массив фиксированную длину...