Знакомимся с микроконтроллерами на ядрах ARM Cortex-M

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

arm

Обсуждать мы сегодня будем 32-разрядные контроллеры с архитектурой ARM Cortex-M и, в частности, контроллеры от STMicroelectronics (aka ST). Эта статья будет описывать, как начать разработку под указанные контроллеры, доступные среды разработки, используемые библиотеки. Если вам интересна тема Arduino, но 8-битные AVR уже не вставляют, и хочется чего-то большего, то эта статья точно для вас.

Читать далее «Знакомимся с микроконтроллерами на ядрах ARM Cortex-M»

Пишем простой модуль для Nessus


Одним из ключевых аспектов тестирования на проникновения является автоматизация шаблонных действий. Кто-то для этого пишет отдельные программы, однако сейчас существует множество продуктов, которые позволяют расширять свои функциональные возможности с помощью дополнительных модулей. Пример бесплатного сканера уязвимостей с поддержкой модулей - OpenVAS, но в этой статье речь пойдет о Nessus, который хоть и платный, но субъективно находит больше и генерирует меньше false positive срабатываний (хотя OpenVAS начался, как форк Nessus, но это было давно).
Читать далее «Пишем простой модуль для Nessus»

Пентест для начинающих: Листы для сканирования путей

Когда речь заходит о тестировании веб-приложений "черным ящиком", одно из основных действий - перебор возможных путей для поиска новых точек входа и "забытых" данных. То есть, берется какой-либо список популярных названий директорий (вроде /uploads/) и файлов (data.txt, file.php и т.п.) и осуществляется последовательный перебор. Техника известная, старая как мир, под нее существует множество утилит, множество публичных списков. Из наиболее популярных можно отметить следующие утилиты:

Тысячи их.
Лично я предпочитаю wfuzz (быстро работает, удобная фильтрация ответов веб-сервера по нескольким критериям), либо Burp Suite.
Читать далее «Пентест для начинающих: Листы для сканирования путей»

Пентест для начинающих: Введение в фишинг

В процессе работы, у кого-то легальной, у кого-то не очень, нередко возникает потребность в реализации фишинг-атак. Зачем? Как показывает практика, это зачастую наиболее пробивной и простой вариант для получения доступа к целевой системе. Почему? Разработкой и настройкой веб-сайтов, серверов, прочих сетевых устройств, занимаются по большей части компетентные люди, а о защите конечных пользователей, например, службы поддержки, секретарей и прочих личностей, думают в последнюю очередь. Естественно, атаки возможны и на более квалифицированный персонал, но об этом чуть позже.

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

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

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

В качестве примера возьмем адрес блога - kaimi.io и рассмотрим порядок действий, а также вспомогательные инструменты.
Читать далее «Пентест для начинающих: Введение в фишинг»

GetContact

Недавно очередную волну популярности собрало приложение GetContact, которое позволяет просматривать информацию о том, как тот или иной номер записан в телефонной книге у тех, кто уже ставил это приложение и совершил глупость - поделился своей адресной книги.
На волне популярности кто-то даже сделал бота в Telegram - @PhoneToNameBot.
Я тоже заинтересовался этим сервисом и для упрощения просмотра написал небольшой PHP-скрипт, который запрашивает сервис по номеру телефона и выводит всю имеющуюся по нему информацию в виде таблицы.

При наличии аватара и дополнительных имен, они тоже выводятся, просто не нашел номера, на котором это получилось бы продемонстрировать.

Для работы требуется token, который можно самостоятельно получить, настроив работу телефона или эмулятора через какой-нибудь MitM proxy (Charles, Burp Suite, Fiddler и т.п.).

Ссылка на скрипт: скачать

Массовое сканирование

В контексте работы с доступами, да и с точки зрения массового сканирования сети Интернет в исследовательских целях, часто возникает проблема получения "абуз" в виду нарушения ToS (Terms of Service) хостингов. Предлагаю разобрать, почему приходят "абузы", какие бывают, как с ними бороться и как минимизировать потери.

Итак, типичный пользователь заказывает VDS/VPS/Dedicated Server/... с какой-либо ОС, устанавливает туда masscan, zmap или какое-нибудь старье вроде scanrand, unicornscan. После запуска сканирования в скором времени (от нескольких часов до нескольких дней) приходит письмо от тех. поддержки, либо учетная запись/арендованный сервер блокируются.
Читать далее «Массовое сканирование»

Обходим Application Control через NTVDM

В рамках развития своей пентестерской деятельности заинтересовался такой областью, как защищенность банкоматов. Как все, наверное, знают, в большинстве случаев на сколько-нибудь современных банкоматах, стоят те или иные версии ОС Windows: от XP до 10 (в том числе Embedded/IoT редакции). В ОС запущен некий набор банковских приложений, а также реализованы дополнительные меры защиты, как, например, контроль работы приложений (Application Control). Об одном из способов обхода этой защиты и будет этот пост.
Читать далее «Обходим Application Control через NTVDM»

Hack You ’17 — разбор некоторых заданий

С 08.10.17 по 14.10.17 проходило CTF-соревнование Hack You '17, в котором я принимал участие. В этой статье я разберу несколько заданий с прошедшего события, поехали.
Читать далее «Hack You ’17 — разбор некоторых заданий»

Пишем свою операционку для Arduino. Шаг 5 — настоящий sleep и yield

Сегодня мы продолжаем делать нащу операционку для AVR и, в частности, Arduino. В предыдущих частях мы уже реализовали полноценное переключение контекстов процессов и добились многозадачного выполнения нескольких процессов. Теперь пора добавить поддержку таких системных вызовов, как sleep и yield. Первый будет предоставлять процессу возможность приостановить выполнение на конкретный промежуток времени, не занимая при этом процессорные ресурсы, а второй - просто передавать выполнение следующему по очереди процессу. Кроме того, мы внесем некоторые усовершенствования в само ядро нашей операционной системы atmos.

atmos sleep

Читать далее «Пишем свою операционку для Arduino. Шаг 5 — настоящий sleep и yield»

Пишем свою операционку для Arduino. Шаг 4 — первое ядро и многозадачный код

Сегодня настанет момент истины: мы напишем первое ядро нашей операционной системы atmos и запустим на нем простую многозадачную программу на Arduino!

coding in cpp

Вот это будет простыня, ребята...

Читать далее «Пишем свою операционку для Arduino. Шаг 4 — первое ядро и многозадачный код»