Внедрение локального shellcode в среде Windows unicc credit card, fullz shop list

В этой статье описана новая методика создания 100% надежных локальных
эксплойтов для операционных систем семейства Windows. Методика основана
на недостатках архитектуры операционных систем Windows, позволяющих
низко привилегированному процессу внедрять данные в почти любой другой
процесс, даже если он запущен с более высокими правами.
В этой статье описана новая методика создания 100% надежных локальных
эксплойтов для операционных систем семейства Windows. Методика основана
на недостатках архитектуры операционных систем Windows, позволяющих
низко привилегированному процессу внедрять данные в почти любой другой
процесс, даже если он запущен с более высокими правами. Мы знаем, что
реализация локальной атаки более проста, чем удаленной, однако и в этом
процессе также есть некоторые трудности. После краткого введения и
описания методики будет показано несколько примеров, понимание которых
позволит читателю использовать описанные приемы при создании своих
собственных эксплойтов.
Для обхода этих ограничений можно использовать различные адреса
возврата и/или техники. После прочтения этой статьи вы сможете
перестать волноваться обо всем этом, так как написать 100% надежный
эксплойт, работающий на любой версии Windows, при любом пакете
обновлений, языке, обходящий защиту от переполнения буфера будет очень
просто. Происходить это будет вследствие того, что ваш код не будет
выполняться из стека или кучи и не будет использовать фиксированный
адрес возврата.
Предлагаемая методика использует Windows LPC (Local/Lightweight
Procedure Call) – механизм межпроцессорного взаимодействия,
используемый RPC для локальной связи. LPC позволяет процессам,
используя LPC порты, взаимодействовать между собой посредством
сообщений. LPC плохо документирован и не будет здесь детально
описываться, однако более подробную информацию вы можете получить из
источников, указанных в разделе “Ссылки”. LPC порты – это объекты
Windows. Процессы могут создавать именованные LPC порты, к которым
могут подключаться другие процессы, используя имя созданного LPC порта.
Вы можете увидеть LPC порты процессов, воспользовавшись утилитой
Process Explorer с сайта www.sysinternals.com .
Для этого нужно выбрать процесс и посмотреть на строку Port в столбце
Type (нижняя панель), в которой будет имя порта. Дополнительную
информацию, например права доступа и т.д., можно получить, дважды
кликнув на имени порта.
LPC активно используется внутренними механизмами операционной
системы, такими как OLE/COM и т.д., что означает, что почти каждый
процесс пользуется LPC портом. LPC порты могут быть защищены с помощью
ACL, поэтому иногда, если клиентский процесс не имеет необходимых
привилегий, соединение не может быть установлено.
Для подключения к LPC порту используется функция Native API – NtConnectPort из Ntdll.dll.
ClientPortHandle: указатель на дескриптор порта, возвращаемый функцией.
ServerPortName: указатель на структуру UNICODE_STRING, содержащую имя порта, к которому нужно подключиться.
SecurityQos: указатель на структуру SECURITY_QUALITY_OF_SERVICE.
ClientSharedMemory: указатель на структуру LPCSECTIONINFO, содержащую информацию о разделяемой памяти.
ServerSharedMemory: указатель на структуру содержащую информацию о разделяемой памяти.
MaximumMessageLength: указатель на максимальный размер сообщения, возвращаемый функцией.
ConnectionInfo: указатель на массив, в котором содержится сообщение (отправленные на LPC сервер и полученные от LPC сервера данные).
ConnectionInfoLength: указатель на размер сообщения.
Другие функции для взаимодействия с LPC не будут рассматриваться,
так как в описываемой методике они не используются. Если вы хотите
узнать о них больше, воспользуйтесь информацией из раздела “Ссылки”.
Самый важный параметр, которой мы передаем в вышеописанную функцию, это имя LPC порта, находящееся в структуре UNICODE_STRING:
Поля структуры LPCSECTIONINFO:
Перед заполнением этой структуры нужно создать разделяемую секцию (см.
[1] для большей информации о разделяемых секциях) и спроецировать ее на
оба процесса (процесс из которого происходит подключение и процесс, к
которому мы подключаемся).
Для структуры LPCSECTIONMAPINFO мы должны установить только размер структуры:
Структура SECURITY_QUALITY_OF_SERVICE может принимать любые значения, поэтому о ней мы можем не волноваться:
Для переменной ConnectionInfo мы можем использовать буфер со 100
нулевыми элементами; значение переменной ConnectionInfoLength должно
быть равно размеру буфера.
Для создания разделяемой секции используется следующая функция Native API из Ntdll.dll.
SectionHandle: указатель на идентификатор секции, возвращаемый функцией.
DesiredAccess: определяет нужные виды доступа: чтение, запись, исполнение и т.д.
ObjectAttributes: указатель на структуру OBJECT_ATTRIBUTES.
MaximumSize: указатель на размер создаваемой разделяемой секции.
PageAttributes: атрибуты страницы памяти: чтение, запись, исполнение и т.д.
SectionAttributes: атрибуты секции в зависимости от типа создаваемой секции.
FileHandle: дескриптор файла, для которого создается проекция в память.
Ниже перечисляются интересующие нас параметры.
Для параметра DesiredAccess мы должны указать нужные нам виды
доступа к секции (нам нужен доступ на чтение, запись и исполнение).
MaximumSize определяет нужный нам размер секции; переменная может
принимать любое значение, но оно должно быть достаточное для хранения
данных, которые будут помещены нами в секцию позже. В значение
переменной PageAttributes мы также должны установить права на запись и
чтение, а в SectionAttributes – тип секции “committed memory”.
Теперь, когда мы ознакомились с функциями для установления LPC
соединения, рассмотрим методику атаки. Как я уже сказал, большинство
процессов в Windows имеют LPC порты, к которым мы можем подключиться
(если обладаем соответствующими правами). Как вы могли заметить, в
одной из структур, передаваемых в функцию функции NtConnectPort, есть
поле – разделяемая секция, которая проецируется на оба процесса,
осуществляющих обмен данными, что является очень хорошей новостью.
Почему? – спросите вы. Потому что все, что мы поместим в разделяемую
секцию нашего процесса, будет спроецировано на другие процессы. Другими
словами мы можем внедрить любые данные (и конечно shellcode) в любой
процесс, какой мы захотим, даже если он запущен с большими правами, чем
наш процесс! Что еще более удивительно, адрес, на который будет
спроецирована разделяемая секция, будет возвращен функцией! Если вы все
же не понимаете что в этом хорошего, перед продолжением чтения вам
нужно ознакомиться с принципами создания эксплойтов. В большинстве
случаев при атаке на уязвимое приложение с использование LPC, мы будем
иметь возможность поместить shellcode в атакуемый процесс, а также
будем знать, где это код расположен, поэтому все, что нужно будет
сделать, это заставить процесс сделать переход на этот адрес.
Например, если вы хотите внедрить код в процесс smss.exe, вам нужно
создать разделяемую секцию, подключиться к LPC порту \DbgSsApiPort,
затем поместить код в разделяемую секцию, что незамедлительно приведет
к проецированию этого кода на адресное пространство smss.exe. Если вы
захотите внедрить код в процесс services.exe, вам нужно будет сделать
то же самое, только подключаться к LPC порту \RPC Control\DNSResolver.
Однако есть и некоторые недостатки:
Эксплойт, работающий по описанной методике, должен выполнить следующие действия:
Давайте рассмотрим простой эксплойт для фиктивной уязвимости в
сервисе XYZ, в котором функция VulnerableFunction() получает и
обрабатывает Unicode-строку без проверки размера буфера-приемника. В
этом примере используется переполнение буфера, но описываемая методика
не ограничивается этим типом уязвимостей и может применяться для
уязвимостей любого типа, в чем вы сможете убедиться, посмотрев на
эксплойты доступные с этой статьей (см. Примеры эксплойтов).
Следующий код создает разделяемую секцию, размером 0x10000 байт с
полными правами доступа (чтение, запись, исполнение и т.д.) и с
атрибутами страницы – запись и чтение:
Далее идет подключение к LPC порту с именем LPCPortName:
После удачного соединения указатели на начало проецируемой
разделяемой секции в клиентском и серверном процессах возвращаются в
sectionInfo.ClientBaseAddress и sectionInfo.ServerBaseAddress
соответственно.
Следующих код копирует shellcode в разделяемую секцию, спроецированную на адресное пространство клиентского приложения:
Следующий код, используя уязвимость, заставляет атакуемый процесс сделать переход на разделяемую секцию:
При работе с LPC портами могут возникнуть некоторые проблемы:
Первую проблему можно решить двумя способами. Первый, достаточно
трудоемкий способ состоит в дизассемблировании приложения и изучении
алгоритма определения имен LPC портов. Второй способ заключается в
перехвате некоторой функции для получения имени порта. При работе с
Automation (OLE/COM) перед подключением к порту, клиентский процесс
определяет имя LPC порта сервера некоторым магическим образом,
реализованным внутри COM/OLE. Дизассемблирование всего этого весьма
непростое занятие, но мы можем, перехватив вызов функции NtConnectPort,
определить имя LPC порта, когда функция попытается подключиться к
порту. Этот прием можно увидеть в одном из эксплойтов, прилагающихся к
этой статье (см. Примеры эксплойтов).
Вторая проблема выглядит неразрешимой… Ой, я сказал
“неразрешимой”? Извините, ведь такого слова нет в словаре хакера. На
данный момент эта проблема кажется неразрешимой, но LPC настолько не
изучен, и мне приходилось наблюдать некоторые сверхъестественные вещи,
касающиеся LPC, поэтому я не уверен на 100%. Можно подключиться к LPC
порту не напрямую, обойдя ограничения, но при этом будут проблемы с
созданием разделяемой секции. Я углублюсь в эту тему, когда появится
свободное время.
Третья проблема может быть легко решена дизассемблированием и
установлением того, как происходит подключение к проблематичному порту.
Попробуйте поставить точку останова на функцию NtConnectPort,
посмотрите на значения параметров, передаваемых в функцию, и
используйте их в эксплойте.
Чтобы увидеть описанную методику в действии, взгляните на прилагающиеся эксплойты .
Как вы могли убедиться, используя описанную методику, очень просто за
5-10 минут создать почти 100% надежный (я говорю “почти”, потому что не
все уязвимости просты в использовании, а иногда слишком сложны для
создания надежного эксплойта) эксплойт, использующий простое
переполнение стека, независимый от локализации системы и пакета
обновлений. По крайнее мере мне потребовалось именно столько времени
для создания локального TAPI эксплойта (MS05-040).
В статье мы расскажем о наиболее интересных стартапах в области кибербезопасности, на которые следует обратить внимание.
Хотите узнать, что происходит нового в сфере кибербезопасности, – обращайте внимание на стартапы, относящиеся к данной области. Стартапы начинаются с инновационной идеи и не ограничиваются стандартными решениями и основным подходом. Зачастую стартапы справляются с проблемами, которые больше никто не может решить.
Обратной стороной стартапов, конечно же, нехватка ресурсов и зрелости. Выбор продукта или платформы стартапа – это риск, требующий особых отношений между заказчиком и поставщиком . Однако, в случае успеха компания может получить конкурентное преимущество или снизить нагрузку на ресурсы безопасности.
Ниже приведены наиболее интересные стартапы (компании, основанные или вышедшие из «скрытого режима» за последние два года).
Компания Abnormal Security, основанная в 2019 году, предлагает облачную платформу безопасности электронной почты, которая использует анализ поведенческих данных для выявления и предотвращения атак на электронную почту. Платформа на базе искусственного интеллекта анализирует поведение пользовательских данных, организационную структуру, отношения и бизнес-процессы, чтобы выявить аномальную активность, которая может указывать на кибератаку. Платформа защиты электронной почты Abnormal может предотвратить компрометацию корпоративной электронной почты, атаки на цепочку поставок , мошенничество со счетами, фишинг учетных данных и компрометацию учетной записи электронной почты. Компания также предоставляет инструменты для автоматизации реагирования на инциденты, а платформа дает облачный API для интеграции с корпоративными платформами, такими как Microsoft Office 365, G Suite и Slack.
Копания Apiiro вышла из «скрытого режима» в 2020 году. Ее платформа devsecops переводит жизненный цикл безопасной разработки «от ручного и периодического подхода «разработчики в последнюю очередь» к автоматическому подходу, основанному на оценке риска, «разработчики в первую очередь», написал в блоге соучредитель и генеральный директор Идан Плотник . Платформа Apiiro работает, соединяя все локальные и облачные системы управления версиями и билетами через API. Платформа также предоставляет настраиваемые предопределенные правила управления кодом. Со временем платформа создает инвентарь, «изучая» все продукты, проекты и репозитории. Эти данные позволяют лучше идентифицировать рискованные изменения кода.
Axis Security Application Access Cloud – облачное решение для доступа к приложениям , построенное на принципе нулевого доверия. Он не полагается на наличие агентов, установленных на пользовательских устройствах. Поэтому организации могут подключать пользователей – локальных и удаленных – на любом устройстве к частным приложениям, не затрагивая сеть или сами приложения. Axis вышла из «скрытого режима» в 2020 году.
BreachQuest, вышедшая из «скрытого режима» 25 августа 2021 года, предлагает платформу реагирования на инциденты под названием Priori. Платформа обеспечивает большую наглядность за счет постоянного отслеживания вредоносной активности. Компания утверждает, что Priori может предоставить мгновенную информацию об атаке и о том, какие конечные точки скомпрометированы после обнаружения угрозы.
Cloudrise предоставляет услуги управляемой защиты данных и автоматизации безопасности в формате SaaS. Несмотря на свое название, Cloudrise защищает как облачные, так и локальные данные. Компания утверждает, что может интегрировать защиту данных в проекты цифровой трансформации. Cloudrise автоматизирует рабочие процессы с помощью решений для защиты данных и конфиденциальности. Компания Cloudrise была запущена в октябре 2019 года.
Cylentium утверждает, что ее технология кибер-невидимости может «скрыть» корпоративную или домашнюю сеть и любое подключенное к ней устройство от обнаружения злоумышленниками. Компания называет эту концепцию «нулевой идентичностью». Компания продает свою продукцию предприятиям, потребителям и государственному сектору. Cylentium была запущена в 2020 году.
Компания Deduce , основанная в 2019 году, предлагает два продукта для так называемого «интеллектуального анализа личности». Служба оповещений клиентов отправляет клиентам уведомления о потенциальной компрометации учетной записи, а оценка риска идентификации использует агрегированные данные для оценки риска компрометации учетной записи. Компания использует когнитивные алгоритмы для анализа конфиденциальных данных с более чем 150 000 сайтов и приложений для выявления возможного мошенничества. Deduce заявляет, что использование ее продуктов снижает ущерб от захвата аккаунта более чем на 90%.
Автоматизированная платформа безопасности и соответствия Drata ориентирована на готовность к аудиту по таким стандартам, как SOC 2 или ISO 27001. Drata отслеживает и собирает данные о мерах безопасности, чтобы предоставить доказательства их наличия и работы. Платформа также помогает оптимизировать рабочие процессы. Drata была основана в 2020 году.
FYEO – это платформа для мониторинга угроз и управления доступом для потребителей, предприятий и малого и среднего бизнеса. Компания утверждает, что ее решения для управления учетными данными снимают бремя управления цифровой идентификацией. FYEO Domain Intelligence («FYEO DI») предоставляет услуги мониторинга домена, учетных данных и угроз. FYEO Identity будет предоставлять услуги управления паролями и идентификацией, начиная с четвертого квартала 2021 года. FYEO вышла из «скрытого режима» в 2021 году.
Kronos – платформа прогнозирующей аналитики уязвимостей (PVA) от компании Hive Pro , основанная на четырех основных принципах: предотвращение, обнаружение, реагирование и прогнозирование. Hive Pro автоматизирует и координирует устранение уязвимостей с помощью единого представления. Продукт компании Artemis представляет собой платформу и услугу для тестирования на проникновение на основе данных. Компания Hive Pro была основана в 2019 году.
Израильская компания Infinipoint была основана в 2019 году. Свой основной облачный продукт она называет «идентификация устройства как услуга» или DIaaS , который представляет собой решение для идентификации и определения положения устройства. Продукт интегрируется с аутентификацией SSO и действует как единая точка принуждения для всех корпоративных сервисов. DIaaS использует анализ рисков для обеспечения соблюдения политик, предоставляет статус безопасности устройства как утверждается, устраняет уязвимости «одним щелчком».
Компания Kameleon , занимающаяся производством полупроводников, не имеет собственных фабрик и занимает особое место среди поставщиков средств кибербезопасности. Компания разработала «Блок обработки проактивной безопасности» (ProSPU). Он предназначен для защиты систем при загрузке и для использования в центрах обработки данных, управляемых компьютерах, серверах и системах облачных вычислений. Компания Kameleon была основана в 2019 году.
Облачная платформа безопасности данных Open Raven предназначена для обеспечения большей прозрачности облачных ресурсов. Платформа отображает все облачные хранилища данных, включая теневые облачные учетные записи, и идентифицирует данные, которые они хранят. Затем Open Raven в режиме реального времени отслеживает утечки данных и нарушения политик и предупреждает команды о необходимости исправлений. Open Raven также может отслеживать файлы журналов на предмет конфиденциальной информации, которую следует удалить. Компания вышла из «скрытого режима» в 2020 году.
Компания Satori, основанная в 2019 году, называет свой сервис доступа к данным “DataSecOps”. Целью сервиса является отделение элементов управления безопасностью и конфиденциальностью от архитектуры. Сервис отслеживает, классифицирует и контролирует доступ к конфиденциальным данным. Имеется возможность настроить политики на основе таких критериев, как группы, пользователи, типы данных или схема, чтобы предотвратить несанкционированный доступ, замаскировать конфиденциальные данные или запустить рабочий процесс. Сервис предлагает предварительно настроенные политики для общих правил, таких как GDPR , CCPA и HIPAA .
Компания Scope Security недавно вышла из «скрытого режима», будучи основана в 2019 году. Ее продукт Scope OmniSight нацелен на отрасль здравоохранения и обнаруживает атаки на ИТ-инфраструктуру, клинические системы и системы электронных медицинских записей . Компонент анализа угроз может собирать индикаторы угроз из множества внутренних и сторонних источников, представляя данные через единый портал.
Основным продуктом Strata является платформа Maverics Identity Orchestration Platform . Это распределенная мультиоблачная платформа управления идентификацией. Заявленная цель Strata – обеспечить согласованность в распределенных облачных средах для идентификации пользователей для приложений, развернутых в нескольких облаках и локально. Функции включают в себя решение безопасного гибридного доступа для расширения доступа с нулевым доверием к локальным приложениям для облачных пользователей, уровень абстракции идентификации для лучшего управления идентификацией в мультиоблачной среде и каталог коннекторов для интеграции систем идентификации из популярных облачных систем и систем управления идентификацией. Strata была основана в 2019 году.
SynSaber , запущенная 22 июля 2021 года, предлагает решение для мониторинга промышленных активов и сети. Компания обещает обеспечить «постоянное понимание и осведомленность о состоянии, уязвимостях и угрозах во всех точках промышленной экосистемы, включая IIoT, облако и локальную среду». SynSaber была основана бывшими лидерами Dragos и Crowdstrike.
Traceable называет свой основной продукт на основе искусственного интеллекта чем-то средним между брандмауэром веб-приложений и самозащитой приложений во время выполнения. Компания утверждает, что предлагает точное обнаружение и блокирование угроз путем мониторинга активности приложений и непрерывного обучения, чтобы отличать обычную активность от вредоносной. Продукт интегрируется со шлюзами API. Traceable была основана в июле 2020 года.
Компания Wiz, основанная командой облачной безопасности Microsoft, предлагает решение для обеспечения безопасности в нескольких облаках, рассчитанное на масштабную работу. Компания утверждает, что ее продукт может анализировать все уровни облачного стека для выявления векторов атак с высоким риском и обеспечивать понимание, позволяющее лучше расставлять приоритеты. Wiz использует безагентный подход и может сканировать все виртуальные машины и контейнеры. Wiz вышла из «скрытого режима» в 2020 году.
Работает на CMS “1С-Битрикс: Управление сайтом”
unicc credit card fullz shop list

Written By

wpadmin