🖧 Почему сайты сканируют мои порты?

Статьи

Краткое руководство по сканированию портов

Сканирование портов – это враждебная техника, часто используемая специалистами по тестированию на проникновение и хакерами для сканирования компьютеров, подключенных к Интернету, и определения того, какие приложения или службы прослушивают сеть, обычно для проведения таргетированных атак.

Как правило программное обеспечение безопасности обнаруживает активное сканирование портов и отмечает его как потенциальную угрозу.

Большинство домашних маршрутизаторов не имеют открытых портов, поэтому сканирование IP-адреса интернет-пользователя вряд ли даст какие-либо значимые данные.

Однако многие пользователи по разным причинам запускают на своих компьютерах программы, которые прослушивают порты – онлайн-игры, обмен мультимедиа и удаленные подключения – это лишь несколько вещей, которые могут быть установлены на домашнем ПК.

Сканирование портов может дать веб-сайту информацию о том, какое программное обеспечение вы используете.

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

Например, известно, что Steam (игровой магазин и платформа) работает на порту 27036, поэтому сканер, увидев открытый порт, может с уверенностью сказать, что у пользователя также открыт порт Steam во время посещения веб-сайта.

Наблюдение за сканированием портов Ebay

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

👥 Руководство по фреймворку для взлома BEeF

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

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

Я подумал, что это может быть связано с тем, что я использую Linux, поэтому я создал новую виртуальную машину Windows и, конечно, увидел, что сканирование портов происходит в инструментах браузера с домашней страницы ebay:

Глядя на список портов, которые они сканируют, они ищут службы VNC, запущенные на хосте, что является тем же самым, о чем сообщалось для банковских сайтов.

Вот некоторые порты

  • 5900: VNC
  • 5901: VNC port 2
  • 5902: VNC port 3
  • 5903: VNC port 4
  • 5279:
  • 3389: Windows remote desktop / RDP
  • 5931: Ammy Admin remote desktop
  • 5939:
  • 5944:
  • 5950: WinVNC
  • 6039: X window system
  • 6040: X window system
  • 63333: TrippLite power alert UPS
  • 7070: RealAudio

VNC иногда используется как часть бот-сети или вирусов для удаленного входа в компьютер пользователя.

Существует несколько служб вредоносного ПО, использующих VNC для этих целей. Однако он также является эффективным инструментом, используемым администраторами для удаленного доступа к машинам или некоторыми программами поддержки конечных пользователей, поэтому наличие VNC является слабым индикатором вредоносного ПО.

Так почему же он его ищет?

Как работает сканирование портов с помощью WebSockets

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

Это позволяет сайтам периодически отправлять информацию в браузер клиента без взаимодействия с пользователем или опроса фронт-энда, что является преимуществом для удобства использования.

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

Чтобы выполнить сканирование порта, скрипт должен указать только частный IP-адрес (например, localhost) и порт, который он хочет просканировать.

Однако WebSockets поддерживает только HTTP, поэтому если сканируемый хост и порт не являются сервером веб-сокетов, соединение не будет успешным. Чтобы обойти это, мы можем использовать время соединения, чтобы определить, открыт порт или нет.

Открытые порты занимают больше времени в браузере, поскольку происходит согласование TLS.

Вы также можете получить различные сообщения об ошибках.

Если у вас установлен python, попробуйте выполнить следующие действия, чтобы создать локальный веб-сервер, работающий на порту 8080:

python3 -m http.server 8080

Теперь откройте консоль разработчика вашего браузера (обычно F12) и введите JavaScript напрямую.

> var s = new WebSocket("ws://127.0.0.1:8080")
< undefined
VM1131:1 WebSocket connection to 'ws://127.0.0.1:8080/' failed: Error during WebSocket handshake: Unexpected response code: 200
(anonymous) @ VM1131:1
>var s = new WebSocket("ws://127.0.0.1:8081")
<undefined
VM1168:1 WebSocket connection to 'ws://127.0.0.1:8081/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

Cсайт может иметь довольно хорошее представление о том, открыт ли данный порт.

Сканирование портов является вредоносным

Независимо от того, используется ли сканирование портов как часть инфекции или как часть “проверки безопасности” электронной коммерции или банка, это явно вредоносное поведение и может оказаться по ту сторону закона.

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

Предотвращение такого рода злоупотреблений

Есть Port Authority, расширении FireFox, которое выглядит как отличный способ блокировать этот и другие неприятные методы, лишающие пользователя некоторой самостоятельности.

см. также:

 

Добавить комментарий