- Регистрация
- 21.07.20
- Сообщения
- 40.408
- Реакции
- 1
- Репутация
- 0

Мы регулярно пишем о том, как хакеры часто опираются на использование
You must be registered for see links
, чтобы избежать обнаружения. Они буквально
You must be registered for see links
, используя стандартные средства Windows, тем самым обходя антивирусы и другие утилиты выявления вредоносной активности. Мы, как защитники, теперь вынуждены иметь дело с печальными последствиями таких хитрых техник взлома: удачно расположенный сотрудник может использовать тот же подход для скрытой кражи данных (интеллектуальная собственность компании, номера кредиток). И если он не будет торопиться, а работать медленно и незаметно, будет чрезвычайно сложно — но все же возможно, если применять правильный подход и соответствующие
You must be registered for see links
, — выявить такую активность.С другой стороны, мне бы не хотелось демонизировать сотрудников, так как никто не хочет работать в бизнес-среде прямиком из «1984» Оруэлла. К счастью, существуют ряд практичных шагов и лайфхаков, которое могут значительно усложнить жизнь инсайдерам. Мы рассмотрим скрытные методы атаки, используемые хакерами сотрудниками с некоторым техническим бэкграундом. А чуть дальше мы обсудим варианты сокращения таких рисков – изучим как технический, так и организационный вариант действий.
Что плохого в PsExec?
Эдвард Сноуден, справедливо или нет, стал синонимом инсайдерской кражи данных. Кстати говоря, не забудьте взглянуть на
You must be registered for see links
о других инсайдерах, также заслуживающих некоторого статуса известности. Стоит подчеркнуть один важный момент о методах, которые использовал Сноуден, — насколько нам известно, он не устанавливал никакого внешнего вредоносного софта!Наоборот, Сноуден применил немного социальной инженерии и воспользовался своим должностным положением системного администратора для сбора паролей и создания учётных данных. Ничего сложного – никаких
You must be registered for see links
, атак
You must be registered for see links
или
You must be registered for see links
. Сотрудники организаций не всегда находятся в уникальной позиции Сноудена, но из концепции «выживания на подножном корму» можно извлечь ряд уроков, о которых следует знать – не производить никаких вредоносных действий, которые можно обнаружить, и особенно аккуратно использовать учётные данные. Запомните эту мысль.
You must be registered for see links
и его двоюродный брат
You must be registered for see links
произвели впечатление на бесчисленное множество пентестеров, хакеров и блогеров по информационной безопасности. А в комбинации с mimikatz, psexec позволяет атакующим перемещаться внутри сети без необходимости знать пароль в открытом виде. Mimikatz перехватывает NTLM- хэш у процесса LSASS, а затем передаёт токен или учётные данные – т.н. «pass the hash» атака – в psexec, позволяя злоумышленнику войти на другой сервер от лица другого пользователя. И с каждым последующим перемещением на новый сервер, атакующий собирает дополнительные учётные данные, расширяя спектр своих возможностей в поиске доступного контента.
Когда я впервые начал работать с psexec, он показался мне просто магическим – спасибо
You must be registered for see links
, гениальному разработчику 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 проделывал огромное количество работы «под капотом». Если вас интересует более подробное объяснение, ознакомьтесь вот с
You must be registered for see links
замечательным описанием.Очевидно, что при использовании в качестве инструмента системного администрирования, что и являлось изначальным предназначением psexec, ничего страшного в «жужжании» всех этих механизмов Windows нет. Для атакующего, однако, psexec создаст осложнения, и для осторожного и хитрого инсайдера, такого как Сноуден, psexec или похожая утилита будет слишком большим риском.
И тут приходит Smbexec
SMB – это искусный и скрытный способ передачи файлов между серверами, и хакеры внедрялись напрямую в SMB ещё испокон веков. Полагаю, что все уже знают, что не стоит
You must be registered for see links
SMB порты 445 и 139 в интернет, не так ли?В 2013 году на Defcon Эрик Милман (
You must be registered for see links
) представил в свет
You must be registered for see links
, чтобы пентестеры могли опробовать скрытный взлом SMB. Я не знаю всей истории, но затем Impacket дополнительно отточил smbexec. На самом деле, для своего тестирования я скачал именно скрипты от Impacket на питоне с
You must be registered for see links
.В отличие от psexec, smbexec избегает передачи потенциально детектируемого бинарного файла на целевую машину. Вместо этого утилита полностью живёт с «подножного корма» через запуск локальной командной строки Windows.
Вот что она делает: передаёт команду от атакующей машины через SMB в специальный входящий файл, а затем создаёт и запускает сложную командную строку (как служба Windows), которая покажется знакомой линуксоидам. Вкратце: она запускает нативный Windows-шелл cmd, перенаправляет вывод в другой файл и затем отправляет его по SMB обратно на машину злоумышленника.
Лучшим способом понять это будет изучение командной строки, которую я смог заполучить из журнала событий (см. ниже).

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

Для вывода данных обратно с целевой машины на машину злоумышленника, используется
You must be registered for see links
. Да, это та же самая Samba
You must be registered for see links
, но только переделанная под Python-скрипт Impacket’ом. Фактически, smbclient позволяет вам скрытно организовать передачу FTP поверх SMB.Давайте сделаем шаг назад и подумаем над тем, что это может дать для сотрудника. В моём вымышленном сценарии, скажем, блогеру, финансовому аналитику или высокооплачиваемому консультанту по безопасности разрешено использовать личный ноутбук для работы. В результате некоего магического процесса, она обижается на компанию и «пускается во все тяжкие». В зависимости от операционной системы ноутбука, она либо использует Python версию от Impact, либо Windows версию smbexec или smbclient в виде .exe файла.
Как и Сноуден, она узнаёт пароль другого пользователя либо подглядев его через плечо, либо ей везёт, и она натыкается на текстовый файл с паролем. И с помощью этих учётных данных она начинает копаться вокруг системы на новом уровне привилегий.
Взлом DCC: нам не нужен никакой «дурацкий» Mimikatz
В моим предыдущих постах, посвящённых пентесту, я очень часто использовал mimikatz. Это замечательный инструмент для перехвата учётных данных — NTLM-хэшей и даже паролей в открытом виде, затаившихся внутри ноутбуков и так и ждущих, чтобы ими воспользовались.
Времена изменились. Инструменты мониторинга стали лучше в детектировании и блокировке mimikatz. Администраторы информационной безопасности также стали обладать большим числом опций по сокращению рисков, связанных с атаками «pass the hash»-типа (далее – PtH).
Так что же должен сделать умный сотрудник, чтобы собрать дополнительные учётные данные без использования mimikatz?
В набор от Impacket входит утилита под названием
You must be registered for see links
, которая извлекает учётные данные из кэша Domain Credential Cache, или кратко DCC. Насколько я понимаю, если доменный пользователь входит на сервер, но контроллер домена при этом недоступен, DCC позволяет серверу аутентифицировать пользователя. Так или иначе, secretsdump позволяет вам сдампить все эти хэши, если они доступны.DCC-хэши – это не NTML-хэши и их нельзя использовать для PtH-атаки.
Ну, вы можете попытаться взломать их, чтобы получить исходный пароль. Однако Microsoft стала умнее при работе с DCC и взломать DCC-хэши стало чрезвыйчайно сложно. Да, есть
You must be registered for see links
, «самый быстрый в мире подборщик паролей», но он требует наличия GPU для эффективной работы.Вместо этого давайте попробуем размышлять как Сноуден. Сотрудник может провести очную социальную инженерию и, возможно, узнать какую-либо информацию о человеке, пароль которого она хочет взломать. Например, узнать, взламывался ли когда-либо онлайн-аккаунт этого человека и изучить его пароль в открытом виде на наличие каких-либо подсказок.
И это тот сценарий, по которому я решил пойти. Давайте предположим, что инсайдер узнал, что его руководитель, Круэлла, несколько раз была взломана на разных веб-ресурсах. После анализа нескольких из этих паролей, он осознаёт, что Круэлла предпочитает использовать формат названия бейсбольной команды «Yankees» и идущим за ним текущим годом – «Yankees2015».
Если вы сейчас пытаетесь воспроизвести это у себя в домашних условиях, то вы можете скачать небольшой, «C»
You must be registered for see links
, реализующий алгоритм хэширования DCC, и скомпилировать его.
You must be registered for see links
, кстати говоря, добавил поддержку DCC, поэтому его тоже можно использовать. Давайте предположим, что инсайдер не хочет связываться с изучением John the Ripper и любит запускать «gcc» на устаревшем C-коде.Изображая роль инсайдера, я запустил несколько разных комбинаций и в конце концов смог обнаружить, что пароль Круэллы – «Yankees2019» (см. ниже). Миссия выполнена!

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