что делать с открытыми портами
Наиболее уязвимые порты в Windows, и как их закрыть
В мире чуть ли не каждый день десятки компьютеров заражаются опасными вирусами, и всё больше пользователей начинают искать способы повышения безопасности своего персонального компьютера.
Наиболее часто заражаются ПК под управлением операционной системы Windows. Связано это с тем, что большинство вирусов проникают в ОС через определенные входящие подключения, так называемые «порты», которые, к сожалению, являются включёнными по умолчанию.
Несколько упрощая, понятие «порт» можно определить как номер входящего подключения внешних программ (в том числе и вирусов) к вашему компьютеру через IP-сеть. Каждому порту присваивается уникальный номер для определения единственно возможного получателя данных в операционной системе.
Проникнув в компьютер, вирусы начинают заражать данные пользователя и открывают все ранее закрытые порты Виндовс для более быстрого распространения по системе. Чтобы этого не произошло, необходимо блокировать самые уязвимые порты, тем самым предотвратив возможность заражения и подняв безопасность Windows на уровень выше.
Самые уязвимые порты Windows 7 – 10
Исследование самых крупных вирусных взломов показывает, что 80% паразитного трафика проходит через 4 порта, используемые для обмена данными между разными версиями ОС Виндовс. Наиболее уязвимыми открытыми портами Windows считаются:
TCP порт 445 (он используется для обмена файлами) TCP порт 139 (предназначен для удаленного подключения к компьютеру) UDP порт 137 (служит для поиска информации на других компьютерах) TCP порт 135 (через него выполняются задания команд)
Как проверить, какие порты открыты
Чтобы узнать, есть ли на вашем устройстве отрытые уязвимые порты, воспользуйтесь сканером портов от Whoer.net. Определив ваш IP-адрес и используя nmap, сервис проверки открытых портов покажет, какие порты открыты на вашем устройстве и какие программы их используют. Вы получите взгляд извне, чтобы ясно представлять, насколько ваше устройство уязвимо и открыто опасностям большого Интернета.
Как закрыть порты с 135 по 139 и 445 в Windows?
Есть множество вариантов закрытия портов Виндовс, но в статье мы рассмотрим самые простые способы это сделать.
Способ 1 – использование командной строки
Командная строка Windows используется для задания значений тем настройкам системы, у которых нет графического интерфейса. К таковым функциям и относятся рассматриваемые открытые порты подключений.
Командная строка запускается в несколько этапов:
Нажмите сочетание клавиш Win+R В появившемся окне выполнения команд наберите CMD Нажмите «ОК»
Перед вами появится окно с черным фоном. По очереди скопируйте в него представленные ниже строчки и нажмите клавишу ввода:
netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=135 name=“Block1_TCP-135”
netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=137 name=“Block1_TCP-137”
netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=138 name=“Block1_TCP-138”
netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=139 name=“Block_TCP-139” (команда помогает закрыть порт 139)
netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=445 name=“Block_TCP-445” (команда помогает закрыть порт 445)
netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=5000 name=“Block_TCP-5000”
Эти шесть команд закрывают 4 перечисленных выше самых опасных открытых порта Windows, а также порт 5000, отвечающий за обнаружение открытых сервисов, и UDP порт 138 разрешения имен NetBIOS.
Способ 2 – использование сторонних программ
Чтобы не использовать ручную работу с командной строкой, можно использовать стороннее программное обеспечение. Суть его работы сводится к такой же правке реестра, как в способе выше, только в визуальном отображении.
Рекомендуем к использованию Windows Doors Cleaner, которая легко может закрыть порты на компьютере (в Windows 10 – 7: старые версии ОС данная программа не поддерживает).
Инструкция по работе с программой, закрывающей порты
Важно отметить, что с помощью этой программы можно не только закрыть, но и открыть порты.
Заключение
Помимо закрытия самых опасных сетевых портов компьютера необходимо не забывать, что этими действиями не достигается максимальная безопасность для операционной системы.
На вашей Windows необходимо устанавливать присылаемые Microsoft критические пакеты обновлений, антивирусные программы, безопасные браузеры и другое ПО, повышающее безопасность и анонимность.
Предлагаем обсудить в комментариях тему защиты сетевых портов и делиться полезными методами повышения конфиденциальности. Не забудьте отправить ссылку на эту статью вашим друзьям, чтобы они тоже знали, как закрыть открытые порты Windows.
Посмотрите также наше видео, где мы более подробно рассказываем о том, как закрыть уязвимые порты:
Не открывайте порты в мир — вас поломают (риски)
Снова и снова, после проведения аудита, на мои рекомендации спрятать порты за white-list’ом встречаюсь со стеной непонимания. Даже очень крутые админы/DevOps’ы спрашивают: «Зачем. «
Предлагаю рассмотреть риски в порядке убывания вероятности наступления и ущерба.
Ошибка конфигурации
Наиболее типичная и опасная ситуация. Как это бывает. Разработчику надо быстро проверить гипотезу, он поднимает временный сервер с mysql/redis/mongodb/elastic. Пароль, конечно, сложный, он везде его использует. Открывает сервис в мир — ему удобно со своего ПК гуём коннектиться без этих ваших VPN. А синтаксис iptables вспоминать лень, все равно сервер временный. Еще пару дней разработки — получилось отлично, можно показывать заказчику. Заказчику нравится, переделывать некогда, запускаем в ПРОД!
Пример намеренно утрированный с целью пройтись по всем граблям:
А в /etc/rsyslog.d/10-iptables.conf
:msg,contains,»[FW — » /var/log/iptables.log
& stop
DDoS по IP
Если злоумышленник знает ваш IP, он может на несколько часов или суток заддосить ваш сервер. Далеко не у всех лоукост-хостингов есть защита от DDoS и ваш сервер просто отключат от сети. Если вы спрятали сервер за CDN, не забудьте сменить IP, иначе хакер его нагуглит и будет DDoS’ить ваш сервер в обход CDN (очень популярная ошибка).
Уязвимости сервисов
Во всем популярном ПО рано или поздно находят ошибки, даже в самых оттестированных и самых критичных. В среде ИБэшников, есть такая полу-шутка — безопасность инфраструктуры можно смело оценивать по времени последнего обновления. Если ваша инфраструктура богата торчащими в мир портами, а вы ее не обновляли год, то любой безопасник вам не глядя скажет, что вы дырявы, и скорее всего, уже взломаны.
Так же стоит упомянуть, что все известные уязвимости, когда-то были неизвестными. Вот представьте хакера, который нашел такую уязвимость, и просканировал весь интернет за 7 минут на ее наличие… Вот и новая вирусная эпидемия ) Надо обновляться, но это может навредить проду, скажете вы. И будете правы, если пакеты ставятся не из официальных репозиториев ОС. Из опыта, обновления из официального репозитория крайне редко ломают прод.
Брутфорс
Как описал выше, есть база с полу миллиардом паролей, которые удобно набирать с клавиатуры. Другими словами, если вы не сгенерировали пароль, а набрали на клавиатуре рядом расположенные символы, будьте уверены* — вас сбрутят.
Уязвимости стека ядра.
Бывает**** и такое, что даже не важно какой именно сервис открывает порт, когда уязвим сам сетевой стек ядра. То есть абсолютно любой tcp/udp-сокет на системе двухлетней давности подвержен уязвимости приводящий к DDoS.
Усиление DDoS-атак
Напрямую ущерба не принесет, но может забить ваш канал, поднять нагрузку на систему, ваш IP попадет в какой-нибудь black-list*****, а вам прилетит абуза от хостера.
Неужели вам нужны все эти риски? Добавьте ваш домашний и рабочий IP в white-list. Даже если он динамический — залогиньтесь через админку хостера, через веб-консоль, и просто добавьте еще один.
Я 15 лет занимаюсь построением и защитой IT-инфраструктуры. Выработал правило, которое всем настоятельно рекомендую — ни один порт не должен торчать в мир без white-list’a.
Например, наиболее защищенный web-сервер*** — это тот, у которого открыты 80 и 443 только для CDN/WAF. А сервисные порты (ssh, netdata, bacula, phpmyadmin) должны быть как минимум за white-list’ом, а еще лучше за VPN. Иначе вы рискуете быть скомпрометированным.
У меня все. Держите свои порты закрытыми!
Закрытые порты! Что делать, если серверов лобби не видно / не подключается?
Закрытые порты – это распространённая проблема, особенно для компьютерных игр. Бывает так, что любимая игра не работает из-за невозможности подключиться, например, к серверу. Или ваше лобби (хост/сервер) в игре никто не может найти. Тогда люди начинают заниматься поисками причины этого недоразумения там, где их нет. Часто проблема заключается не в интернет-соединении и даже не в несовместимости с программным обеспечением.
Как правило, проблема заключается в закрытых каналах для передачи данных, но, чтобы решить эту проблему, необходимо открыть порты. И начать, пожалуй, следует с IP-адреса ПК, поскольку он вам ещё пригодится, когда дело дойдёт до настройки портов в роутере.
Что значит «открыть порт», почему они вообще могут быть закрыты?
Канал передачи данных из внешней сети до вашего компьютера может быть заблокирован по трем причинам:
1) Брандмауэр / Антивирус
Может банально заблокировать приложению доступ в интернет по всем портам. Или в режиме сверхбезопасности по умолчанию блокировать любые данные из сети.
2) Маршрутизатор / Роутер
Дополнительный передатчик усложняет маршрут до компьютера, порой делая его сложным для игры / приложения.
Данные из внешней сети по определенному порту могут дойти до роутера, а тот может не понять, на какое именно устройство (по какому внутреннему IP) их дальше отправить.
3) Вирус / Кривая сборка Windows
Это спонтанные ошибки, наглухо заблокированные адреса, недостаток прав, некорректная работа встроенных в ОС сетевых служб и все такое.
Как бороться с каждой из трех возможных причин, читайте далее в статье, пользуясь пошаговыми инструкциями.
Где и как можно узнать свой IP-адрес?
Если роутер новый, а вы с ним ничего не делали, как его настроили, тогда IP-адрес можно посмотреть на устройстве (на дне или сзади), где заодно будет указан пароль вместе с логином для входа в настройки роутера.
Как узнать IP-адрес на Windows 10?
В случае с Win 10 нужно сделать следующее:
Существует и другой способ узнать IP-адрес на «десятке». Для этого нужно воспользоваться инструментом под названием «PowerShell»:
Несмотря на тот факт, что операционную систему Windows 7 больше не поддерживают, она всё ещё популярна среди уверенных пользователей PC. Поэтому инструкция определённо поможет, если вы тот самый консервативный человек:
Прелесть вышеописанного способа очевидна – не нужно ничего уметь. Достаточно знать, как кликать мышкой. Однако существует и другой способ, благодаря которому IP-адрес можно узнать быстрее, но он не подойдёт для рядовых пользователей ПК:
Также есть и другой способ, который больше всего по душе сетевым администраторам, из-за лишних деталей в графическом интерфейсе, где абсолютно также можно узнать IP-адреса своего модема:
Как проверить статус своих портов?
Перед тем как начнёте разбираться с портами, рекомендуем для начала ознакомиться с их статусом, иначе не узнаёте, какой порт – работает, а какой – нет. И, соответственно, не сможете включить или настроить их.
Проще всего проверить порты с помощью какого-нибудь онлайн-сервиса, где это делается в два клика, например, https://2ip.ru/check-port/ или https://2ip.ua/ua/services/ip-service/port-check, но можно воспользоваться и консолью, если нет желания куда-то переходить.
Как открыть порт через «Брандмауэр Windows»?
Брандмауэр защищает компьютер не только от вирусов, но и ещё от шпионских вредоносных программ, которые запросто могут попасть к вам через интернет-соединение. Кроме того, встроенный защитник умеет отслеживать не только исполняемые процессы, но и трафик, именно поэтому с его помощью можно в некоторых случаях разблокировать определённые порты для конкретных задач.
И обычно при первом запуске приложения/программы «Брандмауэр Windows» спрашивает можно ли запустить тот или иной процесс, где нужно выбрать вариант «Разрешить доступ», благодаря чему он не блокирует приложение, но если по каким-то причинам пропустили этот момент, придётся прибегнуть к нижеописанному способу:
По итогу вы создадите новое правило, которое открывает порт для выбранной игры. Кроме того, описанный выше способ стандартный, то есть он абсолютно идентичный для всех версий ОС Windows, начиная с Win 7 и заканчивая последней на данный момент Win 10.
Важно: дополнительный брандмауэр / сетевой экран / фаерволл может быть встроен в антивирус (ESET Node Smart Security Family / Kaspersky и т.д.). В таком случае следует зайти в его настройки и проверить, не блокирует ли данная навороченная защита конкретное приложение или порт.
Как открыть порт в настройках роутера?
Большинство современных игр и роутеров поддерживают опцию Universal Plug and Play (UPnP), которая создана для избавления от всех проблем с портами. Так что для автоматического «пробрасывания» портов обычно достаточно просто включить ее, поставив галочку в настройках маршрутизатора.
Если включение UPnP не помогает, значит нужно связать IP компьютера в локальной сети и нужные порты вручную. Этот процесс не занимает больше десяти минут, при этом часто помогает решить проблему закрытых портов. Рекомендуем воспользоваться нашими инструкциями:
Примечание: настройка производилась на оборудовании ASUS RT-N12 C1 с микропрограммой 3.0.0.4.260 (черный интерфейс).
Примечание: настройка производится на роутере D-link DIR 615 с белым интерфейсом новейшей микропрограммы 2.5.20.
Примечание: настройка производится на роутере TP-LINK TL-WR940N / TL-WR941ND с микропрограммой 3.13.31.
Примечание: настройка в примере производилась на роутере ZyXEL Keenetic с микропрограммой 2.0.
Что делать, если ничего не помогло?
В таком случае проблема лежит либо на вашей стороне, либо на стороне «любимого» интернет-провайдера. Как определить? Если проблема на вашей стороне, тогда это может быть связано:
Если в очередной раз ничего не помогло, тогда совершенно точно закрытые порты связаны либо с тарифом интернет-провайдера, либо со злыми вирусами:
Как я взломал 40 сайтов за 7 минут (перевод)
Прошлый летом я заинтересовался вопросами информационной безопасности и взлома. Последний год я много играл в wargames, «захват флага», тестирование на проникновение, постоянно совершенствуя навыки взлома и изучая новые способы заставить компьютеры отклоняться от ожидаемого поведения.
Короче говоря, мой опыт ограничивался имитируемой средой, и, считая себя официальным хакером, я никогда не совал нос в бизнес других людей.
Это будет подробная история о том, как я взломал сервер, на котором размещалось 40 (это точное число) веб-сайтов, и о моих находках.
Примечание. Некоторые предварительные знания CS необходимы для понимания технической составляющей статьи.
Друг сообщил мне, что его веб-сайт XSS уязвим, и попросил меня взглянуть. Я попросил у него официальное разрешение на полное тестирование его веб-приложения на его сервере. Ответ был положительным.
В статье я буду ссылаться на сайт моего друга – http://example.com
Первый шаг – найти как можно больше информации о своем враге, пытаясь как можно меньше его тревожить.
На этом этапе мы запускаем наш таймер и начинаем сканирование.
Сканирование завершается по истечении 2 минут.
Множество открытых портов! Судя по тому, что порты FTP (порт 21) и SMB (порты 139/445) открыты, можно предположить, что сервер используется для размещения и совместного использования файлов, а также является веб-сервером (порты 80/443 и прокси на 8080/8081).
При сканировании UDP-порта будет рассмотрено более 1000 портов, если вышеизложенной информации недостаточно. Единственным портом, с которым разрешено взаимодействовать (без учетных данных), является порт 80/443.
Оказывается, путь /admin был «административным инструментом», который позволял аутентифицированным пользователям изменять материал на веб-сервере. Он требует параметры доступа, которых у нас нет (спойлер: gobuster не нашел ничего ценного).
Прошло около 3 минут. Ничего полезного.
Веб-сайт просит нас войти. Нет проблем. Создаем учетную запись с фиктивной электронной почтой, щелкаем по электронной почте подтверждения и входим в систему через несколько секунд.
Веб-сайт приветствует нас, предлагает перейти к профилю и обновить фотографию. Как мило.
Похоже, сайт сделан на заказ. Я собираюсь протестировать уязвимость с неограниченной загрузкой файлов. На моем терминале я выполняю:
Я пытаюсь загрузить «картинку» и – бинго! Загрузчик позволяет загрузить файл exploit.php. Конечно, у него нет эскизов, но это значит, что мой файл где-то загружен.
В конце концов, люди заботятся о безопасности.
Похоже, что webshell готов и работает:
Видим, что веб-сервер запускает perl-скрипты (реально? perl?). Мы берём обратную оболочку perl из нашего любимого cheatsheet, устанавливаем IP/Port и получаем в качестве награды low-privileged оболочку – извините, нет скришота.
5 минут в оценке, и у нас уже есть оболочка с низким уровнем привилегий.
К моему огромному удивлению, на сервере размещался не 1 сайт, а сразу 40 разных. К сожалению, я не сохранил скриншоты каждой детали, но вывод был примерно таким:
Удивительно, но у меня был доступ на чтение ко всем размещенным веб-сайтам, а это означало, что я мог читать весь бэкенд-код сайтов. Я ограничился кодом example.com.
Примечательно, что внутри каталога cgi-admin/pages все скрипты perl соединялись с базой данных mysql как root. Учетные данные для базы данных были в открытом виде. Пусть они будут root:pwned42.
Разумеется, на сервере была запущена MariaDB, и мне пришлось решить эту проблему, прежде чем получить доступ к базе данных. После этого мы выполняем:
И мы находимся в базе данных с привилегиями root.
Через 7 минут у нас есть полный доступ для чтения / записи к содержимому 35 (!) баз данных.
Морально я обязан здесь остановиться и поделиться выводами. Потенциальный ущерб уже огромен.
Что может сделать злоумышленник
Процесс mysql запускался под root, поэтому я решил, что попробовал выполнить \! whoami в надежде получить root. К сожалению, я все еще был apache.
Время отдохнуть. Остановите таймер.
Что может пойти не так?
Я поделился своими выводами и получил разрешение копать глубже.
Прежде чем искать способы повысить свои привилегии до root и иметь возможность причинить огромный потенциальный ущерб, я посмотрел, какие другие интересные файлы мог бы читать, будучи ограниченным пользователем.
Я вспомнил об открытых портах SMB. Это означало, что где-то в папке должна быть другая папка, которая используется в системе среди пользователей. После небольшого поиска в каталоге /home/samba/secure появляется следующее:
Внутри всех этих каталогов были файлы каждого пользователя хостинговой компании. Это включало все виды конфиденциальных данных, среди прочего:
Что может сделать злоумышленник
Потребовалось некоторое время, чтобы пройти через папки и понять, насколько серьезна эта проблема.
Еще один перерыв.
Последний удар
Осмотревшись еще немного как apache, я решил, что пришло время пойти на большую рыбу – получить доступ root. Используя шпаргалки, начинаю перебирать систему.
В процессе исследования на уязвимости я уже перебрал большинство методов и, похоже, не смог найти ничего, что увеличило бы мою точку опоры.
В задачах Capture the Flag, которые я использую для игры, операционная система обычно пропатчена. Это некоторая намеренно неверно настроенная служба, которая в конечном итоге дает вам привилегии root. Однако в реальном мире люди не латают дыры.
Я имею в виду вот что: посмотрите на Equifax (не мог удержаться).
Какой Linux работает на сервере?
Это похоже на старую версию ядра.
Это напоминает вам что-то? Если нет, прочитайте здесь (подсказка: это ОЧЕНЬ серьезно).
Я нашел этот пост в блоге, который указал мне проверить, было ли ядро уязвимым для найденного здесь скрипта.
Временные метки и восстановленные сайты Firefox отредактированы
Игра закончена
Я мгновенно написал электронное письмо, полностью раскрывающее детали и потенциальное влияние каждого шага, как описано выше. Уф.
Что может сделать злоумышленник
На следующий день со мной связался друг (он связался с работающей на сервере компанией) и рассказал, что ошибка в загрузке файлов была исправлена.
Подводя итоги, мы обнаружили следующее:
Наконец, мы злоупотребили непропатченным ядром для получения доступа root.
Решения проблем
Начнем с аплоудера, который дал основной плацдарм. Поскольку бэкенд всего веб-приложения был написан в perl, я не могу предложить решения.
Решение, которое я бы предложил, было бы таким: не использовать perl в 2017 году, но это только мое мнение.
Что касается файловой системы, я рекомендую проявлять большую осторожность при назначении правильных прав доступа к файлам для пользователей в соответствии с принципом наименьших привилегий. Таким образом, даже если низкоприоритетный пользователь, такой как apache, получает доступ, он не может читать конфиденциальные файлы.
Запуск всех веб-сайтов на одном сервере – плохая идея, я не уверен, позволит ли докеризированный подход решить проблему.
Наличие одинаковых учетных данных для всех баз данных – безусловно, плохая идея.
Нежелательно иметь одиночные точки отказа.