USB Flash [часть 1] – устройство
Предлагаю рассмотреть реализацию интерфейса USB как на уровне архитектуры, так и программную составляющую. Сырая версия 1.0 была опубликована в начале 1996 года, а уже осенью 98-го, мир увидел первую стабильную редакцию v1.1. Однако на практике оказалось, что из шины USB можно выжать намного больший потенциал. Так, в 2000 году была опубликована очередная спецификация USB 2.0, в которой предусмотрено повышение пропускной способности сразу в десятки раз. Это позволило существенно расширить круг подключаемых к шине высоко-скоростных устройств:
📌 Читать далее
#programming #asm #usb
Предлагаю рассмотреть реализацию интерфейса USB как на уровне архитектуры, так и программную составляющую. Сырая версия 1.0 была опубликована в начале 1996 года, а уже осенью 98-го, мир увидел первую стабильную редакцию v1.1. Однако на практике оказалось, что из шины USB можно выжать намного больший потенциал. Так, в 2000 году была опубликована очередная спецификация USB 2.0, в которой предусмотрено повышение пропускной способности сразу в десятки раз. Это позволило существенно расширить круг подключаемых к шине высоко-скоростных устройств:
📌 Читать далее
#programming #asm #usb
Инъекция шеллкода в ELF. Прыгнул я в пустой колодец, чудом уцелел
Привет, киберрекруты! Статья посвящена написанию шеллкода и его внедрения в ELF как через уязвимость, так и с добавлением новой секцией данных. Для того, чтобы проверить работу шеллкода, необходимо создать тест сервер, на котором будет отображаться подключение, а сами пакеты будут ловиться в WireShark.
📌 Читать статью
#asm #reverse #pwn
Привет, киберрекруты! Статья посвящена написанию шеллкода и его внедрения в ELF как через уязвимость, так и с добавлением новой секцией данных. Для того, чтобы проверить работу шеллкода, необходимо создать тест сервер, на котором будет отображаться подключение, а сами пакеты будут ловиться в WireShark.
📌 Читать статью
#asm #reverse #pwn
Windows Shellcoding x86 – поиск Kernel32.dll – часть 1
Доброго времени суток, Codeby. Для человека, который изучал Linux Shellcoding, а потом начал работать в Windows, поверьте мне, это будет намного сложнее, чем вы себе можете это представить. Ядро Windows полностью отличается от ядра Linux. Как уже говорилось, ядро Linux намного легче в понимании, чем ядро Windows, потому что оно имеет открытый исходный код и у него намного меньше свойств по сравнению с ядром Windows. С другой стороны, у Windows было столько вправок и переделывании за последние годы, в результате чего многое изменилось.
📌 Читать далее
#asm #dll #shell
Доброго времени суток, Codeby. Для человека, который изучал Linux Shellcoding, а потом начал работать в Windows, поверьте мне, это будет намного сложнее, чем вы себе можете это представить. Ядро Windows полностью отличается от ядра Linux. Как уже говорилось, ядро Linux намного легче в понимании, чем ядро Windows, потому что оно имеет открытый исходный код и у него намного меньше свойств по сравнению с ядром Windows. С другой стороны, у Windows было столько вправок и переделывании за последние годы, в результате чего многое изменилось.
📌 Читать далее
#asm #dll #shell
Windows Shellcoding x86 – функции вызова в Kernel32.dll – часть 2
Доброго времени суток, codeby. В предыдущей части мы нашли адрес Kernel32.dll, проходя через LDR структуру. В этой части мы сконцентрируемся на нахождении адреса функций (известных как DLL символы) в Kernel32.dll и вызовем их путем предоставления аргументов. Одним из методов вызова этих символов является использование LoadLibraryA с целью нахождения адреса этих символов от Kernel32.dll. Однако, мы этого делать не будем, т.к. это слишком легко. Основная цель моей серии блогов является помочь людям понять, как именно работает код сборки, чтобы было легко писать нулевой шелл-код для любой функции, которая им нужна. В этой части я объясню, как написать шелл-код для GetComputerNameA, и мы пройдемся по нашему исполняемому файлу в дизассемблере x32dbg, чтобы посмотреть имя хоста компьютера, на котором он запущен.
📌 Читать далее
#asm #shell #windows
Доброго времени суток, codeby. В предыдущей части мы нашли адрес Kernel32.dll, проходя через LDR структуру. В этой части мы сконцентрируемся на нахождении адреса функций (известных как DLL символы) в Kernel32.dll и вызовем их путем предоставления аргументов. Одним из методов вызова этих символов является использование LoadLibraryA с целью нахождения адреса этих символов от Kernel32.dll. Однако, мы этого делать не будем, т.к. это слишком легко. Основная цель моей серии блогов является помочь людям понять, как именно работает код сборки, чтобы было легко писать нулевой шелл-код для любой функции, которая им нужна. В этой части я объясню, как написать шелл-код для GetComputerNameA, и мы пройдемся по нашему исполняемому файлу в дизассемблере x32dbg, чтобы посмотреть имя хоста компьютера, на котором он запущен.
📌 Читать далее
#asm #shell #windows
ASM – интерфейс защиты данных DPAPI
Все, кто хоть немного дорожит своей информацией, направляют фокус на её защиту. Учитывая эти обстоятельства, начиная ещё с Win-2k инженеры Microsoft ввели в состав своей ОС специальный интерфейс и назвали его "Data-Protection Programming Interface", или коротко DPAPI. В результате, не прибегая к услугам внешних библиотек, у нас появилась возможность защищать свои данные вполне крипткостойким механизмом, причём эти данные могут находиться как на жёстком диске, так и непосредственно в памяти. В состав этого интерфейса входят всего 4 функции, однако практическая его реализация довольно сложна и корнями уходит в нёдра операционной системы, иначе DPAPI не получил-бы столь высокий кредит доверия в высшем обществе. В данной статье рассматриваются технические детали этого интерфейса, и некоторые советы к области его применения.
📌 Читать далее
#asm #security
Все, кто хоть немного дорожит своей информацией, направляют фокус на её защиту. Учитывая эти обстоятельства, начиная ещё с Win-2k инженеры Microsoft ввели в состав своей ОС специальный интерфейс и назвали его "Data-Protection Programming Interface", или коротко DPAPI. В результате, не прибегая к услугам внешних библиотек, у нас появилась возможность защищать свои данные вполне крипткостойким механизмом, причём эти данные могут находиться как на жёстком диске, так и непосредственно в памяти. В состав этого интерфейса входят всего 4 функции, однако практическая его реализация довольно сложна и корнями уходит в нёдра операционной системы, иначе DPAPI не получил-бы столь высокий кредит доверия в высшем обществе. В данной статье рассматриваются технические детали этого интерфейса, и некоторые советы к области его применения.
📌 Читать далее
#asm #security
ASM. Демоны в Windows (1) – сессии, станции, рабочие столы
В системах класса Win, одним из привлекательных направлений является программирование сервисов. Связано это с тем, что сервисы имеют приоритет над обычными приложениями, поскольку предназначены для обслуживания работы самой ОС и запускаются от имени системы. По этой причине, их ещё называют системными службами. Если провести аналогию с Linux, то сервисы Win можно сравнить с демонами, которые присутствуют всегда, но не выползая в свет работают в фоне. В данном треде попробуем разобраться с технической их стороной и посмотрим, какую они представляют угрозу безопасности. Материал получился обширным, а потому пришлось разделить его на две части.
📌 Читать далее
#asm #windows #software
В системах класса Win, одним из привлекательных направлений является программирование сервисов. Связано это с тем, что сервисы имеют приоритет над обычными приложениями, поскольку предназначены для обслуживания работы самой ОС и запускаются от имени системы. По этой причине, их ещё называют системными службами. Если провести аналогию с Linux, то сервисы Win можно сравнить с демонами, которые присутствуют всегда, но не выползая в свет работают в фоне. В данном треде попробуем разобраться с технической их стороной и посмотрим, какую они представляют угрозу безопасности. Материал получился обширным, а потому пришлось разделить его на две части.
📌 Читать далее
#asm #windows #software
ASM – техники из старого сундука
Есть поговорка: "Программистами не рождаются – ими умирают". Исходя из этой парадигмы можно сделать вывод, что за долгий свой/программерский путь, у каждого из нас снежным комом накапливаются различные техники и алгоритмы, поделиться с общественностью которыми было-бы не грех. К примеру на этапе моего начинания, мир процессора для меня был так юн, что некоторые вещи не приобрели ещё свои имена и приходилось указывать на них пальцем. Позже, все просветления было решено записывать в блокнот, который постепенно разбух до увесистого романа. Фильтр элементарных заметок сделал своё дело и на данный момент в этом блокноте осталось ~1000 строк, которые я и решил сбросить сюда с краткими комментариями.
📌 Читать далее
#asm #cpuid
Есть поговорка: "Программистами не рождаются – ими умирают". Исходя из этой парадигмы можно сделать вывод, что за долгий свой/программерский путь, у каждого из нас снежным комом накапливаются различные техники и алгоритмы, поделиться с общественностью которыми было-бы не грех. К примеру на этапе моего начинания, мир процессора для меня был так юн, что некоторые вещи не приобрели ещё свои имена и приходилось указывать на них пальцем. Позже, все просветления было решено записывать в блокнот, который постепенно разбух до увесистого романа. Фильтр элементарных заметок сделал своё дело и на данный момент в этом блокноте осталось ~1000 строк, которые я и решил сбросить сюда с краткими комментариями.
📌 Читать далее
#asm #cpuid
WinHook – легальный шпионаж
Порой логика инженеров Microsoft не выдерживает никакой критики. В священных войнах с хакерами они сами вручают им мандат на использование уязвимых функций, после чего отлавливают их-же с претензиями на взлом. Из большого числа подобных API на передний план буйком выплывает SetWindowsHookEx(), при помощи которой одним кликом мыши можно внедрить "творческую" свою DLL сразу во все активные процессы системы. В итоге, даже обычный юзверь может перехватить любые действия пользователя, вплоть до логирования клавиатурного ввода. И что особенно важно, ничего криминального в этом нет, поскольку мелкософт сама предлагает нам эту функцию, оформив ей прописку в библиотеке user32.dll. Чем они руководствовались остаётся для нас загадкой, но функция есть, а значит имеет смысл рассмотреть подробно её реализацию.
📌 Читать далее
#asm #windows
Порой логика инженеров Microsoft не выдерживает никакой критики. В священных войнах с хакерами они сами вручают им мандат на использование уязвимых функций, после чего отлавливают их-же с претензиями на взлом. Из большого числа подобных API на передний план буйком выплывает SetWindowsHookEx(), при помощи которой одним кликом мыши можно внедрить "творческую" свою DLL сразу во все активные процессы системы. В итоге, даже обычный юзверь может перехватить любые действия пользователя, вплоть до логирования клавиатурного ввода. И что особенно важно, ничего криминального в этом нет, поскольку мелкософт сама предлагает нам эту функцию, оформив ей прописку в библиотеке user32.dll. Чем они руководствовались остаётся для нас загадкой, но функция есть, а значит имеет смысл рассмотреть подробно её реализацию.
📌 Читать далее
#asm #windows
ASM – Динамическое шифрование кода
В программировании принято разделять шифрование на статическое и динамическое. Первый вариант подразумевает крипт всей тушки дискового образа программы, и обратный декрипт его при загрузки в память. Он прост в практической реализации, но как и следует из алгоритма, защищает лишь двоичный образ софта на жёстком диске, а в памяти ОЗУ код уже сбрасывает с себя всю маскировку и становится полностью доступным исследователю. Остаётся тупо снять дамп памяти, и в оффлайне не торопясь разбирать защиту.
📌 Читать далее
#programming #asm #encryption
В программировании принято разделять шифрование на статическое и динамическое. Первый вариант подразумевает крипт всей тушки дискового образа программы, и обратный декрипт его при загрузки в память. Он прост в практической реализации, но как и следует из алгоритма, защищает лишь двоичный образ софта на жёстком диске, а в памяти ОЗУ код уже сбрасывает с себя всю маскировку и становится полностью доступным исследователю. Остаётся тупо снять дамп памяти, и в оффлайне не торопясь разбирать защиту.
📌 Читать далее
#programming #asm #encryption
FASM. Обработка исключений в Win-64
На этапе проектирования софта, как-правило предусматривают в нём модуль обработки ошибок и исключений. На жаргоне программистов его называют «защитой от дурака», хотя не исключён вариант, что дураком является здесь как-раз сам разработчик, поскольку плохо продумал пользовательский интерфейс. В любом случае «Exception Handler» должен присутствовать в коде, но с переходом на Win-64 мы сталкиваемся с проблемой. Дело в том, что основанный на стековых фреймах привычный механизм SEH больше не работает – на х64 он подвергся полной «прокачке» и требует теперь абсолютно иного подхода. В данной статье попробуем освятить достоинства и недостатки усовершенствованного механизма SEH-х64.
📌 Читать далее
#asm #windows
На этапе проектирования софта, как-правило предусматривают в нём модуль обработки ошибок и исключений. На жаргоне программистов его называют «защитой от дурака», хотя не исключён вариант, что дураком является здесь как-раз сам разработчик, поскольку плохо продумал пользовательский интерфейс. В любом случае «Exception Handler» должен присутствовать в коде, но с переходом на Win-64 мы сталкиваемся с проблемой. Дело в том, что основанный на стековых фреймах привычный механизм SEH больше не работает – на х64 он подвергся полной «прокачке» и требует теперь абсолютно иного подхода. В данной статье попробуем освятить достоинства и недостатки усовершенствованного механизма SEH-х64.
📌 Читать далее
#asm #windows