Использование Уязвимостей Веб-серверов

Вы можете сказать, что вы можете запретить доступ к другим папкам вне /cgi-bin или wwwroot, но что если вы уже *взломали* пароль для получения права на такой доступ? =)
В данной статье я обсужу несколько путей получения информации, как я ее называю, высокого уровня, поскольку все это основано на HTTPd.

Методы, обсуждаемые в данной статье:

1.Robots.txt
2.Получение доступа к сценариям CGI
3.Frontpage
4.Скрытые теги

1.Robots.txt
Файл robots.txt предназначен для программного обеспечения пауков поисковых механизмов, подобных googlebot. В данном файле содержатся правила, описанные для этих роботов, которые говорят, что они могут сканировать, а что им сканировать запрещено (например, 'crawl'). Файл robots.txt располагается на wwwwebsite.com/robots.txt Замечание: не на всех веб-сайтах присутствует этот файл.

# mail webmaster@webcrawler.com for constructive criticism

# User-agent: webcrawler
# Disallow:

# User-agent: lycra
# Disallow: /

User-agent: *
Disallow: /cool10000
Disallow: /tmp
Disallow: /log
Disallow: /rayban.html
Disallow: /coolcat.html
Disallow: rayban.html
Disallow: coolcat.html

Как мы можем видеть, 7 пунктов было исключено из тех, что могут сканироваться роботом, почему? Вероятнее всего потому, что это тестовые, конфигурационные директории/файлы или частные страницы. Вы можете просто попробовать извлечь эти директории/файлы путем указания их в вашем веб-браузере. Поверьте мне, я видел секретные базы данных почтовых адресов, которые продавались третьим лицам, файлы паролей, тестовые сценарии, и шлюзы/тестовые страницы администрирования.

ОЧЕНЬ информативный материал вы можете найти здесь, и (я думаю) что это не незаконный доступ к ним, поскольку вы ничего не взламывали.

2.Сценарии CGI
В данном разделе мы обсудим ошибки CGI и как обойти аутентификацию для сценариев администратора. Скажем, у нас есть такой пример:

wwwhost.com/cgi-bin/viewdatabaseitem.cgi?item=10&template=index.js

Вы *тщательно* пытаетесь изменить параметр template на что-то вроде ../../etc/passwd или нечто аналогичное этому. Что ж, послушайте мою новую теорию как (не являющуюся действительным эксплоитом) получить доступ к этому сценарию и страницам его администрирования. Вернемся к примеру, хмм, мы ввели что-то вроде ../../etc/passwd, но безрезультатно.

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

Во-первых, мы идем по адресу какого-либо поискового механизма, да, да, например, google.com - lol. Теперь мы вводим 'viewdatabaseitem.cgi'. После вывода результатов мы можем разделить нашу историю на 2 раздела:

1.Вы можете найти ссылку на страницу загрузки этого сценария (если его исходный код открыт) ->Загрузить код сценария.
2.Вы обнаруживаете, что исходный код данного сценария не является открытым и за него необходимо заплатить. ->Снова идете на google.com и вводите: "Index of /" viewdatabaseitem.cgi (вводите его как показано, с кавычками.)

Если повезет, то мы сможем получить список файлов в директории, сделанный ботом google. *Некоторые* сайты могут позволять получение списка файлов в директориях, в данном случае щелкните гиперссылку 'In Cache' на google и загрузите все обнаруженные сценарии при помощи вашего браузера (что вы думаете нужно сделать со сценарием viewdatabaseitem.cgi?).

Ок, когда вы получите полный исходный пакет сценария, мы можем приступить к дальнейшим действиям.

Теперь, просмотрите все сценарии в .zip/.tar/етс или директории, куда вы загрузили одиночные сценарии. Пока я не забыл, сперва прочитайте (в большинстве случаев наличествующий) readme.txt, или некоторую другую документацию, для получения инструкций по установке/конфигурации сценариев. Теперь, когда вы узнали как прикрутить сценарий к веб-сайту, вы можете найти в нем некоторые слабые места, вроде хранения конфигурационных файлов/паролей/баз данных и других важных файлов в директории cgi-bin. Не забудьте просмотреть сценарии администрирования, я даже видел сценарии, которые позволяли конфигурировать при их непосредственном вызове, то есть без необходимости аутентифицироваться.

Также, не забывайте изучить исходный код сценариев, так чтобы вы могли найти другие возможные уязвимости. Эта техника сулит успех в %70 случаев, так что воспользуйтесь этим шансом.

3.Frontpage
Да, я знаю, это действительно старо и ламерски, но это все еще может работать на некоторых сайтах. Я не стану объяснять это в больших подробностях, поскольку существуют тысячи документов, написанных на эту тему. Следующую историю я зацепил с http://sec.subnet.dk/fp.html. *КАШЕЛЬ* не флеймите меня за раздел о троянах в конце *КАШЕЛЬ*

"При попытке входа на FrontPage Server (FPS), он запрашивает имя пользователя и пароль, - небольшая мера предосторожности, предотвращающая получение доступа к серверу неавторизованными пользователями. FPS хранит имя пользователя и пароль в файле, часто названном service.pwd. Почему я сказал часто? Ранние версии FPS, с версии 2.0 и ниже, насколько мне известно, не имеют файла, названного service.pwd, но есть три других: administrators.pwd, authors.pwd и users.pwd. Service.pwd находится в директории, названной _vti_pvt. (Поищите ее на своем собственном компьютере).

Когда вы найдете ее, откройте service.pwd в текстовом редакторе наподобие Notepad или Write. Затем вы, вероятно, увидите нечто вроде этого*:

Johndoe:lwCa29nm.xv

*) Если вы не можете найти файл service.pwd в директории _vti_pvt, то это потому, что вы пока не создали Web во FP. Сделайте так, перед тем как искать файл!

Как бы там ни было, Johndoe - это имя пользователя, а lwCa29nm.xv - это пароль. Пароль был зашифрован, так что вы не сможете увидеть действительный пароль. Метод шифрования носит имя Стандарта DES, который чрезвычайно просто взломать при помощи взломщика паролей вроде John the Ripper (JtR). В разделе Software на моей веб-странице вы можете загрузить последнюю версию JtR.

Итак, вы знаете какой файл искать, где он находится, как выглядит пароль, зашифрованный при помощи DES, итак теперь пришло время начать атаку.

Подключитесь к Интернет и перейдите по адресу вашего любимого поискового механизма, например, AltaVista, HotBot или SavvySearch. Введите link:service.pwd в поле поиска на AltaVista и нажмите кнопку Search. На HotBot или SavvySearch просто введите service.pwd. Если вы не получили каких-либо результатов, попробуйте service.pwd без link: на AltaVista, попробуйте .pwd (точка pwd) или попробуйте с файлом administrators.pwd и так далее. Включите свое воображение. Если вам не повезло, попробуйте url:/_vti_pvt/ или url:_vti_Pvt. Это работает в 85 процентах случаев, поскольку здесь находится pwd. В любом случае, если вы попробуете получить доступ к директории /_vti_pvt/, ваш браузер может, а может и не ответить примерно так:

You are not authorized to view this page You might not have permission to view this directory or page using the credentials you supplied.

Решение этой небольшой проблемы следующее:

Это выглядит примерно так:

http://www.myfrontpagevictim.com/_vti_pvt/

Замените его на:

http://www.myfrontpagevictim.com/_vti_pvt/service.pwd

Часто вы сможете извлечь зашифрованный пароль таким образом. Следуйте гиперссылкам, которые вам дадут поисковые механизмы и вы скачаете файл паролей или просто чистый текст на ваш жесткий диск. Помните URL, например, wwwmicrosoft.com или адрес IP, например, 207.46.131.13.

Когда вы решите, что у вас уже достаточно файлов service.pwd, разрывайте свое соединение с Интернет и выключайте браузер, поскольку теперь пришло время взлома пароля. Я рекомендую чтобы вы использовали John the Ripper, поскольку он быстрый и простой в использовании. В любом случае, если вы не умеете пользоваться JtR, прочитайте руководство, сопровождаемое программой.

Вот что я обычно делаю для того, чтобы взломать пароль, зашифрованный Стандартом DES:

Я начинаю с этой команды в JtR:

john -single c:\mypasswordfile.pwd

Эта команда пытается взломать шифрование (пароль) с именем пользователя. Если эта команда не взломает пароль (а в большинстве случаев это не так), я пробую некоторые другие правила (читайте тексты, поставляющиеся с JtR для получения дополнительной информации) или выполняю эту команду:

john -i c:\mypasswordfile.pwd

Эта команда делает то, что называется Увеличением, что означает, что она пытается перебрать все возможные символы/комбинации (если я это учел), начиная с a до z, затем ab до z и так далее. Эта команда поглощает много времени, но в большинстве случаев вы взломаете пароль. Представьте себе пароль вроде: ZZ#S)2:-_!#S<=: (пока не зашифрованный), который потребует ДЕЙСТВИТЕЛЬНО много времени на взлом!

Скажем, вы взломали пароль, теперь вы способны получить доступ к FPS.

Запустите свой собственный FPS.
Щелкните "Open Web" в меню File.
Введите wwwmyfrontpagevictim.com или адрес IP сервера жертвы.
Щелкните "OK" и ждите...