Уязвимости MagicDot в Windows открывают дорогу руткитам

Уязвимости MagicDot в Windows открывают дорогу руткитам

Некорректные DOS-пути в номенклатуре имен файлов в Windows могут быть использованы для сокрытия вредоносного содержимого, файлов и процессов. Исследователь из SafeBreach Ор Яир обозначил проблему, связанную с процессом преобразование DOS-пути в NT-формат в Windows.

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

Ор Яир сделал акцент на четырёх уязвимостях, связанных с проблемой, которую исследователь назвал "MagicDot". Группа проблем MagicDot существует из-за того, что Windows заменяет пути DOS на пути NT.

Для того чтобы пользователь смог открыть файл или папку на своём компьютере, Windows использует путь, по которому существует файл. Таким путём обычно является путь DOS, который представлен в формате "C:\Users\User\Documents\example.txt". Однако для выполнения операции открытия файла используется другая базовая функция под названием NtCreateFile. Именно она запрашивает путь NT, а не DOS. Поэтому Windows преобразует привычный путь DOS, видимый пользователям, в путь NT, прежде чем вызвать NtCreateFile для выполнения операции.

В процессе преобразования путей, Windows автоматически удаляет все точки и лишние пробелы в DOS-пути, из-за чего и возникает проблема.

DOS-пути выглядят следующим образом:

  • C:\example\example.
  • C:\example\example…
  • C:\example\example<пробел>    

Все они преобразуются в "\??\C:\example\example" в качестве NT-пути.

Ор Яир указал, что автоматическое удаление символов даёт возможность киберпреступникам создавать специально разработанные пути DOS, которые будут преобразованы в NT-пути по их выбору для сокрытия вредоносного содержимого или действий либо для приведения файлов в негодность. 

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

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

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

Третий метод атаки предполагает маскировку вредоносного содержимого под законные пути к файлам.

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

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

Исследователь сообщил, что данные манипуляции с путями MagicDot могут предоставить злоумышленникам руткит-способности без прав администратора и без вмешательства в цепочку вызовов API.

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

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

Исследователь в области безопасности Ор Яир обнаружил в ходе своего исследования путей  "MagicDot" четыре различные уязвимости, связанные с основной проблемой. Три из них уже исправлены Microsoft.

С помощью уязвимости удаленного выполнения кода (RCE) (CVE-2023-36396, CVSS 7,8) в новой логике извлечения архивов Windows для всех новых поддерживаемых типов архивов злоумышленники создают вредоносный архив, который после извлечения записывается в любое место на удаленном компьютере, что приводит к выполнению кода.

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

Следующий баг — это уязвимость повышения привилегий (EoP) (CVE-2023-32054, CVSS 7,3), которая позволяет злоумышленникам записывать в файлы без привилегий, манипулируя процессом восстановления предыдущей версии из теневой копии.

Третья уязвимость — это непривилегированный DOS для антианализа Process Explorer, для которого зарезервирован CVE-2023-42757.

Последний баг, относящийся к EoP, позволяет непривилегированным злоумышленникам удалять файлы. Компания Microsoft подтвердила, что такая уязвимость существует, но пока не исправила её.

Представленные исследователем уязвимости компания Microsoft устранила, но всё же автоматическое удаление точек и пробелов при преобразовании путей из DOS в NT сохраняется. А именно это и является первопричиной уязвимости.

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

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

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

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

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

С днём рождения, BASIC! Языку программирования исполнилось 60 лет

Простой язык программирования, разработанный ещё в 1964 году, стал основой персональных компьютеров Apple, TRS-80, IBM и Commodore. На этой неделе ему исполнилось 60 лет.

1 мая 1964 года профессора Дартмутского колледжа Томас Курц и Джон Кемени успешно запустили первую программу, написанную на только что разработанном языке программирования BASIC (Beginner's All-Purpose Symbolic Instruction Code) на мэйнфрейме General Electric GE-225.

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

Именно понятный синтаксис BASIC с его простыми английскими ключевыми словами стал залогом популярности среди начинающих программистов.

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

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

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

В 1970-е годы началось активное развитие персональных компьютеров, BASIC тоже не стоял на месте. Пол Аллен и Билл Гейтс адаптировали язык для ПК типа Altair 8800, основав в то время компанию Microsoft. В 1976 году Стив Возняк разработал интерпретатор BASIC с нуля для Apple I, который впоследствии стал ключевой частью Apple II.

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

Потомки BASIC, такие как Visual Basic, Visual Basic for Applications (VBA) и Microsoft Small Basic, продолжают жить. Представленный в 1991 году Visual Basic применяется для разработки Windows-приложений, а для создания сценариев и автоматизации в приложениях Microsoft Office служит VBA. Для обучения начинающих программистов используется Microsoft Small Basic.

За простоту и легкость в использовании теперь отвечают другие современные языки программирования, такие как Python и JavaScript. Они взяли на себя роль, которую когда-то выполнял BASIC.

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

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru