Этот вопрос возникает у многих ребят во время первых исследований сети, программ и алгортимов. Если ты задумался о том, как стать Хакером, и это серьезно, разреши пожать тебе руку - твой исследовательский подход вызывает уважение!
Впервые я задумался о том, как стать хакером, лет в 17. Уже не помню, что мне сподвигнуло вбить этот запрос в поисовую систему, но догадываюсь, что мои помыслы были не самыми чистыми... С тех пор прошло много лет, я изменился, изменились и мои стремления. Сейчас я увлекаюсь программированием, и создаю серьезные веб-проекты.

На тему хакерства уже создано не мало различных руководств. В задачу этой статьи входит систематизировать данные из многих источников, и составить на их основе одно большое руководство. В итоге, читая его, ты сможешь лучше понять - в какую сторону двигаться, чтобы достичь своей цели - стать Хакером.
Мне лишь остается пожелать тебе крепкого коннекта на твоем большом и интересном пути!

Основные навыки хакера

1. Изучай программирование.
Без этого навыка очень трудно стать хакером. И если тебе кажется, что программирование это очень сложно - не правда. Базовые нвыки программирования можно получить самостоятельно за несколько упорных дней, проведенных перед монитором, в изучении соответствующих статей. Лично меня никто никогда не учил программированию, просто в 17 лет я почувствовал стремление к написанию собственных программ. И учился самостоятельно, проводя ночи в изучении книг и чтении статей. С тех пор я перестал тратить время на компьютерные игры, и компьютер стал моим рабочим местом.
Именно рабочим. Весь мой заработок идет из Интернета. Вспоминая, сколько дней я убил на игры, мне становится жалко потерянного времени.

2. Приручи Интернет
Может быть, ты виртуозно владеешь Сетью, общаешься в социалках, и имеешь свой сервер CS с друзьями. Но это все фигня... Ты должен понимать, как устроен Интернет, разбираться во взаимодействии сервера и браузера, знать значение заголовков (HTTP), передаваемых серверу клиентом. Без этих знаний ответ на вопрос, как стать хакером, не найти.
Изучи историю Интернет, освой базовые понятия, научись понимать, что такое IP, Proxy. Это важно!

3. Освой язык Гипертекстовой разметки.
Это самое первое, что ты должен сделать. Я говорю про HTML в связке с CSS. Может быть ты и делал сайты на ucoz, либо на narod.ru используя стандартные шаблоны, но назвать это сайтостроением нельзя.
Сам HTML тебе понадобится не только для того, чтобы создавать собственные сайты, но и для того, чтобы взаимодействовать с сервером, и обращаться к php скриптам, не смущаясь от строк вида:
input autocomplete="off" class=lst type=text name=q maxlength=2048 value="как стать хакером"

4. Не задавай глупых вопросов
Я про хакерские форумы и сайты, а также про сервисы типа "Вопрос-Ответ" от Гугла. В Интернете полно информации, и ты в силах многое изучить самостоятельно.
Если же наступил момент, когда действительно нужна помощь, запомни несколько правил:

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

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

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

7. Освой базовые навыки взлома
Затем, можешь изучить Технологию XSS атак. Но тебе уже понадобятся знания HTML и немного PHP.
Изучи, как нужно скрывать следы после взлома. В первую очередь. Для начала можешь прочитать статью про Анонимность в сети. Если интересно, можешь почитать, как нестандартными способома украсть ICQ.
Далее преведен текст из одного известного HACK-F.A.Q.:

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

Сперва определимся, кто такой хакер: это существо, у которого есть компьютер (ну это обязательно), две руки (одна для мышки, другая, конечно же, для пива), голова (для наушников), и холодильник (ну пиво же не теплым пить!). Если у тебя все это есть, значит у тебя есть все шансы стать настоящим хакером ;) Ах, да, чуть не забыл, еще у хакера должен быть нестандартный образ мышления!

Зачем хакеру нестандартный образ мышления?
Все очень просто. Хакер на «ты» с компьютером и с Интернетом, а значит, не нуждается ни в чьей помощи – всю информацию он умеет находить в поисковых ресурсах. Если ты усвоишь эту простую истину, то сможешь быстро добиться успехов. Поверь, базы yandex.ru и google.ru содержат ответы на 90% вопросов, так что если не хочешь ждать несколько дней ответа, используй это преимущество. В этом и есть их «маленький секрет»; откуда они так много знают. И вообще не бойся быть оригинальным!

Эх.. а я такой ламер, что даже поисковиками пользоваться не умею.
Стоп. Ламер – только тот, кто ничего не делает. Помнишь про 90%? Никогда не забывай эту цифру. Заходим на yandex.ru, вводим запрос «Поиск информации с помощью поисковиков» и вуаля – попадаем на страницу, где все подробно описано, как искать и где. Читай, и через 15 минут будешь специалистом по поиску в сети. :)

Но если все можно найти, зачем же тогда форум?
Во-первых, форум - это сообщество, люди, объединенные общими интересами. Они обсуждают все, начиная от погоды, и заканчивая интересными взломами, но это не значит, что они с радостью будут разбираться с твоей проблемой.
Во-вторых, вспомни еще разок про 90%. Остается 10% вопросов, ответов на которые действительно пока нет в поисковиках, либо они так хорошо запрятаны, что ни за что не отыскать. Что ж, тогда у тебя есть все шансы задать свой вопрос первым. Раз он еще не встречался, скорей всего, твои потомки, столкнувшиеся с такой же проблемой, будут попадать именно на твою тему. Поэтому постарайся задать его правильно.
Если же у тебя не получается даже это, давай не будем становиться хакерами, ок? :)

Какими необходимыми знаниями нужно обладать, чтобы стать хакером?
Во-первых, нужно здорово разбираться хотя бы в одной из операционных систем, Windows, либо *nix. Знать хотя бы основные shell-команды, причем как Windows, так и *nix
Очень желательно знание одного из интерпретируемых языков, лучше всего PHP или perl.
Без знаний HTML, javascript, CSS придется очень туго.
Весьма пригодится умение писать Windows-программки. Соответственно, это C/C++, Delphi или Visual Basic.
Умение быстро находить интересующую тебя информацию в поисковиках будет несомненным плюсом. Знание принципов функционирования компьютера, сетей и Интернета в целом. Конечно, все это не охватить сразу, начни с чего-нибудь одного и осваивай постепенно. Со временем поймешь сам, что пригодится, а что нет.

Я слышал, что все хакеры не пользуются Windows это правда?
Не совсем. Дело в том, что большинство серверов - это unix системы. Именно поэтому чем лучше ты будешь знать никсы, тем больше тебе будет «везти» во взломах. А самый лучший способ узнать систему – поставить ее себе на комп. Кроме того, Unix очень привлекателен эффективной работой с сетью. Некоторые технологии, успешно реализованные в никсах, Windows даже не поддерживает, в то время, как отдельные программы вроде Corel Draw пока не имеют аналогов в *nix. Так что в какой ОС работать, это, в принципе, кому как удобней. Если есть желание познакомиться с каким-нибудь никсом, но не хочешь расставаться с Windows, то можешь оставить ее и поставить Linux как дополнительную ОС.

Каждый взлом – процесс творческий. И каждый ломает так, как ему нравится. Но, в первую очередь, конечно, стоит досконально изучить «подопытный» сервер. Какая на нем стоит система, какие сервисы, следит ли админ за патчами и обновлениями и т.д. При достаточном опыте хакер может узнать все это имея лишь браузер и telnet-клиент, начинающему же проще всего воспользоваться сканером уязвимостей. Например, SSS-сканером под Windows, или nmap под *nix.
Сканер нашел уязвимость и радостно сообщил об этом? Не торопись мчаться на форум с вопросом «nmap выдал мне ***, что с этим делать» - тебя скорей всего пошлют. Вбей ключевые слова из фразы об уязвимости в поисковик (лучше google) – я почти уверен, что ты не первый, кто собирался задавать такой вопрос! А там, где есть вопрос, там есть и ответ :)
Если же на сервере стоит старая бажная версия одного из сервисов, пробуй найти под нее сплойты.

Как пользоваться сплойтами?
Очень просто. Запустить сплойт с нужными параметрами, а он все сделает за тебя. Проблема в том, что большинство сплойтов в открытом доступе только в исходниках, то есть, обычный *.txt-файл с кодом на C++ или perl. Если это C++, то сплойт придется предварительно скомпилировать. Сплойты на perl или php компилировать не надо, они исполняются прямо на сервере. Если у тебя есть shell, достаточно залить туда файл и запустить. Если ничего кроме твоей родной Windows у тебя нет, придется скачать и установить один из эмуляторов. Например, cygwin и activePerl. Можно, в принципе, воспользоваться денвером (denwer.ru), но тогда тебе, скорей всего, придется вручную добавить некоторые сетевые библиотеки, которые отсутствуют в конфигурации по умолчанию.
Помни, что большинство сплойтов в исходниках имеют «защиту от дурака», то есть специально сделанные синтаксические ошибки, поэтому если в программировании ты абсолютный ноль, придется искать уже исправленный рабочий сплойт.