Friday, 20 July 2018

Набор инструментов для начального расследования.

Всем привет.

Рассказывая недавно про набор инструментов для начального реагирования на вирусную атаку вспомнил одного гуру по разбору кейсов с IOC (Indicator of Compromise). Да, я его уже упоминал на страницах моего блога. Но сегодня просто хотел бы перечислить те инструменты которые Владислав использует для разбора. Думаю вам будет полезно. Чтобы понять как он их использует достаточно перечитать любой из его кейсов, которые он публикует регулярно на своем блоге.

Не ошибусь если назову главным инструментом Владислава анализатор пакетов Wireshark. Почему он? Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем. Wireshark - это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга. Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров. Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows.


Далее следуют Autoruns и Process Explorer про которые я упоминал прошлый раз.

И замыкает обойму исследователя TCPView - это маленькая бесплатная программа для мониторинга TCP/IP подключений в Windows, написанная Марком Руссиновичем, известным специалистом по безопасности, работающем сейчас в Microsoft. Она показывает в реальном времени процессы на вашем компьютере использующие TCP протокол. Программа очень удобна для отлавливания вирусов, выявления сетевой активности разных программ, да и просто для того чтобы выяснить кто куда и зачем к вам подключился. Прямо из её интерфейса можно убивать нехорошие процессы, а можно просто закрывать их подключения.


Разумеется все исследования надо проводить на замкнутом полигоне, например в VirtualBox.

Успехов.

Thursday, 19 July 2018

Альтернативы WSUS.

Всем привет.

Я уже писал про WSUS и как с ним бороться. В сети можно найти множество записей на эту тему. Вот к примеру вариант как приручали WSUS при помощи Ansible и не только.

Неплохие примеры, особенно радуют предложения по альтернативам к WSUS. И это понятно, претензии по функционалу WSUS есть у любого. Даже у меня).

Поэтому я решил проверить некоторые из них. К примеру, Patch Management от Comodo которая хоть и бесплатна, будет доступна вам только на рабочий email.

И зря ребята обошли вниманием полезную утилиту для Windows10 Windows Update MiniTool. Програмка предназначена для исправления урезанного функционала Windows Update в Windows 10.

Windows Update Minitool Настройка откуда брать обновления


Утилита Windows Update MiniTool возвращает привычный функционал установки обновлений. Утилита использует стандартную инфраструктуру Windows Update, а не списки обновлений на сторонних ресурсах.

Monday, 16 July 2018

Курсы DevOps онлайн.

Всем привет.

Не имея в своем городе достойных курсов по DevOps приходится выкручиваться онлайн. Недавно по этому поводу я вам рекомендовал книгу Эберхарда Вольфа (Eberhard Wolff) "Continuous delivery. Практика непрерывных апдейтов". Так вот, несмотря на мой предварительный скепсис книга оказалась достойная. Более того с сайта издательства "Питер" или с оригинального сайта автора можно скачать все исходники приводимых в книге кейсов. Это бомба. Бери и пробуй. А тестовые упражнения, как всегда, будут кстати.

А что же курсы? Курсы бывает разные, я приведу в пример те которые я проходил лично и бесплатно. Все они в той или иной мере касаются темы DevOps. Разумеется все курсы ведутся на английском языке.

AWS Essentials   
Docker adn Selenium   

AWS Security Fundamentals Online (Released 2016)       

Azure Fundamentals (AZURE214x)  и DevOps Testing  (DEVOPS200.5).

Также здесь рекомендую пройти Continuous Integration and Continuous Deployment (DEVOPS200.3) и Application Monitoring and Feedback Loops (DEVOPS200.7).

Introduction to DevOps (DEV212x).

Манера преподавания везде разная, где-то есть английские субтитры а где-то нет. Где-то отсутствуют лекции. Ведение собственных записей обязательно. 

Выбор за вами.

Инструменты для начального реагирования на вирусную атаку.

Всем привет.

Большинство вирусных атак проходит через этапы kill chain. При этом на каждом этапе вредоносное ПО оставляет на скомпрометированной машине следы, называемые индикаторами компрометации (IOCs). При расследовании инцидентов необходимо обнаружить такие индикаторы, определить этап атаки, которому они соответствуют, выявить уязвимости, использованные вредоносным ПО и предотвратить дальнейшее развитие атаки. Главная сложность при этом заключается в том, чтобы собрать достаточно уникальных индикаторов, которые позволят точно определить тип вредоносного ПО, используемого в каждой конкретной атаке.

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

SYSINTERNALS 
Sysinternals – это набор бесплатных программ (более 30-ти) для администрирования и мониторинга компьютеров под управлением операционных систем Windows. Пакет Sysinternals Suite включает в себя несколько десятков небольших утилит. Утилиты Sysinternals рекомендуется использовать для сбора первоначальных данных об инциденте. Скачать инструменты можно с сайта Microsoft® по ссылке https://technet.microsoft.com/en-us/sysinternals/default.aspx.

Наиболее важные утилиты, которые могут быть использованы при реагировании на инциденты, рассмотрены ниже.

PSTools – набор утилит командной строки для удаленного запуска приложений (PSExec), получения списка процессов на локальном или удаленном компьютере (PSList), принудительного завершения задач (Pskill), управления службами (PSService). Кроме того, в набор PsTools входят служебные программы для перезагрузки или выключения компьютеров, вывода содержимого журналов событий и многого другого.

Process Monitor – программа для наблюдения в реальном времени за действиями различных процессов в среде операционной системы Windows. Утилита включает в себя возможности мониторинга обращений к реестру, обращений к файловой системе и дополнительно позволяет получать более подробную информацию о взаимодействии процессов, использовании ресурсов, сетевой активности и операциях ввода-вывода.

Process Explorer – программа для наблюдения в реальном масштабе времени за действиями различных процессов и управления ими в среде операционной системы Windows.
Process Explorer позволяет:
• получать подробную информацию о всех процессах, выполняющихся в среде Windows;
• получать доступ к функциям управления процессами из главного меню или из контекстного меню выбранного процесса;
• использовать функции принудительного завершения (Kill), приостановки (Suspend) и продолжения выполнения (Resume) процессов;
• управлять не только процессами, но и потоками (Threads), а также динамически внедряемыми в основной процесс программными модулями (DLL);
• в любой момент времени принудительно выполнять дампы памяти (Minidump или Fill Dump) с сохранением в выбранный файл.

AutoRuns – утилита для 32 и 64-разрядных ОС Microsoft Windows, которая способна управлять автозагрузкой программ, сервисов, модулей, драйверов и других компонентов системы. Autoruns отображает все, что будет запущено на компьютере при старте ОС, регистрации пользователя и других событиях. Отображаются программы, загружаемые модули, драйверы, системные службы, назначенные задания, Winlogon. Утилита может показать свойства любого объекта, пути и параметры запуска, а также отменять их автозапуск. Утилита поддерживает возможность проверки файлов автозапуска по хешу на сервисе VirusTotal, при этом неизвестные файлы можно отправить на анализ в антивирусные лаборатории.

Saturday, 14 July 2018

Перехватываем трафик с NetEventPacketCapture.

Всем привет.

Я хочу ловить сетевой трафик для выявления одной проблемы. Чем? Как? До изобретения своего велосипеда можно вспомнить о готовых продуктах, предназначенных для перехвата сетевого трафика и последующего анализа. Вот основные программы, занимающиеся анализом трафика. Из бесплатных это TCPdump, Wireshark и MS Message Analyzer. В зависимости от имеющегося сетевого оборудования это еще могут быть встроенные средства типа Mikrotik Packet Sniffer.

Но оказалось что ловить сетевые пакеты можно просто из командной строки Powershell с использованием набора командлетов NetEventPacketCapture. Такая фишка начиная с Windows 8.1/2012R2.

Но, если вы помните, поскольку в PowerShell можно использовать инструментарий .NET, то еще до появления набора командлетов NetEventPacketCapture в сети был скрипт сниффера Get-Packet. Ознакомиться с вариантом его работы можно здесь.

А сегодня разберем пример с NetEventPacketCapture.

Представим, что на компьютере пользователь работает в терминальной сессии, подглядим за его работой при помощи PowerShell.

Для начала создадим подключение к компьютеру пользователя:

$Cim = New-CimSession -ComputerName 'WASA07'

Thursday, 12 July 2018

Перенос пользователей в AD.

Всем привет.

Случается перенос базы пользователей с одного домена в AD на другой. Штатных есть три варианта: утилитами CSVDE, LDIFLE и RSAT(Powershell).

Как принято вначале выполняем экспорт, а потом, естественно, импорт базы.

CSVDE:

Eхport CSVDE:
csvde -f C:\123\exportAD.csv -m -n -o "primaryGroupID,lockoutTime" -j d:\Logs\

Import CSVDE:
csvde -i -f C:\exportAD.csv -k -j D:\Logs\


При использовании этих утилит не экспортируются атрибуты, связанные с безопасностью — имена групп, которым принадлежат пользователи и пользовательские пароли. Пользователям присваиваются пустые пароли и атрибут "Требовать смену пароля при следующем входе в систему".

LDIFLE:

ldifde -u -f C:Exportuser.ldf -s dc2 -d "dc=mydomain,dc=local" -p subtree -r "(&(objectCategory=person)(objectClass=User)(givenname=*))" -l "cn,sn,description,givenName,initials,displayName,name,objectclass,profilePath,homeDirectory,homeDrive,samAccountName,mail"

Затем с помощью текстового редактора автоматически меняем в файле Exportuser.ldf имя домена у всех пользователей:
DC=mydomain,DC=local на DC=new,DC=mydomain,DC=local

И делаем импорт:
ldifde -i -f C:Exportuser.ldf -s dc02

При экспорте, если есть проблемы с русскими атрибутами пользователей, надо добавить ключ -u, т.е. экспорт в юникод. Ключ -f указывает на файл обмена.

RSAT(Powershell):

Export to CSV:
get-aduser –filter * -property * | export-CSV d:\export\adusersexport.csv -NoTypeInformation -Encoding UTF 8

Import CSV:
Import-Module ActiveDirectory
$USERS = Import-CSV d:\export\adusersexport.csv

$USERS|Foreach{
Set-ADUSer -Identity $_.samaccountname -TelephoneNumber $_.TelephoneNumber -MobilePhone $_.MobilePhone -StreetAddress $_.StreetAddress -City $_.City -Title $_.Title}?

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

Wednesday, 11 July 2018

ETIAS - без анкетки никуда.

Всем привет.

Европейский парламент 5 июля утвердил создание системы авторизации и информирования про путешествия ETIAS, которая изменит правила въезда в Шенгенскую зону. Об этом сообщается на сайте Европарламента. После внедрения системы граждане стран, которые не входят в ЕС, но освобождаются от необходимости получения виз, теперь должны будут получить разрешение на въезд на территорию шенгена заблаговременно перед поездкой. Редактор AIN.UA разобрался, как это повлияет на украинцев и безвиз.

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

Трудно комментировать многие пункты, но настораживает присутствие так называемых вопросов-триггеров, под которые можно получить запрет практически каждому второму соискателю. Например информация про поездки в зоны конфликта - что является такой зоной? Что является такой поездкой если ты там находишься по приказу твоего государства. Или другой вопрос о состоянии вашего здоровья. Как это проверить? И кто имеет право хранить про меня такую информацию? Особенно это актуально в свете внедрения в ЕС того же GDPR. Правила защиты персональных данных должны быть прозрачными для всех!

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

Ну, такое.

Saturday, 7 July 2018

ESET Log Collector.

Всем привет.

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

А недавно свои услуги предложил другой именитый бренд - ESET. Ситуация требовала быстрого вмешательства, поэтому был задействован ESET Log Collector. В принципе запуск коллектора прост, далее выбор профиля сбора данных, чаще это "Все" и жмем "Собрать".


А вот тут меня ждал сюрприз. ESET Log Collector для сбора данных использует другую свою утилиту ESET SysInspector. Которую он желает скачать из интернета. А с этим как раз и не сложилось. Хост был отключен от сети так как имелось подозрение на вирусного червя. Что делать? Выход был найден такой - запускаем ESET Log Collector на другой ОС такой же разрядности и даем ему команду "Собрать". И в папке с ESET Log Collector появляется ESET SysInspector. И вот после этого их ВМЕСТЕ (три ехе-файла) доставляем на подозрительную ОС для сбора данных.


Кстати сам ESET SysInspector довольно симпатичная утилита которая может показать различные данные в зависимости от уровня риска уязвимости вашей ОС.

Удачи.

Tuesday, 3 July 2018

My real case of Symantec support.

Hello everybody.

It's me again. Today I have one interesting story. It's story about Technical Support. It was technical support for our good antivirus system - Symantec. One year ago we had process of changing antivirus system from one vendor (Trend Micro) to another (Symantec). But we had some Windows servers with obsolete operating systems for current time. It was Windows server 2003 SP2. Our server applications were working well so we hadn't requirements for urgent  update our server OS. And Symantec wrote us that their compnay had version 2003 Windows server yet. So we were quite and were sure that installation of new version of Symantec Endpoint Protection will be no problem.

And what was after that?

May be you guess. Installtion for every Win2003 server was crashed. 

Really? 

Monday, 2 July 2018

Суттєве доповнення до вашого резюме.


Всім привіт.

Час від часу доводиться надсилати своє резюме до нових работодавців. Звісно моє резюме має відомості, тобто персональні дані (ПД), які мене ідентифікують як фізичну особу. А з введеням в дію GDPR увага до ПД отримала новий фокус.

Як нам відомо Закону України «Про захист персональних даних» від 01.06.2010р. № 2297  регулює відносини, пов'язані із захистом персональних даних під час їх обробки.

Так от посилаючись на статтю 8 Закону України «Про захист персональних даних» потенційний работодавець все частіше вимагає моєї згоди на обробку моїх ПД. При цьому під обробку він закладає буквально ВСЕ: збір, реєстрація, накопичення, зберігання, адаптування, зміна, відновлення, використання, знеособлення, знищення моїх ПД. Все це має бути реалізовано з метою забезпечення можливих трудових відносин.

Вважаєте що цього досить? Ні. Також работодавець вимагає згоди на поширення моїх ПД (реалізація та передача третій стороні). О це вже, панове, перебір. Навіщо работодавцю під час розгляду мого резюме передавати його ще комусь. Таку згоду він може отримати тільки після підписанного контракту, не раніше!

Надаючі таку згоду ми, по суті, надаємо право кампанії, в якій ми навіть ще не працюємо, робити з нашими ПД що завгодно. Тобто якщо ваші ПД випливуть назовні, я впевнений що юрист кампанії знайде потрібне слово зі списку вище.)

Тому пропоную в резюме останнім пунктом вписувати наступне:
  1. заборону на поширення ПД (передача третій стороні тощо)
  2. обмеження терміну зберігання ПД (резюме тощо) в базі кампанії на півроку.

Бережіть себе.


Sunday, 1 July 2018

Однако Google Maps.

Привет всем.

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



Добавление третьего пункта через "to:" уже не помогает, а только все рушит. Так что опять все остальные пункты вбиваем ручками через "Маршрут".

Такое.

Friday, 29 June 2018

Ваш web-браузер как кладезь информации о вас.

Всем привет.

Помните как часто нам предлагают поменять web-браузер, если не получилось с этим сайтом (или web-банкингом, или магазином online) в одном, то перейти временно на другой? Мы ставим еще один и пробуем. Ура, проблема решена и... старый браузер забыли. У кого сейчас только один браузер на ПК? Ууу, а если у жены предпочтения другие... А это же кладезь личной информации. О которой мы часто просто забываем.

Убедиться в этом на помогут утилиты NirSoft Forensic Tools. Программы пакета являются переносимым программным обеспечением и могут использоваться без установки в системе, а также, при некоторых дополнительных настройках, могут применяться для приложений и их рабочих данных, не являющихся частью ПО, установленного в текущей системе т.е. находящихся на внешних съемных дисках.

Что вы там любите - Chrome, Firefox или Opera? Да вы просто оцените ореол обитания ваших паролей и прочей личной информации.

IEHistoryView

IEHistoryView позволяет извлечь историю обозревателя Internet Explorer из файла index.dat. Информация включает в себя посещаемые URL, названия веб-сайтов, количество посещений сайта пользователем, дату и время последнего посещения. Также, отображается информация о локальных файлах, открывавшихся с использованием Internet Explorer.

При использовании IEHistoryView для извлечения истории браузера, использовавшегося на внешнем диске:
перейти в меню File - > Select History Folder (Ctrl+H), и выбрать каталог на внешнем диске, в котором размещается файл index.dat.
В командной строке задать каталог в виде параметра:
iehv.exe /stab c:\temp\history.txt –folder ”D:\Documents and Settings\User\Local Settings\History”
Примечание:Для получения достоверных данных, желательно иметь одинаковые настройки даты и часовых поясов на компьютере с работающей программой IEHistoryView и в исследуемой системе на внешнем диске.

IECacheView

IECacheView позволяет извлечь кэшированные данные на основе содержимого файла index.dat браузера Internet Explorer. Информация отображается в виде, подобном отображаемому программой IEHistoryView, но гораздо больше по объему – для каждой посещаемой страницы отображается множественные записи, включая изображения и загружаемые файлы.

Для просмотра кэш браузера на внешнем диске:
перейти в меню File - > Select Cache Folder (F9), и выбрать папку ”\Temporary Internet Files” из профиля пользователя на внешнем диске.
В командной строке задать параметр, определяющий размещение папки с временными файлами браузера:
IECacheView.exe -folder ” C:\Documents and Settings\Admin\Local Settings\Temporary Internet Files” /stab c:\temp\cache.txt

IECookiesView

IECookiesView позволяет извлечь все файлы куки (cookie), запомненные обозревателем Internet Explorer.

Для извлечения файлов на внешнем диске:
перейти в меню File - > Select Cookies Folder (Ctrl+O) и указать расположение каталога Cookies
В командной строке указать путь к папке Cookies с использованием параметра /dir:
IECookiesView /dir ” C:\Documents and Settings\Admin\Cookies”

IE PassView

IE PassView позволяет получить пароли к сайтам, запомненные в браузере Internet Explorer.
IE PassView может отображать пароли для браузера на внешнем диске, но с ограничениями :
поддерживаются только версии Internet Explorer - 7.x and 8.x .
Пока не поддерживаются версии Windows 7 и старше.
Должен быть известен пароль пользователя Windows на внешнем диске, поскольку он используется при расшифровке зашифрованных паролей внешней системы.

Для использования программы по отношению к внешнему диску:
перейти в меню Options - > Advanced Options (F8), выбрать 'Load passwords from the following user profile', и выбрать папку с профилем пользователя.
В командной строке используется параметр /external задающий путь к профилю пользователя :
iepv.exe /external "C:\Documents and Settings\admin"

Wednesday, 27 June 2018

Профилактика сервера WSUS.

Привет.

Сервер WSUS нуждается в профилактике. Удаление устаревших, замещенных или отмененных обновлений, переиндексация базы, прочее. Начнем с замещенных(устаревших) обновлений. Хорошей практикой считается следующий порядок действий при отмене замещенного обновления:
  1. разрешить более новое (замещающее) обновление
  2. убедиться, что все системы его установили (где требуется)
  3. убедиться, что все системы сообщают о замещаемом обновлении, как неприменимом
  4. теперь можно безопасно удалить замещенное обновление.

Для того, чтобы отфильтровать обновления по замещению:
нужно перейти в WSUS во "Обновления" - "Все обновления", в выпадающем списке "утверждение" выбрать "утверждено", в выпадающем списке "состояние" выбрать "любой", кликнуть правой кнопкой мышки по заголовку таблицы и поставить галочку напротив "замена" (supersedence). 

Также рекомендую сразу же добавить столбец "Число необходимых установок", чтобы видеть что это обновление нужно на 0 компьютерах и значит можно его отменять. Далее сортируйте по столбцу "замена" и отменяйте не нужные замененные обновления после всех этих действий нужно очистить wsus одним из двух способов описанных ниже.

После этого неплохо бы почистить базу сервера WSUS.

Чистка базы WSUS через штатную опцию Server Cleanup Wizard.

Запускаем оснастку "Windows Server Update Services"
Переходим в "Имя WSUS Сервера" - "Computers" - "Options" - "Server Cleanup Wizard"
Выставляем галочки возле тех вариантов очистки которые подходят и жмем "Next"
Ждем ххх или больше часов, все зависит от размера вашей базы обновлений. Ставьте этот процесс на выходной.

Чистка базы WSUS через Powershell скрипт от Microsoft.

Плюс скрипта в том, что можно настроить его периодический запуск, то есть автоматизировать очистку базы данных. 

[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope;
$cleanupScope.DeclineSupersededUpdates = $true
$cleanupScope.DeclineExpiredUpdates = $true
$cleanupScope.CleanupObsoleteUpdates = $true
$cleanupScope.CompressUpdates = $true
#$cleanupScope.CleanupObsoleteComputers = $true
$cleanupScope.CleanupUnneededContentFiles = $true

$cleanupManager = $wsus.GetCleanupManager();
$cleanupManager.PerformCleanup($cleanupScope) | Out-File d:\WsusCleanupMS.log

Значения параметров:
DeclineSupersededUpdates - отклонить обновления, которые заменены более новыми версиями или же включены в пакеты обновлений. Также, отклоняются обновления, которые не были подтверждены в течение 30 и более дней, и не востребованы ни одним клиентом.

DeclineExpiredUpdates - отклонить просроченные обновления. Как правило, Microsoft выпускает новые обновления взамен просроченным, а просроченные - удаляет со своих потоковых серверов загрузки.

CleanupObsoleteUpdates - удаляем неиспользуемые и устаревшие обновления, включая все их ревизии. Удаляются те обновления и ревизии, которые не были подтверждены в течение 30 и более дней.

CompressUpdates - удаляем устаревшие ревизии обновлений.

CleanupObsoleteComputers - удаляет устаревшие компьютеры, которые не контактировали с сервером 30 и более дней.

CleanupUnneededContentFiles - удаляем ненужные файлы обновлений. Включение этой опции позволяет освободить максимальный объем места на диске.

Saturday, 23 June 2018

RouterOS и Layer7 protocol.

Всем привет.

В заточенную под сетевые процессы Linux систему RouterOS заложены довольно таки серьезные возможности. Я знакомлюсь с RouterOS весьма простым способом - можно взять официальный образ с сайта Mikrotik и проинсталлировать ее в виртуальную машину. Получаете полнофункциональный роутер для теста на 24 часа. 

Как я сказал, операционная система от Mikrotik является специализированной сетевой OS с обширным функционалом и большим количеством разнообразных функций и сетевых протоколов. В частности доступна весьма интересная функция анализа проходящих через маршрутизатор пакетов - Layer7 protocol.

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

Теория для Layer7 - RouterOS получает первые 10 пакетов каждого установленного соединения и ищет совпадения по заранее определенным выражениям, если совпадений не обнаружено, то дальнейший поиск прекращается и соединение считается не определенным. Если же совпадение нашлось, то в дальнейшем в разделах Filter rules, Nat, Mangle можно создать цепочки правил с действиями. 

Внимание - данная функция проверки регулярных выражений layer7-protocol корректно работает только в 6-й версии прошивки Mikrotik. На сегодня это версия 6.42.4.

Внимание - чрезмерное злоупотребление данной функцией и большое количество записей с разделе layer7-protocol может привести к нагрузке на устройство. Но потренироваться в написании регулярных выражений самое то. Насколько я понимаю главное это не забыть про маркированные списки.  Иначе получим высокую нагрузка на cpu роутера, увеличенную latency и потерю пакетов.

Была, кстати, такая же функция и в ранних версиях pfSense однако позже ее там убрали. Сообщество разработчиков pfSense решило что есть и другие достойные способы блочить лишний трафик. А жаль.

Дела.

Thursday, 21 June 2018

Запрос Get-WinEvent и его параметры.

Всем привет.

Продолжим вычитывать события с помощью Get-WinEvent. У одного админа была задача сформировать запрос Get-WinEvent в котором более 25 условий. Такие вот задачки ставят администратору. Почему 25, а не 125?  Не знаю. Жизнь штука сложная.

Ближе к делу. Для формирования запросов в  Get-WinEvent мы можем использовать 3 параметра:
-FilterXPath <String>
-FilterXml <XmlDocument>
-FilterHashtable <Hashtable[]>

Подробную справку по параметрам у Get-WinEvent найдете здесь.

Я просто поганял все три параметра для самых популярных, на мой взгляд, кодов событий:
4720 : A user account was created.
4722 : A user account was enabled.
4723 : An attempt was made to change an account’s password.
4724 : An attempt was made to reset an account’s password.
4725 : A user account was disabled.
4726 : A user account was deleted.

1) FilterHashtable.
Первый вариант использует период времени в сутки и сам код события $IDEvent.
Если нужен диапазон то $IDEvent = (4720..4726), если  несколько то $IDEvent = (4720,4722,4725) соответственно.

$time = (get-date) - (new-timespan -hour 24)
$QEvent = 0
$IDEvent = 4720

"Time  | ADGroup | NewUser | AdminUser | ID:"+ $IDEvent
Get-WinEvent -FilterHashtable @{LogName="Security";ID=$IDEvent;StartTime=$Time}| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$QEvent = $QEvent +1;

$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$NewUser = $event.Event.EventData.Data[0]."#text"
$ADGroup = $event.Event.EventData.Data[2]."#text"
$AdminUser = $event.Event.EventData.Data[6]."#text"
$dc = $event.Event.System.computer
$Time + " | " + $ADGroup + " | " + $NewUser + " | " + $AdminUser
 }
}
"Count: "+$QEvent

Wednesday, 20 June 2018

Поиск закрытого видео по картинке.

Всем привет.

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

Но сегодняшний кейс более сложный. В одном из музыкальных видео в youtube есть 5-ти секундный отрывок зажигательного танца на свадьбе. Разумеется никаких комментариев кто и когда зажигает там не было, так как само видео было совершенно по другому поводу. Мне захотелось посмотреть выступление невесты полностью.

Как поступаем? Ставим видео на паузу, делаем снимок. 



Идем в поиск по картинке Google и предлагаем ему наш снимок. Но Google сегодня подкачал, кроме как "на картинке девушка" ничего предложить не смог. Не сдаемся и идем в другой поисковик по картинками TinEye. Оп-па, он нам выдает 4 результата. Уже есть от чего отталкиваться. На поверку улов оказался еще лучше - вторым пунктом была ссылка не на похожие фото, а прямо на случайный сайт с полным видео с танцем.


А так как само видео, как обычно, располагалось на youtube то получить закрытую ссылку с того сайта "для своих" оказалось пустяковым делом.


Такие дела. И девушка молодец, отожгла по полной!

Monday, 18 June 2018

Запрещаем USB накопители.

Всем привет.

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

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

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


Первой неплохо было бы включить именно политику "Запретить выполнение" со сьемных и других внешних накопителей. Как по мне это самая ценная возможность из всего списка. Однако это опция применима только к Компьютерам и отсутствует как для Пользователей. Также эта опция не применима к компьютерам на которых живет Windows ХР. Достаточно одной такой старушки и у вас будет брешь в безопасности сети.

К тому же у вас может быть группа техподдержки которой необходимо использование служебных флеш-накопителей. С одной стороны можно внести такие накопители в белый список разрешенных к использованию на фирме. С другой - как запретить пользователям использовать служебные флешки вне работы, дома например? Разве что они их должны сдавать своему шефу в конце дня. Или замыкать в служебном сейфе.

Только техническими средствами вы не добьётесь нормальной безопасности, особенно с инсайдером. Вначале должны быть приняты административные меры, и только потом - технические. Причем по административным мерам, извините, нужен пример показательной порки по случаю. Например оставить нарушителя без квартальной премии. Это сильно впечатляет, и может перевоспитать не один десяток любителей фото на природе).

Но помните, как бы они не закручивали гайки - все равно человеческий фактор не исключишь на 100%. И конфиденциальную информацию рано или поздно вынесут. Поэтому главные ваши силы все таки лучше сосредоточить на противодействии привнесения вредного кода через парадный вход. 

Удачи.

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, 15 June 2018

PowerShell и другие языки программирования.

Привет всем.

Технический писатель Коробко Иван Викторович в своей книге "PowerShell как средство автоматического администрирования" 2012-го года издания еще раз показал нам насколько PowerShell является универсальным инструментом. Я имею ввиду его главу про "PowerShell и другие языки программирования". Просто передам слово автору.

Довольно часто возникает потребность использовать вставки VB.NET или C# в листинге PowerShell. Это обусловливается невозможностью реализовать тот или иной функционал в PowerShell. Как правило, любую манипуляцию с любым объектом можно выполнить с помощью API-функции, вызываемой на низком уровне. Ярким примером является служба DFS, программное управление которой возможно только с помощью API-функций. Чтобы упростить изложение материала  приведем пример вывода обычного окна сообщения – MessageBox(). Реализуем вызов сообщения с помощью вставки листинга программного кода, написанного на VB.NET, в тело сценария на PowerShell и с помощью вызова соответствующей API-функции, описанной в VB.NET.

Компиляция кода на DOT.NET в PowerShell

Интеграция в PowerShell кода компилируемых языков, например C# или VB.NET, осуществляется несколько иным механизмом. Вставка программного кода также компилируется, однако вместо файла записывается в оперативную память. Успешная интеграция программного кода на DOT.NET обеспечивается с помощью двух объектов: с помощью первого объекта – CompilerParameters – осуществляется настройка параметров компиляции указанного кода, идентификация языка программирования. Второй объект изменяется в зависимости от используемого языка программирования в ставке. Для C# – Microsoft.CSharp.CSharp-CodeProvider, а для Visual Basic - Microsoft.VisualBasic.VBCodePro-
vider.

Фрагмент исполняемого кода на DOT.NET представляет собой описание класса с произвольным именем и минимум одной функции, имя которой так же произвольно. Листинг является значением переменной, заключенной, помимо кавычек, в символы @ (листинги П4.1 (C#) и П4.2 (VB.NET). При переносе листинга из Visual Studio в PowerShell необходимо следить за тем, чтобы иерархический путь ко всем методам и функциям был указан целиком, так как импорт пространств имен не поддерживается. Таким образом, вывести окно с помощью MsgBox() невозможно, следует указать полный путь – Microsoft.VisualBasic.Interaction.MsgBox().

Листинг П4.1. Вызов VB.NET-вставки из PowerShell (C#)

$provider = New-Object Microsoft.CSharp.CSharpCodeProvider
$params = New-Object System.CodeDom.Compiler.CompilerParameters
$params.GenerateInMemory = $True
$refs = "System.dll","System.Windows.Forms.dll"
$params.ReferencedAssemblies.AddRange($refs)
$txtCode = @"
Class mBox
Sub Main()
Microsoft.VisualBasic.Interaction.MsgBox ("Тестовое сообщение")
End Sub
End class
“@
$results = $provider.CompileAssemblyFromSource($params, $txtCode)
$mAssembly = $results.CompiledAssembly
$i = $mAssembly.CreateInstance("mBox")
$r = $i.main()

Листинг П4.2. Вызов VB.NET-вставки из PowerShell (VB.NET)

$provider = New-Object Microsoft.VisualBasic.VBCodeProvider
$params = New-Object System.CodeDom.Compiler.CompilerParameters
$params.GenerateInMemory = $True
$refs = "System.dll","Microsoft.VisualBasic.dll"
$params.ReferencedAssemblies.AddRange($refs)
$txtCode = @"
Class mBox
Sub Main()
Microsoft.VisualBasic.Interaction.MsgBox ("Тестовое сообщение")
End Sub
End class
"@
$results = $provider.CompileAssemblyFromSource($params, $txtCode)
$mAssembly = $results.CompiledAssembly
$i = $mAssembly.CreateInstance("mBox")
$r = $i.main()

Компиляция вставки на DOT.NET осуществляется в оперативной памяти. За это отвечает свойство GenerateInMemory. После завершения компиляции осуществляется выполнение скомпилированного кода. Для обращения к нужной функции необходимо указать класс, в котором она находится, а затем и саму функцию.

Wednesday, 13 June 2018

Ловим двойников в AD по атрибуту email.

Всем привет.

Случается такое что у двух юзеров в AD указан один и тот же адрес email. То ли замене была, то ли кто-то уволился. Не важно. Мне надо срочно таких двойников отловить.

Пишем скрипт. Идея такова чтобы выбрать вначале все адреса по OU в файл List.txt.
А после парсить каждый OU по email-адресам из этого же файла на предмет совпадения где более одного. Название OU передадим параметром на вход powershell.

Скрипт test1.ps1:

$OU = $args[0]
$OU

#получаем список пользователей  OU с непустыми адресами в файл List.txt
get-ADUser -SearchBase $OU -Filter {(EmailAddress -like '*')} -Properties EmailAddress | Select EmailAddress,SamAccountName,Name,Enabled | ft -hidetableheaders | out-file List.txt -Encoding Oem

$Users = gc "list.txt" -Encoding Oem

"==========================================" | Out-File -FilePath dub.txt -Append
"Looking for email double addresses of AD-users in:" | Out-File -FilePath dub.txt -Append
$OU | Out-File -FilePath dub.txt -Append
"==========================================" | Out-File -FilePath dub.txt -Append

foreach ($Email in $Users)
 {
$User = $Email
IF ($Email.Length -ge 1)   
{
#вырезаем адрес и считаем количество его совпадений
        $Email = $Email.Substring(0,$Email.IndexOf(" "))
$EmailCount = (get-ADUser -SearchBase $OU -Filter {EmailAddress -like $Email} -Properties EmailAddress).count

#если совпадений более одного пишем этого юзера в файл dub.txt
         IF ($EmailCount -ge 1) { $User + ":" + $EmailCount | Out-File -FilePath dub.txt -Append }
        }
 }

А сам вызов для подразделения "OU=Support,DC=forza,DC=local" выглядит так:
powershell -NoProfile -ExecutionPolicy bypass -File test1.ps1 "OU=Support,DC=forza,DC=local"

Успехов.


Tuesday, 12 June 2018

Обслуживание WSUS.

Привет.

Решил себе составить краткий мануал по обслуживанию WSUS. Возможно вам будет полезно.

Распределение по группам: hosts как все станции, servers как сервера, pilotHosts это устойчивые клиенты и testGroup как "мальчики для битья".

Оснастка WSUS, ветка Обновления.

*Автоматические утверждения включены только на подгруппы testGroup.

1. Подветка "Критические Обновления".

1.1 Для подгрупп testGroup. 
Внимание: включить отображение колонок "Число необходимых установок" и "Замена".

1.1.1. Оценка какие хосты нуждаются в пришедших за ночь апдейтах:
Утверждение "Не утверждено", состояние "Требуется".
Оцениваем каждое обновление: оно не заменяется другим, подходит под версию ОС, Office или SQL-сервера: если Да (Число необходимых установок > 0), то утверждаем на соответствующую группу в testGroup.

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

1.1.2. Оценка как успешно прошли предыдущие утверждения:
 а) утверждение "Не утверждено", состояние "Установленный/неприменимо/нет состояния".
 В идеале здесь не должно быть ничего.
 б) утверждение "Утверждено", состояние "Установленный/неприменимо/нет состояния".
 В идеале здесь могут быть только обновления по которым информация от хостов еще не получена.

1.2. Для подгрупп hosts, servers, pilotHosts. 
1.2.1. Оценка какие хосты нуждаются в протестированных апдейтах:
Утверждение "Утверждено", состояние "Требуется". Оцениваем каждое обновление как: оно не заменяется другим, подходит под версию ОС, Office или SQL-сервера. Если Да, то утверждаем на соответствующую группу. Для ускорения операции утверждения можно использовать опцию "Применить к дочерним".

1.2.2. Оценка как успешно прошли предыдущие утверждения:
утверждение "Утверждено", состояние "Установлeнный/ неприменимо/нет состояния" или "Любой". В идеале здесь могут быть только обновления по которым информация от хостов еще не получена.

2. Подветка Обновления Безопасности.
2.1.1 Для подгрупп testGroup. 
Повторить шаги по аналогии выше.
2.1.2. Для подгрупп hosts, servers, pilotHosts. 
Повторить шаги по аналогии выше.

Ветка Компьютеры.

3. Группа "Все компьютеры". Состояние "Неудача". 
Оцениваем количество сбоев по каждому хосту. Открываем отчет, жмем "Неудача" напротив каждой ошибки,  смотрим Код ошибки и ее Описание. Смотрим дату последнего отчета о состоянии. Делаем выводы, предпринимаем ответные действия.

Коды многих ошибок WSUS здесь

4. Группа "Неназначенные компьютеры". Состояние "Любой". 
Оцениваем причину появления хоста здесь: смотрим его дату последнего отчета о состоянии. Сверяем политику принадлежности хоста к целевой группе в AD. Делаем выводы, предпринимаем ответные действия.

Оснастка "Диспетчер серверов":

5. меню WSUS, закладка "События". Оцениваем события категории "Ошибка".
Cмотрим oписание ошибок. Делаем выводы, предпринимаем ответные действия.

6. меню Средства/Диспетчер служб ISS. MYUPDATE, Пулы приложений, пул WSUSpool.
Здесь можно править параметры пула или перегружать его. 
Ограничения для работы пула по использованию памяти сервера и ресурсов процессора.

Sunday, 10 June 2018

Нетипова схема доставки вірусу.

Всім привіт.

Мені іноді здається що деякі віруси пишуть студенти в якості чергового проекту з інформаційного предмету. Так, це дуже корисно в плані саморозвитку для майбутнього спеціаліста. Але ж навіщо своє чудо випускати в світ? З іншого боку перегляд таких кейсів корисно і для нас. Ви тільки оценіть скільки технологій було задіяно щоб досягти мети зараження.

Кейс від Владислава Радецького IOC_HawkEye_110418.

Щодо спроби доставки #HawkEye (keylogger) який має нетипову схема доставки основного коду. Цей тип шкідливого коду застосовується для перехоплення вводу з клавіатури, відтак крадіжки облікових даних.

Аналітика.

Приманки та payload розміщені на серверах Amazon AWS (білий список для 90% URL-фільтрів).

Початковий .docx файл містить в одному із ресурсних .xml посилання на .rtf з вразливістю редактору формул. 

Вразливість редактору формул застосовується для завантаження та виконання .hta файлу.
.hta містить інструкції для PowerShell, який нарешті завантажує основну частину.

Основна частина зберігається на диск у Windows\Temp (не користувацька змінна оточення %temp%).

.hta чітко регламентує ім’я та шлях за яким буде збережена основна частина.

Закріплення через HKCU але не Run, а WinNT\Load.

Winword не генерує дочірніх процесів.

Виклик powershell від імені mshta.exe.

Не потребує прав Адміністратора.

Тобто схема така:
Attach (.DOCX) > OLE (17-0199) > GET .RTF > EQUENETD (17-11882) > HTA > PowerShell > GET payload > Windows\temp\shell.exe

1) DOCX файл що містить посилання на RTF у xml
2) RTF файл що завантажується при відкритті попереднього DOCX
3) HTA файл який завантажується при обробці попереднього RTF:
4) Основна частина яка звантажуєтеся засобами powershell при обробці HTA файлу.
5) ехе-Модуль основної частини що записується після активації попереднього файлу.

Вам сподобалось? Мені дуже. Як і та людина що складала це до купи і розкинула мізками. Просто молодець.

Щасти.

Saturday, 9 June 2018

ХР каламбур.

Привет.

Коротко - прохаживаясь по политикам обновлений наступил на старушку Windows ХР. Да вот, бывает в жизни и такой каламбур.

Собственно прочтите и сделайте вывод сами: включив этот параметр вы получите Да или Нет.)


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).

Thursday, 7 June 2018

Разница между Заблокированным, Отключенным и Неактивным аккаунтами в AD.

Всем привет.

Практика использования командлета Search-ADAccount показала мне разницу между Заблокированным, Отключенным и Неактивным аккаунтами. Собственно выводы ниже.

Список заблокированных учетных записей пользователей (кем заблокировано: пользователем например, согласно политике использования паролей):
Search-ADAccount -UsersOnly –LockedOut
ИЛИ по хостам:
Search-ADAccount -ComputersOnly –LockedOut (кем заблокировано ?):

Список отключенных учетных записей пользователей (кем отключено: Админом):
Search-ADAccount -UsersOnly -AccountDisabled
ИЛИ по хостам:
Search-ADAccount -ComputersOnly -AccountDisabled (кем отключено: Админом):

Список неактивных учетных записей пользователей ДО даты "mm.dd.yyyy":
Search-ADAccount –UsersOnly –AccountInactive -DateTime "mm.dd.yyyy"
ИЛИ
Search-ADAccount -ComputersOnly –AccountInactive -DateTime "mm.dd.yyyy"

В этих запросах можно использовать параметр TimeSpan или DateTime.
Разница между ними следующая:
  • TimeSpan 60 - диапазон времени для выборки "60 дней (или часов/минут) до сегодня";
  • DateTime "mm.dd.yyyy" - диапазон времени для выборки "столько то дней до даты "mm.dd.yyyy".
Увидимся.

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.

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

Sunday, 3 June 2018

Administration WSUS with Powershell.

Hi guys.

Recently I have to make some new groups from AD in WSUS server. I wouldn't to type all names with my keyboard. Therefore I can do some mistake and it so boring. So I though that WSUS Powershell scripts are in this world.

I found super PoshWSUS package (PoshWSUS v2.3.2, Last Updated: 12 Apr 2018) from Boe Prox for performing my task. I think there is Get-PSWSUSGroup, so Set-PSWSUSGroup function have to be there too. Ok, so I imported module to my Powershell profile. Then I got the names of 96 functions! I found there Get-PSWSUSGroup and New-PSWSUSGroup functions.

Ok, let's go.
At fisrt I make connection to my WSUS server.
>Connect-PSWSUSServer
Name                 Version              PortNumber           ServerProtocolVersion
----                 -------              ----------           ---------------------
192.168.1.28         6.3.9600.18838       8530                 1.8

Then I can get the info of my existing groups in WSUS:
>Get-PSWSUSGroup

Then I can get the info of my PARENTGROUP group:
>Get-PSWSUSGroup | ?{$_.Name -like "PARENTGROUP"} | fl

ok, and I thought that I can create the new CHILDGROUP group easy as:
>New-PSWSUSGroup -Name "CHILDGROUP" -ParentGroup "PARENTGROUP"

Ooops, I got error of type conversion for ParentGroup parameter - New-PSWSUSGroup: Can not process the argument conversion for the "ParentGroup" parameter. Can not convert the value of "pilotHosts" type "System.String" to type Microsoft.UpdateServices.Internal.BaseApi.ComputerTargetGroup ".

Saturday, 2 June 2018

Аудит журналов безопасности с помощью PowerShell.

Всем привет.

Скажу сразу, я не знаю насколько это актуально. Но сам подход меня заинтересовал. Задача периодического отслеживания активности пользователей, которые используют сервер терминалов в качестве рабочих станций. Тем более что после небольшой правки в качестве сервера терминалов можно использовать даже вашу Windows 10. При этом ваша лицензия на 10-ку не страдает.

Разумеется я уже писал что с помощью PowerShell можно легко осуществлять парсинг событий журнала безопасности.
Например так:
$Events = Get-EventLog Security | ?{$_.eventid -eq 4624}

В условия отбора можно поставить и код события, и время, и много чего еще. Более того, вы можете выполнить выборку  с удаленного компьютера, и даже выполнить так называемую Подписку на интересующие вас события. Однако про Подписку позже.

С некоторой версии PowerShell появился командлет Get-WinEvent, который можно использовать не только для определения имен журналов в Windows.

В нем предыдущий запрос будет выглядеть так:
$filter = "*[System[EventID=4624]]"
Get-WinEvent -FilterXPath $filter -LogName Security

Так вот, один спец решил украсить себе жизнь и наваял скрипт который не просто парсит журнал Security, но и выделяет цветами результат. С тех пор прошло немало времени поэтому скрипт в части палитры надо поправить. Иначе на выходе получите 0.

Friday, 1 June 2018

Вызов функции Powershell из внешнего скрипта.

Всем привет.

Себе напоминаю и вам подсказываю. Часто в Powershell необходимо вызвать скрипт или отдельную функцию из другого файла.

Если мы уже находимся в папке где находится скрипт test1.ps1 то пишем:
powershell -ExecutionPolicy bypass -File test1.ps1

Если мы находимся в другом месте и указание полного пути к файлу нас устраивает:
powershell -ExecutionPolicy bypass -File D:\PS\test1.ps1

Вызов функции Get-OfficeVersion из файла RemoveOffices.ps1 который находится тут же:
powershell -ExecutionPolicy bypass -command "& {. .\RemoveOffices.ps1; Get-OfficeVersion | fl}"

Это была командная строка. Теперь как тоже самое сделать из другого скрипта. В этом случае в него помещается две строчки кода.

Для одной папки так:
.\RemoveOffices.ps1
Get-OfficeVersion

А вот так если файл RemoveOffices.ps1, находящийся во вложенной папке Scripts:
. .\Scripts\RemoveOffices.ps1
Get-OfficeVersion

А вот так если папка с скриптами находится выше на ступень от скрипта, который ими пользуется
. ..\Scripts\RemoveOffices.ps1
Get-OfficeVersion

Запомнили? Молодцы.


Wednesday, 30 May 2018

Простой доступ по SSH и SCP в PowerShell.

Всем привет.

Занимаясь очередным полигоном как всегда понадобился доступ к хосту по SSH. На сей раз хост виндовый. PuTTY? Ну конечно, но для автоматизации процесса  хочется чего нибудь из командной строки. И, о счастье, оказывается добрые люди создали модуль Posh-SSH для простого доступа по SSH и SCP из PowerShell.

Модуль Posh-SSH позволяет:

  • устанавливать сессии SSH и SFTP по кредитам или используя OpenSSH ключ
  • подключаться через SOCKS и HTTP прокси для обоих видов SSH и SFTP сессий
  • исполнять команды по одиночке посылая их в SSH
  • загружать и скачивать файлы использую SCP и SFTP протоколы:

Set-SCPFile, Get-SCPFile, Get-SCPFolder, Set-SCPFolder, Get-SFTPFile – download a specified file from a remote SFTP session, Move-SFTPFile – moves a specified file in a remote hosts through SFTP, Remove-SFTPFile – deletes a specified file in a remote hosts through SFTP, Set-SFTPFile – uploads a specified file to a given path using SFTP.

Для SSH поддерживается аутентификация по ключу, логину и паролю, ввод с клавиатуры.
Поддерживаются разные алгоритмы шифрования, прокси. Минимальные требования - PowerShell 3.0 и .NET 4.0

Проверим!

Добавляем модуль:
>Find-Module Posh-SSH | Install-Module

Что в новом модуле есть для нас:
>Get-Command -Module Posh-SSH

Пробуем. Сначала создаем SSH сессию:
>Import-Module Posh-SSH
>$secpasswd = ConvertTo-SecureString "paССw0rd" -AsPlainText -Force
>$mycreds = New-Object System.Management.Automation.PSCredential ("User03", $secpasswd)
>New-SSHSession -ComputerName 192.168.1.10 -Credential $mycreds -Force

Sunday, 27 May 2018

Локализация интерфейса?

Всем привет.



Вот такие вот перлы можно встретить в локализованном интерфейсе Paint.NET. Теперь вы понимаете почему я настоятельно рекомендую переключать любой интерфейс на Английский язык. И сам язык тоже надо подучивать.

Успехов.

Friday, 25 May 2018

Уведомление о файлах cookie в странах ЕС.

Привет и Hello.

День настал. Google это сделал за меня.

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

Мы добавили в ваш блог уведомление о том, что в нем используются файлы cookie сервисов Blogger и Google, включая файлы cookie Google Analytics и AdSense, а также разъяснение по поводу других данных, собираемых компанией Google.

Вы несете ответственность за актуальность уведомления и его отображение в вашем блоге. Если вы установили функции сторонних разработчиков, что привело к появлению дополнительных файлов cookie, уведомление может потерять актуальность. При этом может собираться дополнительная информация о посетителях вашего блога.

Подробнее об уведомлении и нашей ответственности здесь.

Если вы создали уведомление и хотите посмотреть его, но живете за пределами ЕС, откройте свой блог и измените код страны. Например: blogspot.fr или blogspot.co.uk. При использовании персонального домена уведомление посмотреть нельзя.

У меня уведомление работает. Проверено. Вы не увидели? Пишите в комментарий.

Остался только один вопрос - ваши куки собирает Google, а нести ответственность за них буду я?:)

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

Популярное

Медиа облако