Kali Linux для начинающих
14 декабря будет запущена новая «Test lab» — лаборатория тестирования на проникновение, имитирующая работу реальной корпоративной сети, в которой каждый желающий сможет проверить свои навыки тестирования на проникновение. Поскольку порог вхождения для выполнения всех заданий лаборатории достаточно высокий, мы решили выпустить небольшой гайд для начинающих по работе с Kali Linux 2018.4 — одним из самых популярных пентест-дистрибутивов, разработанного как преемник BackTrack и основного на Debian.
Причина популярности простая – довольно дружелюбный интерфейс и наличие необходимых инструментов для пентеста “из коробки”. Инструменты распределены по категориям, что очень удобно. Имеются варианты установки на АРМ, например, Raspberry Pi 3, а также на мобильные платформы под управлением Android. Я сейчас говорю про Kali NetHunter – тот же Kali, который практически без изменений устанавливается поверх Android и работающий внутри chroot-окружения.
Получаем токен, используя SQLi
По легенде у нас есть некий хост test.lab. Наша задача — определить уязвимости и выполнить их эксплуатацию.
Начнем с разведки — выполним сканирование портов: nmap -v test.lab
Сканирование в режиме по умолчанию результатов не дало, произведем сканирование всех портов: nmap -v -p 1-65535 192.168.60.13
На порту 9447 доступно веб-приложение:
Используя инструмент nikto, определим, что вероятнее всего используется CMS WordPress:
nikto -host test.lab:9447
Проверим приложение, используя WPScan: wpscan —url http://test.lab:9447
Нам удалось обнаружить плагин WP Symposium 15.5.1.Для данной версии имеется уязвимость SQL Injection, и также в выводе представлены ссылки на базы с описанием уязвимости, где мы и будем искать информацию.
Мы нашли способ эксплуатировать уязвимость на www.exploit-db.com/exploits/37824
Теперь нужно проверить ее, подставив этот параметр к нашему url.
Используя Burp Suite, посмотрим, какие запросы приходят при обращении к этому адресу:
Скопируем этот GET запрос в файл и передадим его в sqlmap с параметром -r, добавив ключ уязвимого параметра -p “size” и —dbs для нахождения баз данных.
sqlmap -r qwe -p “size” —dbs
В итоге мы получили несколько баз. Проверим содержимое базы wordpress_test и найденных таблиц:
sqlmap -r qwe -D wordpress_test —table
sqlmap -r qwe -D wordpress_test -T wp_posts —dump
В таблице wp_post в одной из скрытых записей нам удалось найти токен Y@u-wIn. .
Использование Nemeisida WAF не позволит выполнить эксплуатацию подобной уязвимости.
600 доступных инструментов, которые найдут свое применение у любого — от начинающего до профессионала.
Соблюдайте законодательство и до встречи в Test lab v.12.
Источник
Clang. Часть 1: введение
Что такое Clang?
Я провёл последние несколько месяцев, работая с Clang, фронтендом LLVM. Clang умеет парсить и анализировать любой исходный код на языках семейства С (C, C++, ObjectiveC, и т.п. ) и имеет удивительную модульную структуру, которая делает его простым в использовании.
Если вы ищете статический анализатор кода, я настоятельно рекомендую Clang, он существенно превосходит другие статические анализаторы (такие, как CIL. ) и хорошо документирован. Также список рассылки Clang очень активен и полезен, если вы застряли на чём-то.
Лично я использую Clang для статического анализа драйверов ввода-вывода ядра Linux, включая драйвера камеры и драйвера DRM графической карты. Код ядра, особенно код драйвера, может быть очень сложным и трудным для анализа, но Clang позволяет нам легко поддерживать его. Давайте посмотрим, что можно сделать с его помощью.
Как работает Clang?
В большинстве случаев, Clang запустит препроцессор (который разворачивает все макросы) и парсит исходник, превращая его в абстрактное синтаксическое дерево (AST). C AST работать гораздо проще, чем с исходным кодом, но вы всегда можете получить ссылки на исходник. Фактически, каждая структура в Clang-е, используемая для представления кода (AST, CFG и т.п.), всегда имеет ссылку на оригинальный исходник, полезный для целей анализа, рефакторинга и т.п.
если вам нужно анализировать и модифицировать код на уровне исходника, Clang лучше, чем LLVM. Анализ с помощью LLVM означает, что вы можете использовать язык внутреннего представления LLVM, похожий на ассемблер.
Clang AST
Практически каждый компилятор и статический анализатор использует AST для представления исходного кода. AST, используемое в Clang, очень детализированное и сложное, но вы получите удовольствие, изучая различные классы элементов Clang AST. Ниже приводится краткое введение в Clang AST, но самый простой путь изучить его, это просто делать дампы AST для простых исходников, и смотреть, какое AST им соответствует.
В общем, Clang AST сделано из двух очень гибких классов: Decl и Stmt. У обоих есть множество подклассов, вот несколько примеров:
FunctionDecl — прототип или объявление функции
BinaryOperator — бинарный оператор, например (a + b)
CallExpr — вызов функции, например, foo(x);
Большинство классов имеют «говорящие» имена, например, ForStmt, IfStmt, и ReturnStmt. Вы поймёте суть AST, поиграв с ним несколько минут. Вы можете найти документацию по классам AST, поискав что-либо вроде “Clang FunctionDecl.”
Как использовать Clang?
Clang может использоваться как прямая замена gcc и предлагает несколько крутых инструментов статического анализа. Как программист (а не как нормальный пользователь!), вы можете получить доступ к всей мощи clang, используя его как библиотеку одним из трёх способов, в зависимости от того, как вы решите.
Для начала, ознакомьтесь с описанием интерфейсов clang. В дополнение к тому, что написано в этом описании, я выделю другие существенные различия между различными интерфейсами clang.
Clang Plugin
Ваш код является плагином, и запускается каждый раз заново для каждого файла исходника, что означает, что вы не можете сохранять глобальную информацию или другую контекстную информацию между двумя разными исходными файлами (но вы можете запустить плагин для множества файлов последовательно). Плагин запускается путём передачи соответствующих опций системе компиляции (Clang, Make и т.п.) через аргументы командной строки. Это похоже на то, как вы включаете оптимизацию в GCC (т.е. «-O1»). Вы не можете запустить какую-либо свою задачу до или после того, как исходный файл будет проанализирован.
LibTooling (Clang Tool)
Ваш код — обычная программа на С++, с нормальной функцией main(). LibTooling используется для запуска некоторого анализа на исходном коде (с множеством файлов, при желании) без запуска обычного процесса компиляции. Новый экземпляр кода для анализа (и новый AST) будет создан для каждого нового файла исходника (как и в случае Clang Plugin), но вы можете сохранять контекстную информацию между файлами исходников в своих глобальных переменных. Так как у вас есть функция main(), вы можете запускать какие-либо задачи перед или после того, как clang завершит анализ ваших исходных файлов.
LibClang
LibClang хорош тем, что это стабильный API. Clang периодически меняется, и если вы используете Plugin или Libtooling, вам нужно будет править ваш код, чтобы отслеживать эти изменения (но это не так сложно!). Если вам нужен доступ к Clang API из языков, отличных от C++ (например, из Python), вы должны использовать LibClang.
Примечание: LibClang не даёт полный доступ к AST (только высокоуровневый доступ), но другие два варианта дают. Как правило, нам нужен полный доступ к AST.
Если вы не можете решить, что использовать, я бы порекомендовал начать с интерфейса LibTooling. Он проще, и работает так, как вы ожидаете. Он предлагает гибкость и полный доступ к AST, как и Plugin, без потери глобального контекста между исходными файлами. LibTooling не сложнее в использовании, чем Plugin.
Начинаем работать с Clang
Сейчас, когда вы знаете основы, давайте начнём! Эта инструкция будет работать на любой версии Linux (и, возможно, OS X), но тестировалось на Ubuntu. Вы можете получить LLVM и Clang, проделав следующие шаги (взято из официальной инструкции к Clang):
Скачать и установить (например, с помощью apt-get) все необходимые пакеты.
(Типичный дистрибутив Linux идёт со всем необходимым, кроме subversion).
Смените директорию на ту, в которую вы хотите установить LLVM (например,
/static_analysis/). Будем называть её директорией верхнего уровня. Выполните следующие команды в терминале:
Компиляция LLVM и Clang займёт некоторое время.
Для проверки запустите:
Можно протестировать Clang, запустив классический пример Hello World:
В этом руководстве я использую Clang 3.4 на Ubuntu 13.04, но вы можете использовать другие варианты и того, и другого.
Сейчас перейдём к программированию на Clang.
Источник
Статья Руководство по хакингу с помощью Kali Linux
Хакинг с Kali Linux
Почему Kali Linux?
С Kali Linux хакинг становится гораздо проще, поскольку у вас есть все инструмент (более 300 предустановленных утилит) которые только могут для этого понадобиться. Кроме этого, вы с лёгкостью можете скачать дополнительные программы. Это руководство поможет вам освоиться, и вы сами не заметите, как начнёте заниматься взломом.
Проблема с новичками
Я уже долгое время общаюсь с новичками. Обычно им нужна магия. Простой инструмент, работающий под Windows, который можно скачать, поискав в Google и нажав на первую ссылку, и который всё будет делать автоматически, а пользователю надо только нажать на кнопку. К сожалению, подобных инструментов не существует. Хакинг — это искусство, и на его освоение необходимы многие годы практики. С чего же начать? Не иметь никакого представления о хакинге — это нормально, но вы не можете быть совершенным профаном, у которого просто есть компьютер. Под новичком я понимаю пользователя, не знакомого с программированием и методологиями хакинга, а не человека, которому нужно целое руководство только чтобы скачать инструмент. Если вы хотите быть хакером, то должны усердно трудиться. Итак, как же ступить на этот путь? Если вы уже установили Kali Linux, нажмите сюда, чтобы пропустить параграфы об установке и перейти непосредственно к разделу о хакинге.
Я не собираюсь утомлять вас теорией (как будто это всё не было теорией). Моя цель — как можно скорее довести вас до точки, откуда вы сможете приступить к хакингу с помощью Kali Linux. Так что я просто расскажу, что нужно делать. Процесс довольно прост:
- Если вам неизвестно, что такое Kali Linux, перейдите по этой ссылке и получите начальное представление об этой системе.
- Если вы ещё этого не сделали, откройте страницу загрузок и скачайте ISO файл Kali Linux..
Теперь начнутся настоящие сложности
Если у вас нет опыта работы с Linux, виртуальными машинами и другими подобными вещами, установка и запуск Kali Linux несколько усложнится. У вас есть 2 варианта:
1. Прочитайте официальную документацию Kali
Из неё вы узнаете, что такое виртуальная машина, как запустить ОС с USB-накопителя, а также как создать раздел и установить на компьютер сразу 2 ОС одновременно. Именно это я и рекомендую. Официальную документацию Kali можно найти здесь.
2. Прочитайте мою отредактированную версию документации Kali
Второй вариант — ознакомиться с этими постами, которые представляют собой несколько изменённую версию документации Kali. Это позволит вам сэкономить немного времени, поскольку в официальном тексте содержится много дополнительной информации, которую вам не нужно знать… пока. Даю ссылки на них здесь:
- Установка Kali Linux на жёсткий диск с помощью USB
- Загрузка Kali в качестве второй операционной системы (в дополнение к Windows)
- Подробное пошаговое руководство по установке Kali Linux на VmWare (прим.: пишется)
Интерфейс командной строки
Если вы действительно уверены, что хотите стать хакером, придётся привыкнуть к linux и, в частности, интерфейсу командной строки. Его часто сравнивают с командной строкой Windows, но терминал Linux гораздо лучше и эффективнее. Вам придётся выполнять все обычные задачи в командной строке Linux. Используйте cd для навигации, poweroff для выключения компьютера и так далее.
Материалы этого сайта займут вас на целый месяц, но вы можете продвигаться вперёд постепенно. Первые несколько руководств здесь написаны с учётом того, что читатель не очень хорошо знаком с командной строкой.
Несколько полезных команд:
Если вы не планируете изучать все команды linux, вот несколько полезных вещей, которые помогут вам удержаться на плаву.
- Стандартный логин и пароль — «root» и «toor».
- Введите «poweroff» в терминал, чтобы выключить компьютер.
- Команду «apt-get» можно использовать для установки инструментов и обновлений.
- «apt-get update» и «apt-get upgrade» позволят обновить все программы, установленные на вашей машине.
- «apt-get dist-upgrade» установит последний дистрибутив Kali (то есть обновит вашу ОС).
Примечание: Нажатие кнопки Tab во время печати заставит Kali завершать слова за вас. Двойное нажатие Tab приведёт к отображению всех возможных вариантов окончания незавершённого слова. Ctrl+c останавливает работу любого запущенного инструмента. Нажатие стрелки вверх показывает последнюю введённую команду.
Настоящий хакинг с Kali Linux
Если вы прошли все вышеописанные шаги и научились работать в новой среде, пришло время приступить к реальному хакингу с помощью Kali Linux. Я бы порекомендовал сначала взломать wifi, затем провести тестирование на проникновение, а в свободное время почитать об атаках отказа в обслуживании. Ссылки вы найдёте ниже.
Источник