IIS - Internet Information Services
Testuj rozszerzenia plików wykonywalnych:
asp
aspx
config
php
Ujawnienie wewnętrznego adresu IP
Na każdym serwerze IIS, na którym otrzymasz 302, możesz spróbować usunąć nagłówek Host i użyć HTTP/1.0, a w odpowiedzi nagłówek Location może wskazywać na wewnętrzny adres IP:
Odpowiedź ujawniająca wewnętrzny adres IP:
Wykonywanie plików .config
Możesz przesyłać pliki .config i używać ich do wykonywania kodu. Jednym ze sposobów jest dodanie kodu na końcu pliku wewnątrz komentarza HTML: Pobierz przykład tutaj
Więcej informacji i technik dotyczących wykorzystania tej podatności tutaj
Bruteforce odkrywania IIS
Pobierz listę, którą stworzyłem:
Została stworzona poprzez połączenie zawartości następujących list:
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
Użyj jej bez dodawania jakiegoś rozszerzenia, pliki, które go potrzebują, już je mają.
Przechodzenie po ścieżkach
Wyciekanie kodu źródłowego
Sprawdź pełny opis w: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
Podsumowując, w folderach aplikacji znajduje się kilka plików web.config z odniesieniami do plików "assemblyIdentity" i "namespaces". Dzięki tym informacjom możliwe jest ustalenie gdzie znajdują się pliki wykonywalne i ich pobranie. Z pobranych Dll można również znaleźć nowe przestrzenie nazw, do których należy spróbować uzyskać dostęp i pobrać plik web.config, aby znaleźć nowe przestrzenie nazw i assemblyIdentity. Ponadto pliki connectionstrings.config i global.asax mogą zawierać interesujące informacje.\
W aplikacjach .Net MVC, plik web.config odgrywa kluczową rolę, określając każdy plik binarny, na którym opiera się aplikacja, za pomocą tagów XML "assemblyIdentity".
Eksploracja plików binarnych
Przykład dostępu do pliku web.config pokazano poniżej:
To żądanie ujawnia różne ustawienia i zależności, takie jak:
EntityFramework wersja
AppSettings dla stron internetowych, walidacji klienta i JavaScript
System.web konfiguracje dla uwierzytelniania i czasu wykonywania
System.webServer ustawienia modułów
Runtime powiązania zestawów dla licznych bibliotek, takich jak Microsoft.Owin, Newtonsoft.Json i System.Web.Mvc
Te ustawienia wskazują, że niektóre pliki, takie jak /bin/WebGrease.dll, znajdują się w folderze /bin aplikacji.
Pliki katalogu głównego
Pliki znajdujące się w katalogu głównym, takie jak /global.asax i /connectionstrings.config (który zawiera wrażliwe hasła), są niezbędne dla konfiguracji i działania aplikacji.
Przestrzenie nazw i Web.Config
Aplikacje MVC definiują również dodatkowe web.config files dla specyficznych przestrzeni nazw, aby uniknąć powtarzalnych deklaracji w każdym pliku, co ilustruje żądanie pobrania innego web.config:
Pobieranie DLL
Wzmianka o niestandardowej przestrzeni nazw sugeruje istnienie DLL o nazwie "WebApplication1" w katalogu /bin. Następnie pokazano żądanie pobrania WebApplication1.dll:
To sugeruje obecność innych istotnych DLL, takich jak System.Web.Mvc.dll i System.Web.Optimization.dll, w katalogu /bin.
W scenariuszu, w którym DLL importuje przestrzeń nazw o nazwie WebApplication1.Areas.Minded, atakujący może wywnioskować istnienie innych plików web.config w przewidywalnych ścieżkach, takich jak /area-name/Views/, zawierających specyficzne konfiguracje i odniesienia do innych DLL w folderze /bin. Na przykład, żądanie do /Minded/Views/web.config może ujawnić konfiguracje i przestrzenie nazw, które wskazują na obecność innego DLL, WebApplication1.AdditionalFeatures.dll.
Common files
From here
HTTPAPI 2.0 404 Error
Jeśli zobaczysz błąd podobny do poniższego:
Oznacza to, że serwer nie otrzymał poprawnej nazwy domeny w nagłówku Host. Aby uzyskać dostęp do strony internetowej, możesz spojrzeć na serwowany certyfikat SSL i być może znajdziesz tam nazwę domeny/poddomeny. Jeśli jej tam nie ma, może być konieczne brute force VHosts, aż znajdziesz poprawną.
Stare luki w IIS, na które warto zwrócić uwagę
Microsoft IIS tilde character “~” Vulnerability/Feature – Short File/Folder Name Disclosure
Możesz spróbować enumerować foldery i pliki w każdym odkrytym folderze (nawet jeśli wymaga to podstawowej autoryzacji) używając tej techniki. Głównym ograniczeniem tej techniki, jeśli serwer jest podatny, jest to, że może znaleźć tylko pierwsze 6 liter nazwy każdego pliku/folderu oraz pierwsze 3 litery rozszerzenia plików.
Możesz użyć https://github.com/irsdl/IIS-ShortName-Scanner do testowania tej luki: java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
Oryginalne badania: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Możesz również użyć metasploit: use scanner/http/iis_shortname_scanner
Basic Authentication bypass
Obejdź podstawową autoryzację (IIS 7.5) próbując uzyskać dostęp do: /admin:$i30:$INDEX_ALLOCATION/admin.php
lub /admin::$INDEX_ALLOCATION/admin.php
Możesz spróbować połączyć tę lukę z ostatnią, aby znaleźć nowe foldery i obejść autoryzację.
ASP.NET Trace.AXD enabled debugging
ASP.NET zawiera tryb debugowania, a jego plik nazywa się trace.axd
.
Zachowuje bardzo szczegółowy dziennik wszystkich żądań wysyłanych do aplikacji przez pewien czas.
Informacje te obejmują adresy IP zdalnych klientów, identyfikatory sesji, wszystkie ciasteczka żądań i odpowiedzi, ścieżki fizyczne, informacje o kodzie źródłowym, a potencjalnie nawet nazwy użytkowników i hasła.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
ASPXAUTH Cookie
ASPXAUTH używa następujących informacji:
validationKey
(string): klucz zakodowany w formacie hex do użycia w walidacji podpisu.decryptionMethod
(string): (domyślnie “AES”).decryptionIV
(string): wektor inicjalizacyjny zakodowany w formacie hex (domyślnie wektor zerowy).decryptionKey
(string): klucz zakodowany w formacie hex do użycia w deszyfrowaniu.
Jednak niektórzy ludzie będą używać domyślnych wartości tych parametrów i będą używać jako ciasteczka adresu e-mail użytkownika. Dlatego, jeśli możesz znaleźć stronę internetową korzystającą z tej samej platformy, która używa ciasteczka ASPXAUTH i utworzysz użytkownika z adresem e-mail użytkownika, którego chcesz udawać na serwerze pod atakiem, możesz być w stanie użyć ciasteczka z drugiego serwera w pierwszym i udawać użytkownika. Ten atak zadziałał w tym opisie.
IIS Authentication Bypass with cached passwords (CVE-2022-30209)
Pełny raport tutaj: Błąd w kodzie nie sprawdzał poprawnie hasła podanego przez użytkownika, więc atakujący, którego hash hasła trafia na klucz, który już znajduje się w pamięci podręcznej, będzie mógł zalogować się jako ten użytkownik.
Last updated