Как стать автором
Обновить
2.75

IIS *

Набор серверов Microsoft для служб Интернета

Сначала показывать
Порог рейтинга
Уровень сложности

От HTTP к RCE. Как оставить бекдор в IIS

Время на прочтение17 мин
Количество просмотров3K

Всем добрый день! Меня зовут Михаил Жмайло, я пентестер в команде CICADA8 Центра инноваций МТС.

На проектах часто встречаются инстансы Internet Information Services (IIS). Это очень удобный инструмент, используемый в качестве сервера приложений. Но знаете ли вы, что даже простое развёртывание IIS может позволить злоумышленнику оставить бекдор в целевой среде?

В статье я покажу закрепление на системе, используя легитимный продукт Microsoft — Internet Information Services. Мы попрактикуемся в программировании на C++, изучим IIS Components и оставим бекдор через IIS Module.

Договоримся сразу: я рассказываю это всё не для того, чтобы вы пошли взламывать чужие системы, а чтобы вы знали, где могут оставить бекдор злоумышленники. Предупреждён — значит вооружён.

Читать далее
Всего голосов 9: ↑10 и ↓-1+11
Комментарии2

Новости

Битва WEB серверов. Часть 2 – реалистичный сценарий HTTPS:

Время на прочтение3 мин
Количество просмотров8.9K


О методике мы рассказывали в первой части статьи, в этой мы тестируем HTTPS, но в более реалистичных сценариях. Для тестирования был получен сертификат Let’s Encrypt, включено сжатие Brotli на 11.

На этот раз попробуем воспроизвести сценарий развертывания сервера на VDS или в качестве виртуальной машины на хосте с типовым процессором. Для этого устанавливали лимит в:

  • 25% — Что в пересчете на частоту ~ 1350МГц
  • 35% -1890Мгц
  • 41% — 2214Мгц
  • 65% — 3510Мгц

Количество единовременных подключений сократилось с 500 до 1, 3, 5, 7 и 9,
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии13

Что нам стоит CDN построить?

Время на прочтение8 мин
Количество просмотров8K
Привет Хабр! В этой статье мы будем строить свой CDN. Почему не воспользоваться готовыми решениями? Потому что сайт автора полностью статический, сделанный на Jekyll, с большими картинками, которые нужно отдавать максимально быстро. Сервер не должен быть кэширующим, он должен хранить сайт целиком, поддерживать HTTP/2 и Brotli, а на всех серверах должен быть установлен один и тот же сертификат.

Ещё мы сделаем это всё на IIS, работающим под Windows Server 2019 Core.

Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии7

Sharing общих сборок между процессами и доменами в IIS

Время на прочтение8 мин
Количество просмотров6.6K

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


В этой статье будут показаны пути оптимизации исключительно за счет настроек сервера, таким образом переписывание и перекомпиляция приложений не потребуется. Будет достигнут результат 25 Мб в среднем на один микросервис.

Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии9

Истории

RequestQueueLimitPerSession и его распространение на старые версии .net

Время на прочтение4 мин
Количество просмотров5K
Доброго времени суток! В этой статье хотел бы поделиться решением неожиданной проблемы, возникшей в одном из проектов, над которым я сейчас работаю.

Что может быть опасного в обновлении .net 4.6.1 до .net 4.6.2? Я считал что для процесса обновления минорной версией достаточно прочитать release notes, чтобы избежать серьезных проблем. Однако, как выяснилось, Microsoft может привнести очень интересные и занимательные изменения в обход release notes, которые смогут вас занять в «скучные летние вечера и выходные дни».

Под катом будет описание одной проблемы возникшей из-за обновления и пути её решения, а так же немного исходников .net.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии4

IIS Request filtering против ddos-атаки

Время на прочтение5 мин
Количество просмотров15K

Лежим


Заказчик, чьи сайты я поддерживал ранее, обратился с тем, что сайт лежит и отдает 500 ошибку. У него стандартный сайт на ASP.NET WebForms, не скажу, что очень нагруженный, но бывали проблемы с производительностью базы данных (MS SQL Server на отдельном сервере). Недавно сервер БД поменяли и перенесли данные.

Этот сайт не основной бизнес заказчика, поэтому практически не обслуживался. У него не настроено никакого мониторинга  и сбора метрик и вообще за ним особо не следят.

Данные телеметрии


Какие аномалии бросились в глаза:

  1. Процесс w3wp использовал более 50% CPU (обычно сильно меньше).
  2. Количество потоков в этом процесс стабильно прирастало (сайт не успевал обслужить клиентов).
  3. Диск на сервере БД использовался на 100% (Active Time).
  4. Длина очереди обращений к диску с базами проекта была большой (обычно в районе нуля-единиц).
  5. Оперативная память на сервер БД использована полностью.
  6. Профайлер показал, что есть один горячий метод, который ходит в БД.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии8

Исправлена серьезная ошибка в официальной документации по настройке SSL в web-ролях Microsoft Azure

Время на прочтение2 мин
Количество просмотров4.3K

Хорошие новостиTM: есть небольшое, но важное развитие сюжета из этого поста, где много букв и долгая история, которая могла отвлечь часть целевой аудитории от необходимости проверить и исправить настройки. После вливания освежающих пул-запросов была обновлена официальная документация, показывающая, как правильно настраивать SSL в веб-ролях Microsoft Azure — один и два. Исправлена серьезная ошибка в примерах настроек.

Если вы разрабатываете или сопровождаете облачный сервис с веб-ролью, самое время проверить, что настройки SSL указаны правильно и вас не настигнет в самый неподходящий момент волна недовольства пользователей, у которых КРАЙНЕ НЕОЖИДАННО без ясных причин перестало устанавливаться защищенное соединение с вашим сервисом.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии0

Деплой ASP.NET приложений при помощи символических ссылок

Время на прочтение5 мин
Количество просмотров10K
Всем привет.
Все мы немного нервничаем при установке нового релиза на прод. Существует много различных технологий позволяющих нам облегчить этот процесс и сделать его чуть менее нервозным. Одна из таких технологий, которую уже довольно давно облюбовали UNIX-инженеры, это использование символических ссылок, позволяющая свести к минимуму время накатки релиза и откатки на предыдущий релиз если «что-то пошло не так»(с). Этот механизм так же присутствует и в Windows, однако почему-то активно не используется. А зря. Данная статья призвана поправить это недоразумение и сделать процесс накатки релиза более приятным.


Кадр из х/ф «Джентльмены удачи»
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии10

Как не самое удачное поведение по умолчанию может годами маскировать неправильную работу

Время на прочтение8 мин
Количество просмотров18K
МНОГО ДЕТАЛЕЙОчень удобно, когда благодаря правильно выбранным умолчаниям все работает само и «из коробки» и не нужно ничего настраивать. Эта история о том, что выбранные умолчания должны быть работоспособными всегда, в противном случае есть риск непредвиденного отказа после многих лет беспроблемной работы.

Мы столкнулись с недокументированным поведением Windows Server в web-ролях Microsoft Azure, которое долгие годы маскировало неправильную настройку нашего сервиса Cloud OCR SDK, пока в один не самый прекрасный момент не привело к серьезным проблемам у отдельных пользователей.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии11

Управление удалённым IIS

Время на прочтение8 мин
Количество просмотров14K

Вступление


Некоторое время назад мне была поставлена задача найти оптимальный способ программного управления удалённым IIS и реализовать его в виде некоего модуля. Задача интересная, с множеством трудностей, поэтому хочется поделиться своим опытом.

Вот список основных требований к реализуемому модулю:
  • Возможность выполнения основных операций с IIS:
    • создание сайта
    • создание virtual application
    • создание virtual directory
    • настройка bindings для сайтов, включая установку сертификатов SSL
    • создание пулов приложений с детальной настройкой
  • Поддержка параллельной работы с несколькими IIS на разных серверах фермы
  • Поддержка IIS версии 8.0 (более ранние версии поддерживать не нужно).

Одним словом, модуль должен был уметь практически всё, что можно сделать через IIS Manager.
Как реализовывался данный функционал
Всего голосов 10: ↑10 и ↓0+10
Комментарии8

Оптимизация ASP.NET — практические советы по работе с IIS

Время на прочтение12 мин
Количество просмотров96K
В данной публикации речь пойдёт о настройке важных параметров пула ASP.NET-приложений при вызове удалённых веб-сервисов и активной работе с сетью на стороне сервера через стандартные классы .NET.



Введение


Приходилось ли вам когда-нибудь самим настраивать производственные веб-сервера (production servers) под управлением ОС Windows Server 2008 R2/IIS 7.5 и выше? Для системных администраторов, имеющих большой опыт работы с IIS, скорее всего, это тривиальная задача, но вот для веб-разработчиков, которым по различным причинам порой приходится самим участвовать в настройке «боевых» серверов, данная информация может оказаться весьма полезной.

Итак, приступаем. Ускоряем сайт на ASP.NET — экономим деньги предприятия и нервы администратора.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии6

День ASP.NET: пик Балмера, Pluralsight и будущее ASP.NET

Время на прочтение3 мин
Количество просмотров9.9K


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

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

Как нам удалось эти бенефиты включить в корзину для участника — читайте под катом.
Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии2

Основы архитектуры IIS, или запросопровод для ASP.NET

Время на прочтение20 мин
Количество просмотров205K



В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.
Познать...
Всего голосов 71: ↑59 и ↓12+47
Комментарии9

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

IIS — изменяем размер картинок на лету

Время на прочтение2 мин
Количество просмотров12K
Почти в каждом веб-проекте мы сталкиваемся с задачей показывать те или иные изображения в разных размерах. Всё просто — изображение должно показываться в размере, требуемом контекстом. Если вы разрабатываете каталог с разными представлениями, то таких контекстов может быть много. А возможно, что потребуется сделать размер картинки адаптивным по отношению к размеру окна браузера (например, так делают Picasa Web Albums).

Я расскажу о способе решить эту проблему раз и навсегда.
Читать дальше →
Всего голосов 28: ↑19 и ↓9+10
Комментарии19

Необычные заголовки HTTP

Время на прочтение2 мин
Количество просмотров34K
HTTP-ответ сервера содержит не только машиночитаемый текст, но иногда и скрытые послания для людей. Например, WordPress.com вставляет в заголовок поле X-hacker с текстом: «Если вы читаете это, то вам следует пойти на automattic.com/jobs и заполнить анкету». Объявления с приёмом на работу внедряют и другие серверы, например, Gigaom.com. Поскольку он размещается на WordPress, налицо конкуренция работодателей внутри служебных полей.

Server: nginx
Date: Wed, 15 Aug 2012 14:04:39 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding, Cookie
Last-Modified: Wed, 15 Aug 2012 14:03:40 GMT
Cache-Control: max-age=241, must-revalidate
X-hacker: If you’re reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.
P3P: CP=”GigaOM has a Privacy Policy available at gigaom.com/privacy-policy
X-PickUsInstead: Cool company, cooler headers, join the team! Send an email to jobs@gigaom.com and mention this header.
X-Pingback: gigaom.com/xmlrpc.php
X-nananana: Batcache
Content-Encoding: gzip

Вот забавная подборка нестандартных HTTP-заголовков на разных серверах.
Читать дальше →
Всего голосов 79: ↑68 и ↓11+57
Комментарии23