Як дізнатися IP ламера

  1. Зміст статті тизер
  2. визначення місця розташування
  3. Як це працює
  4. Модулі для Metasploit
  5. Додаткова штука

Зміст статті

тизер

Почну з невеликого тізера. У наступному номері у нас буде матеріал, в якому ми зібрали самі різні утиліти з останніх атак конференцій. Переглядаючи його, я натрапив на утиліти HoneyBadger & PushPin і подумав: «Де ж ви були раніше?» Поясню: за останній час мене не раз питали, як можна визначити місце розташування якогось користувача. Причини у людей різні, але мета завжди була одна - зрозуміти, де фізично знаходиться людина. Точкою на карті, не інакше :).

визначення місця розташування

Тут треба сказати, що раніше можливості дізнатися розташування були дуже убогі. Можна було хіба що заманити користувача на потрібний ресурс, визначити його IP-адресу і по мізерним GeoIP-баз з'ясувати в кращому випадку місто, з якого об'єкт, що цікавить підключений. Втім, як нам відомо, знання IP дуже часто взагалі нічого не дає. Особливо коли сучасні користувачі вже спокійно юзают весь арсенал засобів для анонімізації: проксі, VPN, Tor і інші інструменти.

Все змінилося з появою в HTML5 геолокаційні можливостей. Тепер будь-який сайт з лякаючою точністю може визначити, де знаходиться користувач, - зрозуміло, якщо той це дозволив. Вимальовується вже цілком робочий сценарій: якщо заманити користувача на сайт з потрібним JS-кодом і той через незнання дозволить визначення місця розташування, цілком можна отримати досить точні (а часом дуже точні) його координати.

творці HoneyBadger пішли далі і написали цілий фреймворк, який допомагає обчислити місце розташування користувача. Свою розробку вони представили на конференції ShmooCon 2013. Загальний принцип роботи я вже описав: за допомогою HTML5 і Java-аплетів браузер користувача змушують розкрити свій реальне місце розташування, навіть якщо користувач використовує анонімізація (кому потрібен його IP?).

Як це працює

Весь код написаний на PHP і Python, тому їх інтерпретатори потрібні для установки необхідної серверної частини HoneyBadger. Також буде потрібно SQLite. Власне, описувати процедуру розгортання самого звичайного застосування немає сенсу - головне, скачавши репозиторій з кодом, ти вже через п'ять хвилин отримаєш доступ до адмінки утиліти. API фреймворка має різні способи отримання даних про розташування клієнта, але почнемо з веб-агентів. Тут є три варіанти:

  1. Web_http. Генерується звичайна HTML-сторінка з тегом . Коли користувач заходить на сайт або відкриває HTML-лист, відбувається звернення до веб-сервера за картинкою і в балках виявляється його IP. Відповідно, IP пробивається по базі GeoIP.
  2. Web_html5. На сайті генерується сторінка, яка використовує механізми HTML5 для геолокації. Якщо користувач зайде на таку сторінку і настройки браузера дозволять видати його розташування, його координати виявляться в нашому розпорядженні. Запит до API здійснюється знову ж через тег .
  3. 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 часто фігурують параметри довготи і широти).

Цей плагін визначає розташування за сигналом від сусідніх точок доступу Wi-Fi

Додаткова штука

Це ще не все. Разом з HoneyBadger розробники показали ще й утиліту PushPin - Python-скрипт, який намагається в залежності від заданих координат витягти з соціальних мереж обговорення, зображення і відео, які могли б допомогти на етапі фізичної розвідки при проведенні тесту на проникнення. Для роботи треба просто задати широту і довготу шуканої мети в градусах (власне, розташування користувача) і радіус сканування в кілометрах - після чого PushPin надасть всі твіти, відео з YouTube і зображення з Flickr, які запостив з заданої області.

Подивився, що вона знайшла для мене. Задумався :).

Переглядаючи його, я натрапив на утиліти HoneyBadger & PushPin і подумав: «Де ж ви були раніше?
Кому потрібен його IP?
По суті, розробники відповіли на питання: як визначити, де знаходиться користувач, якщо є доступ до віддаленого комп'ютера?