Kutyacica kint járt az EuSecWest 2012 konferencián, és volt olyan kedves, hogy összeállított nekünk egy érdekfeszítő beszámolót az eseményről, melyből az érdekesebb előadásokról, illetve a mobil Pwn2Own versenyről is tájékozódhadtok.
Kattanjatok a Továbbra!
Amszterdam valamiért elég népszerū con célpont (shocker!), a HITB és a Black Hat európai kiadására is itt kerül sor és ebbe a sorba illeszkedik a héten lezajlott EuSecWest és a Pwn2Own ott megrendezett mobil kiadása. Jómagam az utóbbi miatt mentem, kíváncsian várva hogy mivel rukkolnak elõ, leginkább az új kategóriákban (errõl még késõbb részletesebben).
Az elsõ nap Patrice Auffret SinFP3 nevū fingerprinting cuccáról szóló elõadásával indult. A dolog eléggé hasonlít az ismertebb nmap illetve p0f tool-okra, amennyiben a különbözõ TCP illetve UDP kérések és válaszok mezõiben található sajátosságok alapján képes azonosítani a szkennelt oprendszert. Az elõadó azzal indokolta a SinFP3 hasznosságát, hogy a többivel ellentétben kevésbé zajos, mivel kevesebb és a normális forgalomtól kevésbé elütõ TCP kérésekkel operál, így nehezebb kiszūrni, illetve hogy képes figyelembe venni a hálózati úton beékelõdött IPS/IDS/etc. dobozok által okozott torzulásokat. Az egész elõadásra a legjellemzõbb az volt hogy maga is kiemelte, ha csak egy mód van rá, inkább érdemes az alkalmazási rétegben rejlõ opciókat kihasználva azonosítani egy rendszert.
A következõ két elõadást konkrétan kihagytam, Michele Orru a BeEF-rõl beszélt megint, illetve volt egy HTML5 Heap Spray cucc. Ez az utóbbi elég jónak néz ki amúgy érdemes lenne megszerezni a slide-okat valahonnan. Nagyjából arról van szó hogy a HTML5-ben rejlõ lehetõségek miatt némi leleményes Javascriptel könnyen lehet "precision heap spray"-eket elõállítani. Itt ugye arról van szó hogy meg akarjuk találni egy pl. browser exploit esetében hogy a heap-re hova toltuk fel pontosan a payloadot, ahova aztán át tudjuk emelni a stack-et egy ROP payload lefuttatásához. Nem mellesleg egy héttel korábban Peter Vreugdenhil aka WTFuzz twittelt errõl:
@WTFuzz heapspray aligned @
0x10000:document.createElement('canvas').getContext('2d').createImageData(0x10000000/4-0x20,1); .data = byte[]Na mindenesetre ehelyett én a pwn2own fejleményeket csekkeltem le, ahol egybõl két célpont is elesett.
A CertifiedSecure két zsugabubusa a Mobile Safarit nyomta fel, egy WebKit exploit segítségével. A hibát a nyílt kód manuális auditálásával találták, full RCE-t nagyjából így értek el: egy nem use-after-free memória korrupciós hibából csavartak UAF-t (a részletek nem ismertek, arra tippelnék hogy átírtak egy referencia számlálót), ez után pedig ebbõl elõbb valahogy információ szivárgás lett (a témában lásd Fermin J. Serna kiváló BH2012 elõadását arról hogyan lehet UAF helyzetekbõl kvázi univerzális memória írás/olvasás), aminek segítségével megtalálták a memóriában a JIT lapokat. Ebben az okosság az, hogy a Mobile Safari Just-In-Time fordítója RWX memóriát használ (nem úgy mint az IE, hoppá valamiben a MSFT megoldás a legbiztonságosabb!), így aztán az ideírt payloadal simán áthidalható az iPhone kód aláírási eljárása ami alapból gyakorlatilag permanens NX-et jelentene. Innentõl már "csak" oda kellett ugratni a PC-t a beírt kódra és profit (szó szerint :). Élesszemū olvasó itt felháborodik hogy na de mi van a Seatbelt-el (az iPhone sandbox-a), csakhogy mint kiderült a policy nem terjed ki a telefonon tárolt képekre, így aztán bármi más hoppáré nélkül tudtak írni egy payloadot ami lenyùlt egy távoli szerverre a fényképeket, amit ezúttal a ZDI elfogadott. (Ez picit fura amúgy, hiszen a desktop Pwn2Own esetében sarkalatos vitás pont volt hogy teljes sandbox törést várnak, itt kicsit engedtek ebbõl ezek szerint.)
Ezután nagyjából rögtön jött a 2. törés, az MWR-es fiúk, ezúttal a többszörös Pwn2Own nyertes Nils nélkül, az Android 4.0.4-et futtató Samsung Galaxy III-at nyomták fel, az NFC technológián keresztül. Bár Charlie Miller BH2012 elõadásában már jócskán mutatott példákat az Android NFC stack hiányosságaira, ezúttal nem pont itt volt a gond: éppenséggel a ZDI az utolsó pillanatban egy plusz kategóriát ("core OS") kreált, csak hogy az MWR entry vitán felül álljon. Ehelyett a srácok a Samsung NFC alkalmazásának ("S Beam") azt a furcsaságát/hibáját használták ki, hogy kérdés nélkül hajlandó megnyitni NFC-n megosztott dokumentumokat. Remélhetõleg ezt egy facepalm-al jutalmaztad kedves olvasó. Az MWR bithuszárai ezt arra használták fel hogy egy "3rd party" dokumentumot kreáltak meg úgy, hogy memória korrupciós hibán keresztül tetszőleges távoli kódfuttatást érjenek el. Sajnos szinte semmi infót nem árultak el jelenleg, de megígérték, hogy a hibák javítása után teljes részletességgel bemutatják az exploitot a blogjukon. Annyit elárultak, hogy a kihasználásban építettek az Ice Cream Sandwich hiányos ASLR-jára, ami a linker helyét nem randomizálja. Bár személyes tapasztalatból mondhatom hogy erre a linkerre viszonylag triviális alapesetben ROP láncot írni (azért mert vannak nagyon kényelmes univerzális syscall-t adó gadgetek), esetüket nehezítette hogy a dokumentum formábòl adódóan csak valamiféle XML kódolás karakterkészletébõl gazdálkodtak, kérdésre azt állították hogy decoder gadgeteket írtak gyakorlatilag (lásd még klasszikus venetian shellcode). Hát, majd meglátjuk. Ja igen, ez persze nem volt elég az üdvösséghez, az Androidon igazi sandboxing ugyan még nincs de a standard UNIX jogosultságrendszer már önmagában lekorlátozta a felpattintott programot, azonban egy "Samsung konfigurálási hibát" kihasználva ebbõl hamar root-ot kreáltak. Ha azokra a posztokra alapozunk amiket a blogjukon szoktak irogatni Androidról, szerintem elég jó tipp hogy egy rosszul korlátozott Broadcast Listenernek becsempészett kérés játszott itt, de ez csak tipp a részemrõl.
Ja igen, a legfontosabb az MWR törés kapcsán, hogy a srácok egy #30kToBlowInAmsterdam hashtaggel kezdtek el vagizni a gyõzelmük után, laza :)
Szerdára még három elõadás jutott.
Bodgan Alecu arról beszélt, hogy van egy rakás mobilos szolgáltató, akik WAP-os szolgáltatásaikat a neten simán annyi alapján hozzáférés-ellenõrzik csak, hogy a telefonok egy dedikált HTTP fejlécben elküldik a telefonszámot. Ez nyilván triviálisan kijátszható dolog, ugyanakkor könnyen javítható is és mégsem a handsetekben vagy a core hálózati eszközökben található gondról van szó úgyhogy ez még nem a világ vége. Amikor már pornó oldalakra való belépéseket kezdett mutogatni demóként én elhagytam a termet.
Utána Nikhil Mittal Human Interface Device-okról (na ez mi magyarul??) beszélt. Az alap sztori annyi, hogy ezek a kütyük képesek gombnyomásokat és hasonlókat szimulálni, így aztán elég õket bedugni ahhoz, hogy a felhasználó jogosultságával futtassunk kódot. Na most ezt értem, amit nem igazán értettem, hogy miért volna itt egy hiba, mármint, egy billentyūzettõl nem nagyon lehet elvenni azt a jogot hogy billentyūlenyomási eventeket küldjön a gépnek. Persze a plug-n-play-t meg lehetne szüntetni, de ezzel szemben gondolom a usability nyerni fog. Nikhil egyébként onnan közelítette meg a dolgot, hogy az olyan kis sima USB drive-nak látszó kütyük, mint egy Teensy már alkalmas bármi HID emulálására és pentestek esetén az ott-hagytam-a-parkolóban kategóriában ez jól jöhet. Hát miért ne, végülis.
Az utolsó kör Janne Vuontisjarvi volt a Codenomicontól. Fuzz teszteléssel és fuzzing eszközök forgalmazásával foglalkozó cégrõl van szó, ennek megfelelõen bemutatta a setup-jukat amivel SMS implementációkat lehet tesztelni telefonokon. Jó volt ez és frankó a setupjuk és Janne ivócimborám, de azért ez a dolog alapvetõen újdonság 2009-ben volt Charlie Millertõl és Collin Mullinertõl, aztán Collin és Nico Golde (what's up Nico you're on a Hungarian blog yo!) vitte tovább egy fokkal a dolgot (CSW2011), de azóta az a helyzet hogy eléggé ráálltak már a gyártók is, szóval kevesebb babér terem itt most már. Talán nem is véletlen, hogy hiába ez, illetve a szintén igen skilles Sogeti srácok hasonló projekje (ez majd a hack.lu-n lesz), nem láttunk idén pwn-t az SMS kategóriában. Egyébként a cucc úgy néz ki hogy a DefensiX nevū fuzzerjük generál sms-eket, ami TCP/IP kapcsolaton keresztül átmegy egy OpenBTS-t futtató gépre ami aztán rendesen over-the-air elküldi a telefonra. Aztán az Androidon már a Logcat csekkolásával simán látszik ha megfekszik akár a RIL démon (radio interface layer) akár a baseband az SMS-tõl. Az használható itt ki ugye, hogy a GSM egyoldalú authentikációt használ, magyarul a szolgáltató adótornyát hamisítani, amihez a telefon csatlakozni fog majdnem annyira egyszerū, mint az SSID koppintás WiFI esetén. Kis "hiba" hogy ez a frenkvencialopás persze törvénytelen, emiatt általában vagy függetlenített és kamu frekvenciákra áttolt vagy RF kamrába zárt telefonnal szokás ezt csinálni.Na ennyi volt ez 1. nap, este con-okra jellemzõ iddogálás, köszi az estét a ZDI-os srácoknak és csatolt barátnõiknek.
Folytatása következik!
synapse · http://www.synsecblog.com 2012.09.27. 15:42:13