Az alábbi cikket Ys. írta a 0×90 blogon, és mivel a cikksorozata kapcsolódik az iPhone-hoz, mi érdekesnek gondoljuk a számotokra is, így ezeket engedelmével egymás után át is emelnénk ide, a Szifonra.
***
Egy iOS-szel szerelt eszköz életében a wifi központi szerepet játszik, lévén az eszközön nincs fizikai hálózati csatlakozó: ami hálózati adat, az vagy mobilhálózaton, vagy wifin jön. Az igazi nagy truvájt (ami ennek a bejegyzésnek a fő üzenete is egyben) az eszközünk meg is mondja előre, okosan, amint rábökünk a wifi beállításaira:
Tehát az eszközünkkel egyszer csatlakoztunk egy hálózathoz, beütöttük a jelszavát, az eszközünk pedig amint nem érzékel a lába alatt talajt, folyamatosan kiabálni fog az ismert wifi-hálózatok SSID-i után. Ez nagyon hasznos dolog egy támadó szempontjából, ugyanis az eszköz hálózati forgalmához akkor is hozzáférést enged általános esetben, ha az iOS screen lockját nem tudjuk feloldani. Amennyire tudom, ezt a beállítást nem lehet megváltoztatni (de simán lehet, hogy rosszul tudom, javítsatok ki kommentben). De hát mi a pék ez az “Ask to Join Networks” checkbox? Ez nem véd meg minket? Nos… a checkbox lehetőséget ad a júzernek arra, hogy még lejjebb tegye az eszköz wifi-re vonatkozó beállításainak szintjét az insecure as hell by default szintről.
A lényeg az, hogy az eszközünk mindenképpen visítani fog az ismert hálózatai után, mint csecsemő az anyatejért:
Támadóként pedig annyi dolgunk van, hogy megszemélyesítsük valamelyik hőn áhított hálózatot – minden háziasszony tudja, hogy a legmegfelelőbb eszköz erre az aircrack-ng csomag. Az eszköz tehát rábukik, mint gyöngytyúk a takonyra csatlakozik a csali wifi-hálózatunkhoz, és amint ismerős közegbe kerül, veszettül elkezd forgalmazni.
Legelőször is mindenkit jól értesít arról ARP üzenetekkel, hogy oké, akkor én most itt vagyok, aztán hazatelefonál:
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport-168 wispr
Connection: close
HTTP/1.0 200 OK
Cteonnt-Length: 127
Content-Type: text/html; charset=UTF-8
Server: Apache/2.2.3 (Oracle)
Cache-Control: max-age=509
Expires: Mon, 02 Jul 2012 11:04:05 GMT
Date: Mon, 02 Jul 2012 10:55:36 GMT
Content-Length: 127
Connection: close
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2//EN”>
<HTML>
<HEAD>
.<TITLE>Success</TITLE>
</HEAD>
<BODY>
Success
</BODY>
</HTML>
Innét tudja az iOS, hogy megérkezett, van internet, öröm van és bódottág. Ezek után jöhet a “van valami push-üzenet a csőben?”:
Küldi:
00000000 16 03 01 00 99 01 00 00 95 03 01 4f f1 7e 1c de …….. …O.~..
00000010 fe 08 08 39 e7 d3 9e ec 7e c9 cd 5b d8 f8 26 bc …9…. ~..[..&.
00000020 21 23 d8 d9 cd 35 54 86 9b 4a cc 00 00 3a c0 0a !#…5T. .J…:..
00000030 c0 09 c0 07 c0 08 c0 13 c0 14 c0 11 c0 12 c0 04 …….. ……..
00000040 c0 05 c0 02 c0 03 c0 0e c0 0f c0 0c c0 0d 00 2f …….. ……./
00000050 00 05 00 04 00 35 00 0a 00 09 00 03 00 08 00 33 …..5.. …….3
00000060 00 39 00 16 00 15 00 14 01 00 00 32 00 00 00 1c .9…… …2….
00000070 00 1a 00 00 17 63 6f 75 72 69 65 72 2e 70 75 73 …..cou rier.pus
00000080 68 2e 61 70 70 6c 65 2e 63 6f 6d 2e 00 0a 00 08 h.apple. com…..
00000090 00 06 00 17 00 18 00 19 00 0b 00 02 01 00 …….. ……
Válaszul jön:
00000000 16 03 01 00 34 02 00 00 30 03 01 4f f1 7e 28 00 ….4… 0..O.~(.
00000010 4b 3a be bc e6 63 76 1c 89 a9 36 cc 6b f2 39 94 K:…cv. ..6.k.9.
00000020 45 77 14 01 bc 19 c9 b6 3d 5f b4 00 c0 0e 00 00 Ew…… =_……
00000030 08 00 0b 00 04 03 00 01 02 16 03 01 09 92 0b 00 …….. ……..
00000040 09 8e 00 09 8b 00 04 8f 30 82 04 8b 30 82 03 73 …….. 0…0..s
00000050 a0 03 02 01 02 02 04 4c 1c 55 d3 30 0d 06 09 2a …….L .U.0…*
00000060 86 48 86 f7 0d 01 01 05 05 00 30 81 b1 31 0b 30 .H…… ..0..1.0
00000070 09 06 03 55 04 06 13 02 55 53 31 16 30 14 06 03 …U…. US1.0…
00000080 55 04 0a 13 0d 45 6e 74 72 75 73 74 2c 20 49 6e U….Ent rust, In
00000090 63 2e 31 39 30 37 06 03 55 04 0b 13 30 77 77 77 c.1907.. U…0www
000000A0 2e 65 6e 74 72 75 73 74 2e 6e 65 74 2f 72 70 61 .entrust .net/rpa
000000B0 20 69 73 20 69 6e 63 6f 72 70 6f 72 61 74 65 64 is inco rporated
000000C0 20 62 79 20 72 65 66 65 72 65 6e 63 65 31 1f 30 by refe rence1.0
000000D0 1d 06 03 55 04 0b 13 16 28 63 29 20 32 30 30 39 …U…. (c) 2009
000000E0 20 45 6e 74 72 75 73 74 2c 20 49 6e 63 2e 31 2e Entrust , Inc.1.
000000F0 30 2c 06 03 55 04 03 13 25 45 6e 74 72 75 73 74 0,..U… %Entrust
00000100 20 43 65 72 74 69 66 69 63 61 74 69 6f 6e 20 41 Certifi cation A
00000110 75 74 68 6f 72 69 74 79 20 2d 20 4c 31 43 30 1e uthority – L1C0.
00000120 17 0d 31 32 30 33 30 32 30 31 34 39 35 39 5a 17 ..120302 014959Z.
00000130 0d 31 34 30 31 30 31 31 36 32 31 35 32 5a 30 81 .1401011 62152Z0.
00000140 87 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 .1.0…U ….US1.
00000150 30 11 06 03 55 04 08 13 0a 43 61 6c 69 66 6f 72 0…U… .Califor
00000160 6e 69 61 31 12 30 10 06 03 55 04 07 13 09 43 75 nia1.0.. .U….Cu
00000170 70 65 72 74 69 6e 6f 31 13 30 11 06 03 55 04 0a pertino1 .0…U..
00000180 13 0a 41 70 70 6c 65 20 49 6e 63 2e 31 19 30 17 ..Apple Inc.1.0.
00000190 06 03 55 04 0b 13 10 69 54 4d 53 20 45 6e 67 69 ..U….i TMS Engi
000001A0 6e 65 65 72 69 6e 67 31 1f 30 1d 06 03 55 04 03 neering1 .0…U..
000001B0 13 16 63 6f 75 72 69 65 72 2e 70 75 73 68 2e 61 ..courie r.push.a
000001C0 70 70 6c 65 2e 63 6f 6d 30 81 9b 30 10 06 07 2a pple.com 0..0…*
[…]
Még némi infó diszklózsör MDNS-en. Hasznos fícsör – ha valaki olyan fantáziadús, hogy a fehér iPhone-jára a white iPhone nevet aggatja, nem pedig a difót John Smith’s iPhone-t, akkor megússza, hogy az eszköze mindenkinek elmondja büszkén a gazdija nevét:
104 98.664984 fe80::52ea:d6ff:fe1a:9f0b ff02::fb MDNS 148 Standard query ANY white-iPhone.local, “QU” question ANY white-iPhone.local, “QU” question
Ezeken felül még mindenki, aki telepítve van az eszközre és hálózaton szeretne kommunikálni, nekikezd a munkának: VoIP kliensek, gTalk, ilyesmik gazdagon forgalmazni kezdenek.
Hogy tudunk támadóként ártani az eszköznek? Csak néhány ötlet – a konkrét helyzethez/alkalmazáshoz ilyesmihez hasonló eszközökben érdemes gondolkodni:
- Mi adjuk a DNS-t, ezáltal transzparens proxyként működünk minden hálózati forgalom számára, a DNS kontrollálása fölöslegessé teszi azt, hogy a DHCP válaszban megadjuk a http proxy-t.
- SSL-es forgalmat is elég egyszerűen dönthetünk egy SSL proxy segítségével – ha az alkalmazás fejlesztői nem gondoltak arra, hogy ellenőrizzék a tanúsítványt és bármilyen self-signed certet elfogadnak, akkor tulajdonképpen az egyes pont lép életbe.
- Ha az eszközünkön nyitva van az SSH port, akkor az remek hír, ugyanis további tornázás nélkül hozzáférünk mindenhez, ami rajta van.
- Lehet játszani azzal, hogy Faraday-kalitkába tesszük az eszközt, ezáltal elvágjuk minden hálózati kommunikációtól. Ez egyébként csak elsőre tűnik kontraintuitívnek, ugyanis az iOS értesíti az arra kíváncsi alkalmazásokat arról, hogy van-e működő hálózati kapcsolat. Ha mondjuk egy napig benne tartjuk a kalitkában és utána engedjük csak hálózathoz, akkor az addig békésen szunnyadó alkalmazások, amiknek mondjuk lejárt az authentikációs tokenjük, nagy buzgón belogolnak megint, mi pedig (ha a fejlesztők nem figyeltek nagyon az SSL használatánál) hozzáférünk mindenhez a levegőből.
- Az iOS-es SSL-kezelés eléggé hektikus volt a 4-es API verzióval bezárólag, egy csomó gyenge ciphert támogatott letilthatatlan módon a oprendszer – ez már az iOS5-tel már változott.
8 Comments
és én tudom ezt használni?
Számomra (mint laikusra) kissé nem egyértelmű a cikk. Ha biztonságos jelszóval védett hálózaton vagyok, akkor a fenti veszély nem vonatkozik rám, nem? Csak akkor, ha elmegyek a jelszóval védett hálózat hatóköréből és az iPhone-on bekapcsolva maradt a Wi-Fi kapcsolat?
Akkor mit tegyek, hogy a kukacok ne jöjjenek? Amúgy ez a cikk miért írodott? Ez egy új fajra Jailbreak? 6.0 ra?xD
@marpad, @norbesz74: az látható belőle, hogy ismeretlen, nyitott wifire csatlakozni nem érdemes, és a legbiztosabb az, ha kikapcsoljuk a wifit, amikor épp nem használjuk. de ez eddig is így volt.
@norbesz74: Mi az,hogy miért íródott?Azért mert érdekes a téma és a cikk írója úgy gondolta,hogy megosztja velünk.
Jailbreak iOS 6.0-ra meg csak A4 vagy korábbi processzorral felszerelt készülékekre van és az is csak (semi-)tethered.
A képek amúgy 404-el megállnak azt tudjátok?
Köszi a jó cikket!
Sziasztok! Tudom, hogy IOS 6 alatt sokan panaszkodnak WIFI problémáról, de nekem kicsit más a gondom. A frissítés óta az Iphone 4 telefonom wifi jel vétele gyakorlatilag nullára csökkent. Ezt úgy kell érteni, hogy pár méterre a routertől (Time capsule) már nem érzékel jelet. Biztos, hogy nem a roterrel van a gond, mert az iPad2 készülékemmel (iOS6) semmi gond, Apple TV semmi gond, fiam iphone 4S készüléke semmi gond.
Már csináltam hálózati restore-t, de tegnap egy teljes restore-t is, de nem javult meg. A készülék a frissítés előtt sem volt jailbrakelt.
Valakinek valamilyen ötlete?