Порт сканер для linux

Сканирование сетевых портов в Linux – команда nmap

Системы Linux и UNIX являются сетевыми операционными системами (ОС). Поэтому их эксплуатация неразрывно связана с администрированием и обслуживанием сетей. Независимо от сложности и масштабов сети необходимо проводить постоянный мониторинг окружения сети на предмет качества связи и соединений. А также для определения признаков или даже фактов вредительства в ней или несанкционированных атак. Одним из эффективных инструментов для выполнения подобных задач является команда nmap.

Зачем нужна команда nmap?

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

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

Синтаксис команды nmap и особенности её работы

Команда nmap довольно проста в использовании и каким-то сложным синтаксисом не отличается:

Чего нельзя сказать о количестве, функциональности её ключей и неисчерпаемых возможностях их применения. Официальная документация, доступная на страницах man-руководства (команда man nmap), кроме того, что очень подробная (трудно встретить ещё подробнее), так ещё и имеет качественный перевод (локализации, в том числе и на русском языке) в большинстве Linux-дистрибутивов.

Не всегда утилита nmap предустановлена в системе, поэтому для её использования требуется установка соответствующего пакета, который обычно имеет имя nmap:

Или в Centos/Redhat

Столбец STATE показывает состояние порта: он может быть открыт (open), когда связан с использующими его службами (соединениями), закрыт (closed), когда порт не используется ни одним сервером. Также доступны состояния: unfiltered, когда nmap не смогла определить состояние порта. А также filtered – когда порт защищён (или заблокирован) брандмауэром.

Для задания хоста можно также использовать цифровую запись в виде IP-адреса. Отчёт из данного примера сформирован для самого обычного компьютера, для которого не была сконфигурирована какая-то защита. Как можно видеть, для прослушивания 80 и 443 портов для работы протоколов HTTP и HTTPS соответственно, запущен веб-сервер. Сервер баз данных (БД) MySQL также работает по стандартному порту.

Использование nmap

Если посмотреть на отчёт команды nmap для более защищённого узла, то он будет выглядеть примерно так:

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

Однако, одна из особенностей nmap заключается в том, что эту команду можно использовать в «хакерском» режиме. Другими словами она позволяет сканировать порты без установки реальных соединений. Это достигается путём использования неквитирующих пакетов, т. е. тех, которые похожи на имеющиеся в существующих соединениях. Но в ответ на такие пакеты можно получать пакеты диагностические. Т. е. получать информацию о соединении, при этом не быть «замеченным» брандмауэром или другим сетевым фильтром. Которые следят за «сканировщиками» портов.

Помимо всего прочего nmap умеет распознавать, какая ОС используется на проверяемом узле. Путём анализа некоторых особенностей, характерных для реализации стека TCP/IP для разных ОС. Для использования этой возможности существует ключ -O:

Как можно видеть, компьютер с IP-адресом 192.186.0.101 работает под управлением ОС Windows, предположительно Windows 7. Информация в отчёте довольно подробная, определён даже MAC-адрес сканируемого сетевого устройства.

Читайте также:  Джойстик калибровка windows 10

Стоит рассмотреть некоторые примеры для команды nmap, которые могут пригодиться администраторам в их работе. Сканирование нескольких адресов:

Определение активных узлов в сети:

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

Записи адресов в файле указываются также, как и в командной строке. И разделяться должны одним или несколькими пробелами или символами перевода строки. Для сканирования определённых портов:

или диапазона портов:

Сканирование всех портов:

Сканирование определённых типов портов (TCP или UDP):

Соответственно для указания UDP-портов следует указывать опцию -U. Для объединённого сканирования портов:

Для скрытого сканирования:

Сохранение результатов сканирования в файл:

Определить (с высокой степенью вероятности), работает ли на сканируемом узле брандмауэр или другой пакетный фильтр:

Определение только открытых портов:

Определение версии ОС, а также трассировки маршрутов:

Чтобы исключить из сканирования определённые адреса или подсети нужно использовать опцию —exclude:

Чтобы использовать для этой цели данные из файла, применяется опция —excludefile:

Заключение

Как можно видеть, nmap – это действительно мощный инструмент для мониторинга и анализа безопасности сетевого окружения. Следует также всегда помнить, что с помощью одной только команды nmap система или сеть могут быть досконально изучены «посторонними» или не совсем добросовестными людьми. Поэтому системные администраторы всегда должны учитывать этот фактор для обеспечения безопасности вверенных им систем.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Top Port Scanners on Ubuntu Linux

Here is a list of port scanners that work on Ubuntu/Linux.

1. Angry IP Scanner

Download and Install from http://www.angryip.org/
Fast and easy to use network scanner and port scanner.

To scan ports got to Tools > Preferences > Ports > Port Selection
Enter the ports you want to scan
Start the scan.

4. Nmap — network mapper

Install : sudo apt-get install nmap

Nmap is a utility for network exploration or security auditing. It supports ping scanning (determine which hosts are up), many port scanning techniques, version detection (determine service protocols and application versions listening behind ports), and TCP/IP fingerprinting (remote host OS or device identification). Nmap also offers flexible target and port specification, decoy/stealth scanning, sunRPC scanning, and more.

nmap also has with an easy to use GUI frontends :

1. zenmap
Install : sudo apt-get install zenmap
http://nmap.org/zenmap/

2. Nmapsi4
Install : sudo apt-get install nmapsi4
http://www.nmapsi4.org/

3. Umit
Install : sudo apt-get install umit
http://www.umitproject.org/

3. pnscan

Install : sudo apt-get install pnscan

Pnscan is a multi threaded port scanner that can scan a large network very quickly. If does not have all the features that nmap have but is much faster.

4. knocker

Install : sudo apt-get install knocker

A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected] .

Источник

Nmap — руководство для начинающих

Многие слышали и пользовались замечательной утилитой nmap. Ее любят и системные администраторы, и взломщики. Даже Голливуд знает про нее — в фильме «Матрица» при взломе используется nmap.

nmap — это аббревиатура от «Network Mapper», на русский язык наиболее корректно можно перевести как «сетевой картограф». Возможно, это не лучший вариант перевода на русский язык, но он довольно точно отображает суть — инструмент для исследования сети и проверки безопасности. Утилита кроссплатформенна, бесплатна, поддерживаются операционных системы Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X.

Рассмотрим использование утилиты в Debian. В стандартной поставке дистрибутива nmap отсутствует, установим его командой

# aptitude install nmap

Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей, вызов nmap выглядит следующим образом:

Для опытов возьмем специальный хост для экспериментов, созданный самими разработчиками nmap — scanme.nmap.org. Выполним от root’а
Ключи сканирования задавать необязательно — в этом случае nmap проверит хост на наличие открытых портов и служб, которые слушают эти порты.
Запустим командой:

Читайте также:  Подмена shell windows 10

Через несколько секунд получим результат:
Interesting ports on scanme.nmap.org (74.207.244.221):
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http

Ничего необычного, ssh на стандартном порту и http на 80. Nmap распознаёт следующие состояния портов: open, filtered, closed, или unfiltered. Open означает, что приложение на целевой машине готово для принятия пакетов на этот порт. Filtered означает, что брандмауэр, фильтр, или что-то другое в сети блокирует порт, так что Nmap не может определить, является ли порт открытым или закрытым. Closed — не связанны в данный момент ни с каким приложением, но могут быть открыты в любой момент. Unfiltered порты отвечают на запросы Nmap, но нельзя определить, являются ли они открытыми или закрытыми.

# nmap -O scanme.nmap.org

Хинт: Если во время сканирования нажать пробел — можно увидеть текущий прогресс сканирования и на сколько процентов он выполнен. Через несколько секунд получаем ответ, в котором пока что интересна строчка Device type:

Device type: general purpose|WAP|webcam|storage-misc
Running (JUST GUESSING) : Linux 2.6.X|2.4.X (93%), AXIS Linux 2.6.X (89%), Linksys Linux 2.4.X (89%)
Aggressive OS guesses: Linux 2.6.17 — 2.6.28 (93%), Linux 2.6.9 — 2.6.27 (93%), Linux 2.6.24 (Fedora 8) (92%), Linux 2.6.18 (Slackware 11.0) (92%), Linux 2.6.19 — 2.6.26 (92%), OpenWrt (Linux 2.4.32) (91%), Linux 2.6.22 (91%), Linux 2.6.22 (Fedora Core 6) (90%), Linux 2.6.13 — 2.6.27 (90%), Linux 2.6.9 — 2.6.18 (90%)
No exact OS matches for host (test conditions non-ideal).

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

# nmap -O example.com example2.com

Вернемся к нашему подопытному хосту. Хочется узнать поподробнее, какой используется софт. Попробуем уточнить полученные данные с помощью ключей -sV:

# nmap -sV example.com example2.com

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
Service Info: OS: Linux

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

Агрессивное сканирование можно провести, указав ключ -A

# nmap -A scanme.nmap.org

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

В локальных сетях или просто имея на руках диапазон ip адресов, удобно проверить их на занятость с помощью ключей -sP:

# nmap -sP 192.168.1.0/24

Сканирование проходит довольно быстро, так как по сути это обычный ping-тест, отвечает ли хост на ping. Следует учесть, что хост может не отвечать на ping из-за настроек фаерволла. Если нужный участок сети нельзя ограничить маской, можно указать диапазон адресов, с какого и по какой надо провести сканирование. Например, есть диапазон адресов с 192.168.1.2 до 192.168.1.5. Тогда выполним:

# nmap -sP 192.168.1.2-5

Ответ будет выглядеть так:

Host 192.168.1.2 is up (0.0023s latency)
Host 192.168.1.3 is up (0.0015s latency)
Host 192.168.1.4 is up (0.0018s latency)
Host 192.168.1.5 is up (0.0026s latency)

В моем случае все ip в данный момент были в сети.
Это далеко не все возможности nmap, но уместить их в рамках одной статьи несколько сложновато.

Если вам ближе GUI — есть замечательная утилита Zenmap — графическая оболочка для nmap, умеющая заодно и строить предполагаемую карту сети.

Хочу предупредить, что сканирование портов на удаленных машинах может нарушать закон.
UDPInflame уточнил, что сканирование портов все-таки не является противозаконным.

Источник

How to do a Port Scan in Linux

TCP Scanning

TCP is stateful protocol because it maintains the state of connections. TCP connection involves a three-way handshaking of Server socket and client-side socket. While a server-socket is listening, the client sends a SYN and then Server responds back with SYN-ACK. Client then, sends ACK to complete the handshake for the connection

Читайте также:  Взаимодействие word с другими приложениями windows

To scan for a TCP open port, a scanner sends a SYN packet to the server. If SYN-ACK is sent back, then the port is open. And if server doesn’t complete the handshake and responds with an RST then the port is closed.

UDP Scanning

UDP on the other hand, is a stateless protocol and doesn’t maintain the state of connection. It also doesn’t involve three-way handshake.

To scan for a UDP port, a UDP scanner sends a UDP packet to the port. If that port is closed, an ICMP packet is generated and sent back to the origin. If this doesn’t happen, that means port is open.

UDP port scanning is often unreliable because ICMP packets are dropped by firewalls, generating false positives for port scanners.

Port Scanners

Now that we’ve looked at how port scanning works, we can move forward to different port scanners and their functionality.

Nmap is the most versatile and comprehensive port scanner available till now. It can do everything from port scanning to fingerprinting Operating systems and vulnerability scanning. Nmap has both CLI and GUI interfaces, the GUI is called Zenmap. It has a lot of varying options to do quick and effective scans. Here’s how to install Nmap in Linux.

Now we’ll use Nmap to scan a server (hackme.org) for open ports and to list services available on those ports, its really easy. Just type nmap and the server address.

To scan for UDP ports, include -sU option with sudo because it requires root privileges.

There are a lot of other options available in Nmap such as:

Zenmap

Zenmap is a GUI interface of Nmap for click-kiddies so that you won’t have to remember its commands. To install it, type

To scan a server, just type its address and select from available scan options.

Netcat

Netcat is a raw TCP and UDP port writer which can also be used as a port scanner. It uses connect scan that’s why it is not so fast like Network Mapper. To install it, type

$ sudo apt install netcat-traditional -y

To check for an open port, write

$ nc -z -v hackme.org 80
. snip.
hackme.org [ 217.78.1.155 ] 80 ( http ) open

To scan for a range of ports, type

$ nc -z -nv 127.0.0.1 20 — 80
( UNKNOWN ) [ 127.0.0.1 ] 80 ( http ) open
( UNKNOWN ) [ 127.0.0.1 ] 22 ( ssh ) open

Unicornscan

Unicornscan is a comprehensive and fast port scanner, built for vulnerability researchers. Unlike Network Mapper, it uses its own User-land Distributed TCP/IP stack. It has a lot of features that Nmap doesn’t, some of them are given,

  • Asynchronous stateless TCP scanning with all variations of TCP Flags.
  • Asynchronous stateless TCP banner grabbing
  • Asynchronous protocol specific UDP Scanning (sending enough of a signature to elicit a response).
  • Active and Passive remote OS, application, and component identification by analyzing responses.
  • PCAP file logging and filtering
  • Relational database output
  • Custom module support
  • Customized data-set views

To install Unicornscan, type

$ sudo apt-get install unicornscan -y

To run a scan, write

$ sudo us 127.0.0.1
TCP open ftp [ 21 ] from 127.0.0.1 ttl 128
TCP open smtp [ 25 ] from 127.0.0.1 ttl 128
TCP open http [ 80 ] from 127.0.0.1 ttl 128
. snip.

Conclusion

Ports scanners come in handy whether you are a DevOp, Gamer or a Hacker. There is no real comparison between these scanners, none of them is perfect, each of them has its benefits and drawbacks. It completely depends upon your requirements and how you use them.

About the author

Usama Azad

A security enthusiast who loves Terminal and Open Source. My area of expertise is Python, Linux (Debian), Bash, Penetration testing, and Firewalls. I’m born and raised in Wazirabad, Pakistan and currently doing Undergraduation from National University of Science and Technology (NUST). On Twitter i go by @UsamaAzad14

Источник

Оцените статью