Бесплатный сканер портов
Содержание:
- Использование
- Что такое проброс портов?
- 9) LAN Sweeper IP Scanner
- Как провести сканирование скорости
- Лучшие программы-сканеры сети на Windows
- Сканеры открытых портов и айпи адресов
- Зачем делать проверку открытых портов по IP онлайн
- А как закрыть?
- So, why building a port scanner? and why in c?
- Защита от сканирования портов
- Как работает Nmap?
- Download the full tool code here (c/c++):
- Почему важно знать, какие порты открыты на компьютере?
- Цели сканирования портов
- Использование утилиты Angry IP Scanner
- Способы сканирования портов
- Как пользоваться Nmap для сканирования портов в Linux
- Compile and build using Visual Studio:
Использование
Пользоваться данным сканером нетрудно, но у некоторых могут возникнуть трудности из-за обширного функционала приложения, поэтому далее будет описана подробная инструкция по работе с программой:
- У каждого из найденных девайсов можно вызвать контекстное меню, нажав на ярлык устройства из списка правой кнопкой мыши.
- Пункт «Просмотр» позволит зайти в содержимое каталогов на ПК, к которым разрешён общий доступ. В нашем случае такие папки отсутствуют, поэтому открывается пустой каталог. При наличии папок с открытым общим доступом появится их содержимое.
- Второй пункт позволит скопировать в буфер обмена информацию о статусе оборудования (включено или выключено), имени, ip-адресе, производителе, MAC адресе или всех данных вместе. Это пригодится для вставки в какой-либо документ или файл.
- Добавление в избранное и так понятно что сделает (добавит ПК в избранные). Данную опцию рекомендуется применять для наиболее часто используемых элементов локальной сети, это позволит быстрее их находить в случае необходимости.
- Пункт «редактировать комментарий» позволит оставить какой-либо комментарий об устройстве (например сообщение о неисправности или просто послание другим пользователям). Особой функциональной нагрузки это за собой не несёт.
- Пункт «переименования» позволит задать уникальное имя для устройства, чтобы в дальнейшем его было легче находить из списка (особенно это актуально, когда гаджетов очень много, в результате чего можно запутаться в списке одинаковых наименований).
Опция «Сканировать выделенное» позволит просканировать оборудование на наличие подключений к другим подсетям.
-
«Сохранить выделенное» сохраняет все данные о гаджете в отдельный XML, HTML или CVS документ (на выбор юзера). Это может быть нужным для дальнейшей отправки информации по электронной почте или другим доступным для вас способом.
- Опция «Wake-on_LAN» позволит удалённо вывести PC или ноутбук из спящего режима или гибернации. Данная опция работает далеко не со всеми устройствами и операционными системами.
- Выключение полностью отключит ПК.
- «Отменить выключение» позволит подать на отключаемый компьютер или другую технику сигнал, прерывающий завершение работы.
- В «Инструментах» находятся консольные команды, позволяющие провести диагностику сети или отдельного её компонента.
- Инструмент «Ping» запустит длительный обмен небольшими пакетами, благодаря которому можно определить задержку сигнала или процент потерь пакетов.
- «Tracert» может определить количество узлов, которое пакету необходимо пройти до выбранного ПК. В случаях нарушения работы сети эта команда поможет найти неисправное или глючное устройство
.
- Опция «Telnet» позволяет управлять компьютерами и серверами по соответствующему протоколу (telnet). Единственное условие — оборудование должно поддерживать данный протокол.
- SSH делает примерно то же, что и Telnet, только использует для этого другой протокол.
- Пункт RDP позволяет воспользоваться удалённым рабочим столом операционных систем Windows (на PC под Linux или MAC OS это может не работать).
- Последняя опция под названием «Radmin» потребует установки на другие ПК или ноутбуки «Radmin Viewer», без этого все возможности будут недоступны. Для загрузки необходимого ПО стоит перейти сюда на сайт и скачать нужную версию утилиты.
- Запустить ранее загруженный файл.
- Принять условия пользовательского соглашения.
- Установить софт на компьютер, к которому в дальнейшем будет получен доступ через «Radmin».
- После установки «Radmin Viewer» все перечисленные опции будут доступны, из их названия должно быть понятно, что они делают.
Что такое проброс портов?
Проброс портов (Port Forwarding, иногда Virtual Servers) — специальная настройка на роутере, позволяющая перенаправить внешние запросы (из интернета) на компьютеры локальной сети. По сути это способ указать, на какой локальный компьютер пересылать данные и запросы подключения, пришедшие на определенный порт.
Допустим, у вас дома игровой или веб-сервер, подключенный через роутер к интернету. Все компьютеры, подключенные к этому же роутеру, находятся в одной сети, поэтому смогут подключиться к данному серверу. Однако снаружи, из интернета, подключиться к вашему серверу без проброса портов уже не получится.
Если ваш компьютер подключен к интернету напрямую (без роутера/маршрутизатора), то выполнять проброс портов не требуется. Все ваши открытые порты должны быть доступны из интернета (естественно, при наличии выделенного IP).
9) LAN Sweeper IP Scanner
This tool is free for scanning up to 100 assets (network nodes). Above that, there is a charge of $1 per asset per year.
LAN Sweeper IP Scanner has an integrated help desk, central communication hub, and ticketing system that allows users and agents to open tickets related to network issues. This puts it a step above other IP-scanning programs.
Other than that, it includes all basic and advanced features that a network admin will need in a network discovery software.
The IP scanner functionality of the software is just a small part of a whole umbrella of all the features that are offered. This is a full-fledged centralized IT inventory management solution.
Как провести сканирование скорости
Первый параметр, который стоит просмотреть на предмет ошибок, — это скорость передачи данных. Если при обмене пакетами информации в ЛС происходят сбои, замедления потери команд, то налицо нарушение протоколов или конфликт адресов. В таких случаях стоит начинать искать неполадку. Просмотреть информацию о скорости передачи данных можно через «Командную строку» или стороннее ПО.
С помощью «Командной строки»
Терминал «Командной строки» — уникальный инструмент для управления компьютером и вывода необходимой информации пользователю. Консоль также может помочь с АЛС, в частности вывести отчёт о скорости доступа в ЛС:
-
Чтобы запустить «Командную строку», открываем меню «Пуск», переходим в папку «Служебные» и кликаем по иконке «Командная строка».
-
В терминале прописываем первую команду ipconfig /all. Внимательно смотрим на выведенную информацию и находим строку «Основной шлюз», где будет указан сетевой адрес роутера. Это значение нам понадобится для дальнейших действий.
-
Запускаем команду Ping, указывая адрес шлюза (в данном случае команда имеет вид Ping 192.168.137.1), и ожидаем несколько секунд, пока произойдёт обмен пакетов с маршрутизатором. Результат будет опубликован почти мгновенно, сразу же после обработки данных.
Если максимальное значение будет больше 1500 мсек даже в беспроводной сети, имеет смысл провести анализ трафика, а также проверить каждый компьютер на наличие вредоносного ПО антивирусными программами.
С помощью сторонних программ
Не только с помощью «Командной строки» можно узнать скорость внутри ЛС. Существуют дополнительные инструменты в виде сторонних программ. По интернету их гуляет огромное количество и большинство схожи между собой как по интерфейсу, так и по выводимым данным. Одной из таких утилит является LAN Speed Test. Утилита на должном уровне справляется с анализом скорости, имеет простой и понятный интерфейс.
- Скачиваем, устанавливаем и запускаем программу.
-
На главной странице приложения нажимаем кнопку Start Test.
-
В течение пары секунд получаем исчерпывающую информацию о возможностях передачи данных в ЛС.
Также для анализа можно использовать другие утилиты, к примеру, Iperf или LAN Bench.
Первая весьма полезная для домашней и небольшой корпоративной сети. Приложение можно установить на все машины и следить за пингом. Оно весьма полезно, так как может производить мониторинг и вести записи продолжительное время.
Iperf — это программа для слежки за пингом и выявления небольших неполадок в ЛС
LAN Bench — это минималистическая утилита, похожая на LAN Speed Test. Ею очень легко мониторить скорость и пинг в сети, достаточно открыть интерфейс и нажать кнопку Test. Ниже сразу начнут появляться результаты.
LAN Bench — это простейшая утилита для оценки скорости ЛС
Лучшие программы-сканеры сети на Windows
Разберемся, с помощью каких инструментов лучше всего управлять IP-адресами и сканировать локальные сети.
Free IP Scanner
Легкий инструмент для одновременного сканирования сотен компьютеров. Применяет многопоточную технологию. Исследует каждый IP-адрес, анализирует порты и отображает информацию NetBios (рабочая группа, домен, имя хоста, MAC-адрес). Результаты проверки могут оформляться в текстовый документ и экспортироваться.
В настройках можно выбрать сканирование по уровням приоритета, установить большее количество потоков, внести изменения в анализ портов.
Требования к аппаратному обеспечению: 8 Мб оперативной памяти и 10 Мб внутренней. Программа не нуждается в установке.
LANScope
Многопоточный сканер предназначен для анализа диапазонов адресов, выявления открытых к записи и чтению каталогов, а также назначения прав доступа к ним. Программа способна исследовать удаленные устройства на предмет установленных серверов (ftp, http). Список найденных компьютеров хранится в памяти. Это значительно экономит время на сканировании всей подсети.
Сканер работает с NetBios и FTP ресурсами. Приложение может искать ресурс по заданному имени.
Требования к системе: 2,2 Мб свободной памяти на винчестере и 128 Мб ОЗУ. LANScope работает совместно с программами-лантриксами, предназначенными для более автоматизированного выполнения трудоемких задач в сети. В их числе:
LANSpy работает с поиском открытых портов и собирает полную информацию о компьютере.
LANSend оправляет сообщения на удаленные устройства или группы компьютеров в режиме реального времени.
LANSafety настраивает сетевые параметры в операционной системе. Может запретить анонимный доступ, административные ресурсы или скрыть устройство в сетевом окружении.
LANShutDown отключает или перезагружает компьютеры по сети с предварительным оповещением. Может работать одновременно с группой устройств.
LANLoad позволяет копировать данные между компьютерами при неустойчивом интернет-соединении. Оснащен функцией приостановки и продолжения процесса.
LANCalculator проводит расчеты параметров IP-адресов, учитывая маску подсети.
LANWhoIS собирает информацию о доменах и IP-адресах. С помощью утилиты можно узнать, кто, когда и где зарегистрировал сайт, и кем он на данный момент обслуживается.
Программы-лантриксы важно инсталлировать и запускать от имени администратора
Advanced IP Scanner
Advanced IP Scanner можно установить на ПК или использовать его портативную версию. Это бесплатный многопоточный сканер всех активных устройств. Приложение собирает информацию о каждом ПК в сети: MAC-адрес, сетевое имя, производитель сетевой карты, доступные общие сервисы. Все опции сканирования настраиваются: изменяется скорость или исключаются проверки определенных ресурсов.
AIPS поддерживает работу с программой Radmin, поэтому находит устройства с установленным Radmin Server. Это инструмент для удаленного управления компьютером с помощью графического интерфейса. Radmin интегрирован прямо в AIPS, поэтому его можно установить на устройство из-под программы. Если на вашем компьютере стоит приложение Radmin Viewer, вы сможете управлять удаленными ПК из списка результатов сканирования.
Результаты сканирования сохраняются в файлы формата CSV, HTML или XML. К данным всегда можно обратиться, чтобы не выполнять проверку повторно. Программа способна отключать или включать компьютеры с функцией Wake-on-LAN.
Сканеры открытых портов и айпи адресов
Использование бесплатных программ
Для сканирования Сети на сегодня существует множество бесплатных программ, которые довольно дружелюбны по интерфейсу и предоставляют при этом множество полезных инструментов. Следует заметить, что в основном они все рассчитаны на работу под ОС семейства Windows. Вот некоторые из них:
- Advanced IP Scanner v.1.4. Из всех бесплатных программ этот сетевой сканер самый быстрый, при этом он умеет не только находить ПК в режиме «онлайн», но и определять NetBIOS имя, версию ОС и MA- адрес. Также есть набор утилит, позволяющих управлять удаленным хостом.
- Advanced LAN Scanner v1.0 BETA. Подобна предыдущей программе, позволяет сканировать Сеть, но включает в себя работу с портами.
- Advanced Port Scanner v1.2. Также бесплатная программа, при помощи которой можно просканировать открытые порты удаленного хоста.
- IP-Tools v2.50. Это уже не просто обособленная программа, а набор инструментов, включающий в себя 19 утилит, позволяющих осуществлять детальный просмотр и анализ параметров локально-вычислительной Сети.
- Angry IP Scanner 2.21. Простая утилита для сканирования IP-адресов и портов.
- SuperScan 4. Довольно гибкий сканер, позволяющий в дополнение к стандартным функциям задавать тип сканирования (устанавливать флаги), о которых было написано ранее.
- NMAP (https://nmap.org). Это также целый набор инструментов, который стоит в конце списка только по той причине, что не имеет дружественного интерфейса. При этом он совмещает в себе все известные профессиональные утилиты для работы с Сетью, распространяется для всех платформ, причем как в виде сборок, так и в виде исходного кода (что позволяет писать собственные приложения с его использованием).
Программа для определения IP-адресов в локальной Сети
Выше уже рассматривался целый список программ, который позволяет найти и вывести IP-адреса хостов в Сети, при этом оптимальным является Advanced IP Scanner. Следует заметить, что как Windows, так и Linux в своем распоряжении имеют набор встроенных сетевых утилит, одна из которых называется «ARP — Address Resolution Protocol», или протокол определения адреса. Для того чтобы при помощи ее вывести список IP-адресов в локальной Сети, необходимо открыть командную строку (cmd или bash) и ввести команду arp -a, после чего нажать «Enter». Результатом будет таблица, содержащая NetBIOS имя, IP-адрес, MAC-адрес и способ его получения (динамический или статический).
Зачем делать проверку открытых портов по IP онлайн
Приём и передача информационных пакетов в пределах одного хоста осуществляется через порт, то есть через цифровую «платформу прибытия», которая определяет форму и степень взаимодействия компьютера и сети. Проверка порта компьютера или сайта по IP – это инструмент, который использует локальную или глобальную сеть для обнаружения и вычисления параметров точек доступа устройств подключенных к ней в режиме реального времени.
Проверка открытых портов позволит:
- Находить открытые порты – программное обеспечение находит действующие точки связи, через которые устройство получает и передаёт данные;
- Определять ОС устройства – хакеры часто используют сканеры, чтобы определять операционку пользователя и использовать её слабые точки в личных целях;
- Просматривать рабочие сервисы – через порт хоста можно смотреть, какие сервисы в данный момент используются операционной системой, а значит собрать больше данных об устройстве, подключенном к сети;
- Проверять уязвимость системы – сканер портов Windows позволит провести проверку безопасности и ликвидировать вариант осуществления атаки.
Сканирование интернета на предмет открытых портов связи с компьютером произвольного пользователя или веб-сервером отдельного сайта позволяет хакерам подготавливать и инициировать атаки, а администраторам обнаруживать и исключать возможности проникновения.
А как закрыть?
Разобравшись с тем, как проверить открыт ли порт, пользователя может заинтересовать и другой вопрос: если он всё-таки активен, то как закрыть его при необходимости? На самом деле это не столь сложно.
Основное — отыскать и устранить причину, делающую его доступным. Если это процесс программы или запущенная служба, то её необходимо отыскать через диспетчер задач и закрыть или остановить. Но бывает и так, что обычные приложения тут ни при чём… тогда есть все основания тщательно проверить компьютер антивирусом на возможное наличие вредоносного программного обеспечения. Если доступ к интернету осуществляется через роутер — найти и удалить лишние правила проброса портов. А для дополнительной защиты можно установить более продвинутый файервол.
So, why building a port scanner? and why in c?
As the nature or this site, open port, we are into port checker, and port scanning so why not understanding deeper this field by developing a small basic open port scanner for the windows operation system.
If we simplify the subject we need to code a small piece of code that can check one port at the time and then we can loop it with a list of ports that we want to check, slow? yes, not elegant? yes, but will do the job Yes!
Once we have this piece of code we can build on top of it something more elegant that use threads to check more then one port at the time as an example.
We can also use more then one method to check if port is open, it will be more advanced port scanner but we can use the Winpcap library to add more scan methods, like the SYN scan, I may do this scanner upgrade in another post.
Why C/C++?
C/C++ is a great language and I love developing all kind of tools using this language, it also support deeper option as if we want to change this tool to a more advanced port scanner c/c++ is my chosen language, if you need to dive deep into the system internal or deeper into drivers this is your language..
Защита от сканирования портов
Фактически, защититься от сканирования портов невозможно, единственный способ – это отключить компьютер от Сети. Обезопасить соединение реально, используя так называемый белый список для брандмауэра, когда открыты только те порты, которые необходимы для использования. При этом службы, настроенные на них, должны применять нестандартные конфигурации.
Ранее уже было сказано о сетевых «ловушках». Здесь следует упомянуть о принципе действия одной из них, которая является весьма эффективной:
- на сервере настраивается брандмауэр и форвардинг так, чтобы стандартным службам соответствовали нестандартные порты;
- на стандартные порты устанавливается утилита, которая, со своей стороны, на любой запрос активирует сканер портов для хоста, который пытается их опросить;
- полученная информация сохраняется в файл, также возможна отправка в ответных пакетах троянских программ, шпионов и т. д.
Как работает Nmap?
В компьютерных сетях все подключенные устройства имеют свой ip адрес. Каждый компьютер поддерживает протокол ping, с помощью которого можно определить подключен ли он к сети. Мы просто отправляем ping запрос компьютеру, и если он отзывается, то считаем, что он подключен. Nmap использует немного иной подход. Компьютеры также определенным образом реагируют на те или иные сетевые пакеты, утилита просто отправляет нужные пакеты и смотрит какие хосты прислали ответ.
Но об этом вы, наверное, уже знаете. Более интересно то как Nmap узнает какие сервисы запущены на машине. Суть работы всех сетевых программ основана на портах. Чтобы получить сообщение из сети, программа должна открыть порт на вашем компьютере и ждать входящих соединений. А для отправки сообщения по сети нужно подключиться к уже другой программой (адресатом) порту. Затем программе необходимо будет открыть порт, на котором она будет ждать ответа.
Утилита nmap в процессе сканирования сети перебирает доступный диапазон портов и пытается подключиться к каждому из них. Если подключение удалось, в большинстве случаев, передав несколько пакетов программа может даже узнать версию программного обеспечения, которые ожидает подключений к этому порту. Теперь, после того, как мы рассмотрели основы, рассмотрим как пользоваться nmap для сканирования портов и сети.
Download the full tool code here (c/c++):
Here is the tool help screen:
free port scanner help screen
How To Use:
FreePortScanner -h <host> -p -v
Options:
-h <host>: the target host we want to check its ports.
-p : the ports that we want to check on the target host.
-v: verbose more, show more information.
-?: show this help.
Example:
FreePortScanner -h openport.net -p 80-500
Will scan from port 80 to port 500 on the openport.net web site.
Page on site: https://openport.net/windows-port-scanner/
Coded for and by the OpenPort.net team.
Copyright (c) 2018 by OpenPort.net, All rights reserved.
Disclaimer:
The software is provided “AS IS” without any warranty,
either expressed or implied, including, but not limited to,
the implied warranties of merchantability and fitness for a particular
purpose. The author will not be liable for any special, incidental,
consequential or indirect damages due to loss of data or any other reason.
License:
This utility is released as freeware. You are allowed to freely distribute
this utility via floppy disk, DVD/CD-ROM, USB Devices, Internet, or in any
other way, as long as you don’t charge anything for this. If you distribute
this utility, you must include all files in the distribution package,
without any modification!
Source Code:
In addition to the above, in the source code section you are allow to freely
do what ever you want with the code, as long as you drop a line for the
OpenPort.net in your code and/or credits page.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Почему важно знать, какие порты открыты на компьютере?
Открытый порт на вашем компьютере (если не настроен файервол для запрета входящих соединений) означает, что к вашему компьютеру можно подключиться из вне.
Если с вашим компьютером случалась такая неприятность как заражение трояном, бэкдором (вирусы, которые позволяют злоумышленнику удалённо подключаться к вашему компьютеру и управлять им), то обычно такой бэкдор открывает порт и прослушивает сеть, в ожидании входящего соединения (хотя могут быть варианты).
Ещё один пример, когда нужно определить, какая именно служба прослушивает порт: вы пытаетесь установить сетевую службу (веб-сервер Apache или СУБД MySQL), а они не запускаются, так как какая-то другая служба уже заняла их порт, который они используют по умолчанию. В этом случае нужно найти эту службу и отключить её или настроить на работу с другим портом.
Но, как и во многих IT задачах (да и вообще во многих профессиональных сферах), получить данные это только самое начало. Главное — это правильно их истолковать и понять.
Поэтому в этой статье мы рассмотрим, как узнать, какие порты открыты, как проверить, какая служба прослушивает определённый порт, а также научимся правильно понимать вывод команды NETSTAT и аналогичных.
Цели сканирования портов
Сканирование портов позволяет узнать:
- состояние портов (открыты, закрыты или защищены брандмауэром);
- перечень запущенных на портах служб;
- тип устройства, семейство ОС.
Злоумышленники используют эту информацию для подготовки атаки. В частности, для проникновения они могут воспользоваться уязвимостями в доступных извне сетевых службах, операционной системе устройства и так далее.
Специалисты по безопасности используют эту информацию для совершенствования защиты ресурсов организации. Так, по результатам сканирования можно поместить уязвимые службы за брандмауэр и закрыть ненужные порты.
Использование утилиты Angry IP Scanner
Angry IP Scanner — это бесплатное решение по сканированию портов компьютера или сервера.
Скачать утилиту https://angryip.org/
Обращаю внимание, что для работы приложения у вас должна быть установлена Java на компьютере, где будите производить запуск вашего порт-сканера, иначе не заработает ничего
Установка Angry IP Scanner очень тривиальная ,на этом я останавливаться не буду, от вас потребуется везде нажать далее. Открываем ваш сканер портов. Я это буду делать на своем тестовом контроллере домена. Когда вы откроете свой сканер портов, у вас будет форма выбора диапазона IP адресов в вашей локальной сети. Так же вы можете указать список адресов из текстового файла.
Структура такого файла представлена на картинке, тут ip-адреса идут с новой строки.
Если вы сканируете порты у целой подсети, то вам нужно указать ее префикс (Маску). После чего нажимаем «Старт».
Наш сканер открытых портов начнет планомерно проверять каждого участника. Цветовое обозначение узлов:
- Синий цвет означает, что данный хост доступен, но для него не заданы порты сканирования, об этом так же говорит статус «Ports n/s (Not/Scan)»
- Зеленый цвет, что хост доступен и для него определены порты для сканирования
- Красный цвет — не доступен
Настроим диапазон портов, которые я бы хотел проверить на предмет их прослушивания. Для этого нажмите значок шестеренки. В открывшемся окне перейдите на вкладку порты. В поле выбора порта укажите диапазон, в моем примере, это будет диапазон от 1 до 1024. Именно его мы и будем проверять.
У вас в столбце Ports изменится значение, нажимаем кнопку «Старт».
Начинается процесс обращения к портам, хочу отметить, что сама процедура не быстрая и идет в 100 потоков, но так же у каждой операционной системы свои лимиты и тайминги. В итоге вы увидите в столбце Ports список портов, которые прослушивает ip адрес сервера, к которому было обращение. Мы таким образом определяли порты Active Directory. Angry IP Scanner имеет и дополнительные встроенные утилиты, кликните правым кликом по нужному хосту и из пункта «Открыть» вы можете увидеть их:
- Windows Shares — будет открыт проводник с сетевыми шарами сервера
- Web Browser — откроет в браузере 80 порт для данного хоста
- FTP — попробует подключиться к FTP
- Telnet
- Ping — будет открыта командная строка в которой будет запущен пинг
- Trace route — запуск в командной строке утилиты tracert
- Geo Locate
- Email sample
Еще интересным моментом у Angry IP Scanner может выступать добавление дополнительных полей. Для этого нажмите кнопку в виде параллельных палочек. В открывшемся окне с помощью стрелок переместите нужные поля. Я для примера добавил TTL и MAC Address.
При необходимости программа сканера портов легко может экспортировать полученные данные в текстовый файл для дальнейшего изучения. Сделать это можно из меню «Сканирование» или нажатие клавиш Ctrl+S.
Отчет будет выглядеть вот в такой форме.
Способы сканирования портов
Существуют различные способы проверить, какие порты открыты и доступны извне. Наиболее распространенные из них:
- SYN-сканирование. Злоумышленник отправляет на интересующий порт запрос на синхронизацию по протоколу TCP (SYN). Если порт открыт, в ответ приходит пакет SYN-ACK (подтверждение синхронизации). После этого сканер обрывает соединение, не завершив его установку. Если порт закрыт, приходит сообщение о разрыве соединения. Если порт находится за брандмауэром, запрос остается без ответа. Это самый распространенный способ сканирования, поскольку он не предполагает полноценной установки соединения и не фиксируется большинством простых средств отслеживания событий. С другой стороны, SYN-сканирование требует наличия у сканера прав суперпользователя на устройстве, с которого отправляются запросы и которое может не принадлежать злоумышленнику.
- TCP-сканирование. Это самый простой метод сканирования, не требующий особых прав. Он использует сетевые функции ОС для установки полноценного TCP-соединения. Однако этот вид сканирования легко обнаружить и заблокировать.
- UDP-сканирование. Позволяет узнать состояние портов, используемых UDP-службами. В отличие от TCP, протокол UDP не предусматривает установки соединения. Поэтому если порт открыт и отправленные данные успешно доставлены, сканер не получит ответа. А вот с закрытого порта придет ICMP-сообщение об ошибке. Этот метод может давать неверное представление о доступных сетевых службах: если порт защищен файрволом или в системе заблокированы ICMP-сообщения, сканер не получит ответа и будет считать порт открытым.
- FIN-сканирование. Используется для определения открытых портов, скрытых за брандмауэром. Работает схожим образом с SYN-сканированием, но предполагает отправку пакетов FIN (запрос на завершение соединения). В отличие от запросов SYN, многие брандмауэры не блокируют такие пакеты. Закрытый порт, как правило, отвечает на них пакетом RST (разрыв соединения). Открытый — не отвечает. Правда, в некоторых операционных системах все порты реагируют на FIN-запрос одинаково, поэтому метод не очень точный.
- ACK-сканирование. Используется для сбора информации о брандмауэрах, их правилах и фильтруемых ими портах. Пакеты, помеченные ACK (подтверждение), используются в уже установленных соединениях, поэтому простые правила фильтрации трафика их пропускают. Если пакет не прошел, значит, порт защищен брандмауэром с более продвинутым набором правил.
Как пользоваться Nmap для сканирования портов в Linux
Дальше рассмотрим примеры nmap. Сначала давайте рассмотрим как найти все подключенные к сети устройства, для этого достаточно использовать опцию -sL и указать маску нашей сети. в моем случае это 192.168.1.1/24. Маску вашей локальной сети вы можете найти, выполнив команду:
Из вывода для используемого интерфейса возьмите число после слеша, а до слэша укажите ip вашего роутера. Команда на сканирование сети nmap будет выглядеть вот так:
Иногда это сканирование может не дать никаких результатов, потому что некоторые операционные системы имеют защиту от сканирования портов. Но это можно обойти, просто использовав для сканирования ping всех ip адресов сети, для этого есть опция -sn:
Как видите, теперь программа обнаружила активные устройства в сети. Дальше мы можем сканировать порты nmap для нужного узла запустив утилиту без опций:
Теперь мы можем видеть, что у нас открыто несколько портов, все они используются каким-либо сервисом на целевой машине. Каждый из них может быть потенциально уязвимым, поэтому иметь много открытых портов на машине небезопасно. Но это еще далеко не все, что вы можете сделать, дальше вы узнаете как пользоваться nmap.
Чтобы узнать более подробную информацию о машине и запущенных на ней сервисах вы можете использовать опцию -sV. Утилита подключится к каждому порту и определит всю доступную информацию:
На нашей машине запущен ftp, а поэтому мы можем попытаться рассмотреть эту службу подробнее с помощью стандартных скриптов nmap. Скрипты позволяют проверить порт более детально, найти возможные уязвимости. Для этого используйте опцию -sC и -p чтобы задать порт:
Мы выполняли скрипт по умолчанию, но есть еще и другие скрипты, например, найти все скрипты для ftp вы можете командой:
Затем попытаемся использовать один из них, для этого достаточно указать его с помощью опции —script. Но сначала вы можете посмотреть информацию о скрипте:
Этот скрипт будет пытаться определить логин и пароль от FTP на удаленном узле. Затем выполните скрипт:
В результате скрипт подобрал логин и пароль, admin/admin. Вот поэтому не нужно использовать параметры входа по умолчанию.
Также можно запустить утилиту с опцией -A, она активирует более агрессивный режим работы утилиты, с помощью которого вы получите большую часть информации одной командой:
Обратите внимание, что здесь есть почти вся информация, которую мы уже видели раньше. Ее можно использовать чтобы увеличить защиту этой машины
Compile and build using Visual Studio:
I am using visual studio version 2015 for the development of this tool, here are the steps to create a console application add the code to it compile it and run the Free Port Scanner tool.
Please do the following:
- Open visual studio.
- Press File->New-Project and press enter.
- Under Templates->Visual C++ -> Windows>Win32 (In the New Project dialog).
- Select Win32 Console Application.
- In the name enter: FreePortScanner ( you can also set your project folder).
- Verify that Create Directory for the solution is selected.
- Now press OK.
- Press Next and select the Empty Project.
- And press Finish.
In Visual Studio Project Window do the following:
- Press on solution.
- Expend the FreePortScanner->Source Files
- Right Click on Source File -> Add.
- Here you have 2 options:
- 1 add new item, select cpp set the name to FreePortScanner and press add.
- 2 add existing item and navigate to the file you downloaded from this site (source)
- If you chose option1, to add an item, copy the code from this site and paste it into the new file.
- Press Build->Rebuild Solution in the top menu.
- If all pass well you will have an exe file that you can run.
You need to open the command line, navigate to the debug folder and run the tool.
- Right click on the solution name
- Select open folder in file explorer.
- Go one folder up and enter debug folder.
- Select and copy the folder location
- Press Windows +R
- Write CMD and press enter.
- Type cd <debug folder name> use right click paste and press enter.
- Type FreePortScanner -? and press enter to show the tool help.
- To run a scan use FreePortScanner -h <host name>
Where to go from here:
You can start by coding the functionality that I write about under advanced port scanner.
It is also possible to create a nice to use GUI for the tool.