Бороздя необъятные просторы интернета, неоднократно натыкался я на недовольные отзывы пользователей бесплатной Wi-Fi сети московского метрополитена «MT_FREE». Проблема заключалась в том (впрочем, воз и ныне там), что Wi-Fi сети наземного городского транспорта носили такое же название, как и в подземке. Представьте себе ситуацию: идёте вы куда-нибудь, музыку слушаете, никого не трогаете и тут бдыщ — пред вами откуда ни возмись возникает автобус; ваш же телефон замечает знакомую ему Wi-Fi сеть и, донельзя довольный своей находчивостью, (к вам, конечно же, не вопрошая) скороспешно подключается к оной. Вместо музыки теперь вы слышите лишь ехидное тарахтение уходящего вдаль автобуса.



Так, секундочку…

ДАЖЕ НЕ ДУМАЙТЕ!

Материал предоставлен исключительно в ознакомительных целях. За любые вами совершённые действия по прочтении данной статьи я ответственности не несу.
Другое дело.

«А что, собственно, случилось?»


На днях я смастерил незамысловатый агрегат (что является по своей сути помесью powerbank-а и всем известной Orange Pi с интегрированным Wi-Fi модулем), при помощи которого давеча мною был поставлен эксперимент, задачей которого стал подсчёт количества граждан (а также их предупреждение о том, что им следует более серьёзно относиться к целости и сохранности своих данных), что совершено не пекутся о своей безопасности в сети. Суть его проста — на апельсин ставится OpenWrt с dnsmasq (последний настраивается таким образом, чтобы на любой DNS-запрос клиента поступал один и тот же ответ — в нём должен содержаться адрес локального шлюза, на котором крутится веб-сервер) и нехитрыми манипуляциями поднимается открытая Wi-Fi сеть, коей присваивается тот самый пресловутый SSID — «MT_FREE», после чего подсчитывается количество человек и их смартфонов (вкупе с другими устройствами), что подключились к данной сети.

Заводим игрушку
/etc/dnsmasq.conf


address=/#/192.168.1.1


/etc/config/uhttpd

config uhttpd 'main'



option error_page '/index.html'


/etc/config/dhcp

config dnsmasq



option leasefile '/usr/share/dhcp/dhcp.leases'


/usr/bin/honeypot

###
###  Скрипт предназначен для непрестанного
###  мониторинга состояния файлов
###  dhcp.leases и php.leases
###

while :; do clear && echo -e "I'm $HOSTNAME!\\n`date +%H:%M:%S`\\n\\nDHCP leases: `wc -l /usr/share/dhcp/dhcp.leases`\\nPHP leases: `wc -l /usr/share/dhcp/php.leases`" && sleep 1; done

В течение некоторого времени данные собираются и записываются в какой-нибудь файл (в моём случае — dhcp.leases и php.leases). В файле dhcp.leases содержится информация, необходимая DHCP-серверу для принудительного закрепления определённых IP-адресов за каждым из клиентов в течение некоторого времени (своего рода аренда). Немного иначе дела обстоят с файлом php.leases — после осознанно совершённого пользователем клика по кнопке «Войти в интернет» в файл записывается новая строка с заранее определённым текстом. Необходимо это для того, чтобы подсчитать позже можно было количество человек, что нажали на кнопку и подвергли себя опасности. Сразу хочу обратить внимание на то, что это — безобразный до ужаса костыль, что был написан на коленке (в буквальном смысле) за несколько минут в трясущемся автобусе.

Вот так это несусветное безобразие выглядит
<?php

shell_exec('echo `date +%H:%M:%S` New DHCP lease and user action! >> /usr/share/dhcp/php.leases');

?>

Так-так! А что у нас там на вкусненькое?


Вы, наверное, и без меня уже догадались — это статистические данные, которые коробочка тщательно утрамбовывала в течение четырёх часов. Спешу заметить — эксперимент начался в семь утра и закончился в ровно в полдень. Место проведения — довольно крупный городишко Подмосковья.

К точке доступа моей за сравнительно небольшой промежуток времени успело подключиться в общей сложности 95 устройств, из них:

  • 24 телефона типа «iPhone» (что примечательно — в их hostname-ах, как правило, содержатся имена владельцев)
  • 31 телефон под управлением «Android»
  • 1 «Windows Phone»
  • 1 «BlackBerry»
  • 10 «Redmi» от Xiaomi
  • 7 портативных персональных вычислительных машин типа «ноутбук»
  • Некоторое количество прочих устройств, поддерживающих возможность соединения по каналу Wi-Fi




79% аппаратов подключились к точке доступа в автономном режиме, i.e. без участия человека. На кнопку «Войти в интернет» нажало лишь 20 человек (21% от общей суммы всех подключившихся устройств).

Чем это чревато?
Социальная инженерия — страшный зверь, которого рядовые граждане обычно упускают из виду. Этого нам и стоит опасаться.

Как заметил пользователь shanker,
Угрозы при автоматическом подключении:
1. Атака типа Evilgrade
2. Социальная инженерия и увод паролей (редирект на подконтрольный похожий сайт, но без HTTPS, или подмена на нелигитимный сертификат)
3. Майнинг криптовалюты путём модернизации контента, выдаваемого в браузеры
4. Эксплуатация уязвимостей в браузерах (путём инжекции эксплоитов в запрашиваемые страницы).

Как себя обезопасить?
Отключите автоподключение к Wi-Fi хотспотам и очистите список сохранённых в памяти устройства точек доступа.

Теперь же я хотел бы перейти непосредственно к практической части и показать мою «чудо-машину» в действии.


«Товарищи! Смотрите все! Любителя бьют!»
Ввиду того, что в миру являюсь я семнадцатилетним вьюношем и в колледже обучаюсь, любая критика со стороны сообщества приветствуется. Ученье, как там говорится… Свет!

Премного благодарен за уделённое внимание, amico! До новых встреч!

Комментарии (35)


  1. Marwin
    06.11.2017 01:13

    Ну это всё ж тема из разряда фича, а не баг… Понятно, что каждый второй смартфон москвича подключится к Вашей MT_FREE.
    Суть статьи — раздел "Чем это чревато?" А там собссно вода. Хотело бы интересных примеров, что можно раздать "миру" по неосторожности. Ну исключая такие банальные вещи как паблик сетевые шары на ноуте в винде


    1. Mihip
      06.11.2017 01:15

      Навряд ли рядовой смартфон может «по неосторожности» раздать нечто большее, нежели чем те же сетевые шары, как Вы сказали. Социальная инженерия — да-да, чревато именно этим. И более, гм, боюсь, ничем (могу ошибаться).


    1. muxa_ru
      06.11.2017 04:08

      Хотело бы интересных примеров, что можно раздать "миру" по неосторожности.

      Из очевидного — перехват незашифрованного трафика.


      1. n1nj4p0w3r
        06.11.2017 04:10

        Для этого rogue ap не нужен


      1. AllexIn
        06.11.2017 14:47

        Те кто могли — уже осознали, что через хот споты по http лазить нельзя.


        1. Tallefer
          06.11.2017 15:11

          Через ТОР тоже! :)


          1. SpAAAA22
            06.11.2017 17:36

            Чем тор не угодил?


            1. strapony
              06.11.2017 22:51
              +1

              Выходные ноды слушают.


        1. muxa_ru
          06.11.2017 17:23

          Вы все апликухи в своём смартфоне проверили на то как они лезут: http или https?
          А если у сайта нет https версии, то Вы на него совсем не ходите?


          В теории легко говорить "по http лазить нельзя", но на практике это зависит не от пользователя, а от владельца сайта или автора программы.


          1. AllexIn
            06.11.2017 17:28

            У меня нет приложений на смартфоне, которые какую-то ценную инфу гоняют по инету.
            Я вообще сичтаю идиотизмом на смартфоне хранить ценную инфу, в силу легкости ею завладеть.
            Ну а приложения на мобилках оперирующие ценной инфой — вообще зло, ибо пишутся в основной массе криворукими идиотами.


            1. muxa_ru
              06.11.2017 17:56

              И много вас таких?


              1. AllexIn
                06.11.2017 17:57

                5%?


                1. muxa_ru
                  06.11.2017 19:20

                  Я бы сказал что Ваша слишком оптимистична.


                  А значит "перехват трафика" очень даже полезен для одним и опасен для других.


                  Мы же говорим не о сферическом пользователе в вакууме, а о реальном потоке граждан идущих мимо фальшивой вайфай-точки.


    1. werevolff
      06.11.2017 15:53

      В теории, можно подменить сервер обновлений: смартфон при подключении к сети запросит информацию об обновлениях, получит положительный ответ, после чего скачает и установит вредоносное ПО. Разумеется, если при запросе обновлений не проверяется сертификат сервера, что маловероятно. Но есть же рутованые телефоны, мессенджеры. В теории, любое популярное ПО может самовольно скачивать и устанавливать обновления. Останется только настроить на своём девайсе роутинг того трафика, который отвечает за основной функционал и перехват запросов на обновление.

      Полагаю, тут владельцу девайса нужно выбрать точку, в которой люди будут находиться значительное время. Скажем, аудитория в ВУЗе. И можно просканить все попытки устройств получить обновления. Тогда эксперимент будет уже повеселее.


  1. n1nj4p0w3r
    06.11.2017 03:17

    Honeypot — это техника обнаружения вредоносной активности заключающая в себе создание подставного ресурса созданного исключительно для заманивания и идентификации вредителей.

    То что вы сделали называется rouge ap и ничего оригинального в этом, к сожалению, нет.


    1. Mihip
      06.11.2017 03:19

      А, быть может, и к счастью. Спасибо за комментарий!


      1. n1nj4p0w3r
        06.11.2017 04:09

        То что это в принципе возможно уже вызывает сожаление.


  1. vconst
    06.11.2017 05:39

    Зачем надо было выделять «10 «Redmi» от Xiaomi» из группы «31 телефон под управлением «Android»»?


    1. anador
      06.11.2017 05:58

      Согласен, тоже смутило это


    1. Akr0n
      06.11.2017 06:06

      Наоборот же интересно, судя по новостям Xiaomi все больше захватывает рынок смартфонов. Любопытно было бы взглянуть на реальную статистику с улиц, в дикой природе, так сказать. Именно для этого как раз и можно использовать устройство, собранное автором.


    1. phoenixar
      06.11.2017 14:57

      Это скорее всего не выделение. Простой андроид в сеть даёт своё название как «android-*», а телефоны от xiaomi что-то похожее на «Redmi...»
      image


      1. vconst
        06.11.2017 15:00

        И это не значит, что телефоны сяоми перестают быть смартами на андроид. Или автор не знает, что редми — это андроидный смарт?


    1. 0o0
      06.11.2017 14:58

      Т.к. павербанк, судя по цвету, был любезно представлен /в образовательных целях/ именно ими. Возможно.


  1. Hellsy22
    06.11.2017 10:02

    Статья затрагивает проблему конфликта законов и сетевой гигиены.
    К примеру, я всегда использую на мобильных устройствах OVPN с опцией Seamless Tunnel, т.е. все, что может узнать точка доступа обо мне, это то, что мой смартфон установил соединение с каким-то сервером и обменивается с ним данными. Однако, этот подход блокирует мне возможность пользоваться «законными» открытыми сетями, где нужно сперва как-то что-то подтверждать, прежде чем доступ к интернету будет получен.


    1. Tallefer
      06.11.2017 14:35

      Недавно ставили какую-то приблуду, которая в фоне сама там «подтверждает», шоб рекламу в метро не смотреть. Не знаю, работает ли еще это.
      А еще раньше я себе писал скрипт, который входил в вайфай макдаков автоматически. :)


  1. Schalker
    06.11.2017 14:58

    Подставной ресурс, печальная реальность. Знакомо до боли. В « халявных « сетях приходиться защищаться VPN-ом.


  1. Maxir
    06.11.2017 16:04

    Ну и в чём проблема-то? Ну подлючились они и что?


    1. Alexsey
      06.11.2017 16:20

      Как минимум человек может начать пользоваться такой сетью (даже не заметив этого) и владелец поддельной точки может без проблем перехватывать трафик пользователя.


      1. Maxir
        06.11.2017 18:05
        +1

        Так https ведь.


        1. geher
          06.11.2017 19:19
          -1

          Так MITM ведь.
          И вроде как оно не всегда так непреодолимо сложно, как кажется, например, если пользователь просто заходит на какие-то сайты, FTP, почтовые сервисы.
          Например, в фальшивой сети заворачивает пользователя вместо его любимого ресурса на подставной (фальшивый DNS в простом случае и привлечение маршрутизации в сложном).
          А дальше пересылаются на подставном сайте запросы на оригинал и ответы обратно.
          Или я что-то не учитываю?


  1. neolink
    06.11.2017 16:47

    Интересно наступит ли тот день когда в php файлах перестанут ставить

    ?>


    1. rumkin
      06.11.2017 17:14

      Настанет ли вообще тот день, когда вся конструкция <?php ?> (пережиток эпохи, когда PHP был шаблонизатором), окончательно останется исключительно в шаблонах.


  1. Cerberuser
    06.11.2017 21:56

    По сути статьи выше сказали лучше меня, но, автор, кто так диаграммы красит? Где у вас граница между Андроидом и iOS? Что так ярко-красный, что так…
    А вообще, спасибо. Невольно задумываюсь, а нормально ли вообще, что идентификатор сети — это именно её имя (общедоступное), а не какая-то внутренняя характеристика… Впрочем, если её можно настраивать — ловушка остаётся (а если нельзя — то следующий вопрос будет «и как сделать одну и ту же сеть с разных источников?»), так что мысль не развиваю.


  1. 027
    06.11.2017 22:51
    +1

    Офф. Кого как, а меня порадовало, что парнишка читает Ильфа и Петрова.


  1. shanker
    07.11.2017 17:53
    +1

    Угрозы при автоматическом подключении:
    1. Атака типа Evilgrade
    2. Социальная инженерия и увод паролей (редирект на подконтрольный похожий сайт, но без HTTPS, или подмена на нелигитимный сертификат)
    3. Майнинг криптовалюты путём модернизации контента, выдаваемого в браузеры
    4. Эксплуатация уязвимостей в браузерах (путём инжекции эксплоитов в запрашиваемые страницы).

    Насчёт статистики по устройствам. С выходом iOS 11 можно ожидать увеличения iPhone в таких статистиках.