Как стать мастером кода(хакером)

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

1.

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

  • Язык Си был создан во время работы над операционной системой Unix. Изучение Си, как и ассемблера, позволит вам лучше понять принципы работы оперативной памяти.
  • Python и Ruby являются высокоуровневыми языками программирования, отлично подходящими для написания скриптов, автоматизирующих решение различных задач.
  • Perl также подходящий выбор для хакинга, как и PHP, который стоит изучить хотя бы потому что большинство современных интернет-сайтов и приложений написано на нем.
  • А вот умение создавать скрипты на bash просто необходимо. Именно они помогут вам с легкостью манипулировать Unix-подобными операционными системами, включая все дистрибутивы Linux.
  • Без знания языка ассемблера также не обойтись. Это язык низкого уровня, который позволяет общаться с процессором напрямую. По сути, код на любом высокоуровневом языке в итоге будет преобразован в ассемблер. Поэтому, знание ассемблера может очень пригодится при поиске уязвимостей в программах.

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

3.
Используйте *nix терминал для ввода команд. Cygwin поможет вам получить доступ к терминалу, если вы используете Windows. Если говорить в частности об Nmap, то он запускается на Windows без установки Cygwin, используя WinPCap. Однако, его производительность на Windows существенно снижена из-за нехватки «сырых» (низкоуровневых) сокетов. В общем, лучше использовать системы Linux или BSD, так как они более гибкие, надежные и безопасные.

4.

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

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

6.

Определите операционную систему (ОС). Запустите сканнер портов, к примеру, nmap, и направьте его на атакуемую систему. В результатах сканирования вы увидите список открытых портов цели, информацию об установленной ОС и, возможно, используемый фаервол (межсетевой экран) или роутер. Эта информация необходима для того, чтобы начать планировать последующие действия. Для определения ОС, запустите сканирование в nmap, установив опцию –O.

7.

Найдите открытые порты в системе. Часто используемые порты такие, как FTP(21) и HTTP(80), зачастую надежно защищены, и не поддаются известным на сегодняшний день эксплойтам.

  • Поищите среди других TCP и UDP портов, по неосторожности оставленных открытыми местным сисадмином. К примеру, порт Telnet(23) или используемые для игр по сети UDP порты.
  • Открытый 22 TCP порт в большинстве случае означает, что на нем запущен сервис SSH(Secure Shell), который можно попробовать взломать брутом (полным перебором возможных паролей).

8.

Взломайте пароль. Есть несколько способов получения доступу к паролю, включая брутфорс. Метод брутфорс (англ. brute force - грубая сила) состоит в переборе всех возможных вариантов пароля.

  • В последнее время применяется практика использования более сложных паролей, что заметно усложняет процедуру брута. Хотя, и технология самого брута не стоит на месте.
  • Большинство алгоритмов хеширования имеют уязвимости, которые вы можете использовать для получения значительного увеличения скорости взлома.
  • С недавнего времени для взлома стали использоваться вычислительные мощности видеокарт, что дает очень существенный прирост в скорости (до тысяч раз).
  • Для ускорения процедуры взлома можно использовать, так называемые радужные таблицы. Заметьте, что начинать взлом пароля стоит только в том случае, если у вас имеется его хеш.
  • А вот пытаться перебрать пароли, пытаясь залогиниться в системе с каждым из них – далеко не лучшая идея. Такой деятельность быстро обнаруживается, оставляет много следов в системных логах и требует огромного количества времени для успешного завершения.
  • Помните, что взлом пароля далеко не единственный способ получения доступа к системе.

9.

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

  • Для роутеров потребуется аккаунт администратора с именем пользователя «admin» или «administrator» по умолчанию.
  • Для Windows систем также потребуется доступ к аккаунту с правами администратора.
  • Другими словами, простое подключение к системе еще не дает вам доступ ко всем локальным файлам и процессам, - для этого вам потребуются права суперпользователя (root или администратора).

10.

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

  • В UNIX подобных ОС уязвимый процесс должен быть запущен с установленным suid битом.
  • Помните, что для использования данного способа необходимо найти на атакуемой системе запущенный процесс с уязвимостью, или написать такую программу самому и затем каким-то образом добиться ее исполнения с аккаунта суперпользователя.

11.

Создайте бэкдор. Если вам удалось получить доступ к системе, позаботьтесь о том, чтобы для получения доступа в следующий раз вам не пришлось все проделывать заново. Для этого необходимо установить бэкдор (программу - взломщик) в одной из системных служб, к примеру, на SSH сервере. Помните, что такой бэкдор может быть снесен при очередном обновлении системы. Хакеры - виртуозы в таких случаях дописывают код в компилятор, что позволяет автоматически создавать бэкдоры и уязвимости в любой скомпилированной программе.

12.

Заметайте следы. Постарайтесь все делать так, чтобы у администратора атакованной системы не возникло никаких подозрений. Не меняйте содержимое веб-сайта (если вы атакуете веб-сайт), и не создавайте ненужных файлов. Также не создавайте никаких дополнительных аккаунтов. Совершайте все действия максимально быстро. Если вы пропатчили SSH сервер, убедитесь, что ваш пароль сохранен в хард коде. То есть в случае использования этого пароля посторонними для входа в систему, сервер не должен выдавать никакой важной и/или компрометирующей информации.

Предупреждения

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