Анализ Worm.VBS.Dinihou

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,809
Реакции
6,574
Всем привет !
cherv.jpg

В сегодняшнем меню будет подан на растерзание Worm.VBS.Dinihou.dt (по классификации Kasperky) с компонентами Worm:VBS/Jenxcus.

Целевое назначение: клиент, выполняющий различные команды с удаленного сервера.

Детектирование:

dropper compare.jpg


На момент написания статьи оригинальный дроппер распознавался 7 AV вендорами.
VirusTotal
хотя если его чуть подправить, то распознавать будут только 5: AVG, Avast, ESET-NOD32, McAfee, ( + Qihoo-360, хотя на ориг. дроппер он не ругался).
VirusTotal

Защита:

Имеем скрипт, написанный на языке Visual Basic Scripting с двойной обфускацией.
В обертке получаем файл, который ни разу не проверялся на VirusTotal, хотя для антивирусов он уже хорошо знакомо - 36 / 56 детектов.
VirusTotal

Расшифровка скрипта после запуска происходит не сразу, а через 5 минут (возможно, защита от поведенческого анализа).

Вредоносная активность:

Устанавливает соединение с сервером по специальному порту и передает в качестве user-агента информацию о системе:
  • серийные номера дисков;
  • имя компьютера и пользователя;
  • версия ОС;
  • имена антивирусов;
  • запущен ли червяк со съемного диска (проверка любопытная: расположен ли скрипт в корне диска).

После чего он превращается по сути в сервер, запрашивая каждые 5 секунд такие команды на исполнение:

serv_comm.png
  • открыть / выполнить файл (программу);
  • обновление тела скрипта и его перезапуск;
  • удаление скрипта с исправлением последствий его работы (если не учитывать команды с сервера);
  • выгрузка произвольного файла;
  • скачивание файла и затем его запуск (с произвольного адреса или сервера злоумышленника по указанному порту);
  • перечисление дисков и их типов;
  • листинг файлов и папок в указанной директории (с отображением их атрибутов и размера);
  • список процессов (имя, ProcessID, полный путь к образу);
  • выполнить консольную команду или файл с отправкой на сервер результата вывода консоли;
  • удалить файл или папку;
  • завершить процесс принудительно с всеми дочерними экземплярами;
  • заснуть на N секунд.

Выполнение каждой команды сопровождается повторной отправкой информации о системе (данные генерируются только один раз за работу скрипта).
К моменту тестирования командный сервер уже был неактивен.


Выживание:

1) Автозапуск:
Помещает свою копию:
  • в папку "%programdata%" (или "%temp%", если первая не существует), которую прописывает в ключи автозапуска.
  • в папку "Автозагрузка".

2) Самовосстанавливление:
Восстанавливает тело, если удалить скрипт, не завершив процесс.
Есть защита от одновременного запуска из нескольких папок (именно папок, а не экземпляров процесса).
По причине ошибки реализации, после перезагрузки работают одновременно 2 экземпляра процесса.

3) Распространение:

shortcuts.jpg


Если подключен съемный накопитель, копирует себя в его корень.
Для каждого файла или папки первого уровня (на выбор)* создается ярлык, маскируя свою иконку под изображение соответствующего типа файла, взятого из реестра.
Настоящим файлам/папкам присваивает атрибут скрытый и системный.
При клике по такому ярлыку сначала запускается вредоносный скрипт и за ним сразу же оригинальный файл.
Все происходит в свернутом режиме, поэтому пользователь может не сразу заметить подмены.
Разницу можно увидеть только по наличию стрелочки на пиктограмме иконки
Это говорит о том, что файл является ярлыком (кстати, это не есть 100% гарантия, т.к. стрелочку можно замаскировать).

* Мне в руки попал скрипт, у которого отключено создание ярлыков. Остался только сам код, но есть переключатель в шапке кода.
Т.к. предусмотрено автообновление тела скрипта, автор может быстро изменять его поведение.

На сами ярлыки у нас красуются такие разнообразные детекты: Worm.VBS.Dinihou.r (по классификации Kaspersky), Worm.LNK.Jenxcus, LNK/Dorkbot, VBS.Dunihi!lnk и прочие.
VirusTotal

Здесь у автора своеобразный почерк. Обычно в поле объект ярлыка путь прописывают в кавычках вида:
Код:
start "c:\my file.jpg"
Но в этом червячке экранируется не весь путь а отдельные знаки пробела:
Код:
start c:\my" "file.jpg


Особенности:

Часто автора таких творений оставляют особый маркер, который проверяется.
И если он есть, то скрипт не делает ничего плохого.
Может, это защита вирусописателей самих от себя :)

Этот скрипт использует интересную проверку:
- если нельзя изменить его тело (в папке %programdata%), например поставив галку "Только для чтения",
то будет записано в реестр время запуска* и более никаких вредоносных действий не произойдет.

* При каждом запуске скрипт записывает свое имя файла, дату запуска, а также запущен ли он с флеш-носителя,
в раздел реестра: HKEY_LOCAL_MACHINE\software\


Функция удаления:
Червь имеет функцию самоуничтожения, если такая команда поступит с сервера:
  • удаляются сами файлы скрипта;
  • удаляется запись об автозагрузке.
В дополнение:
  • удаляются ярлыки со съемных накопителей;
  • снимаются все атрибуты с файлов и каталогов в корне съмного накопителя.


Предотвращение заражения:

Поскольку вирус распространяется через съемные накопители,
рекомендую запретить запуск исполняемых файлов с таких носителей, настроив групповые политики*:
  • войдите в редактор групповых политик (Нажимаем комбинацию клавиш Win + R, затем вводим gpedit.msc)
  • пройдемся по дереву -> Конфигурация компьютера -> Параметры безопасности -> Политика ограниченного использования программ
  • Действие -> "Создать политику"
  • Дополнительные правила -> Нажимаем "Действие" -> Создать правило для пути -> Путь указываем, например: F:\
где F - буква флеш-накопителя; Уровень безопасности -> выбираем "Запрещено".
Желательно проделать тоже самое с другими буквами дисков (кроме логических), с которыми может быть ассоциирован новый флеш-накопитель.

policy2.jpg


* Групповые политики недоступны для Home-редакций ОС. Для таких систем в качестве превентивной меры Вы также можете:
1) Запретить автозапуск, запустив через консоль (Win + R, ввести CMD), введя команду:
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDriveTypeAutoRun /t REG_DWORD /d 221 /f

2) Включить отображение скрытых и системных файлов (это поможет заранее заметить заражение флеш-носителя):
  • Откройте раздел "Свойства папки". Для этого нажмите кнопку "Пуск" -> Панель управления -> Оформление и персонализация -> Свойства папки.
  • Перейдите на вкладку "Вид".
  • В списке "Дополнительные параметры" установите переключатель "Показывать скрытые файлы, папки и диски" и затем нажмите кнопку ОК.
Подробнее: Show hidden files - Microsoft Support

3) Включить отображение расширения имени файла (это поможет отличить ярлыки от настоящих файлов):
- В том же меню из п.2 снимите флажок "Скрывать расширения для зарегистрированных типов файлов" и нажмите кнопку ОК.
Подробнее: Windows help & learning


Рекомендации по удалению вируса:

1. Разорвать подключение к интернету.
2. Отключить автозапуск со съемных накопителей.
3. Подключить зараженный съемный носитель.
4. Открыть диспетчер задач (Ctrl + Shift + Esc), перейти во вкладку "Процессы" и завершить все процессы с именами wscript.exe и cscript.exe
Это остановит выполнение полученных от сервера команд.
5. Загрузить Sysinternals Autoruns. Снять галочку с записей, которые запускают процесс wscript.exe / cscript.exe / cmd.exe или файлы скриптов .VBS
6. Запустить командную строку (Win + R, ввести CMD), ввести команду, подтвердив кнопкой ENTER:
Код:
attrib -S -H F:\* /S /D /L
где F - нужно поменять на букву диска съемного накопителя.
7. Откройте флешку и удалите все ярлыки (у них на пиктограмме будет отображатся знак стрелочки).
Для удобства отсортируйте файлы по признаку "Тип": Вид -> Таблица, нажмите на название колонки "Тип".
8. Обратиться в раздел помощи в профессиональном лечении системы от вирусов*.

* Этот червь может выполнять команды с сервера на любой вкус, поэтому заранее неизвестно, какой вред он причинил.
 
Последнее редактирование:
Razdolbay,
* Этот червь может выполнять команды с сервера на любой вкус, поэтому заранее неизвестно, какой вред он причинил.
Также существует много модификаций.
По этой причине нельзя написать универсальный скрипт.
Кроме того, я не рекомендую такие скрипты полностью удалять из системы.
Описанный мною в рекомендациях порядок именно отключает автозапуск, чтобы во время сбора логов не активировать зловред после перезагрузки.
Это дает возможность взять под карантин вредоносный скрипт для дальнейшего изучения,
когда Вы, возможно, будете обращаться с помощью к вирусоборцам, чтобы примерно оценить характер ущерба и принять ответные меры для конкретного случая.
Кроме того, мой мнимый скрипт лечения не всегда был бы под рукой, а вот описанные мною рекомендации можно вполне запомнить.
Также они будут актуальны и при других заражениях вирусами на основе VBS/JS.
 
Razdolbay, уламал. Держи скрипт. Только п.5 там нет.
CMD/BATCH:
@echo off
SetLocal EnableExtensions
color 1A
cd /d "%~dp0"
net session >NUL 2>&1|| (echo Необходимо запустить скрипт правой кнопкой мыши "От имени администратора" & echo. & pause & exit /B)

echo Скрипт лечения Worm.VBS.Dinihou
echo.
echo Подключите зараженный флеш-носитель(-и) и нажмите ENTER
echo.
echo !!! Внимание! Все файлы VBS (скрипты) в корне флеш-носителей будут удалены !!!
set /p "x="
echo.
echo Работаю...
echo.

ping -n 5 127.1

echo.
echo Завершение процессов...
taskkill /f /t /im cscript.exe
taskkill /f /t /im wscript.exe

echo.
echo Создание карантина
md Quarantine
copy /y "%temp%\*.VBS" Quarantine\*
copy /y "%appdata%\*.VBS" Quarantine\*

echo.
echo Удаление тела Worm
del /F /A /Q "%temp%\*.VBS"
del /F /A /Q "%appdata%\*.VBS"

echo.
echo Отключение автозапуска съемных носителей (кроме CD-ROM)...
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDriveTypeAutoRun /t REG_DWORD /d 221 /f

echo.
echo Запрещаю запуск программ и скриптов со съемных накопителей
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b} /v Deny_Execute /t REG_DWORD /d 1 /f

echo.
echo. Ждите...
for /f "tokens=3" %%F in ('"echo list volume | diskpart | findstr /C:"Removable" /C:"Сменный""') do (
  echo.
  echo Найден съемный накопитель: %%F
  echo Удаление ярлыков...
  del /F /A /Q %%F:\*.LNK
  echo Удаление скриптов...
  del /F /A /Q %%F:\*.VBS
  echo Смена атрибутов...
  pushd "%%F:\"
  for /f "delims=" %%o in ('dir /B /A "%%F:\*"') do attrib -R -S -H "%%~fso" /L
  popd
)

echo.
echo Процедура завершена.
echo.
echo Для удаления остатков вируса рекомендуется обратится
echo за помощью в профессиональном лечении на форум SafeZone.cc
echo.
echo Папку Quarantine заархивируйте с паролем virus
echo и отправьте на почту quarantine ^<собака^> safezone.cc
echo.
echo Script maded by Dragokas.
echo.
pause
 

Вложения

  • Block_Script_Virus.zip
    1.3 KB · Просмотры: 22
А откуда взяли изначальный дроппер? Его ни до ни после вас никто на VT не заливал. Где источник таких уникальных семплов? Просто хочу поговорить об источнике и пути распространения. Сам семпл мне не нужен.


Немножко добавлю:
После снятия всей обфускации был получен файл, не бывавший на VT по простым причинам:
- в пятой строке переменная host - каждый автор правит его под себя
- достаточно было заиметь лишний ентер или пробел и хеш другой - следовательно для VT он новый
- этот зловред лежит на каждом втором (или даже первом) хацкерском сайте - каждый скрипткиди его качает, правит хост на свой, криптует и радуется (что в данном случае мы и наблюдаем - давно известный зловред хорошо обрабатывается и мало кто из антивирусов его детектирует)
 
Назад
Сверху Снизу