- PVSM.RU - https://www.pvsm.ru -

Информационная безопасность / Уязвимы по определению

У многих людей, как-либо связанных с безопасностью, периодически возникает желание заняться pentest'ом, то есть тестом на проникновение. И чаще всего начинают все с pentest'а веб-приложений. Порог вхождения довольно мал (простейшая sqli определяется добавлением кавычки в параметр и эксплуатируется не особо сложнее), но при этом встречаются и довольно сложные задания, которые заставляют потратить пару-тройку дней на ковыряние.
Но возникает вопрос — где применять теоретические знания, без страха внезапного появления маски-шоу? Под катом проведу небольшой обзор полигонов для экспериментов по pentest'у.
Информационная безопасность / Уязвимы по определению
<a rel="nofollow" name="habracut">
Информационная безопасность / Уязвимы по определению
Полигоны можно разделить на следующие категории и подкатегории:

  1. Полноценные образы операционных систем с набором уязвимых сервисов, в том числе с уязвимыми web-приложениям
  2. Дистрибутивы уязвимых web-приложений (offline)
  3. Уязвимые web-приложения (online), приближенные к реальным
  4. Уязвимые web-приложения (online) в формате CTF

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

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

Mutillidae

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

По каждой из уязвимостей из Top 10 доступно несколько заданий:
Информационная безопасность / Уязвимы по определению

Есть возможность переключать уровень защищенности приложения, включать подсказки:
Информационная безопасность / Уязвимы по определению

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

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

OWASP Webgoat

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

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

Информационная безопасность / Уязвимы по определению

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

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

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

yehg.net/lab/pr0js/training/webgoat.php [4]

Саму ссылку можно найти на странице самим заданием.

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 [5]

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

Тестовые сайты acunetix

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

testasp.vulnweb.com/ [6]
testaspnet.vulnweb.com/ [7]
testphp.vulnweb.com/ [8]

Но покопать уязвимости можно и вручную.

XSS

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

canyouxssthis.com/HTMLSanitizer/ [9]
html5sec.org/xssme.php [10]
xssme.html5sec.org/ [11]

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

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

Hack This Site

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

Информационная безопасность / Уязвимы по определению

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

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

Регистрироваться и проходить миссии тут [12]

Enigma

Информационная безопасность / Уязвимы по определению

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

Информационная безопасность / Уязвимы по определению

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

Информационная безопасность / Уязвимы по определению

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

Информационная безопасность / Уязвимы по определению

CTF, ограниченные по времени

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

capture.thefl.ag/calendar/ [13]

На этом же сайте доступны прошлые задания.

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

rdot.org/forum/forumdisplay.php?f=64 [14]

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

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

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

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

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

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

Автор: videns


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/web/2667

Ссылки в тексте:

[1] OWASP Top 10: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

[2] 2.0.7: http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10

[3] здесь: https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project

[4] yehg.net/lab/pr0js/training/webgoat.php: http://yehg.net/lab/pr0js/training/webgoat.php

[5] 1.0.7: http://www.dvwa.co.uk/

[6] testasp.vulnweb.com/: http://testasp.vulnweb.com/

[7] testaspnet.vulnweb.com/: http://testaspnet.vulnweb.com/

[8] testphp.vulnweb.com/: http://testphp.vulnweb.com/

[9] canyouxssthis.com/HTMLSanitizer/: http://canyouxssthis.com/HTMLSanitizer/

[10] html5sec.org/xssme.php: http://html5sec.org/xssme.php

[11] xssme.html5sec.org/: http://xssme.html5sec.org/

[12] тут: http://www.hackthissite.org

[13] capture.thefl.ag/calendar/: http://capture.thefl.ag/calendar/

[14] rdot.org/forum/forumdisplay.php?f=64: https://rdot.org/forum/forumdisplay.php?f=64

[15] www.irongeek.com/i.php?page=security/deliberately-insecure-web-applications-for-learning-web-app-security: http://www.irongeek.com/i.php?page=security/deliberately-insecure-web-applications-for-learning-web-app-security

[16] blog.taddong.com/2011/10/hacking-vulnerable-web-applications.html: http://blog.taddong.com/2011/10/hacking-vulnerable-web-applications.html

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

[18] g0tmi1k.blogspot.com/2011/03/vulnerable-by-design.html: http://g0tmi1k.blogspot.com/2011/03/vulnerable-by-design.html