Страницы

четверг, 1 марта 2012 г.

Уязвимы по определению

У многих людей, как-либо связанных с безопасностью, периодически возникает желание заняться pentest'ом, то есть тестом на проникновение. И чаще всего начинают все с pentest'а веб-приложений. Порог вхождения довольно мал (простейшая sqli определяется добавлением кавычки в параметр и эксплуатируется не особо сложнее), но при этом встречаются и довольно сложные задания, которые заставляют потратить пару-тройку дней на ковыряние.

Но возникает вопрос — где применять теоретические знания, без страха внезапного появления маски-шоу? Под катом проведу небольшой обзор полигонов для экспериментов по pentest'у.

Полигоны можно разделить на следующие категории и подкатегории:
  • Полноценные образы операционных систем с набором уязвимых сервисов, в том числе с уязвимыми web-приложениям
  • Дистрибутивы уязвимых web-приложений (offline)
  • Уязвимые web-приложения (online), приближенные к реальным
  • Уязвимые web-приложения (online) в формате CTF

Дистрибутивы уязвимых web-приложений (offline)


Уязвимые дистрибутивы предоставляют наибольшую свободу действий, т.к. не нужно лишний раз создавать песочницу для уязвимостей, как это обстоит с online-приложениями.

Mutillidae


Проект Mutillidae реализовывает уязвимости, которые описаны в OWASP Top 10. OWASP Top 10 — это ежегодно обновляемый список 10 уязвимостей, на которые необходимо обращать внимание как разработчикам, так и security специалистам.

По каждой из уязвимостей из Top 10 доступно несколько заданий:


Есть возможность переключать уровень защищенности приложения, включать подсказки:

 

Все скрипты выполняются с полными привилегиями, результат простой command injection на лицо:

На данный момент доступна версия 2.0.7

OWASP Webgoat

Проект в этот раз от OWASP, в комплекте со скриптами идет и web-сервер (TomCat), запускать можно просто на рабочем компьютере одним bat-файлом.

Существенные отличия от Mutillidae в том, что нужно не просто что-то выполнить, а получить вполне конкретный результат. Когда результат будет достигнут, это будет отмечено в списке всех заданий:


Для прохождения некоторых заданий нужно вместо взлома наоборот внедрить защиту в код.

Информация о проекте доступна здесь

Если при прохождении возникают сложности, то по каждому из заданий есть видео с прохождением: yehg.net/lab/pr0js/training/webgoat.php Саму ссылку можно найти на странице с заданием.

Damn Vulnerable Web App (DVWA)


Проект аналогичен mutillidae, то есть нет четко поставленного задания, которое нужно пройти, а есть просто набор скриптов со стандартными уязвимостями:
  • Brute Force
  • Command Execution
  • CSRF
  • File Inclusion
  • SQL Injection
  • SQL Injection (Blind)
  • Upload
  • XSS reflected
  • XSS stored
Результат показывается «as is», то есть максимально приближенно к реальности:

 На данный момент доступна версия 1.0.7

Уязвимые web-приложения (online), приближенные к реальным

Тестовые сайты acunetix
Набор уязвимых сайтов, на которых acunetix показывает свои тесты:

testasp.vulnweb.com/
testaspnet.vulnweb.com/
testphp.vulnweb.com/

Но покопать уязвимости можно и вручную.
XSS
Набор нескольких сайтов с возможностью проведения XSS. Причем для успешной эксплуатации необходимо еще обойти систему фильтрации, что не всегда оказывается тривиальным.

canyouxssthis.com/HTMLSanitizer/
html5sec.org/xssme.php
xssme.html5sec.org/

Уязвимые web-приложения (online) в формате CTF


Наиболее вкусная (на мой взгляд) часть. Задания проходятся в сети, поэтому не нужно ставить дополнительного софта. И есть четкая цель, которой нужно достигнуть (достать flag).
Hack This Site
Набор так называемых миссий, разделенных по уровням сложности. Есть базовые миссии, такие как получить содержимое некоего файла в директории со скриптом и вывести его содержимое:


Также есть миссии, приближенные к реальной жизни, например, узнать список всех e-mail адресов зарегистрированных пользователей сайта (сайт, само собой учебный, с hackthissite ))

По каждой миссии есть форум, где можно почитать подсказки или целиком прохождение. Регистрироваться и проходить миссии тут
Enigma

 Похожий проект, присутствуют различные базовые миссии, где пароль (flag) лежит, например, в исходном коде:

Или где нужно провести самую простую sql-injection:

И аналогично есть миссии, приближенные к реальным сайтам, где необходимо использовать различные методы для поиска флага:

CTF, ограниченные по времени
И наконец, периодически проводятся соревнования в формате CTF, задания различной тематики, от web до реверсинга и forensic. Календарь ближайших мероприятий можно посмотреть здесь:

capture.thefl.ag/calendar/

На этом же сайте доступны прошлые задания. Описания прошедших CTF с прохождением заданий (writeup) обычно выкладывают команды победителей (Leet More, EINDBAZEN, PPP), либо можно читать на специализированных форумах, например, rdot:

rdot.org/forum/forumdisplay.php?f=64

На сайте SecurityLab можно посмотреть описание прохождения этапов HackQuest 2010 - открытых соревнований по защите информации. Материалы отборочного тура PHDays CTF 2011 на предстоящий форум Positive Hack Days (с вариантами задач) выложены здесь.

Вместо заключения


Помимо описанных выше полигонов существует еще много всего интересного, но протестировать все не хватает времени, поэтому приведу ссылки на англоязычные блоги:

www.irongeek.com/i.php?page=security/deliberately-insecure-web-applications-for-learning-web-app-security

blog.taddong.com/2011/10/hacking-vulnerable-web-applications.html

community.rapid7.com/community/infosec/blog/2011/12/23/where-can-i-find-vulnerable-machines-for-my-penetration-testing-lab

g0tmi1k.blogspot.com/2011/03/vulnerable-by-design.html

www.felipemartins.info/2011/05/pentesting-vulnerable-study-frameworks-complete-list/

code.google.com/p/pentest-bookmarks/wiki/BookmarksList

Автор: Игорь Булатенко, эксперт исследовательского центра Positive Research 

Комментариев нет:

Отправить комментарий