Cookie mstshash administr печатает принтер
14 сентября 2021 года Microsoft выпустили ряд обновлений для Windows 10. После установки этих обновлений, пользователи могут столкнуться с проблемой печати документов на принтеры, находящиеся в общем доступе и подключенные через сеть: принтер находится в режиме автономной работы; документы, отправленные на печать, остаются в очереди и не печатаются. При попытке переподключения принтера, появляется ошибка: "Windows не удаётся подключиться к принтеру" с кодом ошибки 0x0000011b, 0x00000709 или 0x80070035.
Решение через реестр
Данное решение предложил комментатор Valdiz в комментариях к этой статье.
Как показывает практика, это решение помогает примерно в половине случаев. Мы рекомендуем всё-таки сразу удалять обновления ОС.
Запустите редактор реестра (regedit). Перейдите в ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print . Создайте параметр типа DWORD32 с именем RpcAuthnLevelPrivacyEnabled и установите ему значение 0 .
Или скачайте файл fix-0x0000011b.zip (1 КБ), разархивируйте, запустите файл fix-0x0000011b.reg и разрешите ему внести изменения в реестр.
Данная ошибка появляется после установки нескольких обновлений Windows:
- KB5005565
- KB5005568
- KB5006670
- KB5006714 (по информации пользователя OLeg из комментариев)
- KB5007186
- KB5007247 (по информации пользователя Oleg из комментариев)
Обновления необходимо удалить на обоих компьютерах: и на том, с которого происходит попытка подключения к принтеру, и на том, к которому принтер подключен физически.
Для удаления этих обновлений перейдите в Панель управления – Программы и компоненты – Просмотр установленных обновлений.
В открывшемся окне найдите обновление с индексами из перечисленных выше, выделите их и нажмите "Удалить" в панели сверху. Согласитесь на удаление обновления и дождитесь завершения удаления.
Удалить обновления можно и через командную строку или PowerShell (от имени администратора): wusa /uninstall /kb:5005565 , wusa /uninstall /kb:5005568 , wusa /uninstall /kb:5006670 , wusa /uninstall /kb:5006714 , wusa /uninstall /kb:5007186 , wusa /uninstall /kb:5007247
Так же обратите внимание: могут установиться не все обновления, а, например, только одно. В таком случае, при попытке удаления неустановленного обновления, появится ошибка:
Просто проигнорируйте её.
После удаления обновлений, перезагрузите компьютер и попробуйте подключиться к принтеру вновь.
В случае неудачи, переименуйте принтер. После этого проблема должна исчезнуть.
Отключение (скрытие) обновления
Для того, чтобы данные обновления больше не устанавливались на компьютер, скачайте утилиту скрытия обновлений Windows:
wushowhide.diagcab (48КБ) / ZIP-архив: wushowhide.zip (44КБ)
В случае скачивания архива, распакуйте из него файл wushowhide.diagcab в любую папку и запустите его.
В первом окне нажмите кнопку «Далее», после чего дождитесь сбора сведений:
Выберите пункт «Hide updates» (Скрыть обновления):
Найдите обновление «Накопительное обновления для Windows 10 Version 21H1 для систем на базе процессоров x64, 2021 09 (KB5005565)» и иные обновления, указанные в начале страницы. Установите на них галочку и нажмите «Далее»:
Дождитесь завершения скрытия обновления. Убедитесь, что установлен статус «Исправлено». Нажмите «Закрыть» и перезагрузите ПК.
Если обновление в списке не отображается – значит либо обновление уже установлено в системе (и его необходимо предварительно удалить), либо не выполнена перезагрузка после удаления обновления.
Временное отключение обновлений Windows
Также вы можете временно приостановить обновления ОС, пока Microsoft не решат проблему данного обновления. Сделать это можно через приложение "Параметры":
Параметры – Обновление и безопасность – Центр обновления Windows – Дополнительные параметры – Раздел "Приостановка обновлений".
В данном разделе Вы можете приостановить скачивание обновлений до определённой даты (максимум на 35 дней).
Также можно ограничить скачивание некоторых обновлений путём перевода подключения в тип "Лимитное подключение". Сделать это можно также через приложение "Параметры":
Параметры – Сеть и Интернет – Ethernet – нажмите по текущему подключению левой кнопкой мыши (обычно оно называется "Сеть"). В разделе "Лимитное подключение" переведите ползунок "Задать как лимитное подключение".
При включении данной функции, часть необязательных обновлений скачиваться не будет.
Совершенно случайно, в пассивном поиске альтернативы устаревшему 2X-LoadBalancer и тяжелому, непонятному Remote Connection Broker от MS наткнулся на HAProxy и его умению проксировать RDP трафик. В выдачах поисковиков практически не выдается haproxy в качестве прокси для RDP. Сейчас вдруг пачками стал выдавать. Вместе с тем, коммерческие продукты с таким же функционалом, такие как упоминались выше, стоят приличных денег.
В общем, мне показалось, что это может быть кому-то интересным. Поэтому я решил осветить это решение. Плюс, в конце продемонстрирую гибкость использования HAProxy, которой нет у именитых конкурентов.
Как это работает, вкратце
HAProxy умеет идентифицировать RDP, проксировать его и парсить rdp_cookie для выуживания из них нужной информации и последующего использования ее в механизме маршрутизации.
Клиент подключается к прокси, тот вытаскивает логин из rdp_cookie, выбирает для него сервер, записывает значения «логин — сервер» в stick-table и подключает пользователя к серверу.
Соотвественно, при следующем подключении этого же клиента(с этим логином) прокси находит запись в таблице и подключает его к тому серверу на котором у пользователя открытая сессия. Гениально и просто!
stick-table — это таблица, хранящаяся в памяти процесса, где для каждой записи можно определить время жизни. Выставить 8 часов, и весь день клиент будет попадать на один и тот же сервер.
Ниже стандартный конфиг:
Трудности
Так как stick-table располагается в памяти, при перезагрузки процесса теряется вся информация о парах «клиент-сервер», а это критическая информация в нашем случае. Для выхода из ситуации я написал скриптик, который использую для перезагрузки процесса. Скрипт перед остановкой процесса скидывает stick-table в файл, затем после старта процесса записывает данные обратно(текущие сессии при этом не обрываются):
Что еще?
Еще можно гибко управлять тем, на какие сервера проксировать тех или иных клиентов. Делать это можно на основании логина, ip адреса, сети, времени суток и т.п.
Я же приведу пример как на основе групп из AD можно разбить сервера фермы по отделам, например:
два сервера для Бухгалтерии
два сервера для Маркетинга
два сервера для Продажников
два для всех остальных.
Понятно, что в каждой группе серверов могут быть различные мощности: установленное ПО и какие-то специфические настройки, поэтому мы их разделим.
HAProxy позволяет на основании определенных политик гибко определять к какому серверу подключать пользователя, имея одну точку входа для всех RDP подключений (что несомненно удобно).
Для это необходимо немного модифицировать конфиг HAProxy и скрипт перезагрузки:
модифицированный скрипт перезагрузки:
Как это работает:
В AD создаются группы (и наверняка такие группы уже есть) Accounts, Marketing и Sales, в эти группы помещаются сотрудники. Скрипт подключается к AD и получает список сотрудников по выбранным группам. Список сотрудников сохраняется в файл с именем группы.
В конфиге HAProxy настроены ACL источником которых являются эти файлы групп. Если в группу добавляется новый сотрудник, необходимо выполнить скрипт для обновления файла группы.
Прокси проверяет, есть-ли логин в указанном файле. Если есть, отправляет на определенный для этой группы бакенд. Все очень просто!
Параметры запуска скрипта:
haproxy.py group group_name — перезагрузка группы, текущие сессии при этом не обрываются.
haproxy.py restart — перезагрузка процесса (перечитать конфиг), при этом текущие сессии не обрываются.
Отказоустойчивость
В данном примере решение не обладает никакой отказоустойчивостью.
Во первых, не зарезервирован haproxy.
Первое, резервирование haproxy можно сделать различными способами.
Второе сложнее. Нужен механизм, который бы точно определял, что с сервером. Сервер может по каким то легальным и не очень причинам быть не доступен по сети некоторое время, скажем 1 минуту, к примеру. Но при этом иметь открытыми все RDP сессии. И если мы решим, что сервер больше не доступен, и нужно всех пользователей переключать на другие сервера, то можем получить несохраненные данные, клиенты могут потерять большой обьем работ и тп.
Технически же, реализовать очистку stick-table не вызывает трудности. Для отслеживания состояния серверов можно использовать различные мониторинговые системы. В том же Zabbix, по событиям можно вызывать локальные скрипты.В нашем случае можно вызывать скрипт очистки stick-table.
В заключении, с учетом тех недостатков, которые я указал выше, HAProxy работает очень стабильно и надежно.
В этой статье речь пойдет о автоматизации прохождения hCaptcha при помощи получения специальных cookie. Учтите, что при обнаружении подозрительных действий с вашего компьютера процесс прохождения проверки может замедлиться.
Приступим к реализации:
Для начала открываем любой сайт с подобной капчей:
Нажимаем на специальное окно для прохождения проверки на робота:
Под картинками находится значок с тремя точками, нажимаем на него левой кнопкой мыши:
Теперь среди списка находим надпись "Доступность" и кликаем на неё:
В разделе статуса нажимаем на текст "Получить файл cookie доступности":
Вводим адрес своей электронной почты (могут подойти не все, gmail точно работает) и отправляем заявку:
Вы перейдете на страницу, настраиваем cookie доступности при помощи нажатия на кнопку:
На этом настройка окончена, снова перейдите на любой сайт с этой капчей и проверьте работоспособность:
Этичный хакинг и тестирование на проникновение, информационная безопасность
Оглавление: Всё о RDP: от настройки до взлома
В этом разделе рассмотрены инструменты и методы, которые связаны с поиском и проверкой защищённости удалённых рабочих столов, работу которых обеспечивает служба RDP.
Как обнаружить компьютеры с Remote Desktop Protocol (RDP)
Поиск RDP по открытым портам
По умолчанию RDP сервер прослушивает TCP-порт 3389 и UDP-порт 3389, поэтому компьютеры с включённым удалённым рабочим столом можно искать с помощью Nmap командой вида:
Для сбора баннеров можно добавьте опции -sV --script=banner (Рецепты Nmap):
sudo nmap -p 3389 -sU -sS -sV --script=banner 192.168.0.0/24
Подключение стандартными утилитами
Проверить наличие запущенной службы RDP можно и обычными утилитами.
В Windows:
В Linux:
Брут-форс RDP
crowbar (levye)
Программа crowbar, которая раньше называлась levye, это инструмент брут-форса, который поддерживает sshkey, vnckey, rdp, openvpn.
Особенность программы — это её простота и эффективность.
Установка crowbar в Kali Linux
Установка crowbar в BlackArch
В качестве цели можно указать диапазон IP адресов в формате CIDR (опция -s), либо файл с такими диапазонами (опция -S). Если нужно указать только одну цель (один IP адрес), то просто используйте маску /32, например, 192.168.0.101/32.
Опцией -U указывает файл со списком имён пользователей, а опцией -u можно указать одного пользователя.
Опцией -C указывает файл со списком паролей, а опцией -c можно указать один пароль.
С опцией -b нужно указать протокол для атаки, в данном случае это -b rdp.
С опцией -p можно изменить стандартный порт протокола.
Опция -d делает так, что предварительно проверяется проверка, открыты ли порты на указанных целях (т. е. указанных с помощью опций -S и -s). Проверка делается программой nmap.
Пример успешной атаки на RDP:
Программа levye также работает, но в ней чуть другие опции, пример запуска:
patator
patator это мощнейшая программа для брут-форса множества сетевых служб.
Пример запуска брут-форса RDP:
rdesktop-brute
Это модифицированная версия уже рассмотренной программы rdesktop, которая является клиентом для подключения к Windows Remote Desktop. Эта версия отличается от оригинальной тем, что добавлен патч для брут-форса.
Напомню, что программа rdesktop требует дополнительной настройки в случае включённой проверки подлинности на уровне сети (NLA), поэтому пользоваться её не очень удобно.
Сбор информации об RDP и через RDP
rdp-sec-check для получения характеристик настроек безопасности RDP службы
Инструмент rdp-sec-check проверяет, какие используются алгоритмы шифрования и методы аутентификации, а также некоторые другие настройки безопасности. В конце проверки rdp-sec-check подводит краткий итог о возможных проблемах безопасности службы удалённого рабочего стола.
Установка rdp-sec-check в Kali Linux
Установка rdp-sec-check в BlackArch
Команда для запуска очень простая:
На скриншоте вы можете видеть используемые на удалённом RDP сервере методы обеспечения безопасности. Можно увидеть, что после строки [+] Summary of security issues (краткий перечень проблем безопасности) ничего нет, значит явных проблем не выявлено.
Проверим другой, менее защищённый хост:
Здесь мы видим следующие проблемы безопасности сервера RDP:
В них сказано, что не используется NLA и поэтому возможна атака DOS. От себя добавлю, что если не используется NLA, то ещё и возможна атака человек-посередине. Далее сказано, что SSL поддерживается, но не является обязательной, что делает возможной атаку MITM (человек-посередине).
Скрипты Nmap для сбора информации и аудита RDP
Среди них я нашёл 3, имеющих отношение к RDP:
rdp-enum-encryption
Определяет, какой уровень безопасности и уровень шифрования поддерживаются службой RDP. Это происходит путём циклического перебора всех существующих протоколов и шифров. При запуске в режиме отладки сценарий также возвращает отказавшие протоколы и шифры, а также все обнаруженные ошибки.
rdp-ntlm-info
Этот скрипт перечисляет информацию от удалённых служб RDP с включённой аутентификацией CredSSP (NLA).
rdp-vuln-ms12-020
Проверяет, является ли машина уязвимой для уязвимости MS12-020 RDP.
Для запуска нужно использовать опцию --script, после которой можно указать скрипт, либо несколько скриптов через запятую:
Также можно задействовать все скрипты следующим образом:
Пример поиска серверов RDP в локальной сети и получение информации с помощью NSE скриптов:
Атака человек-посередине на RDP
Responder
Responder это комплексный инструмент для выполнения атаки человек-посередине в отношении методов аутентификации Windows. Среди прочих жульнических серверов, в программе имеется RDP сервер.
pyrdp
pyrdp — это инструмент для атаки человек-посередине и библиотека для работы с RDP написанные на Python 3.
Включает в себя три инструмента:
В pyrdp отсутствует собственный спуфер, поэтому перенаправление трафика нужно выполнять сторонними инструментами, такими как bettercap, Ettercap или MITMf.
Пример запуска атаки человек-посередине на RDP с помощью pyrdp:
Возможно возникновение следующей ошибки:
Для её исправления выполните команды:
Ошибка «The server failed the negotiation. Error: The server requires that the client support Enhanced RDP Security»
Также возможна такая ошибка:
Network Level Authentication (NLA) является хорошим способом дополнительной защиты RDP, поскольку без знания атакующим пароля пользователя Windows становится невозможно выполнить атаку человек-посередине на RDP.
seth выполняет атаку MitM и извлекает учётные данные в виде простого текста из RDP подключений.
Прочие программы
sensepost-xrdp
sensepost-xrdp это простейший инструмент удалённого рабочего стола X11 для эксплуатации сессий X11 не требующих аутентификации.
sticky-keys-hunter
sticky-keys-hunter это скрипт для тестирования RDP хостов на sticky keys и utilman backdoor.
Читайте также: