Перехоплення трафіку пристроїв, підключених через публічну точку доступу wifi (атака mitm)
Вчора @akaDimiG скинув мені невелику замітку "Безпека Wi-Fi в iPhone під сумнівом", яка з першого погляду у мене викликала великий сумнів.
Тому замість гіпотетичного "SSL Bypass" давайте розглянемо, як провести атаку Man In The Middle.
Man in the middle
Я проходився по недбайливим адміністраторам. для полегшення собі життя або з простого незнання не приділяє уваги потенційним дірок в безпеці. Атаку MITM можна зробити неможливою, включивши на точці доступу функцію "AP Isolation", тоді клієнти в мережі не зможуть взаємодіяти безпосередньо. Принаймні в точках LinkSys я таку функцію знаходив.
Раніше я думав, що MITM здійснити непросто, і на неї можна не звертати увагу. Як я помилявся.
Отже, приступимо. Нам знадобиться ноутбук (тематика блога має на увазі ноутбук Apple, але підійде будь-який Unix).
MITM полягає в тому, щоб змусити клієнта думати, що трафік потрібно просилать НЕ через законний маршрутизатор, а через комп'ютер атакуючого, шляхом впровадження фальшивого ARP. Для цього потрібна утиліта arpspoof. Вона входить в пакет dsniff.
На жаль, у мене не поставлено звичайний dsniff через проблеми компіляції з libnet, тому використовував dsniff-devel, що ставить бібліотеки X11.
В якості жертви я використовував iPhone, що підключається в WiFi-мережа, в якій вже зареєстрований "дослідник". Для простоти прибираємо з захоплення tshark пакети дослідника (192.168.99.10):
Запускаємо ін'єкцію помилкових arp, щоб "жертві" у відповідь на запит mac маршрутизатора видався mac "дослідника":
00: 26: 08: e2: a6: 0c - це mac ноутбука дослідника:
Ось, власне, і все, тепер трафік "жертви" проходить через ноутбук дослідника:
На щастя, обмін з MobileMe і GMail ведеться по HTTPS / IMAPS:
Як ви бачите, MITM реалізується дуже просто. Тому не рекомендую працювати з важливими даними і входити на критичні сайти через публічні точки WiFi. Краще використовувати мобільний Інтернет, тут перехопити трафік будь-якому охочому, що сидить за сусіднім столиком, нереально. Або ж використовувати VPN. А найпростіше завжди контролювати, що використовується саме SSL і дані не йдуть через незашифровані http, pop3 і imap.