Общайся на любые темы!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Общайся на любые темы! » Хакинг / F.A.Q » Курс молодого бойца


Курс молодого бойца

Сообщений 1 страница 12 из 12

1

Курс молодого бойца #1 "Для чего же нужен взлом веб-сайтов?"
Автор: Kuzya
Многие начинающие взломщики задаются вопросом – а для чего же нужен взлом web-сайтов? Этот вопрос возникает просто из-за не понимания строения веб-сайтов. Часто я слышу фразы типа этой – “Вот взломаешь ты сайт, но там же только странички и ничего больше интересного!”.
Дело в том, что веб-сайты работают не только со страничками, но и с определёнными базами данных, характерные для, опять же, определённого сайта.

Например, сайте с юмором может работать с базой данных, в которой содержится огромное количество анекдотов, а сайт, который предоставляет услуги электронной почты – с базой содержащей логины и пароли пользователей.
В последнее время сайты просто грубо дефейсятся (подмена главной странички) – что не очень красиво. Ведь кроме дефейса можно скопировать какую либо базу данных, встроить шелл в скрипты сайта и ещё много-много всего. Так же проникновения через сайт может осуществляться из-за того что файрвол разрешает подключение к различным службам только с определённой группы IP-адресов, а соединения с сайтом разрешаются любым пользователям так как чаще всего сайты общедоступны. Таким образом, 80-ый порт (веб-сервер) не фильтруется файрволом из-за того, что это ненужно. Следовательно, взломщик, получив контроль над сайтом, сможет через него проводить различные действия с атакуемым компьютером.
Давайте ниже рассмотрим основные причины взлома веб-сайтов:
Вот несколько причин для взлома какого-либо сайта:
1. Дефейс.
2. Получение полного контроля над сервером.
3. Для того чтоб похвастаться (перед друзьями, подругой и т.д.).
4. Кража конфиденциальной информации.
5. Месть (чаще всего этим занимаются уволенные служащие).

На самом деле причин может быть намного больше. Я привёл только самые распространенные.

1. Дефейс
Дефейс – это подмена главной страницы сайта. Например, можно заменить главную страницу на страничку с надписью “Здесь был Вася”, а потом бежать к друзьям и кричать что Вы супер-хакер. Но иногда дефейс сайта выглядит и по другому, например: “Прекратите войну с Ираком“.
А вообще есть люди, которым просто нравится дефейс, не знаю почему но вот сильно-сильно нравится. Но у таких людей дефейсы не просто белые странички с надписью “Hacked by super hacker” а по настоящему красивые с картинками выполненными на фотошопе или корэле. Аж смотреть приятно )

2. Кража конфиденциальной информации.
Чаще всего это делается для продажи этой информации. Например, скопировав базу какого ни будь почтового сервера, Вы сможете продать её за хорошие деньги (цена зависит от популярности сервера), но и подумайте о том что за это можно получить хороший срок. Хотя не всё так красиво. Если Вы каким-то образом наткнулись на уязвимость в каком-то популярном сайте и своровали оттудова таблицу с логинами и паролями пользователей, то, если Вы не имеете хороших знакомых, продать её будет очень сложно, иногда даже не возможно. Но как только администрация, взломанного сайта, узнает о краже, то можно ждать людей в погонах либо быстрого изменения системы входа (принудительная смена паролей, временное выключение сервера и т.д.).
Я лично знаю человека, который за хорошие деньги пытался продать базу крупного хостинга, но первым и последним его клиентом стал сотрудник ФСБ. Но слава богу, всё обошлось и получилось договориться с пострадавшей компанией.

3. Получения полного контроля над сервером.
Сейчас данная цель стоит второй, по популярности, после дефейса. Чаще всего захваченный сервер либо используют как-то в своих целях, либо просто продают.
Под полным контролем подразумевается получение прав администратора (windows) или root (*nix). Далее можно просто использовать компьютер например для расшифровки паролей или сканирования других серверов (зачем светить свой IP когда есть чужой), так же можно развернуть на захваченной машине прокси-сервер для своих нужд. Вобщем есть много вариантов, всё зависит только от Вашей фантазии.

Хотелось бы так же сказать пару слов на счёт продажи захваченного сервера. Цены варьируются от 10$ и выше, чем круче железо на компьютере тем больше цена. Ну и соответственно компьютер Васи Пупкина будет стоить намного дешевле чем компьютер какой-либо крупной компании – что само собой разумеется. Ещё цена может зависеть от страны, в которой находится захваченный компьютер. По собственному опыту могу сказать что врятли кто-то из Русских будет покупать взломанный компьютер, который находится в России.
Послесловие.

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

0

2

Курс молодого бойца #2 "Приготовления"
Автор: Kuzya
Здравствуй. Данный цикл статей я начал писать именно потому, что материала в сети вроде бы много, но вот он либо не точный, либо по системе “моё дело написать, Ваше дело разобраться” – что для большинства новичков не есть хорошо. Тем более статьи, размещенные в Интернете, чаще всего авторы пишут подразумевая то, что читатель уже имеет средний опыт взлома.

В цикле статей “Курс молодого бойца.” я постараюсь рассмотреть некоторые типы уязвимостей, которые могут быть обнаружены в php(и не только)-скриптах, причем постараюсь рассмотреть всё это так, чтобы даже новичок мог спокойно разобраться. Небольшие требования к читателям данного цикла статей:
• Знать что такое IP адрес
• Знать что такое сетевые порты.

По ходу обсуждений уязвимостей мы будем проводить некоторые эксперименты со скриптами, которые будем писать сами и запускать их на своём веб-сервере. Плюс ко всему будем писать небольшие эксплойты для разных случаев. Для начала нам конечно же понадобится сам веб-сервер, с поддержкой PHP(это первый проблемный момент в этом цикле статей – сразу всё может не получится. Второй будет дальше.). Для этого нам очень хорошо подойдёт Denver – хороший комплекс программ от отечественного производителя (скачать можно на http://www.denwer.ru/ ).

С его установкой проблем возникнуть не должно, единственное, что может слегка озадачить – это то, что ярлыки на рабочем столе, после установки, могут не создаться. В этом случае нужно просто пройти в папку [папка_куда_Вы_ставили_Denwer]/etc/ . Там Вы найдёте исполняемые файлы:
1. Run.exe – Запуск веб-сервера (Стартует Apache и MySQL)
2. Stop.exe – Остановка веб-сервера
3. Restart.exe – Рестарт веб-сервера соответственно.
Скрипты сайтов лежат в папке /home/. Нам нужна будет только папка localhost. В ней есть папка www – вот там и находятся все скрипты сайта, который Вы увидите, если наберёте http://localhost/, туда же нам нужно будет сохранять и свои скрипты.

Также нужно скачать пакет PHP5 (с этого же сайта) и установить его. Он сам найдёт куда устанавливаться, главное запустить. PHP5 нам нужен для написания скриптов работающих с MsSQL, PostgreSQL и SQLite. В PHP4 нужные нам СУБД не поддерживались, поэтому приходилось копаться в кучах библиотек и в ручную всё подключать. После установки внесите небольшие изменения в файл php.ini находящийся в папке [папка_Denver`a]/usr/local/php5.

Найдите в нём следующие строчки:
;extension=php_mssql.dll
;extension=php_pgsql.dll
и уберите в них точку с запятой в начале строки. Так же добавьте строчку
extension=php_sqlite.dll
Затем перезапустите веб-сервер, всё должно пройти без ошибок. Из-за того что скрипты написанные для этих СУБД написаны под PHP5, нам нужно будет назвать их не *.php а *.php5

Так, веб-сервер установлен, далее нам понадобится PHP-редактор, я предпочитаю PHP Expert Editor (wwwphpexperteditor.com), Вы же можете воспользоваться хоть блокнотом, главное чтоб Вам было удобно. Далее нам понадобится Perl. Существует множество пакетов, но мне больше нравится Active Perl. Вы, опять же, выбираете на свой вкус. Так же нужен любой текстовый редактор для написания perl-скриптов, можете так же воспользоваться обычным блокнотом.

Внимание!!! Не пользуйтесь офисными редакторами (типа Microsoft Word) для написания php или perl - скриптов. Скрипты работать не будут!

Далее, для практического изучения некоторых уязвимостей, нам понадобится 4 СУБД:
1. MySQL (Уже имеется в базовом пакете Денвера)
2. MsSQL (не буду говорить где взять данный СУБД потому что пропаганда пиратства – это плохо )
3. PostgreSQL(скачать http://wwwmaster.postgresql.org/down...ql-8.2.0-1.zip (для скачки выберите страну(Russian )))
Вы нашли/скачали эти СУБД - попробуйте установить их и запустить. Вот вроде бы и всё что нужно для подготовки. Давайте начнём.

0

3

Курс молодого бойца #3 "С чего начать взлом веб-сайта?"
Автор: Kuzya
Многие новички часто задаются вопросом – а с чего же мне начать взлом сайта? Сейчас я попытаюсь об этом рассказать.

Для начала определяется хотя бы какая то информация о сервере. Для этого есть множество способов. Полученная информация может иногда очень сильно помочь при взломе. Этой информацией может быть версия веб-сервера, операционная система, дополнительный софт.

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

Сейчас я расскажу как собрать как можно больше информации об атакуемом сервере. Дополнительная информация может очень даже помочь при проведении атаки или при поиске эксплойта.

Robots.txt

Файл robots.txt используется на сайтах для того, чтобы предотвратить сканирование поисковыми пауками директорий указанных в этом файле. Файл robots.txt лежит в корневом каталоге сайта (http://www.[site].ru/robots.txt). Но хочу обратить Ваше внимание на то что не на каждом сайте можно встретить данный файл.

Robots.txt имеет примерно следующее строение:

User-agent:*
Disallow: /Dir1
Disallow: /Admin
Disallow: /Users
Disallow: /Test
Disallow: /Unit

Здесь Dir1, Admin, Users, Test и Unit – это каталоги, доступ к которым запрещен поисковым паукам (каталоги могут быть совершенно другими, это зависит от администратора). К определённым директориям запрещается доступ паукам из-за того, что в них может храниться конфиденциальная информация. В таких каталогах чаще всего хранятся странички администрирования и какая-либо важная информация. Каталоги в robots.txt указываются из корневого каталога сайта. Не смотря на то, что поисковым паукам доступ туда закрыт, Вы, если повезёт, сможете в эти каталоги без проблем обратится.

/CGI-BIN/

Данный каталог используется для хранения и выполнения различных скриптов. Каталог /CGI-BIN находится в корне сайта (http://www.[site].com/cgi-bin/). Так же, в этой директории, могут присутствовать log-файлы содержащие в себе действия скрипта и записи об ошибках (частенько попадается). В /CGI-BIN, после установки сервера, хранится файл test.cgi (или test.pl). Большинство администраторов его удаляют, но некоторые забывают (или просто не знают) о важности удалении этого скрипта. Чем же этот скрипт может помочь взломщику? Данный скрипт может предоставить важную информацию о сервере. Например, администраторы, которые пользуются пакетом denever, часто забывают удалять из папки /cgi/ скрипт test.php который выводит информацию об установленной версии php и об его конфигурации. Вот пример результата запроса /cgi-bin/test.pl того же denever’а:

Свернутый текст

Этот текст сгенерирован файлом /home/[имя сайта]/cgi-bin/test.pl, расположенным в CGI-директории виртуального хоста localhost.

0

4

Увидев эту надпись, взломщик уже знает что все файлы сайта лежат в директории /home/[имя сайта]/

Заметьте что не на всех сайтах так. Каталог /CGI-BIN больше распространён на серверах с установленным apache. В IIS за место /CGI-BIN имеется папка /scripts . Идеальным было бы поставить у себя на компьютере точно такой же пакет (который установлен на сервере) и уже у себя на компьютере разбираться в его строении и в файлах дающихся для теста.

Папка может называться и не cgi-bin. Она может иметь названия cgi, cgi-glob и т.д. А вообще, администратор может создать совершенно отдельную папку и разрешить в ней исполнения cgi-скриптов.

Дополнительная информация.

Дополнительная информация никогда не бывает лишней. Дополнительной информацией может быть абсолютно всё, что поможет хоть как-то во взломе. Для начала, можно запросить не существующую страницу, конечно же, вы увидите сообщение об ошибке, но внизу, скорее всего, будет указана версия установленного веб-сервера (зависит от лоховитости администратора, но следует принять во внимание то, что иногда данные могут быть специально изменены). Сейчас имеется множество админов, которые держат сервера под Linux. При установке Linux они не редко указывают, что нужно установить сразу веб-сервер, почтовый сервер и т.д. Чем плоха такая установка? Плоха она тем, что если во время не подправить конфигурационные файлы взломщик вместе с сообщением об ошибке увидит и версию веб-сервера и операционной системы и модов, установленных для веб-сервера (Такую вещь я видел на сайте одного из крупных банков). Хотя если собирать Apache самому, из исходников, то при ошибке он не скажет версию ОС. Так же администратор может установить все под ряд модули для веб-сервера (просто так, чтоб было). Это очень плохо тем, что если в одном из модулей будет найдена уязвимость, то пострадает сервер, даже если данный модуль не используется. Вот пример плохого администрирования, запрашиваем не существующий документ и появляется ошибка:

Свернутый текст

Not Found

The requested URL /ewfwefw.pl was not found on this server.

Apache/2.0.52 RedHat 10.0 (modules)

0

5

Как видите мы уже знаем версию веб-сервера, ещё и тип ОС которая стоит на сервере + версия ОС. Дальше (в большинстве случаев) идёт описание модулей которые установлены для Apache+версии этих модулей, я их приводить не стал а просто заменил словом modules (Лень заново всё ставить J). А вот ответ нормально администрируемого сервера

Свернутый текст

Not Found

The requested URL /wefew was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

0

6

Тут ни версии веб-сервера, ни даже названия. Но только по типу ответа можно судить что стоит Apache т.к. IIS выдаёт ответ, который оформлен совершенно по другому.

Так же дополнительной информацией может считаться листинг директорий.

Листинг директории это просмотр её содержимого. Дело в том что в каждой папке должен находится файлик index.html, index.php и т.д., а вот если этого файлика в папке нету то веб-сервер показывает всё содержимое этой папки. Пример:

0

7

В директориях могут находиться файлы, ссылок на которые не существует. Такие файлы могут использоваться для быстрого переконфигурирования сайта, или администрирования определённой его части. Обратите внимание на то, что за просмотр папок отвечает отдельный модуль, если администратор его отключит то Вы увидите пустую страницу.

Версии установленных скриптов.

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

Powered by phpBB 2.0.17 © 2001, 2005 phpBB Group

Как ты видишь тут указано имя форума (phpBB), его версия (2.0.17), имя и годы существования группы(2001,2005 phpBB Group), которая разработала его.

Администраторы чаще всего удаляют версию форума, или подделывают её. Если же всё-таки версия форума настоящая и администратор её не затирает то можно попробовать поискать информацию об уязвимостях данного форума в публичных источниках. Вдруг эта версия дырявая?

Так же дела обстоят и с другими бесплатными скриптами. Но если же нет версии то бывают (редко) какие ни будь признаки по которым можно отличить версию скрипта. В данном случае скрипт скачивается и устанавливается у себя на компьютере, затем исследуется. Но об этом позже.

Ошибки и недоработки в скриптах.

Сейчас очень редко можно встретить сайты, которые не используют скрипты. Скрипты могут быть не достаточно защищены. Это уже не недоработка администратора, а недоработка программиста написавшего этот скрипт. Рассмотрим следующий пример:

На сайте http://www.[site].com имеется скрипт story.php, который отвечает за показ, выбранного пользователем, рассказа. Название рассказа передаётся в параметре story. Скрипт просто берёт из папки файл с именем рассказа и выводит его пользователю. Вот пример ссылки: http://www.[site].com/story.php?story=dead_man.txt

Если программист, который писал этот скрипт, не уделил внимание фильтрации опасных символов то после подставления в ссылку опасного символа (например одинарной ковычки http://www.[site].com/story.php?story=dead_m’an.txt) то покажется ошибка, из которой можно извлечь много интересного. Вот небольшой пример ошибки связанной с работой с файлами:

Свернутый текст

Warning: fopen(./data/storys/dead_m'an): failed to open stream: No such file or directory in D:Websiteindex.php on line 54

Warning: fputs(): supplied argument is not a valid stream resource in D:Websiteindex.php on line 55

Warning: fclose(): supplied argument is not a valid stream resource in D:Websiteindex.php on line 56

Warning: file(./data/storys/dead_m'an): failed to open stream: No such file or directory in D:Websiteindex.php on line 60

Warning: array_reverse(): The argument should be an array in D:Websiteindex.php on line 63

0

8

Из этой ошибки можно понять, что все рассказы расположены в папке /data/storys/ и то что все файлы сайта лежат в папке D:Website. А вот тут уже можно увидеть что веб-сервер стоит на платформе Windows (сайт лежит на диске D ).

Это конечно уже уязвимость, но о них мы поговорим чуть позже.

phpinfo.php

Данный файл (прим. редактора: на самом деле это функция такая) содержит в себе всю информацию об установленной версии php и ещё много интересной информации. phpinfo используется разработчиками для отладки сайта. Когда сайт только поднимают и настраивают, разработчикам часто приходится обращаться к этому файлу, в нём лежит много информации о конфигурации php. Эта же информация может быть полезна взломщику при исследовании защиты сайта. Частенько, после окончания отладок и настроек, разработчики забывают убирать этот файл, что может привести к не очень хорошим последствиям. Также этот файл может быть переименован или в нём может содержаться какая-нибудь шутка администратора. Вообще этот файл может располагаться где угодно, так что если всё-таки он очень нужен то можете проверить на его наличие все директории.

Вот небольшой кусок информации, которую можно найти в этой файле:

0

9

Отсюда видно что версия php – 4.3.11 . ОС, на которой установлен веб-сервер это Windows NT 5.0 (Windows 2000). Далее видно что сам php установлен в D:UtilsPhp . Там же лежит конфигурационный файл php.ini. После этой информации в phpinfo содержится информация о конфигурации php и ещё много всего интересного. Вообще вся информация дающаяся phpinfo занимает несколько листов формата А4.

Заголовок ответа.

Когда вы запрашиваете у сервера какой-либо документ то он, в заголовке ответа, указывает информацию о себе. Данный способ может быть полезен тогда, когда при выводе ошибок или листингов сервер не сообщает о себе ничего. С помощью браузера заголовок ответа не получить, зато большинство программ это умеют. Они будут описаны чуть позже. Вот небольшой пример: запрашиваем на одном веб-сервере несуществующий документ, в ответ получаем следующую ошибку:

Свернутый текст

Not Found

The requested URL /ewfwe.pl was not found on this server.

Apache/1.3.33 Server at www.[site].ru Port 80

0

10

Отсюда видим - сервер даёт информацию только о своей версии и всё.

Далее делаем запрос на любой существующий (можно и не существующий) файл и в заголовке находим следующую информацию:

Свернутый текст

HTTP/1.1 200 OK

Date: Sat, 19 Aug 2006 15:47:33 GMT

Server: Apache/1.3.33 (Unix) PHP/4.3.10 rus/PL30.20

X-Powered-By: PHP/4.3.10

Connection: close

Content-Type: text/html; charset=koi8-r

Expires: Thu, 01 Jan 1970 00:00:01 GMT

Last-Modified: Sat, 19 Aug 2006 15:47:33 GMT

0

11

Давайте разберём только интересующую нас строчку.

Это строчка с информацией о веб-сервере(3-я сверху). Обратите внимание на то, что при ошибочном запросе документа веб-сервер выдал только информацию о своей версии, а тут сразу видно и дополнительные модули + их версии: PHP/4.3.10 и PL30.20 (это perl). Так же по строчке Apache/1.3.33 (Unix) можем судить о том, что операционная система точно не Windows. Но эта надпись не означает того, что на сервере стоит именно Unix, там может стоять Linux, xBSD и любая другая *nix система. Как же можно получить данный заголовок? Очень просто. Для этого нам понадобится написать скрипт из 5 строчек на перле. Вот код данного скрипта:

Свернутый текст

#!usr/bin/perl

use LWP::UserAgent;

$client = LWP::UserAgent->new( ) or die;

print "Enter site:";

$url=<STDIN>;   #Просим пользователя ввести адрес сайта

$answer = $client->get($url); #Отсылаем запрос на сайт

print "============================n";

print $answer->header('server'); # Выводим поле Server из заголовка

print "============================n";

0

12

Вот пример работы нашего скрипта:

0


Вы здесь » Общайся на любые темы! » Хакинг / F.A.Q » Курс молодого бойца