Почну з невеликого тізера. У наступному номері у нас буде матеріал, в якому ми зібрали самі різні утиліти з останніх атак конференцій. Переглядаючи його, я натрапив на утиліти HoneyBadger PushPin і подумав: «Де ж ви були раніше?» Поясню: за останній час мене не раз питали, як можна визначити місце розташування якогось користувача. Причини у людей різні, але мета завжди була одна - зрозуміти, де фізично знаходиться людина. Точкою на карті, не інакше :).
визначення місця розташування
Все змінилося з появою в HTML5 геолокаційні можливостей. Тепер будь-який сайт з лякаючою точністю може визначити, де знаходиться користувач, - зрозуміло, якщо той це дозволив. Вимальовується вже цілком робочий сценарій: якщо заманити користувача на сайт з потрібним JS-кодом і той через незнання дозволить визначення місця розташування, цілком можна отримати досить точні (а часом дуже точні) його координати.
Як це працює
Весь код написаний на PHP і Python, тому їх інтерпретатори потрібні для установки необхідної серверної частини HoneyBadger. Також буде потрібно SQLite. Власне, описувати процедуру розгортання самого звичайного застосування немає сенсу - головне, скачавши репозиторій з кодом, ти вже через п'ять хвилин отримаєш доступ до адмінки утиліти. API фреймворка має різні способи отримання даних про розташування клієнта, але почнемо з веб-агентів. Тут є три варіанти:
- Web_http. Генерується звичайна HTML-сторінка з тегом. Коли користувач заходить на сайт або відкриває HTML-лист, відбувається звернення до веб-сервера за картинкою і в балках виявляється його IP. Відповідно, IP пробивається по базі GeoIP.
- Web_html5. На сайті генерується сторінка, яка використовує механізми HTML5 для геолокації. Якщо користувач зайде на таку сторінку і настройки браузера дозволять видати його розташування, його координати виявляться в нашому розпорядженні. Запит до API здійснюється знову ж через тег.
- Web_applet. Це варіант працює не завжди, так як використовує Java. Сенс в тому, що за допомогою аплету збирається інформація про бездротових пристроях навколо клієнта. Дані про точках доступу навколо з великою ймовірністю дають точне розташування за допомогою Google Geolocation API.
Модулі для Metasploit
Для зручності додаткові способи були реалізовані у вигляді модулів для Метасплоіта. З їх допомогою спрощується створення HTML-листи або, наприклад, PDF'кі.
- badger_smtpimg. Просте створення HTML-листи, яке відправляється користувачеві. Від користувача не потрібно переходити на якийсь сайт, але визначити можна тільки IP (і тільки за умови рендеринга HTML його поштовим клієнтом).
- badger_pdftrack. Як нескладно здогадатися, для обчислення користувача спеціальним чином генерується PDF-файл з ін'ектірованним JS-кодом (AcroJS), який намагається запустити браузер і виконати в ньому знайомі прийоми геолокації.
Думаю, що вже цього в найпростіших випадках буде досить, щоб при вдалому збігу обставин обчислити користувача. Але розробники HoneyBadger пішли далі і реалізували ще парочку більш агресивних способів постексплуатаціі. По суті, розробники відповіли на питання: як визначити, де знаходиться користувач, якщо є доступ до віддаленого комп'ютера? (До речі, ось тобі ще один спосіб знайти вкрадений бук, якщо до нього залишився якийсь SSH / RDP-доступ.) Деякі з таких модулів:
- badger_wlansurvey. Включає на віддалений хост Wi-Fi-картку, визначає точки доступу навколо і обчислює координати за допомогою Google Geolocation API.
- badger_mobilescrape. Витягає координати з резервної копії iPhone / iPad, який зберігається в iTunes.
- badger_browserscrape. Він спробує знайти дані про розташування в історії Firefox'а (в URL до тих же самим Google Maps часто фігурують параметри довготи і широти).
Додаткова штука
Подивився, що вона знайшла для мене. Задумався :).
Покажи цю статтю друзям: