- Зміст статті Ти майстер злому і шпигунського софта, ти знаєш найвитонченіші дірки і експлойти. Твій...
- Залізна теорія кручений пари
- З ножем і крокодилами йдемо до сусідського щитку
- Потенційні способи, які стоять грошей і / або великих зусиль
- підсумок
- Warning!
Зміст статті
Ти майстер злому і шпигунського софта, ти знаєш найвитонченіші дірки і експлойти. Твій сусід підключений до іншого локалке, але тобі так хочеться посніфать його траф, що свербить у всіх місцях відразу. Трохи розвідки і затикаючи: він юзает виключно виту пару. «Як бути?» - крутиться у тебе в голові. Ось тут я збираюся розповісти тобі, що все можливо в нашому світі. Для початку визначимося з тим, що не будемо лізти в найдрібніші подробиці стандарту IEEE Std 802.3. Цей стандарт про той самий Ethernet, який тобі знаком по вітухе, що стирчить з усіх щілин твого притулку. Зате приділимо більше уваги можливостям непомітного зняття даних з тієї самої кручений пари, що викликає хакерський свербіж. Я сусідську
маю на увазі. Використовуй ці можливості з розумом і обережністю.
Флешбек про хороше минулому
Якби ти вирішив втілити в життя подібну затію років так 10 тому, то все було б відносно просто, так як в більшості випадків використовувався коаксіальний кабель. Його навіть не потрібно було різати - досить було акуратно дістатися до центральної жили і підключити свій кабель паралельно: центр до центру, обплетення до оплетке - і вуаля, можна тихо сніфать траф, ну або НЕ тихо, варіанти були.
А зараз у нас тотальне поширення TP (Twisted Pair - кручена пара). Зауважу, що ні єдиної кручений парою живе мережу - крім безлічі її видів є ще й оптика, але її ми розглядати не буде через складність і дорожнечу роботи з нею.
Отже, у нас тільки один шлях - розбиратися з роботою кручений пари.
Залізна теорія кручений пари
«Ну кручена, що з неї взяти?» - запитаєш ти. А я з посмішкою дістану майже 20 тисяч сторінок специфікацій і згадаю про пару десятків дисциплін, необхідних для розуміння цієї пересічної вітухі. Ну, лякав і вистачить. Насправді все не так складно, якщо усвідомити основи.
Вся мережева технологія, яка оточує тебе, описана стандартами. Вита пара не виняток. Повна назва стандарту - IEEE 802.3 LAN / MAN CSMA / CD Access Method. Взагалі, стандарт IEEE 802 дуже цікавий і продуманий. В інтернеті досить багато інформації на цю тему, але в найчастіше вона англомовна. Я постараюся пояснити тобі найнеобхідніше.
Стандарт під номером 802 включає в себе практично всі мережеві протоколи. Наприклад, 802.11 - WiFi, 802.15.1 - Bluetooth, 802.16 - WiMax. Нас же цікавить 802.3 - Ethernet.
В основі стандарту лежить так звана модель OSI . Кожен рівень відповідає за свою взаємодію. Всього їх сім:
- Прикладний рівень (Application layer) - доступ до мережевих служб
- Рівень представлення (Presentation layer) - уявлення і кодування даних
- Сеансовий рівень (Session layer) - управління сеансами зв'язку
- Транспортний рівень (Transport layer) - безпечне і надійне з'єднання «точка-точка»
- Мережевий рівень (Network layer) - визначення шляху і IP (логічна адресація)
- Канальний рівень (Data Link layer) - фізична адресація
- Фізичний рівень (Physical layer) - кабель, сигнали, бінарна передача
Звичайно, це чисто теоретичне уявлення моделі, і в багатьох пунктах вона реалізована інакше, але для наочності її цілком достатньо. Її лають, кажуть про її невдалості, неспроможності і громіздкість. Але саме на неї орієнтуються всі розробники і виробники мережевого обладнання. Нас цікавить сьомий рівень - фізичний. Ось ілюстрація стосовно Ethernet:
На діаграмі представлена модель OSI і нижні рівні в стандарті 802.3 Канальний рівень складається з двох частин: МАС (виноска в глосарій) клієнта, який забезпечує доступ до нижніх рівнів, і наступний за ним Media Access Control, який відповідає за доступ до фізичного рівня. У самому низу знаходиться фізично рівень, в кожному пристрої він може бути виконаний по-своєму, але зверху у нього обов'язково буде прив'язка до MAC, а знизу - фізичний коннект (в нашому випадку кручена пара).
На схемі показаний фізичний рівень (PHY), що відповідає за узгодження мережевий моделі з фізичним каналом, який може бути як кручений парою, так і оптоволокном або іншим носієм. Наочно можна побачити роботу цієї схеми в стандарті 10BASE5. Цей стандарт - одна з перших реалізацій 802.3. Як фізичного носія тут використовувався коаксіальний кабель товщиною 9 мм. Його оболонка була виконана з вогнетривкого пластику жовтого кольору, від чого його називали ще «жовтим Ethernet'ом». Так ось примітно, що мережева карта була двокомпонентна: перша її частина встановлювалася на законне місце в системі, друга вішалася на мережевий кабель спеціальним пристроєм, в якому сигнали
з кабелю перетворювалися в формат, зрозумілий першої частини мережевої карти. Фактично друга частина і була втіленням фізичного рівня - згодом її можна було замінювати іншими інтерфейсами. Жовтий кабель практично не застосовується (якщо знайдеш місце, де цей раритет трудиться, повідом мені, плиз), але ідея про поділ мережного пристрою за функціями ще живе, наприклад, в високошвидкісних мережевих комутаторах, де на кожен порт можна поставити свою плату, що відповідає за роботу з якимось одним носієм (оптика і інші).
До речі, придивися до цього девайсу, що висить на жовтому кабелі. Називається він в народі «тризубом» або «вампірчик», оскільки прокушує кабель так, що середній шип контактує з центральною жилою коаксіального кабелю, а два бічних шипа входять в контакт з екраном основного кабелю. Зауваж, це фактично залізний сніфер, але, на жаль, тільки для цього типу мережі.
[email protected]
@ wikipedia.org
Приймально модуль для «жовтого Ethernet'a»
Повернемося до схеми, де показаний PHY. Провівши аналогію з «жовтим Ethenet'ом», можна сказати, що LINK - це сам коаксіальний кабель. Рівень, який залежить від середовища передачі (Physical medium dependent layer), до каналу підключений через MDI. До речі, коробочка з тризубом як раз і містить в собі цей рівень. Далі вже по цифровому каналу він підключений до рівня, який не залежить від середовища передачі. На діаграмі цього рівня відповідає MII. Зараз же MII є стандартом для підключення мікросхем PHY до чіпу (це може бути як чіпсет, так і повноцінний проц). До речі, не шукай MII на сучасних мережевої - там вже давно все інтегрували в один чіп. «Але де ж тут кручена пара?» - запитаєш ти.
«Правильне питання», - відповім я і продовжу. У стандарті є безліч застережень на випадок підключення кручений пари, але я виходжу з того, що ти живеш в звичайному будинку зі звичайними провайдерами, які не стануть проводити в квартири гигабитную мережу. У класичному варіанті, до якого звик ти, підключення повністю відповідає 10-мегабитному стандарту:
З'єднання двох пристроїв кручений парою, справедливо для 10- і 100-мегабітного каналу
Для зв'язку використовуються дві кручені пари, кожна працює тільки в одну сторону. Для повноцінної передачі потрібні 2 канали - туди і назад. У технічній літературі такі канали називаються TX і RX - це абревіатури від передачі (transmit) і прийому (receive). При підключенні двома парами, кожна позначається як передавальна (TX) або приймаюча (RX). Яка саме з них виконує свої функції, залежить від типу кабелю (точніше, від того, як його обтиснути): прямого і крос-овер. Перший тип використовується для з'єднання комп'ютера з світче / хабом, другий - для з'єднання двох комп'ютерів безпосередньо.
Кінці TX- і RX-пар обжимаються роз'ємами за спеціальною схемою, яку нескладно знайти в інеті. Думаю, тобі ця схема давно знайома. До речі, MDI часто і позначає фізичний роз'єм (MDI-роз'єм для кручений пари і є всім відомий RJ-45).
Але не подумай, що по проводах Битик перекачують як є. І тут не все так просто. Головна особливість кручений пари полягає в тому, що сигнал передається диференційний, тобто різницевий. Іншими словами, він сформований таким чином, що сумарна напруга між проводами пари близько нуля. Для прикладу - на одному дроті 2,5 В, тоді на іншому однозначно -2,5 В, а сума дорівнює нулю. При такому способі передачі провідник сигналу (в нашому випадку кручена пара) випромінює сигнал в зовнішнє середовище набагато менше і це випромінювання вловити важче. Також він досить стійкий до зовнішніх перешкод, так як їх легко відфільтрувати і сприймати тільки сигнали, в сумі дають тільки 0.
Кожен біт передається зміною сигналу з одного рівня на інший; таке кодування відомо як манчестерський код. При такому кодуванні біт фіксується при переході від одного логічного рівня в інший. Одиниця - при переході з нижнього логічного рівня на верхній, нуль - навпаки. У нашому випадку з кручений парою кожен біт формується зміною полярності в парі. Наприклад, на дроті TX + було 2,5 В, а на TX- - -2,5 В, це відповідає верхньому логічному рівню. При зміні на нижній (TX + = - 2,5; TX- = 2,5) передали нуль. TX + - передає пара, позитивне проведення, а TX- - передає пара, негативний дріт. Плюс і мінус введені, щоб розрізняти дроти при їх підключенні. Якщо переплутати їх
- це не фатально, але в більшості випадків сигнал буде прийнятий неправильно.
Ось ілюстрація манчестерського коду:
У чистому вигляді такий код практично не використовують через складність передачі великої кількості нулів і одиниць. На практиці ж застосовують додаткове кодування, коли групу бітів кодують з надлишком, підмішуючи нулі і одиниці. Такий спосіб дозволяє не тільки нормально підтримувати передачу сигналу, але і перевіряти його цілісність (дивись інформацію на тему 8b / 10b encoding).
З ножем і крокодилами йдемо до сусідського щитку
Ну як? Не відмовився ще від своєї ідеї? Мабуть, голова вже пухне (у літреда точно пухне - примітка літреда). Ну нічого, це тільки спочатку - з часом звикнеш. Доведеться. Я повідав тобі тільки теорію, не торкаючись практики. Хоча все насправді набагато простіше - нинішня промисловість дійшла то такий уніфікації, що можна дозволити робити багато речей, навіть не замислюючись про побічні ефекти і недоліки, які неодмінно б вилізли пару років назад.
Так ось тепер перейдемо до практики. Для успішного зняття сигналу нам потрібно хороший ніж (цілком підійде звичайний канцелярський - примітка dlinyj), два крокодила з гострими зубцями, обтиснення з одного кінця кручена пара, ноутбук з мережевою картою і софтом для сніфінга. Я юзал SoftPerfect Network Protocol Analyzer - протягом 30 днів буде працювати без проблем, хоча є і безкоштовні сніфери (користувачі нікс правлять балом). Беремо обтиснуту виту пару і звільняємо необжатий кінець від зовнішньої ізоляції. Рекомендую взяти провід довжиною не менше двох метрів. В ході експериментів я користувався півметровим обрубком, але його навіть для дослідів виявилося мало. Тут тобі потрібно знайти RX (входить
сигнал) пару (третій і шостий контакти у роз'єму твоєї мережевої). Якщо ти обжимаються за всіма правилами, то крокодили потрібно чіпляти або до помаранчевої (оранжево-білою) (схема A), або до зеленої (зелено-білої) парі (схема B). Інструкцію по обтиску легко нагугліть. Припустимо, у тебе обтиснутими відповідно до схеми А, тоді виходить, що крокодили висять на помаранчевому і оранжево-білому проводах.
Тепер з таким своєрідним проводом і лептопом йдемо до місця врізки. Не забудь гострий ножик - раптом відбиватися доведеться (жарт). Акуратно зніми зовнішню ізоляцію з дроту, не пошкодивши жилу. Це можна зробити поздовжнім надрізом. Для цього зігніть дріт і зроби абсолютно неглибокий надріз довжиною сантиметрів 5-10. При цьому намагайся не зачепити і тим більше не пошкодити і не перемкнути пари всередині дроти. Вийнявши кручені пари з надрізу, необхідно їх розвинути, причому в повному обсязі, а найбільш ймовірні, наприклад помаранчеву.
Далі тобі доведеться трохи подумати - адже потрібен вихідний канал від людини, а не від провайдера, оскільки саме він відсилає паролі, а не вони йдуть до нього (хоча всяке буває). Сподіватися на прямі руки наших монтажників не варто, тому треба спробувати 2 варіанти: помаранчеву і зелену пару (в особливо запущених випадках кольори можуть бути зовсім переплутані). Схема приєднання крокодилів проста: плюс до плюса, мінус до мінуса. Тобто одноколірний провід до одноколірного, смугастий до смугастого. Все це також доведеться робити з оглядкою на інструкцію з обтиску: позитивне проведення - смугастий, негативний - однотонний. Якщо монтажники не дотримувалися інструкцію, то визначити, який з них
який, без складної і громіздкої апаратури не представляється можливим - тільки перебір. Не забувай про зусилля при затиску крокодилами, інакше вони не прокусив ізоляцію проводу і ти будеш ще довго маятися в пошуках несправності. Якщо крокодили ніяк не хочуть прокушувати провід, то можеш зрізати уздовж нього кілька міліметрів ізоляції і підчепити їх вже до вже голою міді.
Знайти вихідний канал можна по пакетам, переданим від користувача до провайдера. Особливість їх така, що адресовані вони зазвичай вищим комутаторів (IP пункту призначення закінчується на одиницю, наприклад 10.2.14.1) або прямо в інет, ну а в відправника варто один і той же IP.
Ну що, добре стояти з ноутом у розрізаної чужий кручений пари? Сусід ще не вийшов? Якщо тебе це не турбує, то продовжуй сніфать і тобі обов'язково пощастить, адже більшість прог передає паролі у відкритому вигляді. Від тебе вимагається тільки налаштувати фільтр в сніфера. А ось якщо тебе не влаштовує стирчати з ноутом біля чужої двері, то можеш запхати його в довколишню ничку, живити і підняти Wi-Fi канал, а дамп приймати на іншому ноут. Проблема Wi-Fi в тому, що весь дамп ти передати не зможеш, навіть при ідеальній зв'язку - пропускна здатність бездротового каналу в рази менше. Але є вихід - налаштувати сніфер на виявлення лише потрібних тобі пакетів (наприклад, аськи або Ірки) і
передавати тільки їх - в такому випадку можна обійтися не тільки Wi-Fi, але навіть GPRS. Це як варіант. Товариш dlinyj загорівся ідей використання Wi-Fi роутера, але поспішу його засмутити - він (роутер) не передаватиме дамп, тому що це фактично керований свитч. Поясню: і роутери, і свитчи аналізують дані і передають адресовані пакети виключно їх адресатам. Інший варіант - прокинути кручений дріт з крокодилами до спокійнішого місця, хоча такий спосіб врізки з довгим проводом може принести хіба що тільки сміття в дампі, ну і постійно падаючий коннект у сусіда - тут допоможе тільки експеримент. Вищеописану інструкцію я випробував сам на свого брата, отримавши його пароль до
асьці. Хоч ми і користуємося одним инетом і знаходимося в одній квартирі, його комп запаролено і підключений до роутера. Ставити кейлоггер було неспортивно, а сніфать сітку через роутра - марно, тому я і використовував метод ножа і крокодила.
Потенційні способи, які стоять грошей і / або великих зусиль
Проблемою перехоплення інформації в першу чергу переймаються ті, кому це конче потрібно. А якщо конче потрібно, то і в ресурсах нестачі немає. Ось такі люди і постачають в подальшому своїми розробками спецслужби всього світу, ну або самі юзают - хто їх знає. До мене доходять тільки чутки і уривки з публічних джерел. Сам розумієш, такою інформацією ніхто ділитися добровільно не стане. Але я не розповісти не можу, так як ці замальовки девайсів варті того, щоб бути озвученими. Попереджаю, це можуть бути домисли і плоди мого (або чийогось) уяви.
Почну з простого, це безконтактний з'їм даних з кручений пари - девайс був виставлений на CeBIT 2007. Але сам я його в руках не тримав і працездатність не перевіряв. Можу лише припустити, що чутливим елементом є індуктивність або датчик Холла (датчик Холла - напівпровідниковий елемент, чутливий до магнітного поля). Обидва варіанти можуть бути реалізовані в залозі.
Наступний спосіб - це сканування і подальше виявлення сигналу Ethernet по побічним електромагнітним випромінюванням. Нещодавно по мережі прокотилася хвиля наукових (і не дуже) публікацій на тему перехоплення відеозображення з ЖК-екранів ноутбуків. Особливість відеосигналу, переданого від відеочипа ноута до РК-панелі, в тому, що він теж диференційний (як у кручений пари). Відео передається відразу за кількома таким каналам. А перехопити і успішно декодувати цей відеосигнал на пристойній відстані вдалося навіть краще, ніж в експерименті з ЕПТ-моніторами (sic!). Так що, цілком ймовірно, десь у суворо засекреченою комірчині лежить девайс і ... слухає весь Ethernet в окрузі :).
І, нарешті, фактично той же самий метод з прямою врізкою в кабель, але замість ноута використовується одноплатний комп'ютер з Wi-Fi картою. Сам по собі одноплатний комп'ютер є зменшеною і переробленим варіантом звичайного і призначений для потреб промисловості, скажімо, для керування верстатами або збором і обробкою інформації з датчиків (саме це я і пропоную, тільки збирати він буде дамп з мережі). Такі комп'ютери можуть бути як х86-сумісними, виконаними на 386-му і більш потужних проц, так і на інших процесорних архітектур, наприклад RISC, ARM або MIPS. І я впевнений, що якщо у тебе є роутер, то в ньому варто подібний комп, тільки софт його заточений під управління мережею.
Якщо тобі вдасться поставити на нього Лінукс чи він вже встановлений, то налаштувати Лінукс на Сніф і аналіз дампа буде легко. А живити його часто можна навіть від 12-В акумулятора.
Всі підключілі, живить и сховайся в природних Хованка (нішах, шафах, щитках, темному кутку під стелу и т.д.). А дамп злівається по радіоканалу. Просто и сердито, а головне - НЕ нужно особисто буті прісутнім на місці. Якщо вже зовсім помріяти, то можна дати завдання комп'ютера фільтрувати пакети і навіть вишукувати паролі. А передати пару рядків можна і по GPRS, наприклад, відправивши відповідний лист на анонімне ящик.
підсумок
Ти тепер уявляєш, як працює Ethernet, на яких принципах побудований і з чим його їдять. Звичайно, в рамках журнальної статті неможливо розкрити всі тонкощі, але навіть цієї інформації тобі вистачить, щоб почати експерименти, а може бути навіть, ловити реальні пакети в чужій Ethernet-мережі. Можливо, прочитане підштовхне тебе до самостійних пошуків в заданому напрямку.
Думай, товариш, і дій обережно. А якщо надумаєш щось путнє, що не мовчи, а повідом громадськості, ну або зв'яжися зі мною, буде, що обговорити разом.
Warning!
Інформація надана виключно з метою ознайомлення. Ні автори, ні редакція не несуть відповідальності за наслідки використання матеріалів цієї статті.
Повну версію статті
читай в жовтневому номері
Хакера! На диску ти знайдеш повну специфікацію IEEE 802.3 LAN / MAN CSMA / CD Access Method.
«Але де ж тут кручена пара?
Не відмовився ще від своєї ідеї?
Ну що, добре стояти з ноутом у розрізаної чужий кручений пари?
Сусід ще не вийшов?