• ! Привет посетитель !

    Зачем данный ресурс нужен ?

    В рунете было много ресурсов с интересными обсуждениями и работами по вирусным технологиям, а также в область ИБ.

    Но со временем у людей меняются интересы, а кто-то просто не может держать такие сайты, сайты удаляются, я подумал а печему-бы не сделать такой архив со статьями на тематику вирусов и ИБ.

    Цель ресурса:

    Собрать какие-то актуальные утеренные обсуждения и работы.

    Пока-что поднял два сайта:

    1) https://archivevx.net/exelab/f/

    2)Vxlab.info - Тут просто сделаю перепост статей сюда:https://archivevx.net/index.php?forums/vxlab-info-Статьи-ресурса.4/

Создаём скрытый TeamViewer #2

Для начала скачаем TeamViewer с официального сайта. На данный момент это 11 версия.

Исследование установщика

Запускаем Process Monitor, знакомый нам из первой части, открываем фильтр и выбираем критерии фильтрации:
  • Process Name — Team
  • Operation — CreateFile
1608889839380.png


Запускаем установщик TeamViewer_Setup_ru.exe, настройки выставляем по умолчанию

1608889859388.png


Изучаем лог и понимаем как устанавливается программа, можно выделить следующие этапы:
  • распаковка в %TEMP%\TeamViewer\ и запуск TeamViewer_.exe
  • создание каталога в программных файлах и сохранение туда 7z архивов C:\Program Files (x86)\TeamViewer\TVExtractTemp\tvfiles.7z
  • распаковка архивов 7z в C:\Program Files (x86)\TeamViewer\
В логе присутствуют файлы «System.dll» и «nsArray.dll». Погуглив можно понять, что эти файлы принадлежат NSIS установщику, поэтому попробуем распаковать «TeamViewer_Setup_ru.exe» 7z архиватором!

Внутри находим файлы: «TeamViewer_.exe», «System.dll» и «TvGetVersion.dll». Распакуем первый:
Код:
.:
$PLUGINSDIR  tvfiles.7z  tvfilesx64.7z  tvfilesx86.7z

./$PLUGINSDIR:
advanced_unicode.ini  LangDLL.dll                       start_unicode.ini
Base64.dll            linker.dll                        StartMenu.dll
dialogsEx.dll         Lizenz_TeamViewer_DE_unicode.txt  System.dll
FindProcDLL.dll       Lizenz_TeamViewer_EN_unicode.txt  TvGetVersion.dll
InstallOptions.dll    modern-wizard.bmp                 UAC.dll
InvokeShellVerb.dll   nsArray.dll                       UserInfo.dll
ioSpecial.ini         nsExec.dll                        wincheck.ini
KillProcDLL.dll       nsis7z.dll

И он тоже распаковался! Здесь и далее даётся листинг команды dir -R

В «./$PLUGINSDIR» файлы NSIS, а вот «*.7z» это сам TeamViewer, например tvfiles.7z:
Код:
CopyRights_DE.txt                 TeamViewer_Desktop.exe      tv_w32.dll
CopyRights_EN.txt                 TeamViewer_Resource_en.dll  tv_w32.exe
Lizenz_TeamViewer_DE_unicode.txt  TeamViewer_Resource_ru.dll  tv_x64.dll
Lizenz_TeamViewer_EN_unicode.txt  TeamViewer_Service.exe      tv_x64.exe
outlook                           TeamViewer_StaticRes.dll    uninstall.exe
TeamViewer.exe                    TeamViewer11.otf

./outlook:
ManagedAggregator.dll       TeamViewerMeetingAddinShim.dll
TeamViewerMeetingAddIn.dll  TeamViewerMeetingAddinShim64.dll

tvfilesx86.7z — файлы VPN:
Код:
.:
w2k  x86

./w2k:
TeamViewerVPN.inf  teamviewervpn.sy_

./x86:
teamviewer.gpd                 TeamViewerVPN.inf  TVMonitor.sy_  TVPSPrint.inf
teamviewer.ppd                 teamviewervpn.sy_  tvprint.cat
Teamviewer_PrintProcessor.dll  tvmonitor.cat      TVPrint.inf
teamviewervpn.cat              TVMonitor.inf      tvpsprint.cat

Попробуем запустить TeamViewer.exe и он работает! У нас получился portable TeamViewer. В дальнейшем мы будем работать только с содержимым tvfiles.7z

Подмена DLL


Скрывать окно TeamViewer мы будем подменой DLL, по научному DLL hijacking.

Строго говоря, DLL hijacking является нормальным системным механизмом. Когда приложение просит систему загрузить dll, она ищет её по списку директорий, первой из которых является директория приложения. Примеры других атак можно почитать в статьях dukebarman’а и jkornev’а.
Сначала нужно найти DLL которую мы будем подменять, для этого снова открываем Process Monitor и устанавливаем фильтр:
  • Process Name — contains — Team
  • Operation — contains — CreateFile
  • Result — contains — NOT FOUND
1608890000761.png


Запускаем ранее подготовленный TeamViewer.exe

1608890021125.png


Получаем список файлов которые не смог открыть TeamViewer.exe, нас интересуют DLL’ки.

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

Все тесты проводились на Windows 7 x64 и Windows XP x64, тестирование на других версиях приветствуется!
Если кто-то заметит, что DLL не подгружается на другой версии ОС или разрядности — пожалуйста отпишите в комментариях!
Переходим в наш распакованный tvfiles, и начинаем тестирование. Лучше выбирать DLL с неприметным названием и небольшим числом функций которые используются при импорте.

Мне понравилась TeamViewer_Resource_tr.dll
  • создаём пустой файл в FAR — SHIFT+F4
  • задаём имя «TeamViewer_Resource_tr.dll» и сохраняем по F2
Если DLL используется, то TeamViewer выдаст ошибку, так как содержание dll пустое. При запуске ошибки не происходит. По всей видимости, программа просто проверяет ее наличие в директории и она не участвует в импорте. Первый блин комом, продолжаем эксперимент =)

Version.dll — тоже хорошее название, создаём пустой файл с этим именем. Запуск, и программа выдаёт ошибку. Вакантная уязвимость обнаружена! Пробуем запустить TeamViewer_Desktop.exe и получаем аналогичную ошибку. То что нам нужно!

1608890077776.png


Хочу заметить что на Windows XP x64 — Version.dll не грузится из текущего каталога, и для неё была подобрана уязвимая UxTheme.dll

Заключение


Мы выдрали переносимую версию TV из инсталлятора и нашли интересующую нас уязвимость. В следующей части мы немного покодим =)
 
Последнее редактирование: