"Бездротовий Інтернет в кожен дім" - вельми привабливий гасло. Погодься, приємно, коли твій провайдер, ще якихось 5 років тому надавав модемний доступ, за лічені дні розгортає в маси WiFi-інфраструктуру по всьому місту (ну або хоча б у його центрі). Здавалося б, збулася мрія ідіота, і тепер ти, сидячи в Макдональдсі і куштуючи третій макфреш, зможеш насолодитися швидким інтернетом. Але, придивившись уважно, ти розумієш, що так не буває - безпека провайдера, а значить і всіх його клієнтів, залишає бажати кращого. Щоб не бути голослівною, пропоную твоїй увазі випадок неформального аудиту нещодавно народилася мережі. І, хто знає, може бути ти переконаєшся в його правдивості на своєму горе-провайдера.
Давай заздалегідь домовимося: щоб дотриматися етикету і не ставити в незручне становище мого провайдера, я не буду називати конкретні сайти і бренди (кому треба, той все зрозуміє сам). Тим більше, за законом нічого порушено не було - аудит виконувався виключно під своїми, чесно купленими акаунтами. Та й мета цієї статті - не зганьбити честь якоїсь компанії, а лише вказати на загальні недоліки WiFi-інфраструктури, які, напевно, присутні у найбільших провайдерів.
Перші розчарування
Отже, повернемося до маркетингу. Уяви собі великий російський місто-мільйонник, в якому рекламщики засурмили гаслами: "Бездротовий, швидкий і зручний Інтернет!", "Насолоджуйся Мережею в улюбленому кафе" і т.д. і т.п. Коли у тебе в місті з'являється така можливість, то відразу хочеться її реалізувати. Адже, погодься, зручно (а для москвичів і петербуржців вже давно звично - прим. Ред.) Сидіти в якому-небудь кафе зі своїм вірним другом-ноутбуком і спілкуватися по асьці про справи насущні.
Але, трохи поспілкувавшись, випробувавши серію розривів і дісконект, я відчула нотки перших розчарувань. І навіть не тому, що канал слабенький, а тому що при повторному Коннекті (навіть через 10 хвилин) не було потрібно повторної авторизації.
Це що ще таке? Значить, я плачу за доступ, а провайдер зовсім не піклується про мою безпеку (адже всі сесії після мого відходу теоретично можуть бути доступні іншим людям!). Після такого здивування мені захотілося трохи посніфать сітку, а потім перевірити припущення.
Як законослухняна дівчина, я не стала сніфаем компи відвідувачів великого кафе (сидять на тому ж бездротовому інтернеті). Замість цього я запросила одного з ноутбуком:). Він пригостив мене чашкою кави і став імітувати бурхливу діяльність в Мережі (запустив аську, контакт, перевірив пошту і т.п.).
Нюхаємо і ... задихаємося!
Я ж, не гаючи часу, запустила WireShark і стала моніторити периметр. Серед пакетів я відразу побачила SSL-рукостискання на сайті провайдера ...
До речі, як відбувається авторизація з'єднання: спочатку клієнт конектиться до незахищеної WEP / WPA-точці, потім звертається браузером на будь-який сайт в Мережі і редірект на сторінку авторизації. Там він вводить логін і пароль особистого рахунку (поповнюваного шляхом відправки SMS-повідомлення на спеціальний номер), і після цього, по всій видимості, на роутері створюється правило, що дозволяє юзати інтернет.
Так от, після зашифрованою SSL-авторизації я побачила зовсім незакріптованние паролі від ВКонтакте і пошти, злегка заXOR'енние пассворд від Аськи (які легко розкриваються тим же Ufasoft Sniffer або InterCepter'ом) та непристойні прямі посилання на порносайти (зовсім вже нікого не соромиться .... Я не згадую про інших клієнтів цієї мережі (їх я не аналізувала, оскільки спеціально поставила фільтр на IP-адресу одного, щоб не порушувати закон).
Але, як то кажуть, якщо зовсім хочеться, то можна (і навіть потрібно!) Трохи порушити (але тільки для розширення кругозору:). Знаючи IP і MAC-адреси, які фігурують у периметрі (а вони пізнаються аналізом ARP-повідомлень), можна легко їх проспуфіть.
На сайті провайдера написано, що перед відключенням від Мережі необхідно завершити сесію шляхом натискання кнопки "Вихід" на авторизационном сайті, інакше аккаунт буде доступний ще деякий час після відключення. Це нам тільки на руку, оскільки далеко не кожен клієнт буде цим морочитися:).
Отже, за допомогою хорошої програми зі зміни МАС-адрес "MACChange" (або вручну, хто як любить) змінимо адресу свого бездротового адаптера на відомий нам МАС сусіда.
Не забудемо привласнити собі його IP. Потім спробуємо підключитися до мережі. Про диво, виявляється, провайдер допускає як DHCP-, так і Static-адресацію. І, таким чином, можна насолоджуватися красою бездротового інтернету безкоштовно. А точніше, за чужий рахунок!
А що, якщо? ..
Ну, раз вже ми порушили закон заради експерименту, спробуємо поглибити і розширити наш досвід. Що б ще такого придумати, щоб показати всі недоліки нашої бездротової мережі? Відразу ж приходить думка про організацію MitM-атаки, шляхом інсталяції підставний точки. Але тут вже в кафе не схильні.
Для проведення такого досвіду нам необхідно мати декілька компонентів: веб-сервер, точку доступу і ноутбук для тестування.
Мені довелося йти додому, шукати на антресолях завалявся DIR-300 і налаштувати на ньому DHCP-сервер. SSID точки я визначила аналогічним кодом оператора.
В якості веб-сервера я вибрала компактний і зручний "Small HTTP Server". Багато слів вже було сказано про цього малюка. Мені особисто подобається його зручний інтерфейс і, незважаючи на досить невеликі розміри, широкий функціонал.
Піднімемо на ньому WEB-і DNS-сервери, щоб при спробі зайти на яку-небудь веб-сторінку користувача направляло на HTML-сторінку, нагадує згаданий сайт реєстрації в мережі оператора. Тепер створимо PHP-скриптик, який зберігає вводиться на сайті інформацію в окремий txt-файл.
<? Php
$ Filename = 'S: \ home \ localhost \ www \ info.txt';
$ A = $ _GET ['login'];
$ B = $ _GET ['password'];
$ Somecontent = "- Логін - \ n". $ A. "- Пароль - \ n". $ B. "- \ n";
/ / Перевірка існування і доступу для запису файлу.
if (is_writable ($ filename))
if (! $ handle = fopen ($ filename, 'r')) {
echo "Не можу відкрити файл ($ filename)";
exit;
}
if (! fwrite ($ handle, $ somecontent)) {
echo "Не можу записати у файл ($ filename)";
exit;
}
else {echo "";}
echo "Записано ($ somecontent) у файл ($ filename)";
fclose ($ handle);
} Else {
echo "Файл $ filename недоступний для запису";
}
?>
Підстава готова, запускаємо!
MitM в дії
План крадіжки логіна і пароля від мережі такий: користувач активує свій бездротової адаптер і намагається підключитися до мережі. При цьому в списку доступних мереж він бачить підставну точку доступу з тим же SSID, що і в комерційного оператора. Система виносить її на перший порядок, оскільки сигнал від неї сильніше операторського. Далі клієнт підключається до цієї точки, заходить у свій браузер і потрапляє на сторінку авторизації. Ця сторінка також має схожий з сторінкою оператора інтерфейс. Користувач, нічого не підозрюючи, вводить свої реквізити у відповідні поля. При натисканні на кнопку "увійти", запроваджені ним дані зберігаються за допомогою PHP-скрипта в текстовий файл на сервері. А клієнт залишається без інтернету (і, звичайно ж, без логіна з паролем:) - прим. ред.).
Щоб нічого не випустити з уваги, пробуємо авторизуватись на підставний точці доступу: вводимо реквізити, тиснемо "увійти" ... далі нічого не відбувається, як здається звичайній юзеру, але скрипт вже зробив свою брудну дільце і дані збережені на сервері. Відкриємо цей файл і подивимося його вміст. Вуаля! Ось дані, які ми ввели, і сюрприз: хтось вже підключився до нашої точки доступу і тепер є ще пара логінів і паролів для входу в мережу. У такій ситуації навіть SSL-авторизація не рятує від крадіжки реквізитів.
Пацієнт скоріше живий, аніж мертвий
Що можна тут сказати? Найстрашніше, що таких мереж більше половини по всій країні (тільки мені відомі чотири великі міста-мільйонника з подібною схемою авторизації). І ніхто не може гарантувати легітимність небажаних користувачів. При цьому власники сервісів практично ніколи не попереджають своїх клієнтів про уразливість їх даних, про ризики крадіжки інформації. Всі жадають збільшення прибутку, нехтуючи при цьому всіма методами забезпечення безпеки, оскільки це призводить до зниження швидкості передачі даних і ускладнює процес налаштування клієнтського обладнання (і, відповідно, отримання доступу до мережі).
Тому хочу наостанок дати добру пораду: звертай увагу на точки доступу, до яких ти підключаєшся, і не передавай важливу інформацію в незахищених мережах (або використовуй при цьому VPN-з'єднання), оскільки це може призвести до фатальних наслідків.