Update: Byl aktualizován bash script bomberu pro "novou" SMS bránu O2.
Na psaní článků mi již příliš času nezbývá, poslední účet za mobilní telefon mě však donutil udělat výjimku. Mým operátorem je již dlouhou řadu let společnost Telefónica O2, přičemž donedávna jsem byl s jejich službami a tarify více méně spokojen. Zlom nastal až při poslední faktuře, kdy mi bylo za datové přenosy naúčtováno více jak tisíc Korun, a to jsem si do telefonu stáhl pouze jednu asi megabytovou aplikace pomocí zastaralé technologie GPRS. Se zděšením jsem následně zjistil, že v dnešní době vysokorychlostního internetu si společnost O2 účtuje za přenos pomocí této předpotopní technologie neskutečných 0,7 Korun za kilobyte! To znamená, že například pouhé jedno načtení úvodní stránky serveru iDNES vás vyjde na "krásných" pět set Korun a za stažení aplikace platíte průměrně zmiňovanou tisícovku!
Není tomu tak dávno, co se v aktualitách objevila zmínka o tom, že neznámý útočník přesměroval prestižní doménu hacking.cz na náš server. Dnes již tento redirect nefunguje a adresa směřuje na SMS brány tří tuzemských operátorů. Zatímco však brány společností T-Mobile a Vodafone disponují dostatečně sofistikovanou captchou, aplikace O2 je opatřena primitivním obrázkem, jenž by přečetl i slepý, natož počítač. A právě o tomto amatérismu pojednává článek, který právě čtete.
SMS brána do sítě O2 se nachází na adrese sms.1188.cz. Následující řádky popisují, jak snadno může útočník obejít primitivní ochranu integrovanou do této aplikace a přetvořit ji tak v plnohodnotný SMS bomber. V případě psaní jakéhokoliv webového bota se vše točí v podstatě pouze kolem dvou věcí, formulářových proměnných a cookies. Ani v tomto případě tomu nebude jinak a po zběžné analýze lze snadno vydedukovat, že pro úspěšné odeslání formuláře postačí přiložit cookies PHPSESSID (sezení), where, contxt a metodou POST proměnné adress (pánové asi neumějí anglicky), code (captcha), replyEmail, text a send (submit). Bot lze napsat v podstatě v jakémkoli jazyce schopném síťové komunikace, já se rozhodl pro bash, který je sice oproti C++ mnohonásobně pomalejší a náročnější na výpočetní výkon, v případě O2 to ovšem zas takovou roli nehraje, zda je těch pár řádků kódu vytvořeno v interpretovaném nebo kompilovatelném jazyce.
Jak jistě mnozí vědí, captcha obrázky se "lámou" pomocí technologie OCR (Optical Character Recognition), což není nic jiného než, jak již samotný název napovídá, optické rozeznávání znaků. Ve většině případů je nutné obrázek před samotným scanem OCR čtečkou upravit pomocí konzolových editorů typu ImageMagick, u SMS brány společnosti O2 se však útočník tímto krokem zdržovat nemusí, neboť obrázek nesplňuje naprosto žádnou ze základních principů bezpečné captchy. Kdyby programátoři opatřili kód přinejmenším pozadím, byť statickým, nebyl by alespoň jejich amatérismus na první pohled tolik znát.
Jak by tedy mohl vypadat takový SMS bomber psaný v bashi zneužívající služeb SMS brány společnosti Telefónica O2? Nijak komplikovaně, v podstatě jde pouze o pár volání utility wget a OCR čtečky (v tomto případě freewarové aplikace gocr), posuďte sami:
Tento článek není návodem k protiprávní činnosti, využívání SMS bomberů je primitivní způsob seberealizace hlupáků, účelem je pouze poukázat na amatérismus společnosti Telefónica O2 v porovnání se svými konkurenty.