Магия ssh

Виды shell: полезная нагрузка meterpreter и другие

В настоящее время считается, что полнофункциональный Meterpreter (МР) существует только под Windows, но на самом деле это не совсем так. Существует еще несколько версий MP, реализованных на PHP и JAVA. Впрочем, ты и сам можешь стать автором «полезной нагрузки» — например, скомпилировать TCL-сценарий shell-кода для Cisco IOS с помощью утилиты tclpro.exe и в дальнейшем использовать его для жестоких игр с железными кошками. Как так? Сам не понимаю :).

Стандартную полезную нагрузку MP можно использовать почти со всеми Windows-эксплойтами, включенными в Metasploit Framework, выбрав одну из следующих полезных нагрузок:

Кратко поясню суть каждой.

  1. bind_meterpreter— резервирует порт на целевой машине и ожидает соединения. После установления соединения происходит загрузка Meterpreter’a на целевой хост, текущее соединение продолжает использоваться для связи с удаленной машиной.
  2. reverse_meterpreter— сама соединяется с предварительно заданным хостом по указанному порту для дальнейшей загрузки Meterpreter’a. Затем установленное соединение используется для связи с удаленной машиной. Все хорошо, но для успешной реализации данного метода нам понадобится реальный IP-адрес (или устанавливай проброс нужных тебе портов через NAT).
  3. find_tag— осуществляет поиск дескриптора службы, обработанной эксплойтом, и использует его для загрузки Meterpreter’a на удаленную машину, после чего существующее соединение будет использовано для связи с ней. Этот вид полезной нагрузки является особенно интересным, поскольку тут не требуется открывать новое соединение — таким образом, существует возможность обхода практически любых конфигураций брандмауэров.
  4. bind_tcp— это обычный командный интерпретатор типа cmd.exe, естественно, без всяких дополнительных наворотов, как у Meterpreter`a. Он просто резервирует порт на целевой машине и загружает стандартную оболочку.

В зависимости от цели исследования системы может быть использована любая из этих полезных нагрузок. Так чего же мы ждем? Выбираем цель из списка, полученного в результате сканирования nmap, и подключаемся к ней. Для простоты эксперимента будем использовать простой командный интерпретатор в качестве полезной нагрузки.

Если уязвимость на удаленной машине существует, то мы получим доступ к шеллу (cmd.exe) этого компьютера, и в окне появится сообщение о том, что сессия успешно установлена. В случае, когда msf определил ОС как Windows 7, можно попробовать использовать 64-разрядные полезные нагрузки, которые имеются в соответствующем разделе (ищем через меню GUI), или вызвать нагрузку через консоль. Пример работы эксплойта с полезной нагрузкой можно посмотреть на видео (ищи ролик на нашем диске).

Полезные команды для SSH клиентов

Рассказать о всех командах Unix будет сложно, поэтому напишем лишь несколько полезных команд:

man — выдаст подробную информацию по команде, например: man mvДля выхода из man, т.е. из руководства по команде, нажмите q (Quit — Выход). —help — также позволит посмотреть описание команды.

ls — вывести список файлов;ls -la — покажет все файлы (включая скрытые), размер файлов, владельца и группу владельца, права на них, дату последнего изменения;ls -lha — то же, что предыдущая команда, только размер файлов будет показан в удобном виде;ls -lha | less — позволит просматривать файлы постранично (если их много);

cd — переход в выбранную директорию;cd ../ — переход на директорию выше;cd ~ — переход в корневую директорию;

mv — переименовать и/или переместить;

rm — удалить;

cp — копировать;

> — очистка файла. Например, можно применить к файлам логов ( > access.log, > error.log, > combined.log);

mc — запуск Midnight Commander — что-то вроде Norton Commander, в котором удобно работать с файлами, а также возможно работать с ними по sftp (ftp внутри ssh);

chmod — установка прав на файл или директорию;

cat -объединяет файл или несколько файлов, либо ввод со стандартного устройства ввода и выводит результат на стандартное устройство вывода;cat — выведет на экран содержимое файла;cat | grep — выведет на экран строки файла, включающие искомую строку;

mkdir — создание директории (папки).

  • https://x-inside.ru/ssh-klienty-dlya-windows/
  • https://FB.ru/article/269605/klient-ssh-nastroyka-luchshiy-ssh-klient
  • https://FirstVDS.ru/technology/ssh-connection
  • https://sheensay.ru/ssh
  • https://FirstVDS.ru/technology/how-to-connect-to-the-server-via-ssh
  • https://www.REG.ru/support/hosting-i-servery/nachalo-raboty-i-dostupy/kak-podklyuchitsya-po-ssh

Что означает 0.0.0.0 в netstat. Различные виды нотаций в netstat и ss

0.0.0.0 — это самый первый IP адрес. Но он относится к IP специального назначения (как например 127.0.0.1) и выполняет разные функции.

Обозначение 0.0.0.0 может иметь разное значение в зависимости от того, где используется. Когда говорят о прослушиваемых портах, это обозначение в Linux символизирует заполнитель, то есть означает «любой IP адрес».

Чем это отличается от * (звёздочки) или от записи :::, которые также встречаются в выводе рассматриваемых программ? В программе ss IPv6 адрес 0:0:0:0:0:0:0:0 (который является аналогом IPv4 адреса 0.0.0.0) обозначается звёздочкой (*). Следовательно, в ss запись 0.0.0.0:* обозначает «любой IPv4 адрес с любого порта». А обозначение *:* символизирует «любой IPv6 адрес с любого порта».

В программе netstat также используется запись 0.0.0.0:* которая также обозначает «любой IPv4 адрес с любого порта».

Но в netstat для обозначения «любой IPv6 адрес с любого порта» используется :::*.

Помните об этих различиях, чтобы не запутаться. А также помните о том, что если показано, что прослушивается протокол tcp6 (IPv6), то одновременно может прослушиваться порт и на tcp (IPv4) — при этом данные в выводимой информации отсутствуют!

В Windows в качестве Локального адреса, когда прослушивается любой IP адрес на определённом порту, используется запись вида 0.0.0.0:80 (в этом примере прослушивается любой IP адрес, доступный в системе, на 80 порту). Для IPv6 адресов в этом случае используется запись вида :80.

В качестве внешнего адреса, когда доступно подключения с любого IP и с любого порта, для TCP протокола пишется 0.0.0.0:0, а для UDP протокола в этих же условиях пишется *:*. Что тоже не особо логично и сбивает с толку. Точнее говоря, объяснение есть и оно вытекает из разницы протоколов TCP и UDP. Но это объяснение скорее философское и в практическом плане ничего не даёт.

Если информация относится к IPv6, то для TCP когда имеется ввиду любой адрес на любом порту, используется запись вида :0. А для UDP используются одинаковые нотации как для IP, так и для IPv6, то есть *:*

Нужно помнить, что некоторые из этих обозначений пересекаются с нотациями из Linux, где они имеют своё собственное значение.

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

Определённый локальный IPv4 адрес на определённом порту

Любой локальный IPv4 адрес на определённом порту

Определённый локальный IPv6 адрес на определённом порту

Любой локальный IPv6 адрес на определённом порту

Любой внешний IPv4 адрес на любом порту

Любой внешний IPv6 адрес на любом порту

Netstat (Windows)

127.0.0.1:9050

0.0.0.0:80

:80

:443

Для TCP: 0.0.0.0:0

Для UDP: *:*

Для TCP: :0

Для UDP: *:*

Netstat (Linux)

2a02:f680:1:1100::3d:80

:::443

0.0.0.0:*

:::*

ss (Linux)

:80

*:443

0.0.0.0:*

*:*

ИЛИ

:*

Исходящее UDP System на 65535 порт DNS – что это за подключение?

Новый компьютер, со свежеустановленными Windows 7 Home Basic, антивирусом и фаерволлом, подключил к сети с помощью ADSL модема в режиме роутера.

Тем не менее, не смог загрузить ни одну страницу.

Посмотрел логи фаерволла. Там заблокированные исходящие UDP соединения процесса System, порт назначения 65535, адрес назначения – DNS, предоставленные провайдером. Разрешил эти подключения – всё заработало, сайты загружаются. Отмечу также, что этот процесс пытается подключиться к некоторым из посещаемых сайтов, вполне респектабельных, а также к IP обновления антивируса. (Я разрешил эти соединения только для DNS, прочее блокируется – тем не менее, все работает).

При внимательном изучении логов обнаружил, что вначале System пытается подключитья к 224.0.0.252 (UDP исходящий порт 49152, порт назначения 65535). Этот мультикастовый адрес использует сервис под названием LLMNR (только в описании сказано, что LLMNR использует 5355 порт). Отключил LLMNR в реестре – исходящих на 224.0.0.252 больше нет, но System продолжает долбиться на 65535 порт DNS.

Стал отключать разные службы, пытаясь определить, не даст ли это какого-то результата. Оказалось, что включение и выключение службы DNS клиент оказывает воздействие.

Первый вариант – служба DNS клиент включена . System (PID 4) пытается соединиться с DNS, порт назначения 65535, исходящий порт 49152. Если это подключение заблокировать, сайты не загружаются. Обращений к IP сайтов не происходит. В активных подключениях нет никаких соединений с DNS, в том числе svchost.exe на 53 порт.

Если разрешить подключение System UDP исходящее на 65535 порт DNS, то всё загружается. В активных подключениях есть svchost.exe, исходящее UDP подключение к 53 порту DNS.

Второй вариант – служба DNS клиент выключена . System (PID 4) пытается соединиться с DNS, порт назначения 65535, исходящий порт 49152. Если это подключение заблокировать, сайты загружаются. Весь софт, взаимодействующий с сетью, запрашивает подключение к DNS (UDP порт назначения 53). В активных подключениях нет svchost.exe. Обновления Windows не происходит (возвращает ошибку), хотя для svchost.exe есть разрешение на соединение с диапазоном IP Windows update. В логах фаерволла нет записей о блокировании svchost.

netstat -a дает, в частности, такую строку UDP 0.0.0.0:49152 *:* netstat -abn говорит что (дословно не помню, но по смыслу) “не удается определить владельца этого подключения”.

Буду признателен, если мне пояснят, что же это за подключение, зачем оно лезет в сеть.

Ответы на вопрос(11)

24 апр. 2014 г., 18:53

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

1. Нажмите Ctrl-Alt-Del и выберите «Запустить диспетчер задач».

Оттуда перейдите на вкладку «Услуги».

Для правильного доступа к базе данных необходимо запустить 5 служб.

В списке ниже «имя базы данных» — это имя базы данных, которое вы указали при создании без кавычек.

Я также использую базу данных 11g, если вы используете другой тип, эти поля будут отличаться ниже. * после home — это домашняя установка, если у вас более 1 базы данных, будут home1 и home2

Это 5 услуг

OracleVssWriter «имя_базы_данный»OracleService «имя_базы_данный»OracleOraDb11g_home * TNSListenerOracleOraDb11g_home * ClrAgentOracleDBConsole «имя_базы_данный»

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

Комментировать

19 авг. 2013 г., 02:37

racle, вы можете удалить ваше tnsname и listener, а затем создать новую конфигурацию с «hostname» или ip address вместо «localhost». такие как listener.ora

tnsnames.ora

Он отлично работает для меня.

Комментировать

15 мая 2014 г., 13:01

Запустите OracleOraDb11g_home1TNSListener

Комментировать

17 дек. 2015 г., 15:51

Чтобы это исправить я запустилПомощник по настройке сети (из меню «Пуск» илиnetca.bat вбункер папку) и просто добавил слушатель.

Комментировать

26 окт. 2013 г., 00:07

e» и скопировал свой SID в поле «Service Name». Не знаю, почему произошло это изменение или почему оно сработало, но вернуло меня к Oracle.

Комментировать

09 нояб. 2012 г., 10:59

Re: SQL DevErr: Сетевой адаптер не смог установить соединение VenCode20 Опубликовано: 7 декабря 2011 3:23 в ответ на: MehulDoshi Ответить

Это сработало для меня:

Откройте диалоговое окно «New / Select Database Connection» и попробуйте изменить настройку типа подключения с «Basic» на «TNS», а затем выбрать сетевой псевдоним (для меня: «ORCL»).

Комментировать

14 мая 2018 г., 06:15

эром. Или отключите брандмауэр и попробуйте.

Комментировать

14 мар. 2014 г., 09:52

проблема — Я не смог подключиться к БД через sql developer.

Решение — Первое, на что следует обратить внимание, это то, что SQL Developer — это только пользовательский интерфейс для доступа к вашей базе данных. Мне нужно подключить удаленную базу данных, а не localhost, поэтому мне не нужно устанавливать Oracle 8i / 9i

Мне нужен только клиент oracle для установки. После установки он получил путь в переменной среды, какC: \ оракул \ продукт \ 10.2.0 \ client_1 \ Bin, Тем не менее я не смог подключить БД.

Вещи, которые будут проверены.

Listner / port должен соответствовать IP-адресу сервера, к которому вы хотите подключиться.Вы сможете пинговать сервер. перейдите к командной строке cmd. наберите ping server Ip, затем введите.telnet IP-адрес и порт сервера. должно быть успешным.

Если все пункты в порядке, проверьте, где вы работаете. Sql developer .exe файл. Я вставил папку разработчика sql в папку C: \ oracle и запустил файл .exe отсюда, и я смог подключиться к базе данных. и моя проблема «Ошибка ввода-вывода: сетевой адаптер не может установить соединение» была решена. Ура … 🙂 🙂

Комментировать

09 янв. 2012 г., 10:42

Если вы не видите вывод о слушателе:

Тогда вам нужно будет запустить его. Для этого выполните команда.

Тип в незамедлительный.

Свернуть комментарии

26 июл. 2013 г., 11:04

Попробуйте удалить старого слушателя, используя NETCA, а затем добавьте нового слушателя с тем же именем.

Комментировать

Серверы и оболочки

В Windows или в Linux SSH-порт открыть не так уж и трудно. Вопрос только в том, какой именно инструментарий для этого будет использоваться.

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

SSH-1 оказался беззащитным перед атаками. Вмешательство в процесс передачи данных в виде схемы «человек посередине» имело свои результаты. Информацию можно было просто перехватить и расшифровать совершенно элементарно. Зато вторая версия (SSH-2) была застрахована от подобного рода вмешательства, называемого session hijacking, благодаря чему и получила наибольшее распространение.

Применение стороннего софта CurrPorts

В рассмотренных выше способах использовались лишь стандартные ресурсы Windows, однако, в Сети есть несколько программ для открытия портов на Windows. Первой на обзоре мы выбрали «CurrPorts» версии 2.51 от разработчика Nir Sofer. Она помогает узнать все свои активные порты на Windows и пригодится для их быстрого освобождения, удаляя ненужный или опасный процесс. Программа бесплатна и легка в освоении.

Для ее использования:

  1. Переходим на сайт разработчика https://www.nirsoft.net/utils/cports.html и скачиваем программу и русификатор на ПК. Русификатор распаковываем в папку с файлами ПО.

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

На скриншоте мы видим, что антивирус Avast занимает два порта: 80 и 443. При желании мы можем закрыть данное соединение из контекстного меню или панели инструментов программы (но делать этого не советуем по понятным причинам). Закрывайте только те ненужные процессы, назначение которых вам известно.

Преимущества

  • Бесплатная программа на русском языке.
  • Не требует установки.
  • Отображает все запущенные процессы и занимаемые ими порты в реальном времени.
  • Предоставляет самую подробную информацию.
  • Можно освобождать порты от одного или всех процессов.
  • Классический понятный интерфейс.

Техническое обоснование

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

Почему конфиденциальность передачи зашифрованных данных предполагает использование протокола SSH в виде исключительно внешнего (гостевого) пользовательского порта? Да только потому, что применяемое туннелирование позволяет использовать так называемую удаленную оболочку (SSH), получить доступ к управлению терминалом посредством удаленного входа в систему (slogin), а также применять процедуры удаленного копирования (scp).

Кроме того, SSH-порт может быть задействован и в том случае, когда у пользователя возникает необходимость выполнения удаленных сценариев X Windows, что в самом простом случае представляет собой передачу информации с одной машины на другую, как уже говорилось, с принудительным шифрованием данных. В таких ситуациях самым необходимым станет использование алгоритмов на основе AES. Это есть алгоритм симметричного шифрования, которое изначально предусмотрено в технологии SSH. И использовать его не только можно, но и нужно.

Закрываем порт

В Windows 10 есть несколько способов, позволяющих закрыть порт 445. Если один из них по каким-то причинам не сработает, прибегните к помощи другого. Но какой бы метод вы ни выбрали, результат будет один — порт 445 перестанет слушаться, то есть подключиться к нему будет нельзя.

При помощи брандмауэра

Брандмауэр — это программа, занимающаяся обеспечением безопасности пользователя, работающего с интернетом, поэтому с помощью неё можно заблокировать потенциально опасные порты. В Windows 10 есть встроенный брандмауэр, который справится с этой задачей:

  1. Разверните поисковую строку Windows, нажав на иконку в виде лупы, находящуюся в левом нижнем углу экрана. Пропишите запрос «Брандмауэр Windows» и разверните найденный вариант. Открываем параметры брандмауэра
  2. В развернувшемся окне панели управления нажмите на строчку «Дополнительные параметры». Открываем дополнительные параметры брандмауэра
  3. Перейдите в папку «Правила для входящих подключений» и начните создание нового правила. Нажимаем кнопку «Создать правило»
  4. Укажите, что правило будет создаваться для порта, и перейдите к следующему шагу. Указываем вариант «Для порта»
  5. Поставьте галочку напротив строки «Протокол TCP» и пропишите порт 445. Выбираем протокол TCP и порт 445
  6. Выберите вариант «Блокировать подключение». Выбираем «Блокировка подключения»
  7. Не снимайте галочки со всех трёх пунктов, пусть блокировка распространяется на всё уровни. Оставляем применение созданного правила для всех профилей
  8. Пропишите понятное название и описание, которое в будущем позволит вам вспомнить, за что отвечает созданное правило — вдруг вам или другому пользователю придётся разблокировать этот порт. Указываем имя и описание для задачи

При помощи командной строки

Командная строка позволяет управлять всеми настройками системы. В том числе через неё можно открывать и закрывать порты:

  1. Разверните поисковую строку Windows, нажав на иконку в виде лупы, находящуюся в левом нижнем углу экрана. Введите запрос cmd и разверните командную строку с правами администратора, кликнув по ней правой клавишей мыши.
  2. Сначала выполните команду netsh advfirewall set allprofile state on, а после — netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=445 name=«Block_TCP-445». Выполняем запрос netsh advfirewall set allprofile state on и netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=445 name=«Block_TCP-445»

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

При помощи реестра

В реестре хранятся значения для всех параметров операционной системы. Изменяя их, можно активировать или деактивировать порт:

  1. Нажмите комбинацию клавиш Win + R, чтобы вызвать окно быстрого доступа. Пропишите в нём запрос regedit и выполните его. Выполняем запрос regedit
  2. Оказавшись в реестре, проследуйте по следующим разделам: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters. В конечной папке кликните по пустому месту правой клавишей мыши для вызова контекстного меню, выберите функцию «Создать» — «DWORD 32-bit» (или «DWORD 64-bit», если у вас стоит 64-битная Windows 10). Задайте имя созданному параметру — SMBDeviceEnabled, а после кликните по нему дважды левой клавишей мыши и убедитесь, что его значение — 0 (ноль). Открываем раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters и создаем параметр SMBDeviceEnabled

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

При помощи WWDC

После того как вы загрузите и откроете программу, появится список портов и их состояние: enable — включён, disable — приостановлен, close — закрыт. Отыщите среди всех портов номер 445 и кликните по кнопке, находящейся под его названием — его состояние изменится. Вы должны установить вариант close.

После того как нужный параметр будет установлен, изменения вступят в силу и порт 445 будет закрыт.

Видео: как закрыть порт в Windows 10

Порт 445 отвечает за удалённую работу с общими принтерами и папками. Его минус заключается в том, что он снижает уровень защиты системы. Чтобы обезопасить себя от вирусов, стоит закрыть этот порт, прибегнув к помощи брандмауэра, командной строки, реестра или приложения WWDC.

LLMNR в systemd-resolved

Отдельного упоминания заслуживает поддержка в systemd-resolved протокола LLMNR (Link-Local Multicast Name Resolution). Этот протокол позволяет узлам в одной сети (широковещательном домене) обращаться друг к другу по имени хоста, не прибегая к услугам DNS вообще. Работает это следующим образом: какая-нибудь программа пытается обратиться к хосту в своей сети по имени, используя, как мы уже упоминали, библиотечные вызовы; локальный DNS-резолвер, как например герой нашей статьи — systemd-resolved, сначала попытается найти запрашиваемый хост в своей сети, делая групповой запрос на адрес 224.0.0.252 для ipv4 и FF02::1:3 для ipv6; если в сети есть хосты с поддержкой LLMNR и среди них окажется тот, имя которого будет соответствовать запрашиваемому, systemd-resolved незамедлительно вернет запрашивающей программе IP-адрес интересующего ее хоста

Однако стоит заметить, что для работы этого протокола очень важно правильно конфигурировать hostname на каждом компьютере в сети. Вы должны использовать короткую нотацию — не FQDN

В linux имя хоста указывается в /etc/hostname. Вы также можете использоать команду ‘hostnamectl set-hostname NAME’ для горячего изменения hostname компьютера. Ну и конечно же, LLMNR должен быть включен в вашем systemd-resolved. Это можно проверить по выводу команды ss:

Да, стандартный порт LLMNR — 5355 для TCP и UDP. Если вы обнаружили, что LLMNR порт никем не слушается, проверьте настройки в файле /etc/systemd/resolved.conf — LLMNR должен быть выставлен в «yes».

В завершении статьи небольшое отступление, советы по использованию:

Установка и первичная настройка systemd-resolved

Для работы с systemd-resolved вам понадобится демон systemd-resolved. В Ubuntu он уже входит в пакет systemd (в 16.04 точно), а вот в Centos 7 его придется доустановить:

Так же необходимо убедиться в наличии библиотеки libnss_resolve.so — без нее приложения не смогут связываться с резолвером.

В Centos эта библиотека входит в пакет systemd-resolved, а в ubuntu придется выполнить:

Следующим шагом будет правка файла /etc/nsswitch.conf. Находим строчку, начинающуюся с «hosts:» и приводим к виду:

Поясним. Эта строка отвечает за последовательность обращений приложения к системным компонентам с целью резолвинга интересующего приложение имени. В данном случае сначала программа заглянет в файл /etc/hosts и, если не обнаружит там возможностей по разыменованию (совпадения по имени), обратиться уже к демону systemd-resolved с просьбой сделать это для себя любимой. Ранее в этой строке у вас скорее всего было упоминание слова «dns», заставляющее приложение самостоятельно обращаться к DNS серверам с целью резолвинга. Мы удалили эту возможность за более ненадобностью. К тому же этот способ значительно медленнее, чем обращение напрямую к локально установленному демону systemd-resolved, который, к слову, еще и поддерживает кэширование полученных записей. Конечно же, самое первое обращение всё равно будет сопровождаться запросом systemd-resolved к DNS серверам, но потом накопленный кэш существенно ускорит эти операции. Небольшое замечание: конечно же, приложение само не делает никаких обращений — оно просто не умеет. Всё это делается по средствам библиотечных вызовов. Именно поэтому мы доустанавливали библиотеки в начале статьи и именно поэтому использование systemd-resolved эффективнее, потому что библиотечные вызовы быстрее, чем обращения, производимые с использованием стека TCP/IP.

Открытым остался вопрос о том, как сообщить systemd-resolved IP-адреса DNS серверов, к которым следует обращаться для разыменования запросов приложений. Можно определить DNS сервера в файле /etc/systemd/resolved.conf, можно их определить в файлах «.network» демона systemd-networkd, а можно, пользуясь DHCP с привлечением того же systemd-networkd получать эти адреса автоматически от сервера DHCP. Но для этого у вас должен быть запущен и настроен systemd-networkd. Если его нет, или вы не хотите его использовать, то единственным вариантом остается /etc/systemd/resolved.conf.

Для целей совместимости с приложениями, которые по каким-либо причинам не используют библиотечные вызовы, а обращаются к DNS серверам напрямую, получая их IP-адреса из /etc/resolv.conf, следует создать символическую ссылку:

Нам остается только запустить сервис и наслаждаться резолвингом с помощью systemd-resolved:

Выясняем, открыты ли порты

В большинстве случаев порт 445 в Windows открыт, так как возможности совместного доступа к принтерам и файлам автоматически включаются еще при установке Windows. Это можно легко проверить на своей машине. Нажмите сочетание клавиш Win + R, чтобы открыть окно быстрого запуска. В нем введите “cmd” для запуска командной строки. В командной строке наберите “netstat –na” и нажмите Enter. Данная команда позволяет просканировать все активные сетевые порты и вывести данные об их статусе и текущих входящих подключениях.

Через несколько секунд появится таблица статистики по портам. В самом верху таблицы будет указан IP-адрес порта 445. Если в последнем столбце таблицы будет стоять статус “LISTENING”, то это означает, что порт открыт. Аналогичным образом можно найти в таблице порт 139 и выяснить его статус.

Что такое TCP-порт

Порт 445 является одним из TCP-портов. TCP — это протокол, то есть набор условий и правил, обеспечивающий стабильное взаимодействие между несколькими устройствами через интернет. Этот протокол, как и всё остальные, устанавливает определённый формат передачи информации. Если бы его не было, то, например, с одного устройства пакет информации отправлялся бы в виде строки «Пользователь: Name», в то время как другое устройство ожидало увидеть строку «Name — пользователь», вследствие чего оно не смогло бы правильно обработать запрос и интернет-соединение прервалось.

TCP протокол также обеспечивает безопасность, выполняя проверку IP-адреса (уникального номера устройства) при отправке каждого пакета данных. Благодаря этому даже если в поток пересылаемой информации внедрится какое-либо постороннее устройство, данные ему отправлены не будут.

За что отвечает порт 445

Порт под номером 445 — один из многих, работающих по протоколу TCP. Но у него есть определённая задача, которой не занимаются другие порты, — обеспечение соединения между общими принтерами, сканерами и папками. Общими называются устройства и данные, доступ к которым можно получить с любого компьютера, а не только с того, к которому они подключены или на котором находятся.

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

Имея подключение к порту 445, можно также просматривать содержимое жёсткого диска и изменять его.

Почему порт 445 стоит закрыть

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

Чем опасны открытые порты

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

Фактически, вы открываете совместный доступ к своему жесткому диску любому, кто сумеет получить доступ к данным портам. При желании и умении злоумышленники могут просмотреть содержимое жесткого диска, а то и удалить данные, форматировать сам диск или зашифровать файлы. Именно это и делали вирусы WannaCry и Petya, эпидемия которых прокатилась по миру этим летом.

Таким образом, если вы заботитесь о безопасности своих данных, будет не лишним узнать, как закрыть порты 139 и 445 в Windows.

Что такое «Порт» и зачем он нужен

Основная задача персонального компьютера – обрабатывать информацию, используя для этого множество программ разного назначения. Большая часть программ обращается к собственному серверу для получения и отправки пакетов данных, например, регулярных обновлений или отдельных файлов (файлообменники). Передача информации происходит по определенному каналу – порту. Каждый порт (туннель) имеет свой номер, являющийся идентификатором и определяющий его назначение. Например, чтобы воспользоваться удаленным рабочим столом другого компьютера, нужно проверить статус и при необходимости открыть порт 3389.

При установке новой игры или другого софта по умолчанию происходит автоматическая проверка туннеля и подключение к серверу. Брандмауэр Windows выводит окно на экран с предложением о разрешении или запрете активности данной программы в сети. Если такового не наблюдается и ПО не хочет подключаться – нужно открыть его порт на компьютере.

Итоги

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

С моего забора вижу так. Во-первых, основная вина на горе-производителях дырявых IoT устройств и встроенных систем. Все эти XiongMai и Dahua. С опозданием, но производитель отзывает из продажи IP-камеры. Однако, беглый обзор новостей показывает, что PR-отделы китайских компаний и сотрудники министерства коммерции не даром едят свой хлеб.

Во-вторых, конечно виноваты регулирующие органы — те, кто их сертифицирует и дает положительное заключение. Из отчета Rapid7.

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

P. S. Пока набирал текст, возникло сильное желание — проверить домашний роутер nmap-ом и прочими инструментами. Проверил и успокоился, но видимо ненадолго.

Использованные материалы

  1. W. Richard Stevens TCP/IP Illustrated, Volume 1, The Protocols, 1994.
  2. TCP/IP крупным планом
  3. Telnet stále žije – alespoň na „chytrých“ zařízeních
  1. Из романа М. Булгакова «Мастер и Маргарита».
  2. Результаты говорят сами за себя. Несмотря на все призывы IAB, IETF и практически всех экспертов по безопасности, обязательное шифрование еще не стало нормой при разработке интернет стандартов. Обычный текст, «просто работает» и из-за этого игнорируются требования безопасности.
Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий