Showing posts with label VMM. Show all posts
Showing posts with label VMM. Show all posts

Friday, 11 October 2024

Детектим виртуалку.

Всем привет.

Известно что для исследования зловреда нужна песочница. В бюджетном варианте какая-нибудь виртуалка с Windows 7 на борту. 10-ку для этого не советуют ибо там кода который следит за вами, и за самим собой немеряно. Но хакеры ребята умные, и потому не леняться писать детекторы виртуального окружения в свой зловред тоже. Честно говоря,  я был удивлен когда мне предложили спрятать виртуалку простой правкой реестра, как на рисунке.

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

Как распознать виртуальную машину?

Во-первых, любая виртуальная машина несет на своем борту какое-нибудь специфическое оборудование. Это касается видеоадаптера, жесткого диска, идентификатора процессора, версии BIOS, MAC-адреса сетевой карты.

Во-вторых, виртуальные машины оставляют следы в системе в виде запущенных вспомогательных процессов, драйверов и других специфических объектов.

В-третьих, если как следует покопаться в реестре виртуальной машины, там можно найти много всяких интересных ключей, характерных только для виртуальных машин.

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

Что же касается общих признаков наличия виртуальной машины, предложенных в свое время госпожой Рутковской (характерное расположение таблиц IDT, GDT и LDT, а также время выполнения операций процессором), то в настоящий момент все эти признаки трудно поддаются анализу и приведению к какому-нибудь общему знаменателю, главным образом из-за многоядерности и многоликости современных процессоров.

Friday, 6 October 2023

Повторная регистрация HyperV сервера.

Всем привет.

При апгрейде ОС HyperV Windows сервера возможен вариант когда новая версия Windows сносит все текущие установки, в том числе и HyperV роль. Доставить ее повторно не проблема, но в консоли MS SCVMM такой сервер прийдется регистрировать повторно.

Но следует также соблюсти ряд условий:

1) на целевом сервере должна быть активирована служба WinRM. С сервера SCVMM можно проверить доступность службы так: Test-WSMan hv13.forza.com

2) на целевом сервере должен быть отключен фаерволл.

3) на целевом сервере надо включить поддержку CredSSP:

winrm set winrm/config/service/auth '@{CredSSP="true"}' 

А проверить ее можно так:

winrm get winrm/config/service/auth


Все, можно регистрировать обновленный сервер HyperV повторно, если его hostname совпадает со старым, то старый следует предварительно удалить.

Удачи.



Friday, 7 July 2023

Правка состояния MS VMM.

Привет всем.

В последнее время были случаи когда в MS VMM по одному из серверов Hyper V показало что все его ВМ дружно находяться в нерабочем состоянии. Но поскольку жалоб от пользователей сервиса не поступало я понял что проблема скорее в самом отображении состояния  ВМ в VMM.

Итак первое что следовало проверить запущена ли служба "System Center Virtual Machine Manager Agent" на наблюдаемом сервере Hyper V. Если не запущена, то стартуем ее, если запущена то перезапускаем ее.

Однако вчера и это не помогло.

Тогда смотрим следующее - нередко после обновлений и ребута ОС сервера сетевой профиль падает в состояние "Общедоступный" и значок сетевого соединнеия  показывает его как "Неопознанная сеть".  Лечиться такое быстро - следует перестартовать службу "Служба сведений о подключенных сетях", она же "Network Lоcation Awareness".

После следует перестартовать службу "System Center Virtual Machine Manager Agent"  еще разок.

Если служба работает и сеть определяется правильно следует подождать пару минут пока  VMM обновит свою картинку. 

Контроль за состоянием критических служб можно возложить на Zabbix или на MS SCOM.

Удачи.

Saturday, 10 September 2022

Удаляем фантомные сервера из VMM.

Всем привет.

Сегодня хочу вам поведать как можно убрать из консоли SCVMM сведения о некорректно удаленных(мигрированных) HV-серверах. Например, в случае с одного из серверов виртуализации сняли роль Hyper-V, поставили чистую ОС и отдали под другие задачи, а из консоли VMM отключить забыли. Но это может произойти даже когда администратор  выполняет все штатно в самой консоли SCVMM. В результате чего получается такая картина:

Собственно, теперь с этим сервером, тот самый который pending, сделать ничего нельзя ни из GUI, ни из PowerShell. Если он просто перестал существовать и забыт в SCVMM, то его можно удалить так:

$VMM = 'hv04.forza.com'

$Name = Get-SCVMHost -ComputerName $VMM

Remove-SCVMHost -VMHost $Name -Force

Saturday, 4 June 2022

Собираем статистику HyperV, v2.

Всем привет.

Как вы уже поняли с помощью Powershell можно легко получить информацию по всем виртуальным серверам которые управляются в System Center Virtual Machine Manager. Т.е. по новому наш скрипт с которым я чудил два месяца тому теперь может выглядеть совсем по другому.

Пусть $VM = 'SRV-S110-APP-01'

Тогда так получим общую информацию по серверу SRV-S110-APP-01:

Get-SCVirtualMachine -Name $VM | Format-List -Property Name, ComputerName, Description, HostName, OperatingSystem, CPUCount, Memory, MemoryAssignedMB, DynamicMemoryDemandMB,  @{label='ActualSizeVHD GB';expression={$_.TotalSize/1gb -as [int]}}, Status, Location

Так необходимую информацию по сетевому подключению:

Get-SCVirtualNetworkAdapter -VM $VM  | Format-List -Property VirtualNetwork, VlanID, IPv4Addresses, IPv4Subnets, MACAddress 

А так необходимую информацию по дискам:

Get-SCVirtualHardDisk -VM $VM | Format-List -Property VHDFormatType, VHDType, @{label='DiskSize GB';expression={$_.Size/1gb -as [int]}}, @{label='MaxSize GB';expression={$_.MaximumSize/1gb -as [int]}},Location

Как консолидировать в один файл ответы с этих трех запросов вы уже знаете.

Однако по дискам замечу, что Get-SCVirtualHardDisk отдает информацию только по одному виртуальному диску когда он разностный, т.е. по avhdx, а про vhdx-родителя при этом он почему то умалчивает.

Пока так.
Слава Украине!

Thursday, 26 May 2022

Дополнительное поле в VMM.

Всем привет.

Пересматривая данные по своим виртуалкам обнаружил что упустил прошлый раз одну важную величину - это максимальный размер виртуального диска который выделен для ВМ. Разумеется актуальный(текущий) размер диска тоже важен, но максимальный необходим при, например, миграции ВМ на другой хост.

Поэтому наш запрос в прошлой выборке теперь пишем так: 

Get-VM | Select-Object Name,VMId | Get-VHD | select vhdtype,vhdformat,path,@{label='ActualSize';expression={$_.filesize/1gb -as [int]}},@{label='MaxSize';expression={$_.size/1gb -as [int]}} | Sort Name | ft

Эти же данные можно наглядно получить в System Center Virtual Machine Manager просто подключив необходимые столбики в главной панели. Однако есть некоторое неудобство в том что VMM по умочанию не имеет системы отчетности, т.е. для экспорта данных вам надо выполнить прямой sql-запрос к базе VMM.

Кстати с максимальным размером диска в VMM тоже не все просто. Такого столбика по  умолчанию нет. Но выход  есть - это создание дополнительного поля(property) с помощью Powershell.

Создаем поле "Disk MaxSize":

New-SCCustomProperty -Name "Disk MaxSize" -AddMember VM

Делаем запрос для получения значения "Disk MaxSize" по одной ВМ:

$VM = 'SRV-PRINT01'

$VHD = Get-SCVirtualMachine -Name $VM | Get-SCVirtualHardDisk | select {$_.MaximumSize/1gb} 

Вносим значение в поле "Disk MaxSize":

Set-SCCustomPropertyValue -InputObject (Get-SCVirtualMachine -Name $VM) -CustomProperty (Get-SCCustomProperty -Name "Disk MaxSize") -Value $VHD.'$_.MaximumSize/1gb'

А вот и результат:

Удаляем поле "Disk MaxSize" так, если в нем отпала необходимость:

Remove-SCCustomProperty -CustomProperty (Get-SCCustomProperty -Name "Disk MaxSize")

На сегодня все.

Слава Украине!

Sunday, 20 December 2020

How is doing patches and installation by Ansible.

Hi all.

How is doing patches and installation by Ansible? Next story by Janathan Lozada De La Matta.

So we’ve learned how to update a system, restart the VM, reconnect, and install a RPM. 

  - name: update the system

    yum:

      name: "*"

      state: latest

In the first line, we give the task a meaningful name so we know what Ansible is doing. In the next line, the yum module updates the CentOS virtual machine (VM), then name: "*" tells yum to update everything, and, finally, state: latest updates to the latest RPM. After updating the system, we need to restart and reconnect:

  - name: restart system to reboot to newest kernel

    shell: "sleep 5 && reboot"

    async: 1

    poll: 0

  - name: wait for 10 seconds

    pause:

      seconds: 10

  - name: wait for the system to reboot

    wait_for_connection:

      connect_timeout: 20

      sleep: 5

      delay: 5

      timeout: 60

  - name: install epel-release

    yum:

      name: epel-release

      state: latest

Sunday, 17 June 2018

Способы делегирования административных полномoчий в АD.

Всем привет.

Очевидно, что практически в каждой организации ИТ-подразделение включает в себя нескольких администраторов, и различные административные задачи должны быть распределены среди администраторов и администраторов филиалов.

Есть разные способы делегирования административных полномoчий в АD:

1) В OU Группа по меню «Свойства/Управляется/Изменить»  назначается Пользователь который может изменять только членство объектов в этой группе.

2) В OU Группа по меню «Делегирование управления…» назначается Пользователь которому далее назначается задача из предлагаемого списка, например «Создание, удаление и управление уч. записями пользователей».  Это дает ему право править в этой группе любой объект типа «Пользователь» и все его атрибуты.

3) С помощью создания Группы с ограниченным доступом. Создается еще одна группа администраторов которой назначаются ограниченные права на конкретный OU. 

Я много раз читал что таким образом можно предложить и отделу кадров править многие атрибуты пользователей, но никак не мог понять каким именно образом кадровики будут это делать.)

Думаю, с администратором филиала должно быть полегче. Итак, инструменты которыми можно править делегированные администратору филиала объекты AD:
- модуль RSAT Powershell: бесплатен, без GUI, требует знания Powershell, требует инсталляцию
- оснастка MMC «Пользователи и компьютеры AD»: бесплатен, не требует инсталляции.
- оснастка MMC ADSIEdit: бесплатен, не требует инсталляции
- утилита ADExplorer: бесплатен, не требует инсталляции
- утилита Softerra LDAP Administrator: 30 дней бесплатный период, требует инсталляцию.

Однако независимо от задачи делегирования существует видимость объектов в AD. По умолчанию все пользователи домена как члены группы «Прошедшие проверку» могут видеть все объекты в домене в режиме чтения.

Friday, 8 June 2018

Сравнение классов виртуальных машин в VMM.

Всем привет.

Как я писал ранее недавно у меня была возможность попробовать Virtual Machine Manager.  В Virtual Machine Manager надо было создать несколько виртуальных хостов. Так вот сейчас в VMM такая политика что виртуальные машины могут быть двух классов: Generation 1 и Generation 2.

Поколение виртуальной машины определяет виртуальное аппаратное обеспечение и функционал, предоставляемый создаваемой виртуальной машине. Возможность поддержки виртуальных машин поколения Generation 2 появилась начиная с Windows Server 2012 R2. Гипервизор Hyper-V установленный на базе Windows 2012 R2 позволяет использовать два типа виртуальных машин - Generation 1 и Generation 2. Виртуальные машины поколения Generation 2 представлены с упрощенной моделью виртуального аппаратного обеспечения и поддерживают возможность использования интерфейса UEFI (Unified Extensible Firmware Interface) вместо BIOS. Также дополнительно, для виртуальных машин поколения Generation 2 была исключена возможность использования эмуляции большинства legacy-устройств. Поколение Generation 1 позволяет использовать те же функции виртуального аппаратного обеспечения, которые были доступны при работе виртуальной машины на гипервизоре Hyper-V до выпуска версии системы Windows 2012 R2.

Поколение Generation 2 позволяет задействовать новый функционал:
- безопасная загрузка (Secure Boot (включен по умолчанию))
- загрузка системы из SCSI виртуального жесткого диска (Boot from a SCSI virtual hard drive)
- загрузка системы из виртуального SCSI DVD привода (Boot from a SCSI virtual DVD drive)
- загрузка системы по сети с использованием стандартного сетевого адаптера (PXE boot using a standard network adapter)
- поддержка UEFI (UEFI firmware support).

Tuesday, 5 June 2018

Virtual Machine Manager и версия RDP.

Всем привет.

Мне представилась возможность попробовать Virtual Machine Manager для тестирования одного проекта в облаке.

Для запуска "Virtual Machine Manager" требуется использовать протокол RDP (Remote Desktop Protocol) версии не ниже 8.1, что в случае использования клиентом операционных систем семейства Windows, предполагает использование версии не ниже Windows7 SP1. Для работы с облаком необходимо что бы версия Remote Desktop Connection была не ниже 8.1 и поддерживала Remote Desktop Protocol не ниже 10.2.

Проверяем текущую версию протокола RDP:




Все хорошо. Однако при работе с RDP в Windows 10 может возникнуть другая "многозначительная" ошибка подключения: 


Эта ошибка правится, как и многое другое, просто в реестре Windows 10. В ветке реестра HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client создается ключик RDGClientTransport тип ключа REG_DWORD (DWORD 32-bit Value) с значением 1.

Продолжение следует.

Версия на печать

Популярное