Детектим ваш сервер через WebSocket
-
Чтобы не показалось, что мир состоит из розовых пони...
В общем есть такая штука, называется WebSocket. WebSocket — протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером, используя постоянное соединение (определение из ВИКИ) , но тебе это знать незачем, перейдем к самому главному, как это можно заюзать, чтобы спалить твой многопоточный бот :)
САЙТ в интернете через браузер при помощи WS можно попытаться сделать запросы на такие адреса 127.0.0.1 и еще на 192.168.xxx.xxx, но в теме речь пойдет только о 127.0.0.1
127.0.0.1 - это что?
А это, мой друг, твоя локальная машина (localhost) на которой собственно крутится BAS в многопотоке.
Ну крутится и что?
Дело в том, что у этого адреса 127.0.0.1 есть свои порты. Пример 127.0.0.1:7070. Если не вдоватся в дебри, то каждая программа на твоём пк которая выходит в интернет использует порты, какие-то программы используют случайные порты, а какие-то статичные.
Ну пусть используют порты, какое это отношение имеет к моему многопоточному скрипту?
Чтобы ответить на такой вопрос, давай используем следующую команду в PowerShell (это еще можно сделать в CMD, но в PS красочнее таблица)
Get-NetTcpConnection | Select-Object LocalAddress,LocalPort,OwningProcess,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} | Sort-Object -Property LocalPort | Format-Table
Скриншот обрезан, демонстрировать все порты нет смысла, сами посмотрите у себя.Видишь на порту 7070 висит AnyDesk, на порту 5939 висит TeamViver, а еще на порту висит 9010 висит программа для работы с Logitech устройствами.
Ну висит, а дальше что?
Выше я уже упоминал, что некоторые программы могут иметь статичный порт, а некоторые случайный. Мы через JS скрипт может просканировать список популярных портов, которые занимают популярные программы по умолчанию (3389 RDP, 7070 AnyDesk, 17500 (Dropbox) и т.д.). Поскольку запрос уходит в локальную машину ответ приходит мгновенный, большинство таких запросов – шифрованные, и для их расшифровки требуются ключи, само собой сайту ты не давал разрешения на соединения с портами, но ведь суть в том что это займет время и скрипт из браузера сможет узнать, что у тебя что-что висит на этом порту. Не будем вдавятся в дебри, а что если юзер пк сам свою кастомную программу повесил на порт, который занет по умолчанию популярной программой на пк, но сколько так людей делает? И сколько людей меняют этот порт после установки программы? 0.01%? Способ довольно эффективный.
Я ничо не понял, как это может спалить мой многопоточный бот?
Представь ситуацию ты крутишь BAS в многопотоке на системе в которой отрыт 3389 RDP порт, открыт AnyDesk 7070, открыт DropBox (17500) и открыт еще темвивер TeamViver (5939). Таких программ на самом деле много, которые садятся на статичный порт. Сайт может составить "отпечаток" твои портов и выяснить, что регистрации/лайки/сообщения идут с 1 системы, там плевать на твои канвасы, прокси, профили, но ведь это даже еще не всё, если копнуть еще глубже, выяснится что у серверной Windows и обычной Windows 10 тоже разные порты, т.е ты признаешься сайту, "эй - я тут на серверной винде кручу браузер - это ведь ничо, ок?"
А если например ты используешь мобильные отпечатки, а у тебя отвечает порт с программой которая есть только на ПК? Простор на самом деле большой.НИЧОСИ, а что делать?
Один из вариантов, это закрыть или переместить все порты у софтов, которые использует статичный порт, например в настройках AnyDesk можно поменять порт по умолчанию.
RDP тоже можно переместить с 3389 и т.д. Сайт не будет сканировать все твои 65к портов, есть еще варианты специализированных софтов, которые могут случайно отвечать на таких порты, но в такие дебри, мой друг не лезь, хватит тебе и первого варианта.
-
Ну конкурс статей можно считать открытым :) теперь и на форуме баса - осталось определить список тем и призовой фонд :)
А так то это давно все знают, что лучше рдп перевешивать куда нить на другой порт - не забыть закрыть заодно в файрволе - и главно не закрыть доступ самому себе в процессе :)
Но это тоже не спасет от пароноидальной системы - так как только ты освободишь порт например рдп - то на него может залезть какая нить прога. Главное чтоб эти порты извне закрыты били.Я вот чето не понял - запустил твою команду - смотру а у меня дофигища woker ов висит на разных портах.
Запущено две копии баса - в каждом один поток, одна вкладка. То есть всего 2 потока получается, по одной вкладке в каждом - сколько там woker ов должно быть ?
И вот откуда еще и другие браузер автоматин студии взялись ...это не весь список ...
-
Я на своем Контабо тоже меняю РДП по-умолчанию, но чтобы не палить провайдеру пиратскую винду и что оплачиваю только линуксовую машину у них. Оказывается есть и приятные подобные эффекты)
-
@DuckDuck это нормальное явление, у меня реал хром тоже открывает кучу портов.
Я где то видел в ветке creepjs было обсуждение, что якобы можно получить это имя worker через браузер.