IIS hacking BłaŜej Miga Gerard Frankowski Zespół Bezpieczeństwa PCSS Centrum Innowacji Microsoft Konferencja SecureCON Wrocław, 20-21.10.2007 1
Agenda Kim jesteśmy PCSS + Zespół Bezpieczeństwa MIC Przedstawienie Microsoft IIS Historia IIS a konkurencja: zarys problemów bezpieczeństwa Hacking IIS Web Server Pytania i dyskusja 2
Poznańskie Centrum Superkomputerowo- Sieciowe Operator sieci PIONIER oraz POZMAN Uczestnik projektów naukowo-badawczych Główne obszary zainteresowań: Gridy, sieci nowej generacji, portale Bezpieczeństwo sieci i systemów PCSS http://www.man.poznan.pl 3
Zespół Bezpieczeństwa PCSS Dedykowany zespół istnieje od 1996r. Podstawowy zakres prac Zespołu Zabezpieczanie infrastruktury PCSS Zadania bezpieczeństwa w projektach naukowo badawczych Badania własne Szkolenia, transfer wiedzy Audyty i doradztwo w zakresie bezpieczeństwa IT Najciekawsze badania z ostatnich lat Bezpieczeństwo Instant Messengers (2004-05) Badania sieci bezprzewodowych na terenie Poznania (2005) Raport o bezpieczeństwie bankowości elektronicznej (2006) Bezpieczeństwo serwerów WWW Apache i MS IIS (2006, 2007) http://security.psnc.pl 4
Centrum Innowacji Microsoft Pierwsze w Polsce MIC Centrum bezpieczeństwa i usług outsourcingowych Otwarcie: 1.06.2006r. http://mic.psnc.pl Partnerzy: Microsoft Corporation Poznańskie Centrum Superkomputerowo-Sieciowe Politechnika Poznańska 5
Wybrane cele MIC: Cele i zadania MIC Edukacja poprzez zdalne udostępnianie aplikacji MS Szybszy rozwój lokalnych firm (MŚP) poprzez doradztwo w zakresie podnoszenia poziomu bezpieczeństwa teleinformatycznego, audyty oraz szkolenia Poprawa jakości oraz dostępu do usług medycznych w Wlkp. Łatwy i bezpieczny dostęp do e-usług w urzędach Główne zadania MIC w roku 2007: Zdalne udostępnianie aplikacji Microsoft w polskim środowisku edukacyjnym Audyty bezpieczeństwa usług i aplikacji Szkolenia z zakresu bezpieczeństwa komputerowego Badania technologii multimedialnych Bezpieczne telekonsultacje medyczne wraz ze wspomaganiem decyzji 6
Microsoft IIS Internet Information Server / Services Historia wersji IIS 1.0 (Windows NT 3.51) IIS 2.0 (Windows NT 4.0) IIS 3.0 (Windows NT 4.0 SP 3) IIS 4.0 (Windows NT 4.0 Option Pack) IIS 5.0 (Windows 2000) IIS 5.1 (Windows XP Pro) IIS 6.0 (Windows Server 2003, Windows XP Pro 64-bit.) IIS 7.0 (Windows Vista, Windows Server 2008) http://www.microsoft.com/iis 7
Błędy bezpieczeństwa Za: http://secunia.com, okres 2003-2007 IIS 4.0 IIS 5.0 IIS 6.0 Apache: 6 advisories, 3 x highly critical Wszystkie błędy poprawione 14 advisories, 1 x extremely critical, 5 x highly critical Marzec 2003: przepełnienie bufora w komponencie WebDAV 1 błąd niezałatany (not critical) 3 advisories, 2 x moderately critical Wszystkie błędy poprawione 1.3.x 20 advisories, 5 błędów niezałatanych (not critical) 2.0.x 35 advisories, 3 błędy niezałatane (less critical) 2.2.x 5 advisories, 1 błąd niezałatany (less critical) 8
Microsoft IIS 7.0 http://toolbar.netcraft.com/site_report?url=http://www.mic rosoft.com 9
Microsoft IIS a Apache Bezpieczeństwo oprogramowania komercyjnego a open source Popularność Liczba błędów Szybkość reakcji Specyfika produkcji Producent IX 2007 % X 2007 % Zmiana Apache 68,228,561 50,48% 68,155,320 47,73% -2,75% Microsoft 47,232,300 34,94% 53,017,735 37,13% 2,18% Google 6,616,713 4,90% 7,763,516 5,44% 0,54% Sun 2,212,821 1,64% 2,262,019 1,58% -0,05% lighttpd 1,515,963 1,12% 1,541,779 1,08% -0,04% Źródło: http://news.netcraft.com 10
Popularność Grafika: http://news.netcraft.com 11
Szybkość reakcji na błędy Szybkość reakcji producentów oprogramowania Systemy operacyjne Producent Liczba advisory Suma czasów reakcji Przeciętny czas reakcji Red Hat 31 348 11.23 Microsoft 61 982 16.10 Sun 8 716 89.50 Źródło : http://www.dwheeler.com/oss_fs_why.html Przeciętny czas reakcji producenta 90 80 70 60 50 40 30 20 10 0 Red Hat Microsoft Sun 12
Hacking IIS 7.0 13
Komponenty serwera IIS DLLHost ISAPI Extensions INETINFO.EXE Metabase ASPNETWP ASP.NET Apps W3S VC WA S Worker Process w3wp.exe ASP.NET Web App WinSock 2.0 user AFD.SYS kernel HTTP.SYS TCP/IP TCP/IP 14
W3SVC, WAS W3svc konfiguracja serwisów tworzenie HTTPListener'ów WAS Zarządca procesów Działa z uprawnieniami konta LocalSystem Tworzy worker procesy (w3wp.exe) 15
http.sys Driver kernel-mode komponent http protocol stack Obsługuje połączenia https Cache'owanie odpowiedzi w pamięci jądra dla statycznych plików! Filtrowanie URL Klasa HttpListener komunikacja z http.sys 16
http.sys MoŜliwości konfiguracyjne netsh http... httpcfg HKLM\SYSTEM\CurrentControlSet\Services\HTT P\Parameters Strony z informacją o pojawiających się błędach wkompilowane w http.sys Log \systemroot\system32\logfiles 17
IIS 7.0 - Moduły Przeszło 40 modułów Biblioteka dll Pogrupowane Http modules Security modules Content modules Compression modules Caching modules Logging and Diagnostics modules 18
IIS http pipeline 19
IIS - konfiguracja Konfiguracja serwera i serwisów umieszczona jest w plikach xml Narzędzia konfiguracyjne: IIS Manager WMI Tworzenie własnych modułów klasa System.Web... vi webconfig.xml 20
ASP.NET Połączenie ASP i.net W skład platformy wchodzą: Kompilatory C#, Visual Basic.NET, J# Kompilator kodu zarządzającego Metody umieszczania serwisów: Wersja skompilowana Wersja w postaci kodu źródłowego kod ten jest kompilowany przy pierwszym Ŝądaniu strony. 21
Application Domain Element łączący ASP.NET i IIS Główne zadanie zapewnienie izolacji między aplikacjami MoŜliwości konfiguracyjne: Wybór środowiska.net Limity przydziału procesora Limity przydziału pamięci Wybór uŝytkownika, z uprawnieniami którego aplikacje będą uruchamiane Konfiguracja.NET Trust Levels (Code Access Security) 22
CAS High No unmanaged code. No enterprise services. Can access SQL Server and other OLE DB data sources. Very limited reflection permissions. No ability to invoke code by using reflection. A broad set of other framework features are available. Applications have full access to the file system, and to sockets. Medium application. Permissions are limited to what the application can access within the directory structure of the No file access is permitted outside of the application's virtual directory hierarchy. Can access SQL Server. Can send e-mail by using SMTP servers. Limited rights to certain common environment variables. No reflection permissions whatsoever. No sockets permission. To access Web resources, you must explicitly add endpoint "URLs" either in the originurl attribute of the <trust> element or inside the policy file. Low Intended to model the concept of a read-only application with no network connectivity. Minimal Read only access for file I/O within the application's virtual directory structure. Execute only. No ability to change the "IPrincipal" on a thread or on the "HttpContext". 23
Kompilacja aspx worker proces (w3wp.exe) Sprawdzenie, czy istnieje skompilowana wersja Kompilacja kodu csc.exe... cvtres.exe... Pliki wynikowe umieszczane są w katalogu %SYSTEM%\Microsoft.NET\Framework\ver\Temporary ASP.NET Files\ 24
ZagroŜenia Zabawy ze zdalnymi serwerkami 25
Wyszukiwanie IIS Google: inurl:aspx Brak wraŝliwości na wielkość znaków w URL: default.aspx DeFAUlt.aspx %00 w URL :default.aspx?a=%00 Zakazane URL: http://../wsman/ http://../temporary_listen_addresses 26
http://.../trace.axd Trace.axd 27
Włączone raportowanie błędów 28
ZagroŜenia Zabawy z kontem lokalnym 29
ZagroŜenie 1 DoS Maksymalne wykorzystanie zasobów dyskowych Do kompilowania plików aspx kompilator musi mieć uprawnienia do tworzenia plików w katalogu %SYSTEMROOT%\Microsoft.NET\Framework\ver\Tempor ary ASP.NET Files\... Katalog ten wykorzystywany jest do zapisywania skompilowanych skryptów Program uŝytkownika zapisuje nieskończenie wiele danych do losowych plików w tym katalogu Odmiana dla złośliwców wyszukanie w rejestrze w gałęziach HKLM kluczy, do których mamy prawo zapisu tworzenie nowych podkluczy. Zjadanie miejsca na dysku przez bazy rejestru. Omijanie quota! 30
ZagroŜenie 1 DoS Maksymalne wykorzystanie zasobów dyskowych NTFS przydziały (quota) Problemy z wyznaczeniem wartości limitu przy jednym Application Domain Ograniczenie ilości katalogów, w których skrypty uŝytkownika mają moŝliwość zapisywania danych 31
ZagroŜenie 2 DoS wykorzystanie zasobów pamięci Uruchomienie nieskończonej ilości procesów dzieci Tworzenie nieskończenie wielkich tablic w wykonywanych skryptach ASP.NET 32
ZagroŜenie 2 DoS wykorzystanie zasobów pamięci Utworzenie osobnych Application Domain dla kaŝdego hostowanego serwisu Ustawienie limitów przydziału procesora i pamięci dla kaŝdego Application Domain Ograniczenie moŝliwości uruchamiania własnych programów przez klienta 33
ZagroŜenie 3 Umieszczenie serwera na listach spamerów Wysyłanie nieautoryzowanego mailingu z serwera.net System.Net.Mail System.Net.Sockets Własne programy wykorzystujące połączenia TCP do wysyłania danych 34
ZagroŜenie 3 Umieszczenie serwera na listach spamerów Ograniczenie moŝliwości uruchamiania własnych programów przez klienta Zastosowanie firewall'a 35
ZagroŜenie 4 Utrata poufności danych umieszczonych na serwerze WMI System.Management Informacje o środowisku, uruchomionych procesach System.Diagnostics.Process System.Environment Własne programy Odczyt rejestru Przeszukiwanie filesystemu serwera 36
ZagroŜenie 4 Utrata poufności danych umieszczonych na serwerze Ograniczenie moŝliwości uruchamiania własnych programów przez klienta Ustawienie odpowiednich uprawnień do plików i katalogów dla uŝytkownika uruchamiającego kod strony Szyfrowanie haseł wykorzystywanych do łączenia się z bazą danych Umieszczanie na serwerze skompilowanych wersji skryptów 37
ZagroŜenia prace w domu Zabawa z funkcja cache w http.sys Czyszczenie cache co 120 sekund Cache owane są tylko pliki statyczne (jpg,html) Brak limitów na rozmiar cache'a Przy braku pamięci zadania odrzucane z bledem 503 38
Podsumowanie IIS + ASP.NET ogromne moŝliwości tworzenia aplikacji webowych DuŜe moŝliwości konfiguracyjne (xml, mmc, WMI) Bogata dokumentacja (www.asp.net, MSDN) Darmowe środowisko deweloperskie Visual Studio Express Zagwarantowany rozwój i support środowiska 39
PCSS Informacje kontaktowe WWW: http://www.man.poznan.pl E-mail: office@man.poznan.pl Centrum Innowacji Microsoft WWW: http://mic.psnc.pl WWW: http://telesfor.mic.psnc.pl E-mail: mic@man.poznan.pl Zespół Bezpieczeństwa PCSS WWW: http://security.psnc.pl E-mail: security@man.poznan.pl 40
Dyskusja Dziękujemy za uwagę! 41