Установка Paros
- Прежде чем загрузить Paros, следует убедиться в наличии на системе среды Java Runtime Environment (JRE). На Web-узле Java можно проверить, имеется ли в компьютере новейшая версия, или загрузить ее по адресу http://www.java.com/en/download/index.jsp
- После установки JRE можно загрузить Paros и краткое руководство пользователя с Web-узла Paros (http://www.parosproxy.org). Процедура установки проста. Программа Paros представляет собой файл Java Archive (JAR), но в папке имеется ярлык для запуска программы. Paros запускается в собственном окне как автономная программа Java.
- Затем нужно настроить браузер, чтобы установить посредническое соединение с сервером Paros. По умолчанию Paros принимает сетевые соединения через TCP-порт 8080 локального компьютера. Можно изменить сервер, с которым будет установлено соединение, или порт подключения в Paros, выбрав режим Local proxy из меню Tools, Options. (пишем 127.0.0.1 порт 8080)
- Восстановление параметров браузера. Завершив аудит, следует закрыть Paros и удалить конфигурацию из браузера.
Введение.
- Crawler (поисковый паук)
- Сканнер уязвимостей
- Фильтр данных
- Перехватчик запросов/ответов в режиме «on-the-fly»
- Иной малозначительный, но полезный в некоторых ситуациях функционал.
1. Crawler (поисковый паук)
В списке появится несколько лишних адресов из-за того что на главной имеются вставки с этих адресов, в частности баннеры или реклама. Что бы паук во время сканирования не перекинулся на эти хосты их следует удалить. Для этого выделите их, кликните правой кнопкой мыши и выберите пункт «Delete» или «Purge».
Выделите оставшийся хост, пройдите в меню «Analyse» и выберите пункт «Spider» (аналог — выделить хост, кликнуть правой кнопкой мыши и выбрать в появившемся меню пункт «Spider..»). Вы увидите окно всего с 2 кнопками из которых активна лишь одна - «Start». Жмём «Start» и сканирование начинается. После его окончания в папке нашего хоста появятся имена скриптов и директорий которые паук смог обнаружить.
Paros сразу собирает их в список удаляя повторы, в отличае от большинства поисковиков.
Внизу окна программы существует ещё 2 раздела - «URI found during crawl» (URI найденные во время сканирования) и «URI found but out of crawl scope» (URI найдены, но вынесены за пределы сканирования). В первом разделе хранится вообще все ссылки найденные на сайте. Во втором — ссылки которые просканированы небыли. Если Вы просмотрите этот список то увидите что это ссылки на почту или на внешние ресурсы. Обратите внимание ещё на один важный фактор — сканнеру попались папки индексирование которых запрещено в robots.txt.
Обратите внимание вот на что для того что бы папка появилась среди структуры сайта нужно не просто в неё зайти браузером, а пройти в какую-либо директорию находящуюся в ней. После сканирования в результат работы добавится огромный список содержимого интересующей нас директории.
Отдельно рассмотрим варианты записей файлов в структуре сайта которую выстраивает Paros. Примеры:
«GET:index.php» — в сканируемой папке есть файл index.php к которому на сайте обращаются с помощью метода GET. Если какой-то скритп принимает данные от формы методом POST то Paros, обнаружив его, так и напишет «POST:script.php»
«GET:script.php(C)» — на сайте имеется скрипт script.php которому в ссылках передаётся параметр «C». То есть этот вариант Paros запишет если обнаружит ссылку script.php?C=1
«GET:script.php(C,id,name)» — скрипту script.php в некоторых ссылках передаются параметры «С», «id» и «name», например script.php?C=1&name=about&id=3
Если эти параметры будут передаваться в трёх разных ссылках:
script.php?C=1
script.php?name=about
script.php?id=3
то он так и запишет:
«GET:script.php(C)»
«GET:script.php(name)»
«GET:script.php(id)»
Ссылки, по которым проходил Paros во время сканирования, Вы можете посмотреть в правом верхнем окне (закладка «Request»). При клике на любую ссылку там отображается полный запрос.
2. Сканнер уязвимостей
Paros сохраняет тела запросов, следовательно после Вашего входа на сайт он будет уже имитировать вошедшего пользователя.
Теперь пора перейти непосредственно к сканированию на уязвимости. Список уязвимостей Вы можете увидеть пройдя в меню «Analyse» и выбрав пункт «Scan policy». Перед Вами откроется окно настроек сканирования. Здесь происходит управление всевозможными частями проверки на уязвимости.
Первый пункт - «Information gathering» (раскрытие информации, сбор информации). Сюда относятся тесты:
- «Obsolete file» и «Obsolete file extended check» — Поиск устаревших файлов. Встречается всего 2 вида поиска таких файлов — с расширением «bak» и «old»(резервные копии). Алгоритм их поиска прост — например как только найден скрипт index.php сканнер сразу проверяет наличие index.php.bak. Если такой файл есть то сканнер пишет что найдена старая резервная копия index.php.
- Раскрытие IP-адреса. Этот тест занимается определением настоящего IP-адреса веб-сервера в том случае если все запросы к нему идут через брэндмауэр.
- Session ID in URI rewrite — подстановка идентификатора сессии при обращении к различным скриптам. Видимо это что-то похожее на подделку сессии. К сожалению эта функция в документации тоже не описана.
Следующий пункт - «Server security». Здесь находятся тесты которые связаны с веб-сервером. Список их таков:
1.Directory browsing — поиск директорий листинг которых можно посмотреть
2.IIS default file — поиск стандартных файлов IIS
3.Cold Fusion default file — поиск стандартных файлов Cold Fusion
4.Macromedia JRun default file — поиск стандартных файлов Macromedia JRun
5.Tomcat sources default file — поиск стандартных файлов Tomcat
6.BEA WebLogic default file — поиск стандартных файлов BEA WebLogic
7.IBM WebSphere default file — поиск стандартных файлов IBM WebSphere
8.Lotus Domino default file — поиск стандартных файлов Lotus Domino
Как видите — большинство тестов этого раздела ориентировано на определение типа веб-сервера. Здесь есть 2 плохих момента — отсутствие Apache (видимо при разработке Paros он ещё не был столь популярен, хотя наврятли) и наличие проверок малоизвестных или уже не развивающихся веб-серверов. Но это лишь след того что разработка сканнера была давным давно закончена.
Следующим идёт пункт «Miscellenous» - смешанные уязвимости. Эта закладка пуста, видимо авторы не успели написать плагинов к подобным уязвимостям.
И последний пункт - «Injection». Это инъекционные уязвимости. Думаю они в объяснении не нуждаются потому что названия пунктов итак до боли всем знакомы.
После выбора нужных Вам тестов на уязвимости выделяйте интересующий Вас сайт и жмите
«analyse»->«scan» (или «Scan all» если Вам нужно просканировать все сайты имеющиеся в древе). Данные сканирования будут размещены в нижней панели, в закладке «Alerts» и разбиты по папочкам в соответствии с критичностью ошибки.
3. Фильтр данных
Начнём с самого первого фильтра.
- Avoid browser cache (strip off IfModiliedSince). Данный фильтр модифицирует заголовок таким образом что браузер перестаёт использовать кэширование.
- Log unique GET queries into file (filter/get.xsl). При включении этого фильтра Paros начинает логировать все GET-запросы в файл filter/get.xsl, который находится в его установочной директории.
- Log unique POST queries into file (filter/post.xsl). При включении этого фильтра Paros начинает логировать все POST-запросы в файл filter/post.xsl, который находится в его установочной директории.
- Log request and response into file (filter/messages.txt). Данный фильтр логирует все запросы и ответы сервера в файл filter/messages.txt, который находится в установочной директории Paros`a. Запись осуществляется в следующем формате:Цитата:========== номер запроса =========Содержимое заголовка запросаСодержимое тела запроса (если есть)
 содержимое заголовка ответасодержимое тела ответа
- Replace HTTP request header using defined pattern — замена текста в заголовке запроса по указанному регулярному выражению. Для активации данного фильтра сначала нажмите на кнопку с многоточием и Вы увидите окно ввода реулярного выражения состоящее из двух полей — что искать и на что заменить. Не будем сильно мучиться и введём замену news.xml на news.txt. Это самый обычный пример работы такого фильтра. Сейчас обратитесь браузером к news.xml (по полной ссылка …/news.xml) и Paros, перехватив ответ, заменит в адресе запроса news.xml на news.txt. Убрав фильтр и снова обратившись по этому адресу Вы увидите другой результат.
- Replace HTTP request body using defined pattern — поиск и замена текста по регулярному выражению в теле запроса.
- Replace HTTP response header using defined pattern — поиск и замена текста по регулярному выражению в заголовке ответа.
- Replace HTTP response body using defined pattern — поиск и замена текста по регулярному выражению в теле ответа.
- Detect insecure or potentially maliciouse content in HTTP-response. Обнаружает небезопасный или потенциально опасный материал в содержимом HTTP-ответов.
- Log cookie sent by browser. По сути смысл этого фильтра в записи cookies передаваемых браузером на сервер. Запись отловленных данных производится не в файл, а в нижнюю панель «Output».
- Detect and alert 'Set-Cookie' attemp in HTTP-response for modification. Данный фильтр сообщает Вам какие cookies и как хочет изменить сервер.
- Change user agent to other browsers. При включении этого фильтра поле «User agent» в запросах будет заменятся на то что Вы можете выбрать из списка фильтра.
4. Перехватчик запросов/ответов в режиме «on-the-fly»(на лету)
Эта функция пожалуй самая интересная для исследователей веб-приложений, особенно когда в приложении используется AJAX или имеется много форм передающих данные методом POST. При передаче пакета от клиента к серверу, или наоборот, Paros останавливает его и даёт Вам возможность посмотреть что в нём лежит, а так же отредактировать его содержимое. И только после Вашего разрешения пакет пойдёт дальше.Перейдите на закладку «Trap» правой части окна. Это окно перехватчика. В нижней его части имеется два поля для галочек — «Trap request» (Перехват запроса) и «Trap response» (Перехват ответа). Поставим галочку в первом поле и обратимся к нашему сайту. После введения URI в браузере окно Paros`a замигает. Открыв его Вы увидите содержимое запроса который был отослан на сервер.Теперь Вы можете подредактировать содержимое заголовка запроса, и нажав «Continue» отправить его дальше. Нажатие же кнопки «Drop» уничтожит пакет и он так и не дойдёт до адресата. С перехватом ответов всё точно так же только галочка стоит в поле «Trap response». Одновременно Вы можете настроить Paros на перехват и запросов и ответов.
5. Дополнительный функционал
Поиск в информации текущего сеанса по регулярному выражению. Эта функция используется для поиска во всех данных которые содержатся в запросах и ответах сервера, прошедших через Paros. Для открытия панели поиска пройдите в меню «Edit», пункт «Extarct pattern in session».
В верхнем списке выбираются различные готовые регулярные выражения, это: поиск всех cookies-заголовков, всех server-заголовков, вообще всех запросов к серверу, всех запросов к php-файлам, всех POST-запросов к серверу.
В поле «Search Pattern» находится текущее регулярное выражение. Вы можете его редактировать вне зависимости от того что выбрано в верхней строке. Например выражение «http.*», которое ищет все запросы начинающиеся с «http». Правее этого поля находится два пункта поиска — в запросах (request) и в ответах сервера (response).
Самое нижнее поле - «Search Result» содержит результаты поиска по введённому регулярному выражению.
Рассмотрим меню «View».
Первый пункт в нём «Enable Image in history». Данный пункт включает отображение запросов к изображениям в истории запросов (закладка History в нижней части окна). Как Вы все знаете после получения кода страницы начинается загрузка дополнительного контента — стилей, скриптов, картинок и т.д. Сейчас на сайтах очень много изображений, поэтому при включенной этой опции история сильно захламляется запросами к ним. Но иногда это может быть полезно.
Следующие 2 пункта - «Filter history by Request...» и «Filter history by Response...». Эти пункты отвечают за фильтрацию истории по регулярным выражениям, применяемым к запросу и ответу соответственно. Здесь Вам предлагается ввести либо жётское выражение, совпадение с которым будет искаться в запросах или ответах, либо регулярное выражение.
Рассмотрим меню «Tools»
Следующее что мы рассмотрим — пункт «Encoder/Hash» в меню «Tools». Это простейший инструмент для быстрого кодирования информации. В верхнее текстовое поле Вы вводите нужное выражение и справа выбираете операцию. После преобразования результат отобразится в нижнем текстовом поле.
Далее рассмотрим пункт «Manual Request Editor». Это примитивный редактор создания запросов. Окно делится на 2 закладки — Request и Response. Так же окно разделено на 2 части — заголовок пакета и его тело. Здесь Вы можете спокойно формировать нужные Вам запросы, которые по нажатии кнопки «Send» отправятся к серверу. После получения ответа автоматически включится закладка «Response» в которой будет его содержимое.
















 
                         
                                 
                         
                         
                         
                         
                         
                         
                         
                         
                         
                        
Комментарии