Інструкція з використання Router Scan by Stas’M
Етичний хакінг та тестування на проникнення, інформаційна безпека
Інструкція з використання Router Scan by Stas’M. Частина третя: Застосування фальшивого VPN (атака людина посередині + обхід HSTS)
Чи можлива атака людина посередині без доступу до локальної мережі?
Якщо доступ до мережного обладнання з Інтернету (наприклад, за допомогою Router Scan by Stas'M), а доступу до локальної мережі немає, то неможливо провести атаку людина-посередині. Чи можливо?
Насправді, можливо. Зразок, як це зробити буде показано нижче. Більш того, ми використовуємо SSLStrip+ та dns2proxy для обходу HTTP Strict Transport Security (HSTS), а також будемо використовувати Net-Creds для легкого збору паролів та іншої чутливої інформації.
Якщо подивитися порядок «звичайної» атаки людина-посередині, то вона полягає в наступному:
- сканування локальної мережі у пошуках робочих пристроїв
- ARP спуфінг, сенс якого полягає в тому, що цілі починають думати, що трафік тепер потрібно відправляти не через роутер, а через комп'ютер атакуючого
- щоб у цілей працював Інтернет, атакуючий перенаправляє запит із цілей у глобальну мережу, а отримані відповіді передає цілям
По суті атакуючий починає виконувати роль проксі. При цьому з трафіком, що передається, атакуючий може робити наступні речі:
- аналізувати його будь-яким чином, наприклад, для пошуку паролів та будь-яких інших даних, що передаються в незашифрованому вигляді
- блокувати доступ до певних сайтів або перенаправляти на шахрайські сайти
- намагатися знизити протокол з HTTPS до HTTP, щоб зменшити кількість даних, що передаються у зашифрованому вигляді та збільшити кількістьпереданих у вигляді простого тексту
- вставляти різний вміст у веб-сторінки, у тому числі здатний ввести в оману або призвести до зараження комп'ютера шкідливим кодом.
Якщо сказати коротко - з переданим трафіком проксі може робити все або майже все. Але, нагадаю, це при атаці людина-посередині, яка робиться в локальній мережі, і яка починається з ARP спуфінгу, який у глобальній мережі неможливий.
Тобто. отримавши доступ до роутеру, нам потрібно вигадати, як змусити його передавати трафік нам, тобто. взаємодіяти із глобальною мережею через нас. Функція проксі начебто в роутерах не зустрічається або зустрічається рідко. Зате VPN…
Суть VPN у тому, що клієнт встановлює зашифрований канал із сервером і вже через цей сервер виходить у глобальну мережу. Тобто. клієнт сам, без різних ARP спуфінгов, передає свій трафік віддаленому комп'ютеру! А вже на цьому віддаленому комп'ютері можна виконувати атаку людина посередині з усіма можливостями, описаними трохи вище!
Якщо цей VPN ваш, то той факт, що при VPN трафік передається зашифрованим каналом не має ніякого значення, оскільки на сервері трафік у будь-якому випадку розшифровується і всередині «скриньки» «гуляє» у відкритому вигляді.
Тобто. концепція зрозуміла:
- потрібно налаштувати свій шахрайський VPN
- мережеве обладнання жертви налаштувати так, щоб воно працювало через наш VPN
- на сервері проводити будь-які види атак на перехоплення/модифікацію/блокування трафіку, що передається.
Якщо вже зовсім лізти за корінь, то завдяки VPN ми створюємо нову локальну мережу поверх Інтернет-з'єднання. У цій локальній мережі сервер VPN є нічим іншим як шлюзом і саме з цієї причини отримує весь трафік без спуфінгу ARP.
Утеорії все досить гладко та просто. Але різні моделі роутерів підтримують різні продажі VPN. Ця різноманітність не дозволить вмістити всі варіанти встановлення та налаштування VPN. Я виберу один із них – OpenVPN. Існують роутери, які підтримують OpenVPN. Але ціль цієї замітки показати робочий концепт, а не зробити універсальну інструкцію. У будь-якому випадку під конкретне обладнання потрібно буде робити спеціальні налаштування сервера VPN.
До речі, OpenVPN працює у різних популярних ОС, тобто. якщо ви маєте доступ до мережного обладнання, то ви цілком можете підключити машини, що вас цікавлять, до «безпечного OpenVPN для шифрування даних, щоб хакери їх не могли перехопити»…
Особливості налаштування OpenVPN для шпигунства за трафіком
Як уже було сказано, я покажу приклад тюнінгу (підстроювання) сервера OpenVPN для полегшення сніфінгу трафіку. До речі, як налаштувати OpenVPN на BlackArch тут, а як налаштувати OpenVPN на Debian (Kali Linux, Mint, Ubuntu) тут.
Відкриваємо файл із налаштуваннями сервера:
Якщо там є рядок такий:
то змінюєте її на рядок:
Цим ми змушуємо ціль використовувати наш DNS проксі як DNS сервер. Наприклад, мій шахрайський OpenVPN піднято на IP 185.117.153.79, там же буде запущено dns2proxy, тому в моєму випадку рядок має вигляд:
За промовчанням OpenVPN використовує протокол UDP. SSLStrip+ не бачить цей трафік, тому змінюємо протокол із UDP на TCP. Тобто. рядок
Тестуємо OpenVPN сервер
І перезапускаємо його
На клієнті також виберіть протокол TCP, наприклад, на настільних ОС в конфігураційному файлі
На сервері для "перекидання" трафіку використовують різні правила для iptables. Ось приклад такого файлу на робочому сервері:
У ньому можна всезалишити без змін, крім цього рядка:
яку потрібно поміняти на таку (знову ж таки через зміну протоколу):
Перехоплення логінів та паролів у VPN
Зверніть увагу на вибраний мережевий інтерфейс -tun0. Це не назва реального фізичного інтерфейсу, це інтерфейс, яким VPN на сервері підключений до клієнтів.
Частковий обхід HSTS
Зашифрований трафік, частка якого постійно зростає, не дає нам зазирнути у внутрішню інформацію. Зв'язування з SSLStrip+ та dns2proxy допоможе нам вирішити цю проблему і навіть частково обійти HSTS.
Ставимо необхідні залежності (показано на прикладі BlackArch, залогінений під рутом):
Почнемо з додавання нових правил роутингу на сервері VPN:
Завантажуємо та запускаємо SSLStrip+:
Завантажуємо та запускаємо dns2proxy:
Тепер знову можна запустити Net-Creds, цього разу спійманих паролів буде значно більше:
Як видно з наступних скріншотів, yandex.ru, vk.com, google.com та інші дуже добре піддаються цій атаці:


Висновок
Отже, думаю, головна мета нотатки – показати, що VPN може використовуватися у злих намірах, досягнуто.
У процесі тестування мені прийшла думка, що використовувати різноманітні проксі-сервери та VPN, що належать невідомим особам, – це, принаймні, ризиковано. Я не кажу, що всі ті, хто надає послуги проксі та VPN, шахраї. Але абсолютно нічого не їм не заважає аналізувати та записувати трафік, перехоплювати в ньому дані, надіслані у відкритому вигляді. Навіть якщо дані передаються зашифрованими каналами, власники VPN або проксі всередині своїх машин мають справу з незашифрованими даними (якщо вони не зашифровані на ще якомусь етапі).
багатьомздається, що мати «свій» власний VDS сервер зі своїм персональним VPN – це вихід. Але ж фізично до вашого сервера мають доступ треті особи! При такому доступі, наприклад, якщо файлова система не зашифрована, то не потрібний пароль рута для доступу до будь-якого файлу в системі. А отримавши копії сертифікатів вашого VPN сервера, особи легко зможуть розшифрувати весь трафік VPN. Навіть «заднім числом», тобто. якщо вони «знімали» (записували) зашифрований трафік протягом останнього місяця, але вони не мали даних для розшифровки, то, отримавши сертифікати, вони зможуть розшифрувати трафік за попередній місяць.
Загалом «якщо у вас немає параної, то це ще не означає, що за вами не стежать».