#82 Kali Linux для продвинутого тестирования на проникновение. Отказ от файлов и обход антивируса. Контроль учетных записей пользователей (UAC).
Здравствуйте, дорогие друзья.
Большинство организаций разрешают пользователям доступ к своей внутренней инфраструктуре во всех сегментах сети. В некоторых организациях, особенно в банковском секторе, сети разделены, и установлен строгий контроль доступа, например, внутренний брандмауэр, и, может быть создано правило, чтобы разрешить только порт 80 или 443, в качестве исходящей связи и заблокировать все другие порты. Таким образом, рекомендуется использовать порты 80 или 443, для всех лисенеров во время тестирования. В этом разделе мы рассмотрим несколько быстрых способов обойти средства контроля безопасности и захвата заданной системы.
Обход средств управления операционной системой Windows
В каждой корпоративной среде мы видим, что все конечные точки, предоставляемые конечным пользователям, обычно являются операционными системами Windows. Вероятность эксплуатации Windows всегда высока из-за ее уровня использования. В этом разделе мы сосредоточимся на некоторых особенностях безопасности операционной системы Windows, элементов управления, и способах их обхода, после доступа к конечной точке. В следующем примере мы используем виртуальную машину Windows 10 для демонстрационных целей.
Контроль учетных записей пользователей (UAC)
Недавние разработки показывают, что существуют различные способы обхода Windows UAC, которые можно найти на https://github.com/hfiref0x/UACME. Этот проект, в первую очередь, ориентирован на реверс-инжиниринг вредоносного ПО. Весь исходный код написан на C# и C; это потребует от злоумышленников компиляции кода, а затем выполнение информированных атак.
Microsoft ввела элементы управления безопасностью, чтобы запретить выполнение процессов с тремя различными уровнями целостности, такие как: высокие, средние и низкие. Процесс высокого уровня имеет права администратора, процесс среднего уровня, выполняется с правами стандартного пользователя, а процесс низкого уровня ограничен, что обеспечивает программе нанесение минимального ущерба, если она скомпрометирована.
Для выполнения каких-либо привилегированных действий программа должна быть запущена от имени администратора, и соответствовать настройкам UAC. Четыре параметра UAC следующие:
• Всегда уведомлять: это самый строгий параметр, который будет запрашивать локального пользователя всякий раз, когда любая программа хочет использовать привилегии более высокого уровня.
• Уведомлять меня только тогда, когда программы пытаются внести изменения в мой компьютер: это значение по умолчанию в настройке UAC. Он не запрашивает пользователя, когда программа Windows запрашивает более высокий уровень привилегии.
• Уведомлять меня только тогда, когда программы пытаются внести изменения в мой компьютер (не затемнять рабочий стол): это то же самое, что и настройка по умолчанию, но монитор системы не затемняется, при запросе пользователя.
• Никогда не уведомлять: этот параметр возвращает систему к дням, предшествующим Vista. Если пользователь является администратором, все программы будут работать с высоким уровнем.
Поэтому, сразу после эксплуатации, тестировщик (и злоумышленник) хочет знать следующее две вещи:
• Кто является пользователем, которого идентифицировала система?
• Какие права у них есть в системе?
Это можно определить с помощью следующей команды:
1 |
C:\> whoami /groups |
Здесь скомпрометированная система работает в контексте высокой целостности, как показано обязательной меткой Label\High Mandatory Level на рисунке ниже:
Если Label имеет значение Mandatory Label\Medium Mandatory Level, тестировщику потребуется повысить уровень со стандартных пользовательских привилегий, на права администратора, чтобы многие шаги после эксплойта были успешными.
Предполагая, что у злоумышленника есть ограниченная оболочка от эксплойта Shellter или Veil, первый вариант повышения привилегий заключается в запуске exploit/windows/local/ask
из Metasploit, который запускает атаку RunAs. Это создаст исполняемый файл, который при вызове запустит программу для запроса повышения прав. Исполняемый файл должен быть создан с использованием опции EXE::Custom или зашифрован, с использованием фреймворка Veil, чтобы избежать обнаружения локальным антивирусом.
Недостатком атаки RunAs является то, что пользователю будет предложено, чтобы программа от неизвестный издателя, хочет внести изменения в компьютер. Это предупреждение может привести к тому, что привилегии эскалации должны быть идентифицированы как атака, как показано на рисунке ниже:
Если текущий пользователь системы входит в группу администраторов, и, если для UAC установлено значение по умолчанию «Уведомлять меня только тогда, когда программы пытаются внести изменения в мой компьютер» (это не сработает, если установлено значение «будет всегда уведомлять»), злоумышленник сможет использовать эксплойт metasploit/windows/local/bypassuac
. Это модуль для повышения их привилегий. Чтобы убедиться, что Вы можете полностью контролировать удаленную машину, мы должны иметь возможность получить доступ на административном уровне. Злоумышленники обычно используют getsystem, для эскалации своих текущих возможностей системных привилегий.
Модуль ask создает несколько артефактов в целевой системе и может быть распознан большинством антивирусных программ. Обратите внимание, что это будет работать, только если пользователь является локальным администратором. Давайте теперь использовать локальный эксплойт Windows, для обхода UAC. Как только SESSION установлен на активный сеанс, злоумышленники смогут обойти UAC, установленный операционной системой Windows, и обход успешно предоставит злоумышленникам другой сеанс Meterpreter с привилегиями системного уровня, как показано на рисунке ниже:
На этом все. Всем хорошего дня!
Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.