Расширение знаний о сканировании
Теперь, когда вы освоили основы сканирования с использованием TCP Connect, пришло время поднять свои знания на новый уровень. В этом разделе мы научимся сканировать несколько портов и понять, как интерпретировать результаты. Это поможет вам получить более полное представление о сетевых сервисах, работающих на целевой системе.
Сканирование популярных портов
Начнем с того, что сканируем самые популярные порты на вашем локальном компьютере, также известном как localhost. Эти популярные порты часто используются хорошо известными сетевыми сервисами.
nmap -sT localhost --top-ports 10 > /home/labex/project/common_ports_scan.txt
В этой команде опция -sT
сообщает Nmap выполнить сканирование с использованием TCP Connect. localhost
указывает на цель, которая представляет собой ваш собственный компьютер. Опция --top-ports 10
информирует Nmap сканировать 10 наиболее часто используемых портов. Символ >
перенаправляет вывод сканирования в файл с именем common_ports_scan.txt
в директории /home/labex/project
.
Теперь давайте посмотрим на результаты этого сканирования:
cat /home/labex/project/common_ports_scan.txt
Команда cat
используется для отображения содержимого файла. Когда вы выполните эту команду, вы увидите список портов. Например, порт 21 используется для FTP (File Transfer Protocol - Протокол передачи файлов), порт 22 для SSH (Secure Shell - Защищенный оболочка), порт 23 для Telnet, порт 25 для SMTP (Simple Mail Transfer Protocol - Простой протокол передачи почты) и порт 80 для HTTP (Hypertext Transfer Protocol - Протокол передачи гипертекста). На вашей системе большинство из этих портов, вероятно, будут закрыты, если вы не запустили конкретные сервисы. Например, если наш HTTP - сервер на порту 8080 входит в топ - 10 портов, он будет отображаться как открытый.
Сканирование диапазона портов
В дополнение к сканированию популярных портов, вы также можете сканировать определенный диапазон портов. Давайте сканируем порты от 8000 до 8100 на вашем localhost.
nmap -sT localhost -p 8000-8100 > /home/labex/project/port_range_scan.txt
Здесь опция -p 8000 - 8100
сообщает Nmap сканировать порты в диапазоне от 8000 до 8100. Вывод этого сканирования перенаправляется в файл с именем port_range_scan.txt
в директории /home/labex/project
.
Чтобы посмотреть результаты этого сканирования:
cat /home/labex/project/port_range_scan.txt
В выводе вы должны увидеть, что порт 8080 (если он входит в сканируемый диапазон) открыт, в то время как другие порты в диапазоне, вероятно, будут закрыты.
Комбинирование методов
Давайте объединим методы, которые мы узнали до сих пор. Мы выполним сканирование с использованием TCP Connect и попытаемся определить сервисы, работающие на портах в диапазоне от 8000 до 8100.
nmap -sT -sV localhost -p 8000-8100 > /home/labex/project/combined_scan.txt
Опция -sV
используется для включения обнаружения сервисов. Это означает, что Nmap не только сообщит вам, открыт или закрыт порт, но и попытается определить сервис, работающий на открытых портах. Вывод этого комбинированного сканирования сохраняется в файле combined_scan.txt
в директории /home/labex/project
.
Чтобы проверить результаты:
cat /home/labex/project/combined_scan.txt
Это сканирование предоставляет наиболее подробную информацию на данный момент. Оно показывает состояние каждого порта в указанном диапазоне и пытается определить сервисы, работающие на открытых портах.
Очистка
Перед тем как закончить этот практический урок, нам нужно провести очистку, остановив Python HTTP - сервер, который мы использовали. Сначала нам нужно найти идентификатор процесса (PID) сервера.
ps aux | grep "python3 -m http.server 8080"
Команда ps aux
выводит список всех запущенных процессов на вашей системе. Символ |
представляет собой конвейер, который берет вывод команды ps aux
и передает его в команду grep
. Команда grep
затем ищет строку, содержащую текст "python3 -m http.server 8080"
, которая представляет собой команду для запуска Python HTTP - сервера.
Найдите строку, которая показывает процесс Python HTTP - сервера. Второй столбец этой строки содержит идентификатор процесса (PID). После того как вы запишете PID, вы можете использовать команду kill
для остановки процесса.
kill <PID>
Замените <PID>
на фактический идентификатор процесса, который вы нашли. Например, если PID равен 1234, вы должны выполнить:
kill 1234