Lifehack

Lifehack

Сообщество по информационной безопасности. Статьи, гайды, обучения, рекомендации, обзоры, новости, подборки полезного софта! Life-Hack - Хакер
На Пикабу
Дата рождения: 10 марта
Dilyasha virineya17
virineya17 и еще 1 донатер
63К рейтинг 982 подписчика 3 подписки 272 поста 84 в горячем
Награды:
самый сохраняемый пост недели самый сохраняемый пост недели самый сохраняемый пост недели самый сохраняемый пост недели 5 лет на Пикабу
0

Атакуем веб-приложения

Данный пост носит теоретический характер.

В данном посте рассмотрим основаны атак на веб-приложения. Коротко пройдёмся по таким пунктам как:

  • Из чего состоит типичное веб-приложение

  • Какие цели атаки мы преследуем

  • Как их можно достичь

  • Какие бывают уязвимости

  • Кратко об SQLi

  • Стандартный план действий при атаке.

Из чего состоит типичное WEB-приложение.

  • В первую очередь это какие-либо статические данные, файлы, CSS (Cascading Style Sheets) или таблица стилей, JS (JavaScript) – скриптовый язык программирования, исполняемый в браузере, картинки, HTML файлы…

  • Но статические данные нам не особо интересны (кроме каких-либо важных файлов, хранящихся на веб-сервере), так как уязвимостей, связанных с ними, обычно не бывает. Нас интересует для начала, на каком языке написано веб-приложение. Язык, на котором написано веб-приложение, может быть абсолютно любой, начиная от дефолтных PHP, Ruby, Python и заканчивая ASM, но, конечно, чаще всего используется какой-либо скриптовый язык.

  • После языка нам нужно понимать, на чём “крутится” веб-приложение – это сервер, который обрабатывает запросы пользователей и отдаёт им ответы на их запросы, чаще всего это Apache2 или nginx, но бывают и другие варианты, например, для встраиваемых систем часто используют маленькие, легковесные веб-сервера написанные на С/С++.

  • Далее идут базы данных. БД почти всегда используются более-менее серьёзным веб-приложением, в БД хранятся данные пользователей, настройки сервера, файлы, картинки и прочая очень интересная для взломщика информация. Для больших БД нужны удобные системы управления или СУБД, часто используемые варианты: MySQL, Oracle, SQLite.

  • И финальный элемент структуры – ОС, на которой всё это находится. Понятно, что она может быть любой, но чаще всего используется какой-нибудь Linux-дистрибутив (серверный).

Финальные цели атакующего.

Изначально  хакер хочет получить web-shell.

Что такое web-shell?

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

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

Следующий пункт, к которому стремится хакер — это получение шелла на сервере. Что даёт шелл? Шелл даёт возможность управлять непосредственно самим сервером, на котором находится веб-приложение, создавать директории, менять какие-либо правила, оставлять свои зловредные программы, например, для майнинга криптовалюты, сниффинга различных данных, добавление взломанной машины в ботнет. Или он может использовать эту машину для атаки на внутреннею сеть (если таковая имеется).

Финальная цель – это получение root-доступа к машине. Это означает, что хакер имеет полный контроль на сервере и может делать с ним абсолютно всё, вплоть до полного захвата машины.

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

Как выглядит на практике внедрение SQL кода?

Допустим, мы имеем определённый запрос к базе данных, в котором в качестве одного из параметров участвуют данные, которые были введены пользователем на веб-сайте. Если эти данные участвуют в составлении запроса к базе данных, то мы можем непосредственно влиять на этот запрос, например, сначала мы запросим товар с идентификационным номером 1, далее с номером 2, если такие номера есть, то мы получим по ним данные, какое-нибудь описание, цену и прочее. Так упрощённо работают запросы к базе данных. Что произойдёт, если мы захотим нарушить логику запроса и запросим не номер товара, а передадим в этих данных какие-либо ключевые слова языка запроса?

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

SELECT * FROM goods WHERE id = userinput,

где userinput – это то, что ввёл пользователь. Представим, что никакой обработки не происходит и то, что ввёл пользователь, никак не проверяется и вставляется в запрос как есть. Что тогда произойдёт? Если на месте пользователя окажется злоумышленник или специалист по уязвимостям веб-приложений, то он сможет с помощью ключевых слов языка SQL управлять запросом и доставать из различных таблиц необходимые данные, например, логин и хэш пароля администратора, номера банковских карточек, электронные почты пользователей и прочее, что чаще всего хранится в базе данных. Вот так приблизительно и работает уязвимость, связанная с инъекцией SQL-кода. Почти все уязвимости связаны с неправильной обработкой входных данных, получаемых от пользователя.

Атакуем веб-приложения Хакеры, Взлом, Информационная безопасность, Длиннопост

Теперь рассмотрим стандартный план действий при атаке на веб-приложение.

Итак, на первом этапе анализа веб-приложения происходит сбор информации о данном веб-приложении (сайте).

Он бывает двух видов: пассивный и активный. Суть их в том, что при активном режиме вы уже фактически вмешиваетесь в работу веб-приложения, и если у вас нет на это разрешения, то это является нарушением законодательства, по крайне мере в РФ.

Активный сбор информация – это, например, сканирование активных портов, которое вы проводите. Иногда активные порты можно посмотреть через различные сервисы наподобие Shodan или онлайн сканеров.

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

После сбора информации обычно идёт поиск уязвимостей. Фактически самая важная часть исследования и одна из самых сложных. Здесь нет как такового верного подхода, у каждого исследователя свой подход к поиску уязвимостей: кто-то использует сканеры, фаззеры и прочие утилиты, кто-то ищет вручную, используя только базовые инструменты по типу Burp Suite или только браузер, но это совсем редко встречается. Поиск уязвимостей особенно в BlackBox’e чаще всего представляет из себя создание разнообразных предположений и гипотез и последующую проверку их. Есть также так называемые “известные” уязвимости – это уязвимости, которые уже известны сообществу и могут быть обнаружены, если веб-приложение не обновляло ту часть, где находится эта уязвимость, как раз для такого рода уязвимостей и существуют сканеры.

После обнаружения уязвимости или ряда уязвимостей, разрабатывается вектор атаки на приложение. Что это значит?

Это значит, что, исходя из найденных уязвимостей и их типа, необходимо разработать план нападения на приложение, который должен учитывать, что и как будет проводиться и какие финальные цели, обычно это очень подробно описывается в отчётах исследователей. У злоумышленников вектор атаки зависит от целей, исследователям же приходится расписывать все возможные варианты атаки злоумышленника и последствия, которые будут после удачной или неудачной атаки. Также есть обще описательные вектора уязвимостей, которые содержат в себе тип уязвимости, доступ необходимый для её эксплуатации и критичность.

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

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

Вот приблизительно так выглядит карта атаки на веб-приложение.

Показать полностью 1
14

Топ 10 ресурсов на русском языке, которые могут помочь в изучении Пентеста

Вот список из 10 ресурсов на русском языке, которые могут помочь в изучении пентестирования:

1. Infosec Institute – это онлайн-платформа, предоставляющая учебный материал по пентестированию и другим аспектам кибербезопасности.

2. Журнал «Хакер» – это ежемесячное издание, которое содержит статьи, новости и другие материалы на тему информационной безопасности и пентестирования.

3. Интернет-ресурс Hackerdom.ru - это уникальный ресурс, на котором есть обучающие и справочные статьи, видеоуроки и множество других материалов о пентестировании.

4. PentesterLab – это онлайн-платформа, разработанная специально для практического изучения пентестирования и соответствующих навыков.

5. Курс «Основы пентеста» от портала SecurityLab.ru – это бесплатный курс, который предоставляет базовые знания и навыки по проведению пентестирования.

6. Интернет-ресурс Xakep.ru – это еще один уникальный ресурс, на котором много обучающих и справочных статей о пентестировании.

7. Видеоуроки на канале YouTube «Хакер»– на этом канале есть множество видеоуроков по пентестированию, которые могут быть полезны для начинающих.

8. Курс «Advanced Web Penetration Testing» на хакерской онлайн-платформе Cybrary – это платный курс, который позволяет более глубоко изучить пентестирование веб-приложений.

9. Книга «Hacking Web Applications» Венджеля Рамира – это книга о проведении пентестирования веб-приложений, которая содержит множество полезных советов и техник.

10. Курс «Web Application Penetration Testing» на онлайн-платформе Udemy – это обучающий курс, предоставляющий основные знания и навыки по проведению пентестирования веб-приложений.

Некоторые из этих книг вы можете найти в нашей библиотеке!

Мы в телеграме:

Life-Hack [Жизнь-Взлом]/Хакинг

Показать полностью

Подборка советов

Не пользуйтесь строковыми константами

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

Выходите из своей зоны комфорта

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

Разрыв длинных строк в Си

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

Длина строк ограничена 80 символами, и этому следует уделить особое внимание. Для комментариев установлен тот же лимит в 80 символов.

Операторы длиной более 80 символов будут разбиты на логические части. Можно сделать исключение, если это значительно повысит читаемость и не скроет информацию. Последующие части значительно короче основной и сильно смещены вправо. То же относится к заголовкам функций с длинным списком аргументов.

Документация

Хороший код не нуждается в документации, а отличный код имеет отличную документацию, так что любой, кто не участвовал в развитии проекта, может продуктивно работать с ним. Незадокументированная функция — это несуществующая функция. У несуществующей функции не должно быть кода.

Отступы и табуляция в Си

Табуляция составляет 8 символов (8 символов табуляции, а не 8 пробелов), то есть отступы будут также составлять 8 символов. Появляются отступники, которые призывают делать отступы в 4 (или даже 2!) символа, а это сродни попытке округлить число Пи до 3.

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

Некоторые могут возразить, что отступ в 8 символов делает код слишком широким, особенно на 80-знаковой строке терминала. Ответ: Если вам понадобилось более трех уровней отступа, вы что-то делаете неправильно, и вам следует переписать этот участок.

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

Пишите понятные функции

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

Большая библиотека книг по программированию!

Показать полностью

Опасные нейронки

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

Вот что чат-бот от Snapchat ответил энтузиасту, представившемуся 13-летней девочкой:

- Как обмануть родителей насчёт поездки с 31-летним мужчиной.

- Как сделать потерю девственности на 13-летие особенным (нейросеть посоветовала свечи и музыку).

Официального ответа на данный инцидент от Snapchat ещё не поступило.

Life-Hack [Жизнь-Взлом]/Хакинг

Опасные нейронки Искусственный интеллект, Нейронные сети, IT, Киберпанк, Длиннопост
Опасные нейронки Искусственный интеллект, Нейронные сети, IT, Киберпанк, Длиннопост
Опасные нейронки Искусственный интеллект, Нейронные сети, IT, Киберпанк, Длиннопост
Показать полностью 3
1

Microsoft обещает выход GPT-4 на будущей неделе — новая модель сможет создавать видео

Microsoft обещает выход GPT-4 на будущей неделе — новая модель сможет создавать видео Искусственный интеллект, Нейронные сети, Киберпанк, ChatGPT, Microsoft, IT

На будущей неделе Microsoft выпустит нейросеть GPT-4. Эта система станет мультимодальной моделью и сможет создавать видео. Как утверждается, новая система сможет воспринимать не только текст, но также звук и изображения.

В числе других улучшений обещана более быстрая генерация ответов, а сами реплики будут «человечнее» и более похожими на ответы живого собеседника. Помимо этого, по словам Андреаса Брауна (Andreas Braun), технического директора Microsoft Germany, модель будет поддерживать «буквально все языки».

Люди еще не успели отойти от GPT-3, а тут уже такое...

Мы в телеграме:

Life-Hack [Жизнь-Взлом]/Хакинг

Библиотека

IT Дайджест

0:24

Показать полностью
9

Именованные каналы в Linux

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

Именованный канал создаётся явно с помощью mknod или mkfifo, и два различных процесса могут обратиться к нему по имени.

Например, можно создать канал и настроить gzip на сжатие того, что туда попадает:

mkfifo pipe

gzip -9 -c < pipe > out &

Что такое файлы именованных каналов?

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

Для создания файлов именованных каналов можно использовать утилиту mkfifo:

mkfifo /tmp/my.fifo

Что такое файлы устройств?

Тип файлов в UNIX-подобной ОС, содержат данные, необходимые операционной системе для взаимодействия с физическими устройствами, такими как диски и дисководы, принтеры и факсы и т. п.

Каждый из таких файлов идентифицируется с помощью двух идентификаторов: основного идентификатора (major number) и вспомогательного идентификатора (minor number).

Файлы устройств размещаются в каталоге /dev или в его подкаталогах. Примеры основных файлов:

/dev/sd[буква] — жёсткий диск

/dev/sd[буква][номер] — раздел диска

/dev/eth[номер] — сетевые интерфейсы Ethernet

Узнать информацию о файле устройства можно с помощью команд file и ls.

Создание файла именованного канала

Для создания файла именованного канала достаточно использовать утилиту mknod с параметром p.

mknod -m 777 /home/name/fifo p

Чтобы проверить создание файла именнованного канала:

ls -al | grep fifo

Для прекращения работы с файлом именованного канала достаточно использовать команду rm:

rm /home/name/fifo

Передаем данные через именованный канал

Для передачи данных через именованный канал, в первую очередь, создаем этот канал с помощью команды mkfifo:

mkfifo /tmp/my.fifo

Для проверки, что канал создан, воспользуйтесь:

ls -al /tmp

Для обмена данными между приложениями следует открыть дополнительное окно эмулятора терминала и выполнить в нем команду:

tail -f /tmp/my.fifo

Далее с помощью первого окна терминала выполнить:

echo "Linux" >> /tmp/my.fifo

Во втором окне, вы должны увидеть:

Linux

Прервать работу Ctrl+C. А после окончания использования файла программного канала следует удалить его:

unlink /tmp/my.fifo

Life-Hack [Жизнь-Взлом]/Хакинг

Показать полностью
2

Отписаться от электронных рассылок в один клик

Добавив расширение AutoUnsubscribe в Gmail или другой почтовый клиент, вы увидите список всех рассылок, которые вы не открываете.

От них можно отписаться, нажав на одну кнопку. Или вы можете подождать день, когда плагин автоматически отпишется от всех ненужных рассылок.

Ссылка на расширение

Life-Hack [Жизнь-Взлом]/Хакинг

11

Microsoft запустил визуальный ChatGPT

Главная фича: нейронка чистенько удаляет любые объекты прямо с фоток. Получается здорово, потому что Visual ChatGPT понимает контекст.

На видео видно — она знает, что на фотке мотоцикл, понимает, где он находится и даже правильно определяет цвет. С ней можно, например, изменить цвет этого мотоцикла.

Привычные генерации по запросу, смешение фоток и редактура пикч, само собой на месте.

Попробовать — тут.

Мы в телеграме:

Life-Hack [Жизнь-Взлом]/Хакинг

Библиотека

IT Дайджест

Отличная работа, все прочитано!