Nmap - исследуем сеть.
Social Engineering
Для чего нужна эта программа? Для поиска различных зацепок на определённом хосте и много чего другого полезного, для тестирования безопасности.
1) Установка
На Kali Linux программа уже предустановленна, поэтому Вы можете приступить ко второму этапу.
Зачастую, нормально проходит команда:
# sudo apt-get install nmap
Но, если Вам не удалось выполнить эту команду, следуйте следующим инструкциям:
1. Заходим на https://nmap.org/download.html. Ищем “Linux RPM Source and Binaries” и выбираем nmap-XXXXX.x86_64.rpm
* где x64_64 - это Ваша платформа. Может быть x86, ARM и т.д.
2. В консоли вводим:
# sudo apt-get update
# sudo apt-get install alien
3. Конвертируем из RPM в DEB
# sudo alien nmap-XXXXX.x86_64.rpm
После чего появится такой же файлик но с окончанием “.deb” вместо “.rmp”. Вы его сможете открыть используя Ваш файловой менеджер и установить.
КСТАТИ! Данный способ предназначен для Debian и ему подобных (напр.: Ubuntu и т.д.). Если же у Вас такая ОС, как: Red Hat, Mandrake, SUSE, Fedora и т.д. значит Вам нужно не конвертировать файл а сразу его открывать в формате .rpm.
2) Эксплуатация
После установки программу можно будет запустить из терминала, введя:
# sudo nmap
Далее научимся правильно использовать программу.
* ниже взято из https://habrahabr.ru/post/131433/ так как вручную это всё долго писать. для Вас я постарался и сделал всё намного понятнее :) *
Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей. Правильное использование выглядит так:
# sudo nmap KEY TARGET
* где KEY - это ключи, о которых мы узнаем ниже
* где TARGET - это цель, напр.: 55.55.55.55 или vk.com
Итак, давайте сначала начнём с простого. Если запустить программу без какого-либо ключа и задать цель то программа проверит цель на наличие открытых портов и служб, которые слушают эти порты. Проверять будет специальный хост, сделанный самими разработчиками программы для тестирования.
# sudo nmap scanme.nmap.org
Через некоторое время мы получим примерно такой ответ:
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
Всё, вроде бы, понятно. Стандартные настройки. Веб-сервер (сайт) запущен на порту 80, это стандартный порт к которому коннектятся наши браузера. Ну и доступ по SSH на, опять же, стандартном порту 22.
Nmap распознаёт следующие состояния портов: open, filtered, closed, или unfiltered. Open означает, что приложение на целевой машине готово для принятия пакетов на этот порт. Filtered означает, что брандмауэр, фильтр, или что-то другое в сети блокирует порт, так что Nmap не может определить, является ли порт открытым или закрытым. Closed — не связанны в данный момент ни с каким приложением, но могут быть открыты в любой момент. Unfiltered порты отвечают на запросы Nmap, но нельзя определить, являются ли они открытыми или закрытыми.
Теперь, давайте узнаём операционную систему хоста!
# sudo 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 определить невозможно, но примерную дату «свежести» и саму операционную систему определить можно. Можно просканировать сразу несколько хостов, для этого надо их перечислить через пробел:
# sudo nmap -O example.com example2.com
Вернемся к нашему подопытному хосту. Хочется узнать поподробнее, какой используется софт. Попробуем уточнить полученные данные с помощью ключей -sV:
# sudo nmap -sV scanme.nmap.org
Получим примерно такой ответ:
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
# sudo nmap -A scanme.nmap.org
Nmap выведет очень много информации, я не стану приводить пример. Сканирование может длится довольно долго, занимая несколько минут.
В локальных сетях или просто имея на руках диапазон ip адресов, удобно проверить их на занятость с помощью ключей -sP:
# sudo nmap -sP 192.168.1.0/24
Сканирование проходит довольно быстро, так как по сути это обычный ping-тест, отвечает ли хост на ping. Следует учесть, что хост может не отвечать на ping из-за настроек фаерволла. Если нужный участок сети нельзя ограничить маской, можно указать диапазон адресов, с какого и по какой надо провести сканирование. Например, есть диапазон адресов с 192.168.1.2 до 192.168.1.5. Тогда выполним:
# sudo 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, умеющая заодно и строить предполагаемую карту сети.
^ END ^
Я знаю, что копировать - это плохо. Но я постарался сделать всё очень понятно, и даже часть переписал из памяти.
Всю ответственность за возможно причинённый вред несёте только ВЫ.