Nmap - (Network Mapper) сканнер уязвимостей сетей и сайтов с открытым исходным кодом. Истории создания посвещается.
Сетевой сканнер Nmap - удивительное творение свободной мысли когда то начинающего программиста Гордона Лиона (псевдоним Fyodor) создавшего фактически из расширенного сканера открытых портов (10 способов сканирования) полноценный хакерский инструмент, являющийся не только кроссплатформенным продуктом, но и имеющим в свободном доступе исходники на языке lua. Сканнер постоянно модернизируется свободными программистами, разрабатывающими скрипт команды (nse) и библиотеки данных. Фактически каждый знакомый с языком lua может внести вклад в его совершенствование или даже усовершенствовать исходник. Что касается выхода на профессиональный уровень, то это произошло как раз 10 лет назад когда версии 4.6 получили усовершенствованные конструктор команд и графический интерфейс трассировки маршрута. Начиная с этого времени ошибки в работе программы и в структуре интернет команд были устранены. Программа преобрела современный вид. (Он так и остался консервативным). Что делает честь разработчику, поскольку не отвлекает на бесполезные примочки. Конечно же набор скриптов в то время не превышал 50 экземпляров (сейчас 589), а библиотека интернет подходов 30 единиц (сейчас 132 основных). Единственным недостатком является разве что отсутствие привязки трассировки маршрута к географической карте, а также возможности задачи числа пропинговки звеньев маршрута как например в программе 'Диагностика сайта'. Но всё же это не столь важно для работы. Вот как всё начиналось:
ДЕНЬ РОЖДЕНИЯ СКАНЕРА NMAP, О КОТОРОМ ВПЕРВЫЕ БЫЛО
РАССКАЗАНО В ЖУРНАЛЕ PHRACK.
Решающее для популярности nmap значение сыграла статья
"Искусство сканирования" (The art of scanning), которую Fyodor
написал в 1997 году для известного андеграунд-журнала Phrack. К
статье прилагался исходный код сканера на языке С, что дало
возможность каждому технически подкованному специалисту
опробовать новый инструмент в действии. К тому моменту nmap
поддерживал девять методов сканирования, в числе которых были и
достаточно изысканные.
История проекта nmap (Network MAPper - составитель карты сети)
достаточно долгая и не лишена увлекательности. Доказательством
популярности пакета может служить огромное количество
загруженных с официального сайта ( www.insecure.org/mnap/) копий
программы. В пользу этого утверждения свидетельствует и тот факт,
что код nmap, разрабатывавшийся для Unix-платформы, был
впоследствии перенесен на платформу Windows, а интерфейс
командной строки был удачно дополнен графическим интерфейсом
(front-end).
Истоки
История проекта nmap началась более двадцати лет назад, когда хакер Fyodor Yarochkin занялся изучением свойств стека TCP/IP.
Разумеется, практика - наилучший способ познать неизведанное, и в
этом Fyodor преуспел. На момент начала проекта nmap в сетевом
мире уже существовало с полдюжины различных сканеров портов.
Все они обладали интересными свойствами и вполне успешно
применялись специалистами. Но важнее всего было то, что каждая
программа демонстрировала тот или иной подход к реализации
концепции сканирования сети. Так, сканер pscan, созданный хакером
Pluvius, показывал отличную производительность, а реализовать
vanilla-scan (его еще называют TCP connect(), согласно ключевому
признаку взаимодействия с сетью) сможет любой программист,
начавший изучать сетевое программирование. Fyodor начал работу с
того, что объединил известные на тот момент сканеры в единый пакет.
Но к этому занятию он подошел творчески, то есть переписал
практически весь код заново. Со временем путем экспериментов на
собственной сети и благодаря постоянному обмену информацией с
хакерами со всего мира Fyodor создал уникальный инструмент,
позволяющий производить сканирование с помощью множества
различных способов.
Пожалуй, решающее для популярности nmap значение сыграла статья
"Искусство сканирования" (The art of scanning), которую Fyodor
написал в 1997 году для известного андеграунд-журнала Phrack
( www.phrack.org/show.php?p=51&a=11). К статье прилагался исходный
код сканера на языке С, что дало возможность каждому технически
подкованному специалисту опробовать новый инструмент в действии.
К тому моменту nmap поддерживал девять методов сканирования, в
числе которых были и достаточно изысканные.
Усовершенствования включали внедрение операционной системы
дактилоскопии, дактилоскопического обслуживания, переписанный код
(с языка C на C++), дополнительные виды сканирования, поддержка
протокола (например, IPv6, протокол SCTP) и новые программы,
которые дополняют основные функции cканирования. Изменения
включали в себя:
12 декабря 1998-Выпущена Nmap 2.00, включая операционную
систему сканирования отпечатков пальцев
11 апреля 1999-NmapFE, передняя часть GTK+, в комплекте с
Nmap
7 декабря 2000-порт Windows
28 августа 2002-переписка с языка С на C++ (язык
программирования)
16 сентября 2003-первый публичный выпуск, включающий
обнаружение служебной версии
31 августа 2004-ядро сканирования переписано для версии 3.70,
новый движок называется ultra_scan
Лето 2005-Nmap выбран для участия в Google Summer of Code.
Добавлены возможности Zenmap, который использует скриптовый
движок (НСЕ), Netcat [9] , и операционная система 2-го поколения.
13 декабря 2007-был выпущен Nmap 4.50, 10-летие издания.
Включены Zenmap, операционная система 2-го поколения, и
nmap, использующий скриптовый движок.
30 марта 2009 года-аварийный релиз Nmap 4.85BETA5,
использование Nmap Scripting Engine (NSE) для выявления
вирусные инфекции
16 2009-5 июля.00 в комплекте с netcat-замена и Ndiff
сканирования сравнение инструментов.
28 января 2011-5.50 включена генерация Netcat пакетов Nping
21 мая 2012-6.00 выпущен с полной поддержкой IPv6.
9 ноября 2015-Nmap 7.00
20 декабря 2016-Nmap 7.
"Changelog" nmap фиксирует все изменения.
На мой взгляд, весьма важным и прогрессивным является так
называемый Idle scan, предложенный хакером Antirez. Эта технология
до сих пор используется редко даже хакерами, многие компании не
предпринимают мер по предотвращению подобных атак, а
производители сетевых средств просто игнорируют данную проблему
(и это несмотря на то, что о ней известно с 1998 года, а разработчики
технологии выпустили документ, подробно описывающий технику
сканирования, возможные последствия атаки и даже меры, которые
необходимо предпринять, чтобы защитить свою сеть).
Было бы естественно ожидать, что со временем проект nmap
постепенно "затухнет". Это обычное явление для подобных проектов:
со временем изменения выходят все реже, так как большая часть
функций уже реализована создателями, а команда разработчиков
переключается на другие проекты. Но nmap удалось избежать этой
участи.
Во-первых, в 2000 году Fyodor создал web-серверwww.insecure.org,