Защита от хакеров корпоративных сетей
Шрифт:
Программы Nmap и NmapNT
Считается, что программы Nmap и NmapNT не предоставляют всех возможностей полноценных сканеров уязвимости. Тем не менее они являются полезным свободно распространяемым инструментальным средством, которое каждый профессионал в области безопасности должен иметь в своем комплекте инструментальных средств. Программа Nmap (www.insecure.org) была создана хакером Федором (Fyodor) и выполняется на различных ^NIX-системах. В ее состав входит не только собственно модуль сканирования порта, но и другие полезные режимы работы: способность выполнять сканирование портов в различных режимах и использование различных алгоритмов декодирования для маскировки сканирования. Программа Nmap в большинстве случаев может идентифицировать удаленные операционные системы и сканировать хосты, которые не отвечают на запросы утилиты ping по протоколу ICMP. Программа NmapNT (www.eeye.com/html/Research/Tools/nmapnt.html) является версией программы Nmap, которую компания eEye перенесла на платформы Windows NT и Windows 2000. Если все, в чем нуждается читатель, заключается в
Сканер whisker
Сканер whisker, написанный хакером Rain Forest Puppy (RFP), является простым сканером уязвимости с использованием стандарта общего шлюзового интерфейса CGI (Common Gateway Interface). (Общий шлюзовой интерфейс CGI (Common Gateway Interface) – разработанный NCSA сетевой стандарт, предназначенный для создания серверных приложений HTTP.) Он написан на языке Perl. Ныне известная версия 1.4 этого сканера разбита на два проекта. Во-первых, это сканер whisker, который мы все знаем и любим. И во-вторых, l ibwhisker-модуль Perl, который использует сканер whisker. Сканер whiskers является традиционным CGI-сканером. Традиционные CGI-сканеры не обладают таким встроенным в них интеллектом. Они просто выбирают хост и заполняют его регистрационные журналы сведениями о ряде известных проблем интерфейса CGI, независимо от существования директории /cgi-bin/ и типа выполняющего Web-сервера. Подобные действия плохи тем, что не имеет смысла вслепую сканировать хост из-за пустой траты большого количества времени и бессмысленной пересылки по сети данных, уменьшая тем самым ее пропускную способность, а главное, из-за того, что действия вслепую приводят к пропуску большого числа проблем. Сканер whisker пытается решать эту проблему с помощью встроенного в него интеллекта, который проявляется в способе определения операционной системы и редакции сканируемого удаленного Web-сервера, а также в предоставлении возможности изменять или писать сценарии необходимых режимов сканирования. Кроме того, по требованию пользователя сканер whisker может попытаться использовать некоторые из методов уклонения от классических систем обнаружения вторжения. Но даже при всем этом whisker – это только CGI-сканер. Он не будет проверять другие уязвимости, как, например, наличие слабо защищенных версий Sendmail и BIND. И несмотря на это, whisker превосходит другие сканеры в том, что было задумано реализовать в нем. Это хорошее дополнение к любому комплекту инструментальных средств. Сканер whisker можно найти по адресу www.wiretrip.net/rfp/p/doc.asp/i5/d21.htm.
Сканер VLAD the Scanner
Сканер VLAD the Scanner является еще одним инструментальным средством, похожим на сканер whisker. Сканер VLAD the Scanner главным образом написан на языке Perl. Он был создан группой RAZOR компании BindView для высматривания десяти наиболее значимых уязвимостей в системе безопасности из списка SANS. Сканер VLAD – маленький, но очень эффективный инструментарий сканирования. Конечно, VLAD не проверяет всего того, что просматривает коммерческий сканер BV–Control for Internet Security компании BindView, но тем не менее он предоставляет пользователю возможность быстро просмотреть проблемы, попавшие в список десяти наиболее важных проблем компании SANS. Сканер VLAD – устаревший ребенок, поскольку SANS обновил свой список, заменив его списком из двадцати наиболее важных проблем. Но, несмотря на это, реализованные в нем возможности поиска слабых паролей и проверки CGI все еще остаются достаточно полезными. Сканер VLAD можно найти по адресу http://razor.bindview.com/tools/vlad/index.shtml.
Другие ресурсы
Вполне вероятно, что в секции не было рассказано о других свободно распространяемых инструментальных средствах, число которых достаточно велико. Тем не менее были перечислены наиболее популярные из них. Сайты PacketStorm Security (www.packetstormsecurity.org) и Technotronic (www.technotronic.com) являются той парой ресурсов, которые позволят найти и загрузить некоторые из нерассмотренных свободно распространяемых инструментальных средств. После их загрузки следует проявить осторожность и полностью разобраться с тем, что позволяют сделать загруженные инструментальные средства. Кроме того, при первой же возможности следует получить исходные тексты программ загруженных инструментальных средств с целью проведения собственного аудита, для того чтобы гарантировать, что они работают именно так, как было разрекламировано.
Применение автоматизированных инструментальных средств для тестирования на проникновение
Автоматизированные инструментальные средства, несмотря на некоторые их недостатки, – широко приветствуемое дополнение при выполнении тестирования на проникновение. Большинство организаций, которые выполняют тестирование на проникновение, полагаются на автоматизированные инструментальные средства вне зависимости от того, являются они купленными за деньги коммерческими, свободно распространяемыми инструментальными средствами или инструментальными средствами, разработанными внутри самой организации. Представьте себе сценарий, согласно которому читателя попросили бы выполнить тестирование на проникновение в удаленную сеть, состоящую из пяти хостов. У читателя есть два варианта действий. Он может протестировать удаленную сеть вручную или в процессе тестирования использовать некоторые из автоматизированных средств, чтобы они помогли ему провести тестирование. Вообразите, насколько неэффективно было бы вручную воспользоваться Telnet, чтобы проверить открытые порты у всех пяти
Тестирование коммерческих инструментальных средств
Давайте рассмотрим первоначальный сценарий, согласно которому читателю следовало бы протестировать на проникновение сеть, состоящую из пяти хостов с IP-адресами от 192.168.0.1 до 192.168.0.5. Это – вся информация, которая была предоставлена читателю. Больше неизвестно никаких данных ни об операционных системах, ни о прослушивающих сеть сервисах. Каким образом автоматизированные коммерческие инструментальные средства смогут помочь повысить эффективность тестирования настолько, насколько это возможно? Для начала читателю следовало бы приобрести лицензии на выбранные инструментальные средства. Вне зависимости от того, был ли выбран сканер Internet Scanner, CyberCop или eEye Retina, процесс получения лицензии имеет много общего. Просто запустите программу, предоставьте ей необходимую информацию, а затем введите диапазон IP-адресов, который читатель желал бы отсканировать. Некоторые коммерческие инструментальные средства предоставляют своему пользователю возможность предварительного выбора типа сканирования, которое он хотел бы выполнить, как это показано на рис. 17.4. На рисунке 17.4 показан экран выбора режимов сканирования сканера Internet Scanner.
Рис. 17.4. Выбор режимов сканирования сканера Internet Scanner
Начиная с этого момента, от читателя требуется просто подождать окончания работы программы: сканирования, анализа его результатов и выдачи отчета. После этого последующие шаги могут различаться. К сожалению, большое число консультантов и консультирующих организаций думают, что следующим логическим шагом является передача своему клиенту отчета вместе со счетом за проведенную работу. Вместо того чтобы просто передать отчет, следовало бы проанализировать его результаты и при необходимости вручную проверить их. Большая заслуга коммерческого инструментария заключается в определении основного направления реальных работ. Например, допустим, что после сканирования коммерческий сканер утверждает, что все пять хостов не защищены от уязвимости showcode.asp информационного сервера Интернет IIS, работающего под управлением Windows NT. Было бы мудрым решением вручную проверить каждый хост и определить, действительно ли они уязвимы так, как это утверждает программа. Сначала читатель должен проверить, что на каждом из хостов установлена операционная система Windows NT и информационный сервер Интернет IIS. Это можно сделать несколькими различными способами (вероятно, их много). Одним из них является использование команды Telnet следующим образом:
telnet www.example.com 80
HEAD / HTTP/1.0<enter><enter>
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 04 Feb 2002 21:41:17 GMT
Connection: Keep-Alive
Content-Length: 19398
Content-Type: text/html
Cache-control: privateИнструментарий и ловушки
Изменение баннера HTTP
Простой захват данных заголовка протокола HTTP не всегда эффективен, потому что на большинстве вариантов операционной системы *NIX очень просто изменить текст баннера. При работе под управлением операционных систем компании Microsoft для изменения баннера следует при помощи шестнадцатеричного редактора отредактировать файл W3SCV.DLL и заменить баннер на то же самое число символов. Кроме того, есть множество приложений независимых производителей, которые пытаются скрыть информацию баннера.
Удачей для тех, кто занимается тестированием на проникновение, является наличие многочисленных способов идентифицировать удаленные операционные системы. Такие вещи, как генерируемые Web-сервером ошибочные страницы или даже специфический состав пакетов протокола TCP, могут стать ключом к разгадке типа удаленной операционной системы.
Как читатель может видеть, возвращенная инструментальным средством информация идентифицировала систему как информационный сервер Интернет-компании Microsoft IIS 4.0. Другой способ идентификации выполняющейся на хосте операционной системы заключается в том, чтобы просто обратиться к Netcraft по адресуи ввести IP-адрес или URL-сайта, о котором идет речь. На рисунке 17.5 показаны результаты работы Netcraft. Как можно видеть, Netcraft идентифицирует удаленную операционную систему и предоставляет другую потенциально ценную информацию о периоде работоспособного состояния машины.
Рис. 17.5. Отчет Netcraft
Путь читатель сделает вид, что он решил использовать метод Telnet на всех пяти хостах. На последнем тестируемом хосте он получит следующую информацию:
telnet www.example.com 80
HEAD / HTTP/1.0<enter><enter>
HTTP/1.1 200 OK
Date: Mon, 04 Feb 2002 21:48:31 GMT
Server: Apache/1.3.19 (Unix) mod_ssl/2.8.4 OpenSSL/0.9.6b
Last-Modified: Tue, 29 Jan 2002 15:13:47 GMT
ETag: “21-1a7a-3c56bc2b”
Accept-Ranges: bytes
Content-Length: 6778
Connection: close
Content-Type: text/html