Social Engineering
@Social_engineering
? История создания PowerShell.• Вчера был опубликован пост, в котором описан очень крутой PowerShell-модуль для Blue Team. Давайте сегодня поговорим об истории создания этого инструмента и его авторе:
• Сразу нужно отметить, что создателем PowerShell является Джеффри Сновер. Для продвижения своего проекта ему пришлось преодолеть много трудностей внутри компании, так как Microsoft была против создания Unix-подобного инструмента и включению его в состав Windows.
• А началось все с 1999 года, когда Бил Гейтс начал беспокоиться о том, что Windows никак не совместима с дата-центрами, хотя он прекрасно понимал, что этом рынке крутятся огромные деньги. Хуже того, руководство Microsoft привыкло жить в старых реалиях, они разбирались в персональных компьютерах, но не понимали серверный рынок. Вот тогда они и нашли Джеффри и пригласили его на работу.
• Цель была следующая: установить Windows NT как реального конкурента для вендоров Unix-систем, таких как Sun, IBM и HP. Теоретически, у Microsoft было стратегическое преимущество благодаря сотрудничеству с Intel, оставалось только выпустить годный софт, и они могли предложить услуги за меньшую цену, чем конкуренты.
• Проблемой ещё были системные интеграторы вроде IBM Professional Services, которые сильно накручивали цены на установку софта от Microsoft. На каждую машину программы надо было ставить вручную через графический интерфейс. А как избавиться от системных интеграторов? Разработать встроенный механизм системной интеграции. В Unix такое было, там клиенты сами настраивали системы и не обращаясь к системным интеграторам. Вот что нужно было Microsoft!
• Джеффри присоединился к отделу Windows Server, чтобы решить эту задачу. Сотрудникам Microsoft было нелегко принять новую логику и думать о дата-цетрах и системном администрировании в Unix-стиле. Сервисы на серверах запускали из командной строки или через удалённый рабочий стол. То есть каждый раз при загрузке Windows кто-то должен был залогиниться туда и ввести команду.
• Единственным средством настройки Windows были Windows Managemet Instrumention (WMI), но пользователи мало их использовали, и Джеффри увидел в этом возможность: создать текстовую консоль для управления всем: настройками пользователя, сетевой конфигурацией, установкой приложений — всё через WMI.
• Если считать по количеству объектов в WMI, то эта консоль должна поддерживать тысячи команд. Интересно, что для разработки пришлось нанимать программистов по контракту, потому что штатные разработчики Microsoft не смогли осилить такую задачу.
• Дедлайн ему поставили через десять недель. Логика была такая, что нужно выпустить хоть какую-то глючную версию программы, а потом исправлять баги. Джеффри оплатил работу контрактным программистам, и они успели реализовать примерно 70 функций (команд). Это было только начало.
• Но затем оказалось, что никакая программа не может выйти без одобрения отдела тестирования. А это очень долгая бюрократическая процедура, они хотели буквально проверить каждую команду. Джеффри не мог допустить такой задержки, поэтому придумал другую процедуру с составлением файла метаданных, который проверяет корректность работы программы, а не проходит по всем функциям. Так вышла первая версия PowerShell с поддержкой 72 команд. Это было практически одновременно с выходом Windows XP на ядре NT.
• Потом оказалось, что в Microsoft есть ещё одна группа, которая разрабатывает консоль. Но они просто взяли K-shell и портировали её. Тогда Джеффри буквально заперся в комнате и собственноручно написал то, что станет первым прототипом PowerShell, это было демо на 10 000 строк кода. Он показал его коллегам из того отдела, впечатлил их, и они стали работать вместе, а Джеффри удалось получить финансирование под проект. Так родился PowerShell (хотя изначально он назывался Monad), а самого Джеффри понизили в должности, потому что отдел PowerShell насчитывал всего несколько человек. Вот такие дела...
https://corecursive.com/building-powershell-with-jeffrey-snover/S.E. ?? infosec.work ?? VT
194 38.7K
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram