IIS - Internet Information Services
Перевірте розширення виконуваних файлів:
asp
aspx
config
php
Розкриття внутрішньої IP-адреси
На будь-якому сервері IIS, де ви отримуєте 302, ви можете спробувати видалити заголовок Host і використовувати HTTP/1.0, а відповідь може містити заголовок Location, який вказує на внутрішню IP-адресу:
Відповідь, що розкриває внутрішню IP-адресу:
Виконання файлів .config
Ви можете завантажити файли .config та використовувати їх для виконання коду. Один зі способів - додати код в кінець файлу всередині коментаря HTML: Завантажити приклад тут
Додаткова інформація та техніки для використання цієї уразливості тут
IIS Discovery Bruteforce
Завантажте список, який я створив:
Він був створений шляхом об'єднання вмісту наступних списків:
https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/aspx.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt
Використовуйте його, не додаючи жодного розширення, файли, які його потребують, вже мають його.
Обхід шляху
Витік вихідного коду
Перевірте повний опис за посиланням: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
Узагальнюючи, в папках додатка є кілька файлів web.config з посиланнями на файли "assemblyIdentity" та "namespaces". З цією інформацією можна дізнатися де розташовані виконувані файли та завантажити їх. З завантажених Dlls також можна знайти нові простори імен, де варто спробувати отримати доступ та отримати файл web.config, щоб знайти нові простори імен та assemblyIdentity. Також файли connectionstrings.config та global.asax можуть містити цікаву інформацію.\
У .Net MVC додатках файл web.config відіграє важливу роль, вказуючи кожний бінарний файл, від якого залежить додаток, через XML-теги "assemblyIdentity".
Дослідження бінарних файлів
Нижче показано приклад доступу до файлу web.config:
Цей запит розкриває різні налаштування та залежності, такі як:
Версія EntityFramework
AppSettings для веб-сторінок, клієнтської валідації та JavaScript
Конфігурації System.web для аутентифікації та часу виконання
Налаштування модулів System.webServer
Зв'язки збірок Runtime для численних бібліотек, таких як Microsoft.Owin, Newtonsoft.Json та System.Web.Mvc
Ці налаштування вказують на те, що певні файли, такі як /bin/WebGrease.dll, розташовані в папці /bin додатка.
Файли кореневого каталогу
Файли, знайдені в кореневому каталозі, такі як /global.asax та /connectionstrings.config (який містить чутливі паролі), є важливими для конфігурації та роботи додатка.
Простори імен та Web.Config
Додатки MVC також визначають додаткові файли web.config для конкретних просторів імен, щоб уникнути повторних декларацій у кожному файлі, як показано в запиті на завантаження іншого web.config:
Завантаження DLL-файлів
Згадка про власне простір імен натякає на DLL-файл з назвою "WebApplication1", який знаходиться в каталозі /bin. Після цього показано запит на завантаження WebApplication1.dll:
Це вказує на наявність інших важливих DLL-файлів, таких як System.Web.Mvc.dll та System.Web.Optimization.dll, у каталозі /bin.
У випадку, коли DLL імпортує простір імен під назвою WebApplication1.Areas.Minded, зловмисник може зробити висновок про наявність інших файлів web.config за передбачуваними шляхами, такими як /area-name/Views/, що містять конкретні конфігурації та посилання на інші DLL-файли у каталозі /bin. Наприклад, запит до /Minded/Views/web.config може розкрити конфігурації та простори імен, які вказують на наявність іншої DLL, WebApplication1.AdditionalFeatures.dll.
Загальні файли
З цього
Помилка 404 HTTPAPI 2.0
Якщо ви бачите помилку, схожу на наступну:
Це означає, що сервер не отримав правильне ім'я домену у заголовку Host. Для доступу до веб-сторінки ви можете переглянути SSL-сертифікат, можливо, ви зможете знайти там ім'я домену/піддомену. Якщо його там немає, вам може знадобитися перебір VHosts, поки ви не знайдете правильний.
Старі вразливості IIS, на які варто звернути увагу
Вразливість/функція тильди “~” в Microsoft IIS – Розкриття короткого імені файлу/папки
Ви можете спробувати перелічити папки та файли всередині кожної виявленої папки (навіть якщо для цього потрібна базова аутентифікація) за допомогою цієї техніки. Основне обмеження цієї техніки, якщо сервер вразливий, полягає в тому, що вона може знайти лише до перших 6 літер назви кожного файлу/папки та перших 3 літер розширення файлів.
Ви можете використовувати https://github.com/irsdl/IIS-ShortName-Scanner, щоб перевірити цю вразливість: java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
Оригінальне дослідження: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Ви також можете використовувати metasploit: use scanner/http/iis_shortname_scanner
Обхід базової аутентифікації
Обійдіть базову аутентифікацію (IIS 7.5) спробувавши отримати доступ до: /admin:$i30:$INDEX_ALLOCATION/admin.php
або /admin::$INDEX_ALLOCATION/admin.php
Ви можете спробувати поєднати цю вразливість з попередньою, щоб знайти нові папки та обійти аутентифікацію.
Включене налагодження ASP.NET Trace.AXD
ASP.NET включає режим налагодження, а його файл називається trace.axd
.
Він зберігає дуже детальний журнал всіх запитів, зроблених до додатка протягом певного часу.
Ця інформація включає віддалені IP-адреси клієнтів, ідентифікатори сеансів, всі куки запитів та відповідей, фізичні шляхи, інформацію про вихідний код та, можливо, навіть імена користувачів та паролі.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
Куки ASPXAUTH
ASPXAUTH використовує наступну інформацію:
validationKey
(рядок): шістнадцятковий ключ для перевірки підпису.decryptionMethod
(рядок): (за замовчуванням “AES”).decryptionIV
(рядок): шістнадцятковий ініціалізаційний вектор (за замовчуванням вектор з нулів).decryptionKey
(рядок): шістнадцятковий ключ для розшифрування.
Однак деякі люди використовуватимуть стандартні значення цих параметрів та використовуватимуть як куки електронної пошти користувача. Тому, якщо ви зможете знайти веб-сайт, який використовує таку ж платформу, що використовує куки ASPXAUTH, і створити користувача з електронною адресою користувача, якого ви хочете імітувати на сервері, який атакується, ви можете використати куки з другого сервера на першому та імітувати користувача. Цей атака працювала в цьому описі.
Обхід аутентифікації IIS за допомогою кешованих паролів (CVE-2022-30209)
Повний звіт тут: Помилка в коді не перевіряла належність пароля, введеного користувачем, тому зловмисник, чий хеш пароля відповідає ключу, який вже є в кеші, зможе увійти як цей користувач.
Last updated