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 проверит хост на наличие открытых портов и служб, которые слушают эти порты.
Запустим командой:
Через несколько секунд получим результат:
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 уточнил, что сканирование портов все-таки не является противозаконным.
Источник
ARP сканирование локальной сети Linux
Иногда возникает необходимость узнать какие устройства подключены к локальной сети Linux. Это может понадобиться если вы хотите подключиться к одному из компьютеров и не помните его адрес или хотите убедиться в безопасности вашей сети и найти все скрытые устройства.
Самый надежный способ обнаружить все подключенные к сети Linux устройства, в том числе и скрытые — это ARP сканирование локальной сети. В этой статье мы рассмотрим как его выполнить и какие утилиты для этого нужны.
Как выполнить ARP сканирование локальной сети?
Как вы знаете, у всех компьютеров в сети есть IP адреса. Никогда не задавались вопросом, как сеть определяет, какому компьютеру принадлежит тот или иной адрес? Ведь сети бывают разные, проводные, беспроводные, ppp и т д. И в каждой из этих сетей аппаратный адрес компьютера имеет свой формат, зависящий от конструктивных особенностей сети, а IP адреса одни и те же.
Все очень просто. Для преобразования физических адресов, в ip адреса используется протокол ARP (Address Resolution Protocol), так и расшифровывается — протокол разрешения адресов. Когда компьютеру нужно обратиться к другому компьютеру в локальной сети, он отправляет специальный запрос в котором буквально спрашивает «У кого IP адрес 192.168.1.4», компьютер с таким ip адресом отправляет ответ «У меня, я 11:22:33:44:55», в ответе он передает свой физический адрес в этой сети. Дальше этот адрес заносится в специальную таблицу. но это уже тонкости реализации и они выходят за рамки нашей статьи. Сегодня мы поговорим как самому выполнить ARP сканирование локальной сети linux и найти все подключенные устройства.
Формат сообщений ARP — простой. Сообщение содержит либо запрос с IP адресом, либо ответ. Размер сообщения зависит от используемого сетевого протокола IPv4 или IPv6, типа оборудования сети и т д. Типы и размеры адресов определяются в заголовке сообщения. Заголовок завершается кодом сообщения. Код 1 для запроса и 2 для ответа.
Тело сообщения состоит из четырех адресов, аппаратные и сетевые адреса отправителя и получателя.
Если в вашей сети есть устройства, которые не отвечают на любые запросы, такие как Ping, HTTP, HTTPS и т д, то их можно найти послав ARP запрос. Это могут быть различные фаерволы и маршрутизаторы, в том числе маршрутизаторы компании Cisco, такое поведение заложено их протоколом. В таком случае ARP сканирование сети Linux будет единственным способом найти такое устройство.
Утилита ARP Scan
ARP Scan или еще называемый MAC Scanner — это очень быстрый инструмент для сканирования локальной сети Linux с помощью ARP. Утилита показывает все IPv4 адреса устройств в вашей сети. Поскольку ARP не использует маршрутизацию, то такой вид сканирования работает только в локальной сети.
ARP Scan находит все активные устройства, даже если у них включен брандмауэр. Компьютеры не могут скрыться от ARP также как они скрываются от ping. Но ARP сканирование не подходит для поиска компьютеров за пределами локальной сети, в таких ситуациях используйте ping сканирование.
Установка ARP Scan
Этот arp сканер сети доступен для следующих операционных систем:
- Debian, поставляется по умолчанию;
- Ubuntu, можно установить с репозитория Universe;
- Fedora, официальные репозитории начиная с версии 6;
- RedHat — доступна начиная с версии 5;
- Gentoo, официальные репозитории;
- ArchLinux — официальные репозитории Pacman.
Для установки в Ubuntu выполните:
sudo apt install arp-scan
Сканирование сети
ARP Scan позволяет находить активные компьютеры как в проводных сетях ethernet, так и в беспроводных Wifi сетях. Также есть возможность работать с Token Ring и FDDI. Не поддерживаются последовательные соединения PPP и SLIP, поскольку в них не используется ARP. Программу нужно запускать с правами суперпользователя.
Но сначала надо узнать сетевой интерфейс, который используется для подключения к сети. Для этого можно воспользоваться программой ip:
В данном случае, это enp24s0. Самый простой способ выполнить ARP сканирование и обнаружить все подключенные к локальной сети компьютеры — запустить программу со следующими параметрами:
sudo arp-scan —interface=enp24s0 —localnet
Здесь параметр —interface, задает интерфейс для сканирования, а —localnet, говорит, что нужно использовать все возможные IP адреса для текущей сети.
Первый параметр можно опустить, тогда программа будет искать все узлы для интерфейса с меньшим номером в системе. В нашем примере имя интерфейса — enp24s0.
Вместо параметра —localnet, можно указать маску сети:
sudo arp-scan —interface=enp24s0 10.0.1.0/24
ARP сканирование можно использовать, даже если у вашего интерфейса нет IP адреса. Тогда в качестве исходящего адреса будет использован 0.0.0.0. Правда, на такие запросы могут ответить не все системы. Тогда ARP сканер сети не так эффективен.
ARP спуфинг и ARP прокси
Поскольку в ARP нет поддержки аутентификации, ARP ответ на запрос может отправить любая машина, даже не та которой он был адресован. Иногда такое поведение используется в архитектуре сети — ARP прокси или маршрутизатор предает свой IP адрес вместо адреса запрашиваемой машины. Но также может использоваться для перехвата данных, отправляемых компьютером. Хакер может использовать ARP чтобы выполнить атаку «Человек посередине» или «Отказ в обслуживании» на других пользователей сети. Для защиты от таких атак существует специальное программное обеспечение.
Выводы
ARP Scan это простой, но очень мощный инструмент, с помощью которого можно выполнять сканирование ip адресов в локальной сети linux. Те, кто знаком с Cisco маршрутизаторами и коммутаторами, знают что найти такие устройства можно только с помощью ARP. Это полезный инструмент, возможно, когда-то вам он пригодится.
Источник
Top 3 IP Scanners for Linux
Unlike port scanners, which scan for open ports, IP scanners simply try to find hosts that are alive on a network. If you are searching for IP scanners for Windows, you will surely find an abundant supply of them. In Linux, however, you may be searching a little harder to find a quality, easy to use IP scanner. Here is a list of the 3 best IP scanners for Linux, rated on speed and usability.
1. arp-scan — Arp-scan is an easy-to-use tool that can find alive hosts on a network. It sends ARP packets to specified hosts and displays any responses. I rated arp-scan #1 because of its simplicity and speed. By simply adding the -l switch to arp-scan, it will automatically determine the network settings and scan the network of the first adapter. It also scanned the network the fastest. To install arp-scan:
Ubuntu: sudo apt-get install arp-scan
OpenSuse (12.1): wget http://download.opensuse.org/repositories/security/openSUSE_12.1/i586/arp-scan-1.8-1.1.i586.rpm
sudo rmp -i arp-scan-1.8-1.1.i586.rpm
The easiest way to scan the network you are in is to run any of the following commands (they all do the same thing):
sudo arp-scan -l #Scans the local network
sudo arp-scan 192.168.1.0/24 #Scans 192.168.1.0 255.255.255.0
sudo arp-scan 192.168.1.1-192.168.1.254 #Scans the obvious range
You will see results like this:
192.168.1.10 00:0c:29:a4:16:48 VMware, Inc.
192.168.1.11 00:0e:2e:3a:c1:2d Edimax Technology Co., Ltd.
192.168.1.20 00:e0:81:31:97:47 TYAN COMPUTER CORP.
Total Time: 1.381 seconds
2. nmap – Nmap, better known for its port scanning abilities, is also quite suitable as an IP scanner. I rated nmap #2 because it returned the results slighty slower than arp-scan, and there is no -l switch to automatically determine the network settings, as with arp-scan. To install:
Ubuntu: sudo apt-get install nmap
OpenSuse: sudo zypper install nmap
To scan for alive hosts on a network, run any of the following commands (they all do the same thing):
sudo nmap -sP 192.168.1.0/24 #Scans 192.168.1.0 255.255.255.0
sudo nmap -sP 192.168.1.1-254 #Scans the obvious range
You will see results like this:
Host 192.168.1.11 is up (0.0089s latency).
MAC Address: 00:0E:2E:3A:C1:2D (Edimax Technology Co.)
Host 192.168.1.20 is up (0.00063s latency).
MAC Address: 00:E0:81:31:97:47 (Tyan Computer)
Host 192.168.1.21 is up (0.00099s latency).
MAC Address: 00:E0:81:31:45:26 (Tyan Computer)
Total Time: 1.82 seconds
3. Angry IP Scanner – This tool, perhaps better know to Windows users, is also available on Linux, as a Java application. I rated Angry IP Scanner #3 because it is significantly slower than arp-scan and nmap, however, it has a nice and simple GUI that many people find intuitive. To check if you have Java installed, run this command:
java -version
To install Java, run this command:
Ubuntu : sudo apt-get install openjdk-6-jre
OpenSuse: sudo zypper install java-1_6_0-openjdk
You can download the Angry IP Scanner here:
Ubuntu: wget http://sourceforge.net/projects/ipscan/files/ipscan3-binary/3.0-beta6/ipscan_3.0-beta6_i386.deb
sudo dpkg -i ipscan_3.0-beta6_i386.deb
OpenSuse: wget http://sourceforge.net/projects/ipscan/files/ipscan3-binary/3.0-beta6/ipscan-3.0_beta6-2.i386.rpm
sudo rpm -i ./ipscan-3.0_beta6-2.i386.rpm
There are 32 and 64 bit Deb and RPM files for Debian/Ubuntu and Fedora/RedHat/Suse/Mandriva. Angry IP Scanner is one of the few IP scanners for Linux that has a nice GUI. It’s very simple to use. Simply enter the range of IP addresses you want to scan and click Start:
Total Time: 25.9 seconds
As you can see, there are several high quality and fast IP scanners for Linux. If you have a favorite that isn’t listed here, feel free to leave a comment.
Источник