10:28
16/8/2016

Badacze ostrzegają przed atakami MITM na protokół WPAD (Web Proxy Auto-Discovery), które pozwalają wykraść wrażliwe dane ofiary, nawet jeśli ofiara korzysta z tzw. “bezpieczych” i szyfrowanych połączeń, np. HTTPS lub VPN. Atak jest istotny, ponieważ WPAD uruchamia się po podpięciu do niezaufanych (pozafirmowych) sieci, np. po połączeniu z darmowym hotspotem w restauracji.

Na czym polega atak?

Atak polega na podstawieniu w lokalnej sieci pliku PAC wskazującego na serwer proxy kontrolowany przez atakującego. Oto przykładowa zawartość takiego pliku:

function FindProxyForURL(url, host) {
// dla lokalnych adresów łącz się bezpośrednio:
if (shExpMatch(host, "*.example.com"))
{ return "DIRECT"; }
// wszystkie inne przez port 8080 serwera proxy.example.com a jak nie wyjdzie, to bezpośrednio
return "PROXY proxy.example.com:8080; DIRECT"; }

Lokalizacja pliku PAC jest przez komputery z włączonym WPAD-em wykrywana na kilka sposobów (poprzez DHCP z opcją 252, DNS w domenach wpad.nasza.firma.pl, wpad.firma.pl lub LLMNR).

WPAD-BH_key

Po podstawieniu własnych namiarów na serwer proxy przez plik PAC, atakujący jest w stanie przechwytywać całość niezaszyfrowanego ruchu ofiary. A co z protokołami szyfrowanymi (jak HTTPS)? Poprzez odpowiednie instrukcje w plikach PAC możliwe jest poznanie zapytań DNS-owych z komputera ofiary oraz przechwycenie pełnego URL-a, do którego odwołuje się ofiara. Jeśli więc adres jakiegoś zasobu HTTPS zawiera parametry z wrażliwymi danym, wpadną one w ręce atakującego.

Dzięki temu, atakujący może przechwycić tokeny OAuth lub prywatne zdjęcia użytkownika z Facebooka (ich adresy to publiczne CDN-y, a “restrykcja” w dostępie polega na przewidzeniu nazwy — w przypadku możliwości podglądania URL-i, atakujący pozna nazwę pliku na CDN). Co ciekawe, jeśli ofiara została zaatakowana (jej serwery proxy są podstawione przez złośliwy WPAD), to niektóre klienty VPN (np. OpenVPN) będą z nich korzystać.

Żeby było śmieszniej, z racji tego, że komputery szukają serwerów WPAD w domenach lokalnych, które teraz można kupić jako globalne, możliwe jest masowe “rekonfigurowanie” i przechwytywanie danych, np. od wszystkich użytkowników konkretnego routera. Tu przykład domeny używanej przez routery jednej z firm: fritz.box:

WPAD-BH_key 2

Mam Windows — co robić, jak żyć?

Jeśli ktoś z was musi korzystać z WPAD, ustawcie statyczny adres serwera, a plik PAC serwujcie po HTTPS. Jeśli nie wiecie, co to jest WPAD, to znak, że pewnie w ogóle nie musicie z niego korzystać. W takiej sytuacji najlepsze będzie jego wyłączenie. Oto instrukcje dla Windowsa wyłączające próbkowanie WPAD:

Internet Options (control panel) > Connections > LAN Settings > odznacz Automatically detect settings

lub

Zmodyfikuj “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad” -> “Wpad” Dodając DWORD (32-Bit Value) o nazwie “WpadOverride” z wartością “1”.

wpad_configuration-100676218-orig

Prezentacja dotycząca niebezpieczeństw związanych z WPAD jest tutaj. A tutaj jest druga.

Przeczytaj także:

43 komentarzy

Dodaj komentarz
  1. będziecie informować jeśli zostanie wydana łatka na Windowsa?

    • Nie. Twoj Windows Cie poinformuje albo nawet sam sobie to zainstaluje.

    • Przez 16 lat m$ sobie nic z tego nie robił…

  2. “Nie. Twoj Windows Cie poinformuje albo nawet sam sobie to zainstaluje.”

    szczegolnie przy wylaczonych aktualizacjach

    • No to sam sobie załataj ten bug.

  3. To jedna z podstawowych opcji, którą się wyłącza, chociaż do tej pory raczej nie z powodów bezpieczeństwa, a po prostu dla wydajności, bo Windows potrafi czasem sprawdzać przed każdym połączeniem HTTP (szczególnie w IE), czy przypadkiem nie znajdzie proxy, co trwa kilkanaście/dziesiąt sekund (dokładnie nie pamiętam).

  4. http://pasteboard.co/9hbyDUbQZ.png

    Win 10, u mnie domyślnie wyłączone.

  5. Istrukcja jak to zrobić w WIN10, w polskiej wersji usługa nazywa się “Usługa autowykrywania serwera proxy w sieci Web WinHTTP”

    http://www.ibtimes.co.uk/how-disable-wpad-windows-so-hackers-cant-hijack-your-computer-1576111

    • Nie mam takiej usługi. Po polsku może inaczej się nazywa?

    • Usługa autowykrywania serwera proxy w sieci Web WinHTTP
      Zależna od niej jest usługa Pomoc IP więc także ona padnie po wyłączeniu WinHTTP.

    • Jest prościej i to znacznie.
      Ustawienia -> Sieć i Internet -> Serwer proxy -> pierwsza opcja od góry.

  6. A czy jeśli mam domowe połączenie za pomocą kabla i nie łączę się z sieciami publicznymi to nic mi nie grozi?

    • Teoretycznie tak, ale też wyłącz, przyspiesza to nieco internet bo czasem winda próbuje wykryć proxy którego nie ma.

  7. A jak się to ma do wszelkiego rodzaju płatnych hot spotów witających własna stroną ? czy sugerowany “fix” przypadkiem nie popsuje tutaj czegoś ?

    • U mnie (Win7Ult) było domyślnie wyłączone a z hotelowymi hotspotami nie mam problemów

    • Hotspoty i WPAD? Hotspoty najczęściej robią przekierowania HTTP, “wpadnięte” proxy tu niepotrzebne, wystarczy transparentne :)

  8. “Żeby było śmieszniej, z racji tego, że komputery szukają serwerów WPAD w domenach lokalnych, które teraz można kupić jako globalne, możliwe jest masowe “rekonfigurowanie” i przechwytywanie danych, np. od wszystkich użytkowników konkretnego routera. Tu przykład domeny używanej przez routery jednej z firm: fritz.box:”.
    Nie rozumiem co WPAD ma wspólnego z domenami. Żeby WPAD zadziałał musi zostać zwrócony wpis 252. Idąc tym tropem trzeba by wyłączyć całe DHCP. Większość sprzętu “nie filtruje” ruchu DHCP, każdy może się podłączyć i zacząć mieszać. Z tego co wiem, u nas w firmie mamy regułki, które odłączają od sieci porty, na których pojawia się nieautoryzowany ruch DHCP. UWAGA!!! przejęcie kontroli nad DHCP może powodować utratę danych na dysku.

    Odnośnie search domain: przydała by się jeszcze sekcja – Mam Linux, jak żyć. Mam MAC jak żyć oraz Mam raka jak rzyć.

    • “Nie rozumiem co WPAD ma wspólnego z domenami. Żeby WPAD zadziałał musi zostać zwrócony wpis 252. ”

      To popatrz na prawą stronę I-go obrazka. DHCP opcja 252 to jedna z możliwości automatycznego wykrycia pliku WPAD, opisana po lewej stronie wspomnianego obrazka.

    • Doczytałem, faktycznie szuka na podstawie DNS. Jednak nadal problemem jest konfiguracja DHCP, która otwiera furtkę nie tylko dla WPAD. Dlatego w domowych routerach powinno się stosować domenę “.local”.

    • No nie do końca. Ja mam publiczną domenę i poddomenę delegowaną na router, a za nim jeszcze webserwer ze swoją poddomeną :)

  9. “Automatycznie wykryj ustawienia” – no to mam zaznaczać to okienko czy nie?

    • Odznaczyć
      nie chcesz wykrywania ;-)

  10. Instrukcja dla Windows 10 (ludzkim językiem):
    1. Klikamy na pasku start w ikonkę windowsa.
    2. Klikamy na przycisk “Ustawienia” (kształt trybika) ulokowany po lewej stronie (tam jest umiejscowiony po ostatniej aktualizacji Windowsa 10 która miała miejsce w lipcu i co nieco poprzesuwała w menu start)
    3. Klikamy ikonę ziemi podpisaną “Sieć i Internet”.
    4. Klikamy napis “Serwer proxy”.
    5. W dziale “Automatyczna konfiguracja serwera proxy” wyłączamy funkcję o nazwie “Automatycznie wykryj ustawienia” (jeśli mamy ją włączoną, a zazwyczaj jest ona włączona).

    Uwaga: instrukcja podana do Windowsa 10 z zainstalowanymi najnowszymi aktualizacjami z lipca tego roku, które to aktualizacje nieco zmodyfikowały panel ustawień, choć nie na tyle aby osoba która chce odnaleźć te funkcje nie dała rady.

  11. Co to znaczy, że dla protokołu HTTPS można zobaczyć URL w postaci niezaszyfrowanej? Zgodniez moją wiedzą, szyfrowana jest cała wiadomość, łącznie z nagłówkami (wyjątkiem jest SNI, gdzie nagłówek Host wysyłany jest niezaszyfrowany – ale URLa cały czas nie da się zobczyć)

    • Zastanów się – możesz do przeglądarki wysłać funkcję, która jako argument przyjmuje URL, ale zablokowane są wywołania większości klasycznych funkcji, stosowanych do uploadu danych. Jak możesz zasymulować uplink?

      A w ogóle ktoś, kto przesyła wrażliwe dane w adresie, zasługuje na ich upublicznienie. Tak po prostu, to NIE DO TEGO SŁUŻY. Choćby dlatego, że można być pod kamerą, a nie słyszałem, żeby ktoś specjalnie generował dłuuuuuuuugi adres, żeby token sie nie zmieścił na ekranie.

    • Nieprawda. Wszystko poza domeną jest szyfrowane w HTTPS. Proxy nie ma możliwości odczytania tych danych, bo nie ma prywatnego klucza, który trzeba użyć do odszyfrowania danych.

      Proxy mogłoby teoretycznie sfałszować własny certyfikat, ale użytkownik musiałby go zaakceptować jako zaufany. Ewentualnie przy słabym kluczu proxy mogłoby zachować pakiety i spróbować je rozszyfrować… Ale realnie rzecz biorąc? Nie. Jeśli ktoś ma moce przerobowe na łamanie kluczy, to pewnie może się wpiąć w sieć w innym miejscu.

      Vide także:
      http://security.stackexchange.com/questions/8145/does-https-prevent-man-in-the-middle-attacks-by-proxy-server

  12. Micro$oft po raz kolejny WPADł :D

  13. Niezła WPADka

  14. Przecież to feature który działa w ten sposób ‘by design’ od dekad. Wielki mi news.

    Napiszczie jeszcze koniecznie o nowatorskich metodach ataku w postaci ARP poisoning i DNS spoofing.

  15. pytanko:

    jesli 2 checkboxy sa zaznaczone (“Automatically detect settings” oraz “Use automatic configuration script” z jawną ścieżką do PAC file nawet niech bedzie po https.) to czy w momencie jak plik nie jest osiągalny jako fallback sa wszystkie metody wykrywania WPAD’a robione z autodetekcji?
    1) dhcp 252
    2) dns …

    czyli opcja 1sza powinna zawsze być wyłączona ze względów bezpieczeństwa?

  16. Porada, aby ustawić klucz “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad” -> “Wpad” Dodając DWORD (32-Bit Value) o nazwie “WpadOverride” z wartością “1”.
    jest poradą fałszywą i ma odwrotny skutek do oczekiwanego.

    http://kb.k12usa.com/Knowledgebase/Proxy-Auto-Detect-WPAD-Issues-With-IE-Windows-7

    Dzięki temu porada jest odwrotnie skuteczna i wprowadzająca w bład.

    • Ech, bo ta porada dotyczyła tego, jak uruchomić WPAD, jeżeli chcesz deployować proxy w organizacji. Win7 domyśnie działa tak, że jeżeli w danej sieci nie wykryje proxy, to nie będzie już próbował tego robić. Jeżeli później będziesz chciał je w niej deployować za pomocą WPAD, to klienty W7 się na nie nie przełączą. Ten klucz zmienia to zachowanie.

  17. Po dodaniu wpisu pod Windows 10 i 8.1 nic się nie zmienia:
    “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad” -> “Wpad” Dodając DWORD (32-Bit Value) o nazwie “WpadOverride” z wartością “1”.

    po zrestartowaniu komputera dalej opcja jest właczona.
    Warto dodać, że pod Windows 10 trzeba jeszcze wyłaczyć serwis “WinHttpAutoProxySvc” http://www.netresec.com/?page=Blog&month=2012-07&post=WPAD-Man-in-the-Middle

    • ten DWORD nie jest od tego. On odpowiada za to, czy w danej sieci proxy ma być wykrywane WPAD zawsze, czy jednorazowo. Innymi słowy, jeżeli jego wartość to 0, jeżeli w danej sieci win nie wykryje proxy przez WPAD nie będzie robił tego więcej. Jeżeli wynosi 1, będzie szukał go okresowo za pomocą odpowiedzialnej za to usługi.

  18. Thank you, Captain Obious!

    Opiszcie jeszcze atak za pomocą DHCP – można podać kontrolowane przez siebie serwery DNS i na nich zobaczyć, o jakie domeny się odpytuje. Więcej – podając kontrolowany przez siebie rotuer widzimy wszystkie metadane ruchu IP (tj. adresy oraz porty), możemy także podejrzeć całą nieszyfrowaną komunikację. A wstawiając jakiś MITM można nawet przekierować ruch szyfrowany na phishingowe strony – jeżeli użytkownik nie sprawdza certyfikatów (a przecież prawie nikt nie sprawdza).

    Uprasza się redakcję o dodanie nowego tagu: paranoicy-z-piaskownicy_i_dzieci-z-onetu.

    I oznaczajcie tym tagiem teksty typu “Gdy następnym razem twój kolega się nie wyloguje…” oraz “Home.pl radzi: masz problem z szyfrowaniem, wyłącz jego obsługę :)”. A najlepiej stronom z tym tagiem ustawcie różowe tło, żeby nie marnować na nie czasu.

    • Ciekawe, prawda, że na DEFCON i BlackHat w tym roku wpuścili te tematy? Jeśli ktoś przejrzał prezentację, to wie dlaczego. Jeśli skupił się tylko, że na WPAD można robić MITM, co od dawna jest znane i co sami autorzy prezentacji przyznają, cytując poprzednie prace na ten temat, to nie mam więcej pytań… ;)

    • Jeżeli autor tego tekstu przejrzał prezentację, to mógł sam wspomnieć, DLACZEGO.

      A jeżeli nie przejrzał, nie zrozumiał albo nie chciało mu się napisać, to stronę tekstu historycznego oraz drugą – konfigurację windowsa dla lajkoników, też mógł sobie odpuścić. Większą wartość miałby wówczas sam link: “zobaczcie, jak jeszcze można wykorzystać WPAD” – bo więcej osób by obejrzało prezentację zawierającą jakąś nową (jak zgaduję, nie chce mi się tam zaglądać) wartość merytoryczną, zamiast powielania ponad 15 letnich “ataków”.

      Dlaczego sądzę, że autor nie przejrzał bądź nie zrozumiał prezentacji? Cytuję:

      “Poprzez odpowiednie instrukcje w plikach PAC możliwe jest poznanie zapytań DNS-owych z komputera ofiary”

      – to nie jest prawdą, PAC-em TEGO się nie robi. Natomiast druga część zdania:

      “oraz przechwycenie pełnego URL-a, do którego odwołuje się ofiara”

      – która jest sednem tej prezentacji (no dobra, zajrzałem na parę sekund), zasłużyła na całe 8 słów! Wow. No to sprostujcie jeżeli się mylę (rzuciłem ledwie okiem na tego PDF-a), ale to DNS jest STOSOWANY do wytransferowania URL-a, zatem atakujący musi kontrolować/podsłuchiwać zapytania DNS ofiary (a NIE: “poprzez [PAC] możliwe jest poznanie zapytań DNS-owych”).

      PS. poważnie, na temat MITM via WPAD były jakieś “poprzednie” prezentacje? Świat schodzi na psy… Może czas napisać prezentację o tym, że nożem można się albo kogoś skaleczyć?

    • Żeby było jasne – opisywanie nieznanych (powszechnie) mechanizmów ataków sidechannelowych jak najbardziej zasługuje na DEFCON czy BH.

      Opisywaniem tych technik metodą “onetu” (“Hakerzy włamują się przez WPAD, jak żyć?! – po prostu wyłącz”) zarobiliście na powieszenie na sobie przynajmniej paru psów.

    • Prawda jest taka, że explicit, non-transparent forwarding proxy odchodzi powoli w niebyt wraz z HTTP 1.1. Pokaż mi jedno zastosowanie, dla którego autowykrywanie proxy ma być włączone? Wszyscy korzystają z transparent proxy + captive portal. Kiedy – no kiedy – musiałeś mieć włączone autowykrywanie proxy, żeby móc skorzystać z internetu? Przecież to jest idea z lat 90tych…

      Rada, żeby wyłączyć WPAD jest jak najbardziej na miejscu, a niebezpiecznika nie muszą czytać wyłącznie pr0 haXXorzy. A prawda jest taka, że w erze, gdy internet jest bardziej oczywisty, niż MTV w latach 90tych i w każdej galerii masz hot-spoty niekoniecznie skonfigurowane na wysokie bezpieczeństwo, to rada jak najbardziej na miejscu.

      Prostymi słowy: wyłącz to, bo nie jest Ci potrzebne, a może zaszkodzić. Co w tym złego?

      “Poprzez odpowiednie instrukcje w plikach PAC możliwe jest poznanie zapytań DNS-owych z komputera ofiary”

      – to nie jest prawdą, PAC-em TEGO się nie robi.

      To akurat jest prawdą, tyle że dość bezużyteczną:

      if (isInNet(dnsResolve(host), “104.31.9.183”, “255.255.255.252”)
      return “PROXY moje.haxorskie.proxy:666”;
      else return “DIRECT”;

      Jeżeli coś wpadnie na moje.haxorskie.proxy, oznacza to że ktoś próbował wejść na stronę niebezpiecznika i dowiedziałem się tego właśnie dzięki PAC :)))

      Pod względem logicznym, zdanie prawdziwe ;)

  19. Coś mi się wydaje, że to o czym tu piszecie to jest właściwie zasada działania mechanizmu WPAD. On tak został zaprojektowany.
    Poza tym nie trzeba definiować proxy na klientach żeby czesać ruch. Praktycznie każdy UTM ma transparent proxy i przechwytuje cały ruch web. Jak żyć :-)

  20. Co to ten Windows?
    Wszyscy piszą o nim nikt nie wyjaśnia co to takiego.

    ;)

    Debian User

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.