Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Средства взлома Web-приложений Hacking Tools
Nikto
Прежде чем развиваться в качестве самостоятельной утилиты, whisker был создан, чтобы пополнить Perl-библиотеку средств сканирования. Nikto основывается на новом поколении LibWhisker-библиотеки. С самого начала программа поддерживает сканирование портов с поддержкой SSL и прокси.
Реализация
Основанный на Perl, nikto может выполняться под Unix, Windows и Mac OSX. Программа использует стандартные Perl-библиотеки, входящие в поставку. Вы можете загрузить утилиту nikto по адресу http://www.securitysearch.net/tools.cfm. Для работы также требуется LibWhisker (LW.pm).
LibWhisker. Полнофункциональная копия LibWhisker поставляется вместе с архивом nikto. Вы также можете загрузить полный Perl-модуль по адресу http://www.wiretrip.net/rfp/2/index.asp. Инсталляция очень проста. После разархивирования войдите в директории и соберите библиотеку. Как только сборка закончится, установите LW.pm в вашу Perl-директорию. Выполните следующую последовательность команд.
$ cd libwhisker-1.3 $ perl Makefile.pl lib $ perl Makefile.pl install
LibWhisker может показаться немного избыточным, поскольку он включает в себя функциональность нескольких, уже существующих Perl-модулей, таких как LWP, Base64 и HTML::Parser. Преимущества LibWhisker в том, что это "тощая" (минимальный размер файла по сравнению с модулями, функциональность которых он заменяет), простая (один модуль), специализированная (поддерживает только HTTP- и HTTPS-запросы) и живучая (обеспечивает единый интерфейс для поддержки запросов и приема ответов) утилита. Кроме того, она понятнее, чем оригинальная программа whisker!
Сканирование. Основные параметры командной строки nikto отличаются от команд whisker, поэтому вам придется осваивать новые параметры. Сравните командную строку whisker с аналогичной командной строкой nikto.
$ whisker.pl -h 192.168.42.27 -w -W | \ > tee whisker80_192.168.42.27.html.raw $ nikto.pl -host 192.168.42.27 -verbose -web -output \ > nikto80_192.168.42.27.html.raw
Выходная информация Nikto содержит указания на то, почему поиск может угрожать безопасности.
Target IP: 192.168.42.27 Target Hostname: www.victim.com Target Port: 80 ---------------------------------------------------- o Scan is dependent on "Server" string which can be faked, use -g to override o Server: WebSTAR/4.2 (Unix) mod_ssl/2.8.6 OpenSSL/0.9.6c o Allowed HTTP Methods: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE o Server allows PUT method, may be able to store files. o CONNECT method is enabled, server may act as a proxy or relays. o Server allows DELETE method, may be able to remove files. o Server allows PROPFIND or PROPPATCH methods, which indicates DAV/WebDAV is installed. Both allow remote admin and have had security problems. o WebSTAR/4.2(Unix)mod_ssl/2.8.6OpenSSL/0.9.6c appears to be outdated (current is at least mod_ssl/2.8.7) (may depend on server version) o /public/ Redirects to 'http://www.foundstone.com/public', this might be interesting... o robots.txt - This file tells web spiders where they can and cannot go (if they follow RFCs). You may find interesting directories listed here. (GET) o cgi-bin/htsearch?-c/nonexistant - The ht::/Dig install may let an attacker force ht::/Dig to read arbitrary config files for itself. (GET) 885 items checked on remote host8.3.
В таблице 8.1 перечислены основные параметры, необходимые для запуска утилиты nikto. Наиболее важные параметры устанавливают тестируемый хост, порт и выходной файл. Nikto воспринимает первый символ имени параметра как синоним. Например, вы можете ввести -s или -ssl, чтобы использовать протокол HTTPS, или вы можете задать -w или -web для получения выходной информации в формате HTML.
Следует помнить несколько основных положений в работе с утилитой nikto: задавайте хост ( -h ), порт ( -p ), SSL ( -s ) и имя выходного файла. Дополнительные параметры подробно описаны в таблице 8.2. По большей части эти параметры охватывают возможности большинства утилит для сканирования.
Параметр -update упрощает процедуру сопровождения утилиты nikto. Этот параметр заставляет программу соединиться с хостом www.cirt.net и загрузить дополнительные модули для поддержания листа сканирования в текущем состоянии.
$ ./nikto.pl -update ---------------------------------- - Nikto v1.100BETA_2 - www.cirt.net - + Retrieving 'scan_database.db' www.cirt.net message: Send comments on Nikto to cirt.net so it can be a better product.
Config.txt. Nikto использует настроечный файл config.txt для установки отдельных, наименее часто используемых параметров, или наоборот, наиболее часто используемых в процессе сканирования. Этот файл включает дюжину настроек. Параметр может быть закомментирован с помощью символа #. Ниже приведены настройки по умолчанию:
CGIDIRS=/bin/ /cgi/ /mpcgi/ /cgi-bin/ /cgi-sys/ /cgi-local/ /htbin/ /cgibin/ /cgis/ /scripts/ /cgi-win/ /fcgi-bin/ #CLIOPTS=-g -a #NMAP=/usr/bin/nmap SKIPPORTS=21 111 #PROXYHOST=10.1.1.1 #PROXYPORT=8080 #PROXYUSER=proxyuserid #PROXYPASS=proxypassword DEFAULTHTTPVER=1.1 #PLUGINDIR=/usr/local/nikto/plugins MUTATEDIRS=/....../ /members/ /porn/ /restricted/ /xxx/ MUTATEFILES=xxx.htm xxx.html porn.htm porn.html
Строка CGIDIRS содержит список директорий, разделенный пробелом. Nikto пытается определить наличие каждой из директорий перед началом ее просмотра. Соответственно, параметр -allcgi отменяет такой порядок работы.
Строка CLIOPTS содержит параметры командной строки, которые будут использоваться при каждом запуске nikto. Этот прием обычно используется для сокращения командной строки. В файл включаются параметры -generic, -verbose и -web.
Строки NMAP и SKIPPORTS управляют политикой сканирования портов ( -findports ). Если не поддерживается выполнение исходного модуля nmap (что обычно для Windows-систем), nikto использует для сканирования портов Perl-функции. Строка SKIPPORTS содержит список портов, которые никогда не сканируются.
Используйте строку PROXY* для включения поддержки прокси.
Также довольно редко возникает необходимость изменять строку DEFAULTHTTPVER. Вы можете поискать серверы, использующие только версию 1.0.
Строка PLUGINDIR определяет директорию для размещения определяемых пользователем модулей (аналоги файлов scan.db в whisker ). По умолчанию nikto осуществляет поиск в директории /plugins, размещаемой в директории, откуда программа запускается.
Строки MUTATE* существенно увеличивают время, которое требуется для сканирования сервера с параметром mutate. Инструкция MUTATEDIRS устанавливает, что проверка каждой директории должна начинаться от корня или от перечисленных ниже директорий. Этот прием обычно используется для Web-сайтов, которые используют интернационализацию, вследствие чего директория /scripts заменяется на директорию /1033/scripts. Инструкция MUTATEFILES определяет необходимость сканировать каждый файл в приведенном списке директорий.