Пишем простой модуль для 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 — первое ядро и многозадачный код»

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

Продолжаем цикл статей по написанию операционной системы с вытесняющей многозадачностью для Arduino. Для тех, кто еще не в теме: первая и вторая части цикла статей. Сегодня мы займемся очень тонкой, прямо-таки интимной темой, которая сильно приблизит нас к достижению цели. Мы напишем код, который будет переключать контекст одного процесса на контекст другого. Конечно, мы разберемся, что же такое этот контекст, и что в нем будет храниться в нашей ОС. Мы научимся сохранять и восстанавливать контекст.

context switch

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