Выбор компьютера и операционной системы для хакера. Лучшие дистрибутивы для проведения тестирования на проникновение Linux программы для хакеров

: тестирование на проникновение, книгу пригодную для использования как новичками так и уже опытными администраторами и экспертами ИБ для целей проведения аудита безопасности ИТ-инфраструктуры. Книга состоит из 8 частей, в которые входят 62 главы с подробным описанием используемых инструментов и методики тестирования.

Книга является систематизированным сборником, включающим переводы англоязычных ресурсов, книг и веб-сайтов посвященных теме penetration testing и собственного опыта авторов.

Официальное описание к книге:

Kali Linux является передовым Linux дистрибутивом для проведения тестирования на проникновение и аудита безопасности. Информация в данной книге предназначена только для ознакомления или тестирования на проникновение собственных се тей.

Для тестирования сетей третьих лиц, получите письменное разрешение.

"Тестирование на проникновение (жарг. Пентест) - метод оценки безопасности компьютерных систем или сетей средствами моделирования атаки злоумышленника." - WiKi.

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

Книга состоит из 8 частей , в которые входят 62 главы . Все подробно рассказывается с использованием примеров. В книге используется самая актуальная информация на сегодняшний день.

1. Общая информация и установка Kali Linux

  • Что Такое Kali Linux?
  • Как установить Kali Linux: подробная инструкция для установки на компьютер и в виртуальную машину
  • Установка Дополнений гостевой ОС VirtualBox для Kali Linux 2.0
  • Как установить Kali Linux на флешку и на внешний диск (простой способ)
  • 10 лучших подсказок того, что нужно сделать после установки Kali Linux 2.0
  • Инструменты VMware в гостевой системе Kali
  • Как включить VPN на Kali Linux - разрешение проблемы с невозможностью добавить VPN
  • Проверка и восстановление репозиториев в Kali Linux из командной строки
  • Как поменять среду рабочего стола в Kali Linux
  • Как добавить/удалить обычного (не рута) пользователя в Kali Linux
  • Как сбросить пароль root’а в Kali Linux
  • Восстанавливаем GRUB в Kali Linux после обновления до Windows 10
  • Повышаем свою анонимность в Интернете с Tor в Kali Linux

2. Обзор инструментов Kali Linux

  • Обзор разделов инструментов Kali Linux. Часть 1. Краткая характеристика всех разделов
  • Обзор разделов инструментов Kali Linux. Часть 2. Инструменты для сбора информации
  • Лучшие хакерские программы
  • База данных эксплойтов от Offensive Security (создателей Kali Linux)

3. Тестирование на проникновение беспроводных сетей

  • Лучшие совместимые с Kali Linux USB Wi-Fi адаптеры
  • Взлом Wi-Fi пароля (WPA/WPA2), используя pyrit и cowpatty в Kali Linux
  • Взлом Wifi WPA/WPA2 паролей с использованием Reaver
  • Модификация форка Reaver - t6x - для использования атаки Pixie Dust
  • Взлом паролей WPA2/WPA с помощью Hashcat в Kali Linux (атака перебором Wi-Fi паролей по маске)
  • Мод Wifite с поддержкой Pixiewps
  • Взлом Wi-Fi сетей: инструменты, которые не попали в Kali Linux
  • Router Scan by Stas’M на Kali Linux (взлом роутеров и Wi-Fi в промышленных масштабах)
  • Чиним Wifi_Jammer и Wifi_DoS в WebSploit
  • Стресс-тест беспроводной сети с Wifi_Jammer: как глушить Wi-Fi
  • Стресс-тест беспроводной сети с Wifi_DoS: как досить Wi-Fi

4. Стресс-тесты сети

  • Стресс-тест сети (DoS веб-сайта) со SlowHTTPTest в Kali Linux: slowloris, slow body и slow read атаки в одном инструменте
  • Стресс-тест сети: DoS веб-сайта в Kali Linux с GoldenEye
  • Стресс-тест сети с Low Orbit Ion Cannon (LOIC)
  • Стресс-тест сети: DoS с использованием hping3 и спуфингом IP в Kali Linux

5. Анализ уязвимостей в веб-приложениях

  • Инструкция по WhatWeb: как узнать движок сайта в Kali Linux
  • SQL-инъекции: простое объяснение для начинающих (часть 1)
  • Использование SQLMAP на Kali Linux: взлом веб-сайтов и баз данных через SQL-инъекции
  • Хакерские плагины для Firefox
  • Сканируем на уязвимости WordPress: WPScanner и Plecost
  • Новая версия Plecost 1.0.1 - программы для поиска уязвимостей WordPress
  • Работа с W3af в Kali Linux
  • ZAProxy: тестирование на проникновение веб-приложений
  • Как запустить Metasploit Framework в Kali Linux 2.0
  • Как запустить Metasploit Framework в Kali Linux 1.1
  • Metasploit Exploitation Framework и searchsploit - как искать и как использовать эксплойты
  • DIRB: поиск скрытых каталогов и файлов на веб-сайтах
  • Поиск админок сайтов с Kali Linux

6. Анализ уязвимостей в операционных системах и серверном программном обеспечении

  • Сканирование уязвимостей с OpenVAS 8.0
  • Инструкция по Armitage: автоматический поиск и проверка эксплойтов в Kali Linux
  • Как сканировать Linux на руткиты (rootkits) с помощью rkhunter
  • Аудит безопасности Linux
  • Установка Linux Malware Detect (LMD) на Linux
  • Как УЗНАТЬ пароль Windows?

7. Сканирование сетей. Перехват данных в сетях

  • Эмуляция сети из нескольких компьютеров на одном компьютере
  • Как использовать сканер безопасности NMAP на Linux
  • Книга по Nmap на русском
  • Взлом пароля веб-сайта с использованием WireShark (и защита от этого)
  • FTP-Map: определяем программное обеспечение и его версию для FTP-серверов и ищем для них эксплойты
  • ZMap или Как просканировать все IPv4 адреса мира за 45 минут
  • 8. Атаки на пароли. Брутфорсинг
  • Списки слов для атаки по словарю: пароли, имена пользователей, каталоги
  • PW-Inspector: отбираем пароли соответствующие критериям
  • THC-Hydra: очень быстрый взломщик сетевого входа в систему (часть первая)
  • Брутфорсинг веб-сайтов с Hydra (часть вторая инструкции по Hydra)
  • Crunch - генератор паролей: основы использования и практические примеры
  • BruteX: программа для автоматического брутфорса всех служб

В вашем браузере отключен JavaScript

Дистрибутив Kali Linux набирает огромную популярность в последнее время. Взлом и тестирование безопасности становится частью нашей культуры и все больше людей интересуются этим. Возможно, такому процессу посодействовал сериал "Мистер Робот".

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

Kali Linux был разработан фирмой Offensive Security, которая специализируется на безопасности. Он создан на основе Debian и содержит в себе наработки дистрибутива для цифровой криминалистики и тестирования безопасности BackTrack.

Первая версия BackTrack вышла в 2006 году, она объединила в себе несколько проектов, основным предназначением которых было тестирование на проникновение. Дистрибутив предназначался для использования в качестве LiveCD.

В 2012 году такой дистрибутив, как BackTrack прекратил существовать, а вместо него появился Kali Linux, который перенял все плюсы предыдущей версии и все программное обеспечение. Он был результатом слияния двух проектов: WHAX и Auditor Security Collection. Сейчас дистрибутив стабильно развивается и силы разработчиков направлены на исправление ошибок и расширение набора инструментов.

2. Предназначение

На официальном сайте есть такое описание дистрибутива: "Penetration Testing и Ethical Hacking Linux Distribution" или по-нашему дистрибутив для тестирования на проникновения и этичного хакинга. Проще говоря, этот дистрибутив содержит множество инструментов, связанных с безопасностью и сетями, которые ориентированы на экспертов в компьютерной безопасности.

Дистрибутив Linux - это не больше чем ядро и набор базовых утилит, приложений и настроек по умолчанию. Kali Linux не предоставляет ничего уникального в этом плане. Большинство программ может быть просто установлено в любом другом дистрибутиве, или даже в Windows.

Отличие Kali Linux в том, что он наполнен такими инструментами и настройками, которые нужны для тестирования безопасности, а не для обеспечения нормальной работы обычного пользователя. Если вы хотите использовать Kali вместо основного дистрибутива - вы совершаете ошибку. Это специализированный дистрибутив для решения определенного круга задач, а это значит, что решение задач, для которых он не был предназначен будет более трудным, например, тот же поиск программ. Возможности Kali Linux сосредоточены на тестировании безопасности.

3. Установка

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

В остальном же установка Kali Linux не сильно отличается от Debian. В зависимости от способа и мощности компьютера она может занять от нескольких минут до получаса. Мы детально рассматривали все в статье .

4. Особенности

Многие будут удивлены, но пользователь по умолчанию в Kali Linux - root. Это необходимо, потому что многим программам для работы нужны права суперпользователя. Это одна из причин, почему не стоит использовать Kali для решения повседневных задач, например, серфинга в интернете или использования офисных приложений.

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

Kali Linux основан на Debian, и вам ничего не мешает установить программу из репозиториев, например, thunderbird для сбора почты. Но просматривать почту от имени суперпользователя - не очень хорошая идея. Конечно, никто вам не мешает создать непривилегированного пользователя, но это лишняя работа.

На экране входа в Kali Linux вы можете видеть девиз "The quieter you become, the more you are able to hear" или "Чем тише вы будете, тем больше сможете услышать". Если вы понаблюдаете за пакетами, отправляемыми в сеть системой Debian, то вы заметите, что какие-либо пакеты регулярно отправляются в сеть. Некоторые из них отправляются приложениями пользователя, другие - фоновыми службами.

Например, если вы просканируете свой Linux компьютер с помощью , то можете увидеть несколько открытых портов. Например, это может быть никогда не использовавшийся VNC порт и HTTP сервер. Часть этих программ поставляются по умолчанию, часть вы установили и забыли.

Kali Linux стремится быть максимально тихим насколько это возможно. Это необходимо чтобы скрыть свое присутствие в атакуемой сети и защитить себя от потенциальных атак. Для достижения этой цели в Kali отключено множество служб, которые включены по умолчанию в Debian. Конечно, вы можете установить нужную службу из репозиториев Debian. Например, apache2:

Однако после этого утилита не будет запускаться автоматически и не будет добавлена в автозагрузку. Если она вам понадобится, ее придется запустить вручную. При каждой перезагрузке все лишние службы отключаются. Можно пойти обходным путем и добавить службу в белый список /usr/sbin/update-rc.d, но это не совсем безопасно, поскольку вы открываете путь к системе. Никто не знает нет ли там уязвимостей.

Kali Linux - это специализированный дистрибутив, хотя бы потому что он рассчитан на работу в агрессивной среде. И если вы установили веб-сервер и еще несколько программ, добавили их в автозагрузку, возможно, вы уже сломали Kali и уменьшили его безопасность.

5. Программы

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

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

С Kali Linux все еще сложнее. Вы рискуете не только повредить систему, но и сделать ее небезопасной. Пакеты из репозиториев проверены и содержат дополнительные изменения, например, тот же Apache не добавляется в автозагрузку. Сторонние пакеты не будут иметь таких предосторожностей.

Выводы

Наш обзор возможностей Kali Linux подходит к завершению. Стоит ли вам выбирать этот дистрибутив или нет - зависит от вас и тех задач, которые вы стараетесь решить с помощью системы. Если вам нужно только несколько инструментов, то лучше выбрать какой-нибудь более простой дистрибутив, например, Ubuntu или Debian. Вы сможете установить в нем все необходимые инструменты. Такой же вариант лучше подойдет для новых пользователей.

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

Возможно, вы несогласны с мнением, описанным в статье, оставляйте комментарии и расскажите о своей точке зрения.

Видится многим как «хакерская» операционная система. Сами хакеры, особенно в молодёжной среде, воспринимаются c восхищением. Отсюда понятен интерес молодых людей к Kali Linux. Они пробуют её установить запустить и у них возникает масса «детских» вопросов. Отвечать на эти вопросы нужно, какими бы простыми, наивными или некорректными они не были. Лично для меня неприемлемо поведение «бывалых», которые на такие вопросы отвечают «а зачем тебе?», «опять каникулы в школе?», «за такие глупые вопросы нужно уже банить?» и т.д. Этим хамством забиты российские технические форумы. Подобного я не позволяю себе и не позволю другим на и FreeForum.biz . Абсолютно каждый, каким бы большим специалистом он не стал сейчас, начинал с изучения азов, начинал с «детских» вопросов. Те, кто не задаёт простых вопросов, в конечном счёте, так и не узнает на них ответов.

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

Поэтому для всех начинающих хакеров я подготовил список из того, что нужно изучить. По каждому пункту я буду стараться пояснить, для чего это нужно знать.

1. Основы языков программирования

1.1 HTML

На самом деле, HTML – это даже не язык программирования, а язык разметки, т.е. он используется, грубо говоря, для оформления текста.

Как он может помочь начинающему хакеру? Приведу мой личный пример. У одного из провайдеров Интернета, услугами которого я пользовался (местный провайдер с домовой городской сетью), был (может и сейчас есть – не знаю, давно ушёл от этого провайдера) свой сайт и свои собственные сервисы для пользователей. В начале 2000х это было актуально – Интернет-трафик (внешний) был платный, поэтому все старались пользоваться локальными ресурсами. Эти ресурсы, безусловно, были очень популярны. Один из самых популярных – файлообменник. Из-за постоянных злоупотреблений пользователей (например, «раздетая» с помощью Фотошопа одноклассница Маша) владелец файлообменника ввёл обязательный пароль. Этот пароль генерировался автоматически, и он не мог содержаться в комментарии к файлу. Так вот, анализ формы для отправки файла и некоторые эксперименты с ней показали, что пароль содержится в одном из скрытых полей формы, которое, естественно, можно редактировать. На сервере этот пароль ничем уже не проверялся. В результате, сохранив форму для загрузки файла себе на компьютер и чуть отредактировав её, удалось сделать так, чтобы файлы можно было опять загружать без пароля. Этой формой мог пользоваться любой клиент провайдера. Позже провайдер «закрыл» дыру – стал проверять наличие пароля. Тем не менее, такими же простыми манипуляциями удалось сделать так, что файлы загружались всегда со «стандартным» паролем («0000», вроде) плюс этот пароль можно было записывать в комментарий к файлу.

Те, кто знаком хотя бы с основами HTML, прекрасно понял, о чём я говорю. Для остальных – это просто китайская грамота.

Ещё один свеженький пример. Буквально на днях (11 февраля 2015 года), была обнаружена дыра в теме WordPress, которая позволяет закачивать производные файлы на сервер. Описание этой темы . Уязвимой в этой теме является файл admin/upload-file.php. Я нашёл эту тему и нашёл этот файл. Файл совсем короткий, поэтому я приведу его полностью:

Этот файл на PHP, но, чтобы воспользоваться этой уязвимостью, нужно сделать форму отправки файла именно на HTML.

Итак, HTML нужно знать, чтобы: а) искать уязвимости; б) использовать уязвимости. Есть и более продвинутые задачи, для выполнения которых нужно знать HTML, но остановимся на этом.

1.2 PHP

Выше я привёл содержание крошечного файла, написанного на PHP. Этот файл содержит такую брешь, что уже не важно, насколько хорошо настроен сервер, есть ли файловый файервол и т.д. Если кто-то использует эту тему – то сайт этого человека в полной нашей власти (а если сервер/хостинг криво настроены, то весь компьютер под нашим управлением). Но ведь чтобы это понять, нужно хоть чуть-чуть знать PHP.

Чтобы использовать готовые эксплойты, которые написал кто-то другой, опять же, нужно знать хотя бы основы PHP, чтобы знать куда записать адрес сайта и другие переменные величины, и как вообще запустить этот скрипт.

1.3 MySQL

Обычно, самое интересное находится в базах данных. Чтобы понять, как использовать MySQL-инъекцию, нужно знать, что такое MySQL-инъекция. Чтобы уловить суть MySQL-инъекции, нужно знать, что такое MySQL-запросы, каков синтаксис этих запросов, каково устройство базы данных, как хранятся данные, что такое таблицы и т.д.

Вообще, первые три пункта, а также представления об устройствах веб-сайтов, проще всего постичь, если учиться не «взламывать» веб-сайты, а их создавать. Учитесь с целью сделать что-то позитивное. В этом есть парадокс, ведь точно также, чтобы научиться хорошо защищать веб-приложения, нужно учиться их взламывать! Только сумев посмотреть на веб-технологии глазами взломщика, можно получить бесценный опыт. Точно также и с сайтами – простое изучение функций и основ языка мало пригодиться. Нужно стать веб-разработчиком, чтобы понять всю изнанку веб-сайта.

1.4 JavaScript, JQuery

Хотя бы нужно знать, что на веб-сайтах управляется, зависит от JavaScript. Ведь на некоторых сайтах, которые на дают выделить (и/или скопировать) содержимое, не дают скачать файл или достаточно просто отключить JavaScript, чтобы всё это стало возможным.

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

Можно привести тонну примеров неудачной защиты форм с помощью JavaScript (мне запомнилась форма на сайте ФСБ РФ – чтобы её отправить, там обязательно нужно заполнить стопятьсот полей (паспорт, прописка и т.д.), но самыми простыми манипуляциями это «ограничение» можно обойти (это было давно, вполне возможно, они исправили форму обратной связи)).

2. Основы устройства сетей, работы веб-серверов и веб-сайтов

2.1 Устройство сетей

Про устройство сетей обязательно нужно знать: что такое IP адрес, что он позволяет идентифицировать пользователя Интернета, как спрятать свой IP , что такое прокси, что такое TOR, что такое домен, порты и т.д.

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

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

2.2 Понимание устройства и работы веб-сервера

Как и в предыдущих пунктах, начну с простого примера (кстати, совсем недавнего). При посещении одного из серверов, было обнаружено, что настройки сервера позволяют просматривать содержимое каталогов (листинг файлов). На сервере был найден phpMyAdmin, но стандартные пароли к нему не подходили. Блуждая по каталогам в попытке найти уязвимые скрипты (там самописные скрипты для обработки записей в больницу и раздачи «номерков») был найден текстовый (!) файл содержащий одну строчку с двумя словами, разделёнными запятой. Как оказалось, это и был логин с паролем для phpMyAdmin. База данных, как говориться, наша из-за клинической глупости разработчика, но вот для записи своего файла на сервер понадобились знания об этом сервере. Например, нужно знать абсолютный путь, куда будет произведена запись шела. Чтобы знать абсолютный путь, нужно хотя бы знать структуру каталогов сервера Apache.

CREATE TABLE `shell` (`script` TEXT NOT NULL) COMMENT = "table for include"; INSERT INTO `shell` (`script`) VALUES (""); SELECT script FROM `shell` INTO OUTFILE "C://Apache24/htdocs/shell.php"; DROP TABLE `shell`;

Этим примером я хочу сказать не то, что нужно выучить структуру Apache. Я хочу сказать, что без знаний о работе, об общих принципах устройства веб-сервера, постоянно будете натыкаться на невозможность в полной мере «раскрутить» уязвимость, даже если она уже найдена.

Помните что я говорил про языки программирования и про понимание принципов работы веб-сайтов? Чтобы понять всю глубину нужно самому стать веб-разработчиком. Чтобы понять веб-сервер, нужно читать книжки не по взлому веб-сервера, а по его обслуживанию. Т.е. нужно самому стать системным администратором, и осознание слабых мест, в какие стороны, при попытке проникнуть на веб-сервер, нужно «капать», придёт само.

2.3 Понимание устройства и работы веб-сайтов

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

Чтобы продолжить знакомство с устройством веб-сайтов, желательно иметь опыт по работе с популярными системами управления контентом, с популярными движками и скриптами. Знать как устроены плагины и темы, где они располагаются, какие файлы могут представлять интерес и т.д.

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

Это очень, казалось бы, банальная информация позволила создать очень простой, но потрясающе эффективный «хак»

If ($handle = opendir("./../../../../../../../../..")) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { echo "$entry
"; } } closedir($handle); }

Когда я открыл это для себя, я ещё пользовался бесплатным хостингом (название домена компании holm.ru или holms.ru – они ещё раздавали домены третьего уровня вида *.h7.ru, *.h10.ru, т.е. цифры там последовательно менялись, по мере заполнение серверов).

Я применил эти несколько строчек, которые привёл чуть выше и оказалось, что я могу выходить за границы выделенной мне папки. Чуть усовершенствованный скрипт позволил мне не просто просматривать корень сервера, а переходить во внутрь папок, которые я видел и открывать файлы для просмотра. Результат был потрясающим! Я очень много узнал о чужих сайтах. Главное открытие, что соотношение «нормальных сайтов» к «ненормальным» (мошенническим, бессодержательным, просто пустым) не в пользу «нормальных». Попадались «сайты знакомств» (я до сих пор иногда встречаю такие), где очень красивая «обложка» – главная страница, с симпатичными людьми, которые как бы уже являются пользователями сайта. И если хочешь с ними начать общаться, то нужно зарегистрироваться и что-то там ввести или заплатить. А на самом деле внутри веб-сайта кроме этих десяти фотографий больше ничего и нет. Это сейчас всем понятно – но в своё время Интернет-мошенничество я изучал именно так.

Но самое потрясающее, что обнаружил, это сайты в названии доменных имён которых встречалось слово mail. «Снаружи» эти сайты состояли из одной единственной страницы, полностью идентичной странице входа в почту mail.ru. А вот внутри там лежало несколько файлов, один из которых почти всегда оказывался собранными парами логин-пароль. Т.е. кто-то под разными предлогами (посмотреть открытку, например), заманивал пользователей на эту страницу, ничего не подозревающие пользователи вводили свои данные и они уже попадали к хакеру.

Скомпрометированных учётных записей было много (со всех сайтов я набрал больше сотни). Примерно в половине случаев пароль не подходил (пользователь успел его сменить), либо почтовый ящик был полностью пустой (пользователь что-то заподозрил и удалил все письма). Но вот вспоминая вторую половину, я до сих пор мучаюсь догадкой: люди, когда думают что никто не узнает, действительно такие еба… странные или мне просто повезло с подборкой? Из интересных ящиков очень многие, так или иначе, содержали переписку по обмену интимными фотографиями, разговоры «ниже пояса», причём в значительной части была затронута и тема несовершеннолетних. Я до сих пор помню фотку переодетого в женский наряд мужчины (чулки и вообще полный набор), который прислал её женщине, которая интересовалась женщинами (мужчина убеждал, что он – это женщина), чтобы она в ответ прислала свои «голые» фотки. А на что готов пойти ты, чтобы увидеть фотографию голой женщины? 🙂

Вполне возможно, что это были какие-нибудь следственные мероприятия, такой способ негласного получения информации от личностей, которые попали в поле зрение правоохранителей. Я всё-таки отказываюсь думать, что люди в своей большой (или хотя бы в значительной массе) такие.

Трудно не согласиться с Виктором Пелевиным

Просто ассемблер чужой души при близком рассмотрении редко выглядит привлекательно.

3. Основы работы операционной системы Linux

Чем больше вы знаете про Linux, тем лучше. Хотя бы уже потому, что огромное количество веб-серверов в Интернете в качестве операционной системы использует Linux.

Я рассказал свой случай про выход за пределы из выделенного мне на хостинге каталога. У другого хостера, мне удалось попасть в корневой каталог файловой системы (а вот сайты оказались недоступными, поскольку права на папки были прописаны правильно). И представьте ситуацию: я мечусь по папкам сервера, ведь нужно быстрее хватать что-нибудь ценное, пароли разные и т.д. А где что лежит у Linux’а? В какие каталоги надо переходить и какие файлы скачивать? Я был совершенно не знаком тогда с Linux и главный вывод, который я сделал для себя после того случая – нужно разбираться с Linux, иначе никак.

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

Вообще, в непривычной ОС пользователи иногда не знают, как скопировать файл, или как его открыть, или как установить новую программу, или «где диск D» и т.д. В общем, изучайте Linux в самых разных его аспектах.

И начтите своё изучение не с Kali Linux, а, например, с Linux Mint.

Kali Linux – она не очень подходит для новичков. Даже в дружелюбной Linux Mint могут возникать вопросы по обычному использованию. Что уж говорить про Kali Linux. Все программы, которые есть в Kali Linux, прекрасно могут работать и на других версиях Linux. Я бы рекомендовал так: в качестве основной ОС использовать Linux Mint, а после изучения новых программ устанавливать их в Linux Mint или же, в качестве виртуальной машины (второй ОС) использовать Kali Linux.

Заключительные слова

Я привёл несколько примеров из своих экспериментов по обходу ограничений и проникновению. В скольких из них я использовал Kali Linux? Ни в одном. Я прекрасно помню своё первое знакомство с предшественницей Kali Linux – я установил в виртуальный компьютер, посмотрел меню (там непонятные английский названия), попробовал запустить некоторые программы (почти всегда открывалась командная строка), понял, что здесь ВООБЩЕ ничего не понятно, всё закрыл и удалил.

Изучайте языки программирования (PHP, MySQL, HTML), новые технологии, Linux, устройство и работу сервера. Старайтесь мыслить в созидательном русле (как сделать сайт, как обслуживать сервер, как эффективно работать в Linux) и понимание глубинных процессов придёт само. А именно это (знание и понимание происходящих процессов) и есть главное богатство хакера. Не нужно зацикливаться на Kali Linux. Изучение Kali Linux без знания того, что я перечислил выше – это равносильно построению дома без фундамента.

Видится многим как «хакерская» операционная система. Сами хакеры, особенно в молодёжной среде, воспринимаются c восхищением. Отсюда понятен интерес молодых людей к Kali Linux. Они пробуют её установить запустить и у них возникает масса «детских» вопросов. Отвечать на эти вопросы нужно, какими бы простыми, наивными или некорректными они не были. Лично для меня неприемлемо поведение «бывалых», которые на такие вопросы отвечают «а зачем тебе?», «опять каникулы в школе?», «за такие глупые вопросы нужно уже банить?» и т.д. Этим хамством забиты российские технические форумы. Подобного я не позволяю себе и не позволю другим на и FreeForum.biz . Абсолютно каждый, каким бы большим специалистом он не стал сейчас, начинал с изучения азов, начинал с «детских» вопросов. Те, кто не задаёт простых вопросов, в конечном счёте, так и не узнает на них ответов.

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

Поэтому для всех начинающих хакеров я подготовил список из того, что нужно изучить. По каждому пункту я буду стараться пояснить, для чего это нужно знать.

1. Основы языков программирования

1.1 HTML

На самом деле, HTML – это даже не язык программирования, а язык разметки, т.е. он используется, грубо говоря, для оформления текста.

Как он может помочь начинающему хакеру? Приведу мой личный пример. У одного из провайдеров Интернета, услугами которого я пользовался (местный провайдер с домовой городской сетью), был (может и сейчас есть – не знаю, давно ушёл от этого провайдера) свой сайт и свои собственные сервисы для пользователей. В начале 2000х это было актуально – Интернет-трафик (внешний) был платный, поэтому все старались пользоваться локальными ресурсами. Эти ресурсы, безусловно, были очень популярны. Один из самых популярных – файлообменник. Из-за постоянных злоупотреблений пользователей (например, «раздетая» с помощью Фотошопа одноклассница Маша) владелец файлообменника ввёл обязательный пароль. Этот пароль генерировался автоматически, и он не мог содержаться в комментарии к файлу. Так вот, анализ формы для отправки файла и некоторые эксперименты с ней показали, что пароль содержится в одном из скрытых полей формы, которое, естественно, можно редактировать. На сервере этот пароль ничем уже не проверялся. В результате, сохранив форму для загрузки файла себе на компьютер и чуть отредактировав её, удалось сделать так, чтобы файлы можно было опять загружать без пароля. Этой формой мог пользоваться любой клиент провайдера. Позже провайдер «закрыл» дыру – стал проверять наличие пароля. Тем не менее, такими же простыми манипуляциями удалось сделать так, что файлы загружались всегда со «стандартным» паролем («0000», вроде) плюс этот пароль можно было записывать в комментарий к файлу.

Те, кто знаком хотя бы с основами HTML, прекрасно понял, о чём я говорю. Для остальных – это просто китайская грамота.

Ещё один свеженький пример. Буквально на днях (11 февраля 2015 года), была обнаружена дыра в теме WordPress, которая позволяет закачивать производные файлы на сервер. Описание этой темы . Уязвимой в этой теме является файл admin/upload-file.php. Я нашёл эту тему и нашёл этот файл. Файл совсем короткий, поэтому я приведу его полностью:

Этот файл на PHP, но, чтобы воспользоваться этой уязвимостью, нужно сделать форму отправки файла именно на HTML.

Итак, HTML нужно знать, чтобы: а) искать уязвимости; б) использовать уязвимости. Есть и более продвинутые задачи, для выполнения которых нужно знать HTML, но остановимся на этом.

1.2 PHP

Выше я привёл содержание крошечного файла, написанного на PHP. Этот файл содержит такую брешь, что уже не важно, насколько хорошо настроен сервер, есть ли файловый файервол и т.д. Если кто-то использует эту тему – то сайт этого человека в полной нашей власти (а если сервер/хостинг криво настроены, то весь компьютер под нашим управлением). Но ведь чтобы это понять, нужно хоть чуть-чуть знать PHP.

Чтобы использовать готовые эксплойты, которые написал кто-то другой, опять же, нужно знать хотя бы основы PHP, чтобы знать куда записать адрес сайта и другие переменные величины, и как вообще запустить этот скрипт.

1.3 MySQL

Обычно, самое интересное находится в базах данных. Чтобы понять, как использовать MySQL-инъекцию, нужно знать, что такое MySQL-инъекция. Чтобы уловить суть MySQL-инъекции, нужно знать, что такое MySQL-запросы, каков синтаксис этих запросов, каково устройство базы данных, как хранятся данные, что такое таблицы и т.д.

Вообще, первые три пункта, а также представления об устройствах веб-сайтов, проще всего постичь, если учиться не «взламывать» веб-сайты, а их создавать. Учитесь с целью сделать что-то позитивное. В этом есть парадокс, ведь точно также, чтобы научиться хорошо защищать веб-приложения, нужно учиться их взламывать! Только сумев посмотреть на веб-технологии глазами взломщика, можно получить бесценный опыт. Точно также и с сайтами – простое изучение функций и основ языка мало пригодиться. Нужно стать веб-разработчиком, чтобы понять всю изнанку веб-сайта.

1.4 JavaScript, JQuery

Хотя бы нужно знать, что на веб-сайтах управляется, зависит от JavaScript. Ведь на некоторых сайтах, которые на дают выделить (и/или скопировать) содержимое, не дают скачать файл или достаточно просто отключить JavaScript, чтобы всё это стало возможным.

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

Можно привести тонну примеров неудачной защиты форм с помощью JavaScript (мне запомнилась форма на сайте ФСБ РФ – чтобы её отправить, там обязательно нужно заполнить стопятьсот полей (паспорт, прописка и т.д.), но самыми простыми манипуляциями это «ограничение» можно обойти (это было давно, вполне возможно, они исправили форму обратной связи)).

2. Основы устройства сетей, работы веб-серверов и веб-сайтов

2.1 Устройство сетей

Про устройство сетей обязательно нужно знать: что такое IP адрес, что он позволяет идентифицировать пользователя Интернета, как спрятать свой IP , что такое прокси, что такое TOR, что такое домен, порты и т.д.

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

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

2.2 Понимание устройства и работы веб-сервера

Как и в предыдущих пунктах, начну с простого примера (кстати, совсем недавнего). При посещении одного из серверов, было обнаружено, что настройки сервера позволяют просматривать содержимое каталогов (листинг файлов). На сервере был найден phpMyAdmin, но стандартные пароли к нему не подходили. Блуждая по каталогам в попытке найти уязвимые скрипты (там самописные скрипты для обработки записей в больницу и раздачи «номерков») был найден текстовый (!) файл содержащий одну строчку с двумя словами, разделёнными запятой. Как оказалось, это и был логин с паролем для phpMyAdmin. База данных, как говориться, наша из-за клинической глупости разработчика, но вот для записи своего файла на сервер понадобились знания об этом сервере. Например, нужно знать абсолютный путь, куда будет произведена запись шела. Чтобы знать абсолютный путь, нужно хотя бы знать структуру каталогов сервера Apache.

CREATE TABLE `shell` (`script` TEXT NOT NULL) COMMENT = "table for include"; INSERT INTO `shell` (`script`) VALUES (""); SELECT script FROM `shell` INTO OUTFILE "C://Apache24/htdocs/shell.php"; DROP TABLE `shell`;

Этим примером я хочу сказать не то, что нужно выучить структуру Apache. Я хочу сказать, что без знаний о работе, об общих принципах устройства веб-сервера, постоянно будете натыкаться на невозможность в полной мере «раскрутить» уязвимость, даже если она уже найдена.

Помните что я говорил про языки программирования и про понимание принципов работы веб-сайтов? Чтобы понять всю глубину нужно самому стать веб-разработчиком. Чтобы понять веб-сервер, нужно читать книжки не по взлому веб-сервера, а по его обслуживанию. Т.е. нужно самому стать системным администратором, и осознание слабых мест, в какие стороны, при попытке проникнуть на веб-сервер, нужно «капать», придёт само.

2.3 Понимание устройства и работы веб-сайтов

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

Чтобы продолжить знакомство с устройством веб-сайтов, желательно иметь опыт по работе с популярными системами управления контентом, с популярными движками и скриптами. Знать как устроены плагины и темы, где они располагаются, какие файлы могут представлять интерес и т.д.

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

Это очень, казалось бы, банальная информация позволила создать очень простой, но потрясающе эффективный «хак»

If ($handle = opendir("./../../../../../../../../..")) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { echo "$entry
"; } } closedir($handle); }

Когда я открыл это для себя, я ещё пользовался бесплатным хостингом (название домена компании holm.ru или holms.ru – они ещё раздавали домены третьего уровня вида *.h7.ru, *.h10.ru, т.е. цифры там последовательно менялись, по мере заполнение серверов).

Я применил эти несколько строчек, которые привёл чуть выше и оказалось, что я могу выходить за границы выделенной мне папки. Чуть усовершенствованный скрипт позволил мне не просто просматривать корень сервера, а переходить во внутрь папок, которые я видел и открывать файлы для просмотра. Результат был потрясающим! Я очень много узнал о чужих сайтах. Главное открытие, что соотношение «нормальных сайтов» к «ненормальным» (мошенническим, бессодержательным, просто пустым) не в пользу «нормальных». Попадались «сайты знакомств» (я до сих пор иногда встречаю такие), где очень красивая «обложка» – главная страница, с симпатичными людьми, которые как бы уже являются пользователями сайта. И если хочешь с ними начать общаться, то нужно зарегистрироваться и что-то там ввести или заплатить. А на самом деле внутри веб-сайта кроме этих десяти фотографий больше ничего и нет. Это сейчас всем понятно – но в своё время Интернет-мошенничество я изучал именно так.

Но самое потрясающее, что обнаружил, это сайты в названии доменных имён которых встречалось слово mail. «Снаружи» эти сайты состояли из одной единственной страницы, полностью идентичной странице входа в почту mail.ru. А вот внутри там лежало несколько файлов, один из которых почти всегда оказывался собранными парами логин-пароль. Т.е. кто-то под разными предлогами (посмотреть открытку, например), заманивал пользователей на эту страницу, ничего не подозревающие пользователи вводили свои данные и они уже попадали к хакеру.

Скомпрометированных учётных записей было много (со всех сайтов я набрал больше сотни). Примерно в половине случаев пароль не подходил (пользователь успел его сменить), либо почтовый ящик был полностью пустой (пользователь что-то заподозрил и удалил все письма). Но вот вспоминая вторую половину, я до сих пор мучаюсь догадкой: люди, когда думают что никто не узнает, действительно такие еба… странные или мне просто повезло с подборкой? Из интересных ящиков очень многие, так или иначе, содержали переписку по обмену интимными фотографиями, разговоры «ниже пояса», причём в значительной части была затронута и тема несовершеннолетних. Я до сих пор помню фотку переодетого в женский наряд мужчины (чулки и вообще полный набор), который прислал её женщине, которая интересовалась женщинами (мужчина убеждал, что он – это женщина), чтобы она в ответ прислала свои «голые» фотки. А на что готов пойти ты, чтобы увидеть фотографию голой женщины? 🙂

Вполне возможно, что это были какие-нибудь следственные мероприятия, такой способ негласного получения информации от личностей, которые попали в поле зрение правоохранителей. Я всё-таки отказываюсь думать, что люди в своей большой (или хотя бы в значительной массе) такие.

Трудно не согласиться с Виктором Пелевиным

Просто ассемблер чужой души при близком рассмотрении редко выглядит привлекательно.

3. Основы работы операционной системы Linux

Чем больше вы знаете про Linux, тем лучше. Хотя бы уже потому, что огромное количество веб-серверов в Интернете в качестве операционной системы использует Linux.

Я рассказал свой случай про выход за пределы из выделенного мне на хостинге каталога. У другого хостера, мне удалось попасть в корневой каталог файловой системы (а вот сайты оказались недоступными, поскольку права на папки были прописаны правильно). И представьте ситуацию: я мечусь по папкам сервера, ведь нужно быстрее хватать что-нибудь ценное, пароли разные и т.д. А где что лежит у Linux’а? В какие каталоги надо переходить и какие файлы скачивать? Я был совершенно не знаком тогда с Linux и главный вывод, который я сделал для себя после того случая – нужно разбираться с Linux, иначе никак.

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

Вообще, в непривычной ОС пользователи иногда не знают, как скопировать файл, или как его открыть, или как установить новую программу, или «где диск D» и т.д. В общем, изучайте Linux в самых разных его аспектах.

И начтите своё изучение не с Kali Linux, а, например, с Linux Mint.

Kali Linux – она не очень подходит для новичков. Даже в дружелюбной Linux Mint могут возникать вопросы по обычному использованию. Что уж говорить про Kali Linux. Все программы, которые есть в Kali Linux, прекрасно могут работать и на других версиях Linux. Я бы рекомендовал так: в качестве основной ОС использовать Linux Mint, а после изучения новых программ устанавливать их в Linux Mint или же, в качестве виртуальной машины (второй ОС) использовать Kali Linux.

Заключительные слова

Я привёл несколько примеров из своих экспериментов по обходу ограничений и проникновению. В скольких из них я использовал Kali Linux? Ни в одном. Я прекрасно помню своё первое знакомство с предшественницей Kali Linux – я установил в виртуальный компьютер, посмотрел меню (там непонятные английский названия), попробовал запустить некоторые программы (почти всегда открывалась командная строка), понял, что здесь ВООБЩЕ ничего не понятно, всё закрыл и удалил.

Изучайте языки программирования (PHP, MySQL, HTML), новые технологии, Linux, устройство и работу сервера. Старайтесь мыслить в созидательном русле (как сделать сайт, как обслуживать сервер, как эффективно работать в Linux) и понимание глубинных процессов придёт само. А именно это (знание и понимание происходящих процессов) и есть главное богатство хакера. Не нужно зацикливаться на Kali Linux. Изучение Kali Linux без знания того, что я перечислил выше – это равносильно построению дома без фундамента.

На сегодняшний день самыми популярными дистрибутивами для тестирования на проникновение являются *nix-like дистрибутивы: , BlackArch Linux, Pentoo и многие другие. Они могут использоваться как в виртуальной среде, так и в качестве live системы или вообще быть установлены в виде десктопной ОС.

Windows пользователи до недавнего времени были обделены (виртуальные машины не берем во внимание) такими сборками, пока не появилась волшебная коробочка -хакерский дистрибутив PentestBox .


PentestBox не похож на другие security-дистрибутивы, которые работают на виртуальных машинах. Идея о его создании посетила автораAditya Agrawal после изучения статистики - более 50% пользователей, скачавших дистрибутивы, использовали Windows:

  • Samurai Web Testing Framework -
  • Santoku Linux -
  • Parrot OS -

Что же отличает PentestBox?

Простой для использования.Скачиваем 2,5 гигабайта с сайта, распаковываем и все готово к использованию. Не такой требовательный к ресурсам, как инстанс виртуальной машины. Нет зависимостей, все утилиты, стандартые команды - все установлено. Также, установлен браузер Mozilla Firefox с самымипопулярными аддонами для аудита веб-приложений .

PentestBox довольно легко кастомизируется - добавляете нужные вам утилиты на python/ruby/исполняемый файл и прописываете алиасы. Обновления тоже не составят никаких сложностей. Интерфейс выполнен в виде командной строки с «классическим» зеленым шрифтом на черном фоне, олд скул.

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

Сборка не содержит один из основных «комбайнов», используемых специалистами по безопасности и хакерами - Metasploit framework. Авторуказывает , что для установки и так существует вполне себе работающая Windows версия этого продукта, прекрасно выполняющая свое предназначение в нативном виде.

На сайте автора утилиты представлены по разделам, есть пересекающиеся позиции, поэтому я расположил утилиты, классифицировав их по методу использования/воздействия. Некоторые утилиты на оригинальном сайте содержат неверные ссылки/описания, имейте это в виду.

Сбор и анализ информации

В этом разделе собраны утилиты для предварительного исследования цели.

Форензика

Утилиты для сбора «цифровых доказательств», криминалистического анализа, сбора доказательной базы.

PDF tools - поиск и выявление подозрительных объектов в PDF документах, анализ элементов PDF.

PeePDF - анализ объектов, элементов и потоков, содержащихся в PDF файлах.

Origami - утилита для анализа и работы с зараженными pdf (используемыми для