Подобрать пароль к VNC — даже не половина дела. Как гласит известная мудрость удержаться на вершине гораздо сложнее, чем на нее забраться. Знали бы вы, дорогиемои читатели, сколько доступов я потерял по неопытности в первые месяцы своего путешествия по взломанным машинам.
Основная проблема VNC – доступ к интерактивному сеансу, т.е. пользователь видит что кто-то копашится на компьютере (если находится у экрана, конечно). В целях облегчить себе жизнь был написан ряд утилит, которыми я и спешу поделитьсяс вами, друзья.
VNC Hider (vh.exe)
Первая проблема, с которой нам предстоит столкнуться — отключение обоев и иконка в трее. Не потребовалось много времени, чтобы выяснить, что более-менее опыт пользак завидев странные движения мыши и открывающиеся сами собой окна — первым делом кидается в трей и пытается прибить незванного гостя из меню VNC-сервера. Далее, как правило, следует удаление оного. Оно нам надо? Правильно, не надо. Для этих целей нам и послужит данная утилита: она сама определяет тип сервера (UltraVNC, TightVNC, RealVNC) и меняет его настройки (скрывает иконку в трее, отключает удаление обоев); помимо этого она удаляет из «Пуска» папку с программой и упоминание о ней из списка установленных программ и, на сладкое, прописывает службу VNC-сервера с список загружаемых в безопасном режиме.
Далее перезапускается служба VNC-сервера, а файл удаляется.
Помимо этого, в качестве бонуса, добавляются два пользователя: «Гость» и «vasya». Бонусом является тот факт, что пользователь «Гость» и его описание не вшито в код, а берется прямиком из ресурсов библиотеки «samsrv.dll», т.е. зависит от языка системы. Выглядит это примерно так:
После добавления новых пользователей:
Реальный «Гость»:
Фейковый «Гость»:
Пароль к пользователю vasya:loh, к Гость:vasya_loh. Надеюсь понятно, что это просто пример и у меня пароль от гостя отличается (вам тоже рекомендую поменять
и пользователя «Vasya» у меня нет (я использую более правдоподобное имя. И более сложный пароль). Да, оба пользователя состоят в группах Администраторы и Удаленный рабочий стол.
VNC Password Changer (vncpw.exe)
На компьютере с паролем вроде «123» оставлять все в исходном состояние — сумасшествие, слишком велика конкуренция
Данная программа (входит в решение «vnc_hider») меняет пароль на «10005000». При желании можете поменять в коде на свой. Оба инструмента сверкают как огни на новогодней елке (в основном из за метода повышения привилегий) и либо потребуют отключения антивирусов, либо, что более логично, переписывание под свои нужды. Например, неплохо себя зарекомендовал вариант с dll, rundll32 и ярлыком, запускающимся от имени Администратора.
RFB Input Sender (input_sender.exe)
Все это здорово, скажете вы, но как же нам запустить файл и не вызвать подозрений, если пользователь за ПК? Очень просто! Для этого нам понадобится данная утилита. Как следует из названия, предназначена она для эмуляции ввода с клавиатуры. По схожему принципу работают VNC-черви. Пройдемся по параметрам, тут есть о чем рассказать.
Send via copy/paste — как очевидно из названия, вместо эмуляции ввода с клавиатуры вводит строку по средствам буфера обмена.
Use alt method — вводит текст с помощью Alt-кодов. Бывает полезно на всяких не-английских расскладках. Подробности можно почитать тут _ttps://xakep.ru/2018/06/25/badusb-keyboard-layout/ (можно не оплачивать подписку, вступления к статье вполне достаточно для понимания).
Press Win+R — открыть окно «Выполнить». Бывает нужно не всегда (например, надо ввести ссылку или скрипт написать, а буфер обмена не работает. Или вовсе «Выполнить» уже открыто).
Prepare cmd.exe — дополнительно оборачивает команду в
для маскировки (например, если открывается консольное окно и долго висит).
Press VK_LEFT/VK_RIGHT — бывает, что с первого раза «Выполнить» не вызывается и нужно нажать что-то еще. Как правило — помогает. Наблюдал не раз такое поведение при открытых excel-таблицах, не знаю с чем связано.
Clear history — после выполнения основной команды дает дополнительно еще одну
тем самым очистив историю команд. Пользуюсь всегда, когда запускаю сторонний софт. Очень полезно: когда удивленный пользователь лезет в «Выполнить» и видит там путь к файлу — он всенепременно захочет посмотреть, что это за файл такой. В своих программах лучше сразу на точке входа чистить данную ветку.
Данная утилита очень хорошо работает в связке со встроенным файловым менеджером: заливаем файлы куда-то не далеко (короче путь — быстрее ввод, я в предпочитаю папку c:\Intel) и запускаем просто указав путь (например, c:\Intel\vh.exe) в качестве передаваемой строки. Быстро, незаметно, удобно
VNC Dead Killer (vnc_dead_killer.exe)
Представляет из себя простое диалоговое окно, при закрытии которого завершается работа приложения. Предназначение его очевидно из названия: оно прибивает дохлые VNC-сессии. Нужно это для проверки заблокированных VNC. У меня это выглядит следующим образом: при обнаружении VNC с экраном блокировки я первым делом пытаюсь завершить работу. Если такая возможность есть — отлично, достаточно дождаться пока машину опять включат (см. следующую утилиту) и войдут в учетку. Если включили и не разблокировали — повторяем процесс
Если же кнопки выключения нет — сохраняю на диск с расширением .vnc (для UltraVNC и RealVNC) или .tvnc (для TightVNC) и группирую по 15 штук в отдельные папки. Далее, примерно дважды в день пробегаюсь по папкам и запускаю, в надежде увидеть открытую сессию. Чтобы не тыкать стопицот раз при возникновении ошибок и нужна эта программа.
RFB Pinger (pinger.exe)
Бывают ситуации, когда нужный компьютер не в сети (например, выключают на ночь. ну или мы выключили в своих коварных целях). Для этого нам пригодится данный инструмент. Это не пингер в прямом смысле — icmp-пакетов он не посылает, так что может работать и с Whonix. Вместо этого он пытается подключиться к указанному адресу и сграбить баннер. Если адрес недоступен или нет баннера VNC (например, в случае с динамическим IP) – компьютер считается оффлайн.
Поддерживается три типа клиентов: TightVNC, UltraVNC и RealVNC. Пути к ним доступны в настройках.
Чтобы настроить шаблоны файлов подключения для каждого клиента придется лезть в базу pinger.db и редактировать значение полей «*_file» таблицы «settings», если такая необходимость имеется. Во избежании обнаружения по неосторожности в параметрах подключения указан флаг view-only, чтобы мышью лишний раз не елозить.
Для удобства соединения можно группировать по какому-либо признаку. Для этого при создании/редактировании подключения нужно выбрать группу из списка или ввести новое название
Тут же можно задать/изменить тип клиента, который также меняется и из контекстного меню
Комментарий, как и название группы, можно менять просто повторным нажатием на выбранном поле.
Intranet RFB Bruter (wpfw.exe)
Бывают ситуации, когда в сети есть еще куча машин с VNC, а пароль не подходит. Можно, конечно, установить VPN и просканировать сеть брутером из прошлого треда, но это не удобно — для таких случаев предназначен данный инструмент. Он сам просканирует сеть и начнет перебирать пароли к найденным машинам. Параметры задаются в файле license.lic, в таблице «scan». Пройдемся по ним.
cur_ip – начала диапазона для сканирования
last_ip — конец диапазона
max_clients — общее число соединений
max_bad_clients — число соединений на перебор паролей. т.е. max_clients-max_bad_clients=число соединений, который сканируют сеть
ports — порты для сканирования. Задаются как в масскан, через запятую. Можно указать диапазон через дефис.
wol — побуждать машины в сети перед началом сканирования
Также важно заполнить таблицу «dict» паролями, которые могут использоваться в данной сети.
Файл license.lic переодически копируется в файл user.lic. Сделано это по причине того, что UltraVNC не может скачать файл, который открыт sqlite, а мониторить как происходит процесс перебора всеже нужно.
RDPWrap (rdpw.exe)
Это не совсем по теме VNC, просто дополнительный способ закрепиться в системе. Представляет из себя допиленный rdpwrap от stas_m: добавлено отключение обновлений Windows (чтобы конфиг был всегда актуальным), а также функция доступа к консоли с лок-скрина. Для этих целей в комплекте также прилагается mstsc из дистрибутива Windows XP, который позволяет подключаться без NLA
Чтобы получить доступ к меню необходимо нажать комбинацию Ctr+Alt+S и ввести пин-код «10005000». Их можно поменять в коде (например, заменить RegisterHotKey(NULL,HK_ID,MOD_ALT|MOD_CONTROL,'S') на свою комбинацию, а SECRET_PINCODE на свой числовой пин-код).
Конфиги обновляются с помощью утилиты bin\rdpw\builder.exe — просто перетаскиваем в нее rdpw.exe_ а следом обновленный конфиг.
https://xss.pro/attachments/73034/?hash=5a985b4c763e22bc4da79e8abb8842e7
Конфиги можно брать как с гитхаба, так и составлять самим. В случае, если нужной версии системы нет в текущем конфиге — rdpw.exe выдаст соответствующее сообщение с номером сборки в заголовоке. Вы можете как скопировать версию и поискать на гитхабе, так и пойти путем попроще — скачать termsrv.dll, скормить его IDAPro (предварительно положив рядом файл getversion64.dll) и когда она закончит анализ — выполнить скрипт termsrv_batch.py (File->Script command->Import)
В результате на выходе будет файл «номер_сборки.ini»:
В прежнем конфиге делаем поиск по строке «-SLInit]» и перед ее началом вставляем результат работы скрипта. Обновляем конфиг и перезаливаем файл. Это не многим сложнее поиска по гитхабу, зато куда более гибкое решение и позволяет ни от кого не зависеть.
Это — практически весь инструментарий, которым я пользуюсь в процессе работы из самописного и чем могу поделиться безболезненно. Пароль от архива bin: xss.pro
Основная проблема VNC – доступ к интерактивному сеансу, т.е. пользователь видит что кто-то копашится на компьютере (если находится у экрана, конечно). В целях облегчить себе жизнь был написан ряд утилит, которыми я и спешу поделитьсяс вами, друзья.
VNC Hider (vh.exe)
Первая проблема, с которой нам предстоит столкнуться — отключение обоев и иконка в трее. Не потребовалось много времени, чтобы выяснить, что более-менее опыт пользак завидев странные движения мыши и открывающиеся сами собой окна — первым делом кидается в трей и пытается прибить незванного гостя из меню VNC-сервера. Далее, как правило, следует удаление оного. Оно нам надо? Правильно, не надо. Для этих целей нам и послужит данная утилита: она сама определяет тип сервера (UltraVNC, TightVNC, RealVNC) и меняет его настройки (скрывает иконку в трее, отключает удаление обоев); помимо этого она удаляет из «Пуска» папку с программой и упоминание о ней из списка установленных программ и, на сладкое, прописывает службу VNC-сервера с список загружаемых в безопасном режиме.
Далее перезапускается служба VNC-сервера, а файл удаляется.
Помимо этого, в качестве бонуса, добавляются два пользователя: «Гость» и «vasya». Бонусом является тот факт, что пользователь «Гость» и его описание не вшито в код, а берется прямиком из ресурсов библиотеки «samsrv.dll», т.е. зависит от языка системы. Выглядит это примерно так:
После добавления новых пользователей:
Реальный «Гость»:
Фейковый «Гость»:
Пароль к пользователю vasya:loh, к Гость:vasya_loh. Надеюсь понятно, что это просто пример и у меня пароль от гостя отличается (вам тоже рекомендую поменять
VNC Password Changer (vncpw.exe)
На компьютере с паролем вроде «123» оставлять все в исходном состояние — сумасшествие, слишком велика конкуренция
RFB Input Sender (input_sender.exe)
Все это здорово, скажете вы, но как же нам запустить файл и не вызвать подозрений, если пользователь за ПК? Очень просто! Для этого нам понадобится данная утилита. Как следует из названия, предназначена она для эмуляции ввода с клавиатуры. По схожему принципу работают VNC-черви. Пройдемся по параметрам, тут есть о чем рассказать.
Send via copy/paste — как очевидно из названия, вместо эмуляции ввода с клавиатуры вводит строку по средствам буфера обмена.
Use alt method — вводит текст с помощью Alt-кодов. Бывает полезно на всяких не-английских расскладках. Подробности можно почитать тут _ttps://xakep.ru/2018/06/25/badusb-keyboard-layout/ (можно не оплачивать подписку, вступления к статье вполне достаточно для понимания).
Press Win+R — открыть окно «Выполнить». Бывает нужно не всегда (например, надо ввести ссылку или скрипт написать, а буфер обмена не работает. Или вовсе «Выполнить» уже открыто).
Prepare cmd.exe — дополнительно оборачивает команду в
Код:
cmd /T:01 /K "@echo off && mode con:COLS=15 LINES=1 && title Installing Drivers && %s && exit"
Press VK_LEFT/VK_RIGHT — бывает, что с первого раза «Выполнить» не вызывается и нужно нажать что-то еще. Как правило — помогает. Наблюдал не раз такое поведение при открытых excel-таблицах, не знаю с чем связано.
Clear history — после выполнения основной команды дает дополнительно еще одну
Код:
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /f /va
Данная утилита очень хорошо работает в связке со встроенным файловым менеджером: заливаем файлы куда-то не далеко (короче путь — быстрее ввод, я в предпочитаю папку c:\Intel) и запускаем просто указав путь (например, c:\Intel\vh.exe) в качестве передаваемой строки. Быстро, незаметно, удобно
VNC Dead Killer (vnc_dead_killer.exe)
Представляет из себя простое диалоговое окно, при закрытии которого завершается работа приложения. Предназначение его очевидно из названия: оно прибивает дохлые VNC-сессии. Нужно это для проверки заблокированных VNC. У меня это выглядит следующим образом: при обнаружении VNC с экраном блокировки я первым делом пытаюсь завершить работу. Если такая возможность есть — отлично, достаточно дождаться пока машину опять включат (см. следующую утилиту) и войдут в учетку. Если включили и не разблокировали — повторяем процесс
RFB Pinger (pinger.exe)
Бывают ситуации, когда нужный компьютер не в сети (например, выключают на ночь. ну или мы выключили в своих коварных целях). Для этого нам пригодится данный инструмент. Это не пингер в прямом смысле — icmp-пакетов он не посылает, так что может работать и с Whonix. Вместо этого он пытается подключиться к указанному адресу и сграбить баннер. Если адрес недоступен или нет баннера VNC (например, в случае с динамическим IP) – компьютер считается оффлайн.
Поддерживается три типа клиентов: TightVNC, UltraVNC и RealVNC. Пути к ним доступны в настройках.
Чтобы настроить шаблоны файлов подключения для каждого клиента придется лезть в базу pinger.db и редактировать значение полей «*_file» таблицы «settings», если такая необходимость имеется. Во избежании обнаружения по неосторожности в параметрах подключения указан флаг view-only, чтобы мышью лишний раз не елозить.
Для удобства соединения можно группировать по какому-либо признаку. Для этого при создании/редактировании подключения нужно выбрать группу из списка или ввести новое название
Тут же можно задать/изменить тип клиента, который также меняется и из контекстного меню
Комментарий, как и название группы, можно менять просто повторным нажатием на выбранном поле.
Intranet RFB Bruter (wpfw.exe)
Бывают ситуации, когда в сети есть еще куча машин с VNC, а пароль не подходит. Можно, конечно, установить VPN и просканировать сеть брутером из прошлого треда, но это не удобно — для таких случаев предназначен данный инструмент. Он сам просканирует сеть и начнет перебирать пароли к найденным машинам. Параметры задаются в файле license.lic, в таблице «scan». Пройдемся по ним.
cur_ip – начала диапазона для сканирования
last_ip — конец диапазона
max_clients — общее число соединений
max_bad_clients — число соединений на перебор паролей. т.е. max_clients-max_bad_clients=число соединений, который сканируют сеть
ports — порты для сканирования. Задаются как в масскан, через запятую. Можно указать диапазон через дефис.
wol — побуждать машины в сети перед началом сканирования
Также важно заполнить таблицу «dict» паролями, которые могут использоваться в данной сети.
Файл license.lic переодически копируется в файл user.lic. Сделано это по причине того, что UltraVNC не может скачать файл, который открыт sqlite, а мониторить как происходит процесс перебора всеже нужно.
RDPWrap (rdpw.exe)
Это не совсем по теме VNC, просто дополнительный способ закрепиться в системе. Представляет из себя допиленный rdpwrap от stas_m: добавлено отключение обновлений Windows (чтобы конфиг был всегда актуальным), а также функция доступа к консоли с лок-скрина. Для этих целей в комплекте также прилагается mstsc из дистрибутива Windows XP, который позволяет подключаться без NLA
Чтобы получить доступ к меню необходимо нажать комбинацию Ctr+Alt+S и ввести пин-код «10005000». Их можно поменять в коде (например, заменить RegisterHotKey(NULL,HK_ID,MOD_ALT|MOD_CONTROL,'S') на свою комбинацию, а SECRET_PINCODE на свой числовой пин-код).
Конфиги обновляются с помощью утилиты bin\rdpw\builder.exe — просто перетаскиваем в нее rdpw.exe_ а следом обновленный конфиг.
https://xss.pro/attachments/73034/?hash=5a985b4c763e22bc4da79e8abb8842e7
Конфиги можно брать как с гитхаба, так и составлять самим. В случае, если нужной версии системы нет в текущем конфиге — rdpw.exe выдаст соответствующее сообщение с номером сборки в заголовоке. Вы можете как скопировать версию и поискать на гитхабе, так и пойти путем попроще — скачать termsrv.dll, скормить его IDAPro (предварительно положив рядом файл getversion64.dll) и когда она закончит анализ — выполнить скрипт termsrv_batch.py (File->Script command->Import)
В результате на выходе будет файл «номер_сборки.ini»:
[10.0.19041.3636]
SingleUserPatch.x64=1
SingleUserOffset.x64=11E12
SingleUserCode.x64=Zero
DefPolicyPatch.x64=1
DefPolicyOffset.x64=1F315
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
SLInitHook.x64=1
SLInitOffset.x64=2866C
SLInitFunc.x64=New_CSLQuery_Initialize
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=92AF1
LocalOnlyCode.x64=jmpshort
[10.0.19041.3636-SLInit]
bFUSEnabled.x64=125098
lMaxUserSessions.x64=12507C
bAppServerAllowed.x64=125084
bInitialized.x64=125074
bMultimonAllowed.x64=125090
bServerSku.x64=125078
ulMaxDebugSessions.x64=125094
bRemoteConnAllowed.x64=12508C
SingleUserPatch.x64=1
SingleUserOffset.x64=11E12
SingleUserCode.x64=Zero
DefPolicyPatch.x64=1
DefPolicyOffset.x64=1F315
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
SLInitHook.x64=1
SLInitOffset.x64=2866C
SLInitFunc.x64=New_CSLQuery_Initialize
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=92AF1
LocalOnlyCode.x64=jmpshort
[10.0.19041.3636-SLInit]
bFUSEnabled.x64=125098
lMaxUserSessions.x64=12507C
bAppServerAllowed.x64=125084
bInitialized.x64=125074
bMultimonAllowed.x64=125090
bServerSku.x64=125078
ulMaxDebugSessions.x64=125094
bRemoteConnAllowed.x64=12508C
Это — практически весь инструментарий, которым я пользуюсь в процессе работы из самописного и чем могу поделиться безболезненно. Пароль от архива bin: xss.pro
Вложения
Последнее редактирование: