Существуют тысячи инструментов, как коммерческих, так и бесплатных, предназначенных для специалистов, которым приходится оценивать систему безопасности сети. Сложность заключается в выборе подходящего для конкретного случая инструмента, которому можно доверять. Чтобы сузить круг поиска, в данной статье я предлагаю вниманию читателей 10 превосходных бесплатных инструментов для анализа уровня безопасности сети.
Процесс оценки безопасности сети состоит из четырех основных этапов: сбор данных, привязка, оценка и проникновение. На стадии сбора данных проводится поиск сетевых устройств с помощью сканирования в реальном времени с применением протоколов Internet Control Message Protocol (ICMP) или TCP. На стадиях привязки и оценки определяется конкретная машина, на которой работает служба или приложение, и оцениваются потенциально уязвимые места. На этапе проникновения одно или несколько уязвимых мест используются для привилегированного доступа к системе с последующим расширением полномочий на данном компьютере либо во всей сети или домене.
1. Nmap
Проверенный временем инструмент Network Mapper (Nmap) существует несколько лет и постоянно совершенствуется автором. Nmap — необходимый инструмент специалиста по сетевой безопасности, значение которого невозможно переоценить. Nmap можно по-разному использовать на стадии сбора данных для сканирования в реальном времени, чтобы выявить системы, активные в данной сети. Nmap также полезен для обнаружения ACL (список управления доступом) маршрутизатора или правил брандмауэра с помощью проверки флага подтверждения (ACK) и других методов.
На этапах привязки и оценки Nmap можно использовать для сканирования портов, перечисления служб и номеров их версий и сбора отличительной информации об операционных системах. Nmap — превосходный инструмент для углубленного анализа и проверки результатов автоматизированной программы сканирования. Первоначально Nmap проектировался для UNIX, но в последние годы был перенесен на платформу Windows. Nmap — программа с открытым исходным кодом, ее можно бесплатно загрузить с нескольких сайтов, основной из которых — http://www.insecure.org/nmap.
2. N-Stealth
Один из наиболее сложных этапов анализа нарушений в системе безопасности — стадия оценки. Определить активные системы и службы, которые работают на них, несложно, но как выяснить степень уязвимости конкретной службы? Эффективный инструмент для Web-служб — N-Stealth Security Scanner компании N-Stalker. Компания продает более полнофункциональную версию N-Stealth, но бесплатная пробная версия вполне пригодна для простой оценки. Платный продукт располагает более чем 30 тыс. тестов системы безопасности Web-серверов, но и бесплатная версия обнаруживает более 16 тыс. конкретных пробелов, в том числе уязвимые места в таких широко распространенных Web-серверах, как Microsoft IIS и Apache. Например, N-Stealth отыскивает уязвимые сценарии Common Gateway Interface (CGI) и Hypertext Preprocessor (PHP), использует атаки с проникновением в SQL Server, типовые кросс-сайтовые сценарии и другие пробелы в популярных Web-серверах.
N-Stealth поддерживает как HTTP, так и HTTP Secure (HTTPS — с использованием SSL), сопоставляет уязвимые места со словарем Common Vulnerabilities and Exposures (CVE) и базой данных Bugtraq, а также генерирует неплохие отчеты. Я использую N-Stealth для поиска наиболее распространенных уязвимых мест в Web-серверах и определяю самые вероятные направления атак. Более подробную информацию о N-Stealth можно получить по адресу http://www.nstalker.com/eng/products/nstealth. Конечно, для более достоверной оценки безопасности Web-узла или приложений рекомендуется приобрести платную версию или такой продукт, как WebInspect компании SPI Dynamics.
3. SNMPWalk
SNMP — известный, широко используемый и совершенно незащищенный протокол, работающий через UDP-порт 161. Маршрутизаторы Cisco Systems и серверы Windows, как правило, совместимы с SNMP и в лучшем случае минимально защищены требованием указывать чисто текстовую строку с именем сообщества (community string), чтобы получить разрешения на запись и чтение. Для оценки мер безопасности, пусть слабых, SNMP в сети удобен такой инструмент, как SNMPWalk, с помощью которого можно получать важную информацию от сетевых устройств. Простой запрос SNMP поможет обнаружить утечку информации из устройств SNMP. Например, широко известная стандартная community-строка для маршрутизаторов Cisco — «ILMI». Используя эту строку, SNMPWalk может извлечь из маршрутизаторов Cisco массу информации, которая позволяет получить полный контроль над инфраструктурой сетевого маршрутизатора, если конкретный важный фрагмент данных хранится в информационной базе Cisco Management Information Base (MIB).
SNMPWalk — открытый инструмент, который был разработан в рамках проекта Net-SNMP в Университете Карнеги—Меллона в начале 1990-х, когда началось внедрение SNMP. Для извлечения управляющих параметров (в абстрактном синтаксическом представлении — Abstract Syntax Notation, ASN) из поддерева MIB SNMP используется запрос get-next. Как отмечалось, чтобы получить право чтения информации с устройства, достаточно лишь строки, которая хорошо известна или может быть без труда найдена в сети. Версии SNMPWalk для UNIX и Windows можно получить по адресу http://net-snmp.sourceforge.net.
4. Fpipe
Один из наиболее сложных тестов системы безопасности, которые полезно выполнить в сети, — имитировать нападение взломщика, отыскивая способы обойти одну или несколько линий обороны. Пример обходного маневра на этапах оценки или проникновения — ретрансляция или перенаправление портов, и инструмент Fpipe компании Foundstone (подразделение компании McAfee) как нельзя лучше подходит для этого. Для обхода списков управления доступом (ACL) маршрутизатора, правил брандмауэра и других механизмов защиты иногда можно обращаться к конкретной службе, работающей через порт, перенаправляя или туннелируя трафик в нужный TCP-порт через другой TCP-порт.
Упрощенный пример — маршрутизатор между подсетями, который разрешает прохождение только HTTP-трафика через TCP-порт 80. Предположим, требуется установить соединение с машиной, работающей с Telnet (TCP-порт 23) в другой подсети. Если удалось проникнуть в другую систему в той же подсети, в которой расположен компьютер, работающий с Telnet, то с помощью ретранслятора портов, такого как Fpipe, можно организовать TCP- или UDP-«поток», который инкапсулирует трафик для TCP-порта 23 в пакеты, идентифицируемые как пакеты TCP-порта 80. Эти пакеты проходят через маршрутизатор, в котором разрешен трафик TCP-порта 80, и поступают в пораженный компьютер, на котором работает Fpipe или другой ретранслятор портов. Этот ретранслятор портов «сбрасывает» оболочку с пакетов и передает трафик TCP-порта 23 целевому получателю.
Для переадресации и перенаправления портов можно использовать также Secure Shell (SSH) или Netcat (описание приведено ниже), но бесплатная, простая в использовании и хорошо документированная программа Fpipe предпочтительнее. Новейшую версию Fpipe можно получить по адресу http://www.foundstone.com.
5. SQLRECON
За последние несколько лет было выявлено много уязвимых мест в таких SQL-продуктах, как Microsoft SQL Server, Oracle Database и Oracle Application Server. Наиболее известной угрозой был «червь» SQL Slammer в 2003 г. (описание опубликовано по адресу http://www.cert.org/advisories/CA-2003-04.html). До недавнего времени не существовало инструмента для точного обнаружения экземпляров SQL Server и номеров их версий, поэтому выявить потенциальные изъяны в системах SQL Server было трудно. Слишком часто инструменты неверно определяли версию SQL Server, так как извлекали информацию из портов (например, TCP-порта 1433, UDP-порта 1434), в которых содержались неверные данные о версии SQL Server.
Недавно появилась утилита SQLRECON, которую можно загрузить с сайта компании Special Ops Security по адресу http://specialopssecurity.com/labs/sqlrecon. SQLRECON просматривает сеть или хост-компьютер, идентифицируя все экземпляры SQL Server и Microsoft SQL Server Desktop Engine (MSDE). Основное достоинство инструмента заключается в том, что в одной утилите объединены несколько известных методов привязки и обнаружения SQL Server/MSDE. Получив достоверную информацию о серверах SQL (и их версиях) в сети, можно приступить к поиску потенциальных уязвимых мест. SQLRECON — не сканер уязвимых мест, а скорее средство обнаружения, которое значительно облегчает задачу оценки безопасности сети. Теперь нужен инструмент для Oracle…
6. Enum
Специалисту по Windows, знакомому с Linux, полезно иметь исчерпывающий (и бесплатный) инструмент для сбора самой разнообразной информации о системе Windows. Именно таким инструментом является Enum. Запускаемая из командной строки утилита с консолью управления сообщает массу полезной информации о компьютере Win32 через службу NetBIOS, которая работает с TCP-портом 139. В ходе как неаутентифицированных (null session), так и аутентифицированных сеансов Enum может извлекать списки пользователей, систем, общих ресурсов, групп и их членов, паролей и информации о политиках LSA (Local Security Authority — локальный диспетчер безопасности). С помощью Enum можно проводить примитивные словарные атаки методом перебора на индивидуальные локальные учетные записи. На экране 1 показана подробная информация о системе Windows, которую можно дистанционно собрать с помощью этого инструмента. Enum (наряду с некоторыми другими превосходными инструментами, такими как Pwdump2 и LSAdump2) можно загрузить с сайта BindView по адресу http://www.bindview.com/services/razor/utilities.
7. PsTools
Большинство администраторов знакомы с многочисленными инструментами и ресурсами компании Sysinternals. Для оценки безопасности очень полезен комплекс PsTools. Название комплекса происходит от ps (process listing), утилиты командной строки для UNIX. PsTools представляет собой набор инструментов, заполняющих пробелы в обычном инструментарии командной строки и комплектах ресурсов для Windows. PsTools особенно полезен для оценки безопасности и проникновения как на удаленные, так и на локальные компьютеры.
Проникнув через лазейку, очень удобно воспользоваться PsTools, чтобы дистанционно манипулировать системой и расширить атаку, в частности повысить уровень своих полномочий. Например, если удалось пробраться в систему и получить локальный административный доступ, но требуется повысить уровень полномочий до уровня администратора домена, который зарегистрирован в данный момент, с помощью PsTools можно выполнить такие операции, как удаленное завершение сеанса и уничтожение процесса.
PsExec — одна из лучших утилит комплекта PsTools. Благодаря ей пользователь с локальным административным доступом (через аутентифицированное сетевое соединение) может дистанционно запускать программы в системе. Очень эффективный прием — использовать PsExec для запуска cmd.exe на удаленной системе, что обеспечивает доступ к удаленной командной строке с административными полномочиями (PsExec не позволяет получить такие полномочия, их нужно приобрести каким-то другим способом).
Другие полезные программы — PsList для составления списка всех процессов, активных на удаленной системе, и PsKill, с помощью которой можно уничтожать отдельные процессы на удаленном компьютере. Помимо оценки уровня безопасности, комплекс PsTools весьма полезен и прост для дистанционного выполнения многих административных операций из командной строки (вероятно, именно таким было основное намерение авторов). Комплекс PsTools (наряду со многими другими ресурсами) можно получить на Web-узле Sysinternals по адресу http://www.sysinternals.com/utilities.html.
8. Netcat
Netcat достаточно широко известен как средство открыть лазейки для доступа взломщика в систему (этап проникновения), но менее известны его возможности в качестве инструмента для привязки и оценки, а также выполнения других важных операций, составляющих традиционную процедуру оценки уровня сетевой безопасности. Он был разработан более десяти лет назад для UNIX и перенесен в Windows в 1998 г. Netcat — это расширение UNIX-команды
cat
с помощью которой можно организовать потоковую пересылку содержимого файлов на экран и с экрана, чтобы просматривать, изменять или объединять данные. С помощью Netcat можно читать и записывать данные из стандартных устройств ввода/вывода компьютера через сеть TCP/IP. В результате пользователь может работать с набором протоколов TCP/IP и читать/записывать данные через порты TCP и UDP.
Помимо организации лазеек, Netcat можно использовать для захвата заголовков (Telnet, SMTP и FTP), конвейеризации файлов и данных, сканирования портов, дистанционной привязки служб к портам и многих других задач. Мне кто-нибудь то и дело демонстрирует новые, неизвестные ранее способы применения Netcat. Чаще всего я использую данную утилиту для подключения к TCP-порту, чтобы попытаться извлечь из него какую-нибудь информацию, и обратной передачи приглашения командной строки с целевой системы.
Версию Netcat для Windows можно загрузить по адресу http://www.vulnwatch.org/netcat. Чрезвычайно подробное описание инструмента опубликовано по адресу http://www.vulnwatch.org/netcat/readme.html.
9. John the Ripper
Большинство администраторов наверняка слышали об инструменте для взлома паролей и аудита L0phtCrack, первоначально разработанном группой The Cult of the Dead Cow; в настоящее время владеет программой и совершенствует ее фирма @stake, недавно купленная компанией Symantec. Я предпочитаю John the Ripper, простой, эффективный инструмент разгадывания паролей, реализованный на многих платформах (в том числе на Windows), в основе которого лежит известный UNIX-инструмент Crack. С помощью John можно выявить характеристики и возможности системы, чтобы оптимизировать производительность. По моему опыту John предпринимает значительно больше попыток в секунду, нежели другие программы разгадывания паролей, в том числе L0phtCrack (считается, что LC5 — текущая версия L0phtCrack — значительно быстрее прошлых версий, но за нее приходится платить).
Кроме того, John не только раскрывает хешированные пароли Windows (LAN Manager и NT LAN Manager, NTLM), но и без дополнительной настройки взламывает любые пароли, в которых применяются шифротекст или форматы хеширования DES (standard, single, extended), MD5, Blowfish или Andrew File System (AFS). John в сочетании со словарным файлом (существует множество таких файлов, охватывающих практически все известные языки галактики — даже вуки и клингон) представляет собой незаменимый инструмент для взлома паролей и аудита (необходимый каждой компании, независимо от строгости ее политики). Утилиту John the Ripper можно получить по адресу http://www.openwall.com/john или http://www.securiteam.com/tools/3X5QLPPNFE.html.
10. Metasploit Framework
Простая в использовании платформа проникновения, содержащая описание новейших угроз, дополненная функциями автоматического обновления и расширяемая с помощью известного языка, такого как Perl. Однако небезопасно (и довольно безответственно) бесплатно предоставлять такие возможности кому попало — это просто подарок для начинающих хакеров (все равно что выставить ядерный чемоданчик на аукционе eBay). Однако нельзя не признать, что такой инструмент, как Metasploit Framework, очень пригодится специалистам по сетевой безопасности для эмуляции угроз.
Metasploit Framework появилась около двух лет назад как результат исследовательского проекта, возглавляемого известным специалистом по проблемам безопасности Х. Д. Муром. Цели проекта были отчасти благородными: углубить исследования в области безопасности и предоставить ресурс для разработчиков средств проникновения. Я использую Metasploit Framework (с некоторой осторожностью и после предварительного тестирования в лаборатории) в качестве инструмента проникновения для оценки уровня безопасности.
Metasploit — механизм на базе сценариев Perl, с помощью которого можно применять множество методов проникновения для различных платформ и приложений (на момент подготовки данной статьи известно более 75 способов проникновения, несущие 75 вариантов нагрузки, и это число увеличивается). Помимо набора методов проникновения через известные лазейки, Metasploit позволяет переслать в обнаруженную брешь конкретную программу. Например, проникнув в систему, не защищенную от SQL Slammer (см. выше раздел SQLRECON), можно выбрать способ манипулирования пораженной системой: создать соединение с помощью оболочки Win32 Bind, обратную посылку оболочкой Win32 Reverse, просто выполнить дистанционную команду, ввести вредную серверную DLL утилиты Virtual Network Computing (VNC) в пораженный активный процесс или применить другой метод. Metasploit Framework расширяется с использованием модулей Perl, поэтому можно подготовить собственные средства проникновения, включить их в инфраструктуру и воспользоваться готовой подходящей программой использования. На экране 2 показан удобный в применении Web-интерфейс Metasploit со списком методов проникновения.
Я рекомендую относиться к Metasploit Framework с осторожностью и использовать ее только для демонстрации конкретных уязвимых мест в ходе анализа сетевой безопасности. Загрузить Metasploit Framework можно по адресу http://www.metasploit.com.
Nessus (http://www.nessus.org) — еще один широко распространенный сканер пробелов безопасности, который существует уже несколько лет и заслуживает внимания.
В данной статье я попытался сделать невозможное — составить список наиболее распространенных бесплатных инструментов, полезных для оценки сетевой безопасности. Трудно выбрать лишь десять среди множества существующих средств. Если рекомендованные продукты не подходят в конкретной ситуации, то должны быть другие, аналогичные бесплатные инструменты. Можно обратиться и к коммерческим средствам, которые часто более полно проработаны и обслуживаются лучше, чем бесплатные продукты. И даже если вы узнали из статьи лишь об одном новом инструменте, можно считать, что она прочитана не зря.
Взято с Журнал “Windows IT Pro”