#36 Kali Linux для начинающих. Сканируем порты с помощью Kali Linux.
Теперь, когда я узнал айпи-адрес нашей машины, мне нужно узнать, какие сервисы на ней работают, и какие порты открыты. Для этого мы воспользуемся нашим инструментом, который называется «nmap».
Давайте я покажу Вам пару новых опций «nmap».
Первая – это опция «-v», т.е подробный режим, где мы сообщаем нашему инструменту, что нужно выводить больше информации. Если Вы запустите «nmap» с опцией «-v», то довольно часто Вы можете наблюдать пустой экран. Также можно воспользоваться опциями: «-vv» «-vvv». Чем больше «v», тем больше выводится информации на экране.
Далее идет опция «-p-» или «-p 0-65535». Она означает сканирование всех tcp-портов. Далее идет опция «-A», которая отображает версию операционной системы, и уже можно сказать, что это стадия разведки. Для вывода большего перечня информации мы конечно же будем использовать ее, но она занимает намного больше времени, чем простое сканирование. Так как мы хотим взломать машину, нам нужно будет узнать как можно больше информации о ней, поэтому мы используем опцию «-A».
Далее пишем ip-адрес нашей цели, который у меня выглядит как: «192.168.15.131». Также я хочу, чтобы у меня был отчет по окончании сканирования, и у «nmap» есть 3 типа вывода. Обычный вывод, похожий на текстовый файл. Это просто копирование того, что выводится на экран. Также есть вывод в файл «gnmap». И последний третий вывод – это xml, который подается на вход другим инструментам. Сейчас я хочу сохранить вывод файлов в трех форматах: nmap, gnmap и xml. Нам нужно дописать команду опциями «–oA”, и в конце назовем файл «metasploitable2» и нажмем Enter.
В итоге у нас получится команда: «nmap –v –p 0-65535 –A 192.168.15.131 –oA metasploitable2»:
Поскольку мы выбрали достаточно много опций, которые выводят много информации, нам остается только ждать завершения сканирования. И это все всего лишь один ip-адрес. Сканирование может занять достаточное количество времени. Теперь представьте на реальном примере, сколько нужно ждать, если у Вас не один ip-адрес, а 100 или 200. В этом примере сканирование у меня прошло быстро, и мне не пришлось его останавливать:
Также рассмотрим опцию «-T», которая позволяет сканировать айпи адреса в тихом режиме, чтобы не сработали системы обнаружения. У нее есть параметр от 1 до 5, где цифра 1 – это очень медленное сканирование.
Не забываем, что мы указывали создание трех файлов-отчетов с разными расширениями. Они находятся в моей текущей директории:
Давайте упорядочим наш список файлов, перенеся их в отдельную директорию:
Команды должны быть Вам уже известны.
Для просмотра файлов можно использовать команду «cat» или «less», для постепенного просмотра файлов:
Итак, мы просканировали наш ip-адрес и выявили наличие множества открытых портов, и большое количество сервисов.
Как посмотреть открытые порты в Linux
Сетевые порты — это механизм, с помощью которого операционная система определяет какой именно программе необходимо передать сетевой пакет. Здесь можно привести пример с домом. Например, почтальону необходимо доставить посылку. Он доставляет посылку к дому, это IP адрес компьютера. А дальше в самом доме уже должны разобраться в какую квартиру направить эту посылку. Номер квартиры — это уже порт.
Если порт открыт это означает, что какая либо программа, обычно сервис, использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать множество различных утилит. В этой статье мы рассмотрим самые популярные способы посмотреть открытые порты Linux.
Как посмотреть открытые порты linux
1. netstat
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
- -l или —listening — посмотреть только прослушиваемые порты;
- -p или —program — показать имя программы и ее PID;
- -t или —tcp — показать tcp порты;
- -u или —udp показать udp порты;
- -n или —numeric показывать ip адреса в числовом виде.
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
2. ss
Утилита ss — это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения. Опции у неё такие же:
Можно вывести только процессы, работающие на 80-том порту:
3. lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P:
Ещё один пример, смотрим какие процессы работают с портом 80:
4. Nmap
Программа Nmap — мощный сетевой сканер, разработанный для сканирования и тестирования на проникновение удаленных узлов, но ничего не мешает направить его на локальный компьютер. Утилита позволяет не только посмотреть открытые порты, но и примерно определить какие сервисы их слушают и какие уязвимости у них есть. Программу надо установить:
Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.
Если это публичный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT-сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:
Дальше запускаем сканирование:
В результате мы видим, что открыт порт 80 веб-сервера и 22 — порт службы ssh, я их не открывал, эти порты открыты роутером, 80 — для веб-интерфейса, а 22 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS. Такая проверка портов может оказаться полезной для того, чтобы понять находится ли ваш компьютер в безопасности и нет ли там лишних открытых портов, доступных всем.
5. Zenmap
Программа Zenmap — это графический интерфейс для nmap. Она не делает ничего нового кроме того, что может делать nmap, просто предоставляет ко всему этому удобный интерфейс. Для её установки выполните:
Запустить программу можно из главного меню или командой:
Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:
После завершения сканирования утилита вывела список открытых портов Linux.
Выводы
В этой статье мы рассмотрели инструменты, которые вы можете использовать для того чтобы узнать узнать открытые порты linux. Инструментов не так много как для просмотра информации об оперативной памяти или процессоре, но их вполне хватает. А какими программами пользуетесь вы? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.