красавчик. что то новое для себя узнал и самое главное простое. я бы применил это в детекте виртуальных машин и прочих ботов, это гораздо интересней.порты многое могут рассказать о машине
Отсюда вывод: пытаться сканить локальные IP через браузер юзера есть смысл только в одном случае, если вы точно знаете какие IP и порты к ним нужно сканить. Из-за этого я не вижу смысла в таком применении этой методики. Но вот мой JS код который для теста скана локалки, в нём вы можете задать один IP и массив портов к нему которые нужно просканить. Я не стал писать скрипт в который можно задавать сраpу список IP, потому что не вижу в этом практического применения и смысла тоже, те кому надо могут немного переделать скрипт под эту задачу.
Отдельно я отресёрчил ещё один вопрос, который просто забыл отресёрчить в изначальном ресёрче.
Суть в том что в браузерах (Хроме и Firefox) есть black-листы, кхм, извиняюсь, block-листы портов. То есть эти браузеры имеют список портов на которые делая запрос - они не выполнят запрос в принципе и выдадут ошибку. Видимо это сделано в целях защиты и в этих списках есть дефолтные порты популярных протоколов/сервисов (SSH, Telnet, RDP и т.п). То есть обращаться к этим портам не имеет никакого смысла. Пример: запрос на 127.0.0.1:22 выдаст всегда ошибку и запрос даже не попытается выполниться, в том числе если обратиться на 22 порт на любой IP, в том числе и не локальные.
Списки портов в блок листах браузеров
1- Chromium based браузерах (Chrome, Yandex, Opera и вероятно новый Edge на движке хрома) - список найден в исходнике Chromium (https://github.com/chromium/chromiu...f722090104e0e491d6bf071/net/base/port_util.cc) виден весь список блок портов.
2- Firefox - список портов в офф доке https://developer.mozilla.org/en-US/docs/Mozilla/Mozilla_Port_Blocking
3- IE 11 - не лочит порты
4- Edge (не на движке хрома) - аналогично IE, не лочит порты.
Получается что анти-фрод таки не тестит открытые порты вроде 22 и пр., которые свойственны туннелям, прокси и дедикам? Заинтересовала озвученная мысль, что таким сканированием балуюсь большие братья.
Кстати, хорошая идеяДумаю, некоторые дельцы побежали сканить свой трафик на предмет открытия портов популярных криптокошельков
У меня установлен касперский фри. Решил протестить данный скрипт. Запустил тупым копипастом и заметил кучу сообщений об ошибке и тайминги под 1000. Полез в process hacker и обнаружил, что касперский работает на другом порту, а именно - 49671. Добавил этот порт в скрипт, но тот мне все равно отображает его как закрытый, хотя видно, что тайминг явно меньше остальных. Бегло просмотрел скрипт, вроде все должно работать правильно. В чем тогда дело?Это в корне не верное утверждение.
Детект происходит на пальцах так:
1- Мы создаём специальный HTML, добавляем в него мой JS код
2- Юзер переходит на нашу Веб страницу с этим JS кодом
3- JS из браузера юзера пытается создать wss (соединение через сокеты) с локальным IP 127.0.0.1:Port (где 127.0.0.1 текуший комп юзера на котором он открыл эту страницу, а Port, нужны порт для детекта, открыт ли он на прослушивание или нет)
4- Если порт открыт, то произойдёт детект. А это значит что мы задетектировали нужный нам софт. И всё что для этого нужно чтобы пользователь перешёл по нашей ссылке.
Я не знаю как это ещё проще объяснить.