Сообщество - Life-Hack [Жизнь-Взлом]/Хакинг
Добавить пост

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

244 поста 2 671 подписчик

Популярные теги в сообществе:

5 инструментов для повышения привилегий в системах Windows и Linux

5 инструментов для повышения привилегий в системах Windows и Linux Linux, Windows, Github, Софт, Программа, Информационная безопасность

Существует множество инструментов, которые можно использовать для повышения привилегий в системах как Windows, так и Linux. Подробнее о пяти инструментах,  которые помогут вам в этом процессе:

1. PrivescCheck от itm4n - Целью этого сценария является выявление уязвимостей локального повышения привилегий (LPE), которые обычно возникают из-за проблем с конфигурацией Windows или неправильных методов работы. Он также может собирать полезную информацию для некоторых задач эксплуатации и пост-эксплуатации.

2. Linux Exploit Suggester от The-Z-Labs - Простой в использовании инструмент, позволяющий быстро определить потенциальные векторы атаки для повышения привилегий в системах Linux. Он автоматически определяет версию ядра и возвращает список эксплойтов, соответствующих этой версии.

3.PEASS-ng от Carlospolop - Это своего рода швейцарский армейский нож для повышения привилегий. Инструмент предоставляет обширные возможности по обнаружению уязвимостей и эксплуатации их в Windows и Unix-like системах.

4. Moriarty от BC-SECURITY -  Комплексный .NET-инструмент, расширяющий функциональность Watson and Sherlock . Он предназначен для перечисления недостающих KB, обнаружения различных уязвимостей и предложения потенциальных эксплойтов для повышения привилегий в средах Windows.

5. autoSUID от Albertov - Этот сценарий позволяет вам находить и перечислять двоичные файлы SUID и проверять, можно ли использовать один из них для повышения или поддержания повышенных привилегий итеративным способом. Он сравнивает текущие двоичные файлы SUID в системе со списком GTFOBins и сообщает информацию о том, как повысить привилегии с помощью этих двоичных файлов.

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

Мы в телеграме, подпишись!

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

Самый лучший способ проверить надежность пароля

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

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

Так вот, сперва может показаться, что иметь удачу подобрать тот же набор символов что у вас будет чрезвычайно маловероятно, спешу вас расстроить. Старые алгоритмы хэширования даже на одной мощной видеокарте могут проверяться миллионами в секунду. А представьте теперь, что этих видеокарт может быть 50, 100. Ваш пароль mydick50sm щелкнут как орешек минут за 30, что уж там говорить про dick50, тут секунд на 5 работы. Собственно поэтому обязательно используйте пароли как можно длиннее, сложнее и неочевиднее: например, mYD1Kk5@sm.

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

1 способ (простой). Сервис проверки от Касперского тут все просто. Вводим, проверяем есть ли уже что-то в базах. Например, на момент написания поста dick50 засветился в 281 подключенной к данному сервису базе.

2 способ (мой любимый). Обновлению баз Касперского при всем уважении доверяю не так как старейшему сайту cmd5.org - частично платному сервису по поиску соответствия хэшей. Но там сравниваются хэши, поэтому предварительно лезем в любой тестер php и вставляем туда данный код (вместо dick50, очевидно, ваш пароль):

<?php

function generate_md5_hash($string) {

return md5($string);

}

$string_to_hash = "dick50";

$md5_hash = generate_md5_hash($string_to_hash);

echo "MD5 hash of '{$string_to_hash}' is: {$md5_hash}";

?>

На выходе получаем самый простой хэш md5, который суем в сmd5.org.

Самый лучший способ проверить надежность пароля Windows, Информационная безопасность, Хакеры, Администрирование, Пароль, Взлом, Безопасность

нашлось :)

Также можем получить результат "Found, но откроем за денюжку". Такой результат для пароля dick50 также считаем провальным.

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

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

Обратная Сторона Кода: Глубокое Погружение в Мир Вредоносного ПО

Обратная Сторона Кода: Глубокое Погружение в Мир Вредоносного ПО Информационная безопасность, IT, Хакеры, Github, Вредоносное по, Подборка

Сегодня мы погружаемся в мир, где обитают вредоносные программы. Мы составили подборку репозиториев, которые содержат образцы вредоносного ПО для обучения и исследования их работы.

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

- TheZoo

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

- MalwareSourceCode

Сборник исходных кодов вредоносных программ различных типов - от вирусов до руткитов и Ransomware на разных языках и под разные платформы.

- Malware-1

Это еще один ресурс, который содержит образцы различных типов вредоносных программ.

- Ultimate RAT Collection

Обширная коллекция образцов RAT (Remote Access Trojan) для исследований. Включает в себя совершенно новые образцы. Все они представлены в виде архивов в формате 7z.

- Javascript Malware Collection

Коллекция из 40 000 образцов вредоносного ПО на Javascript, отличный ресурс для тех, кто изучает веб-безопасность.

- The MALWARE Repo

Еще один репозиторий с широкой коллекцией образцов вредоносного ПО, которые включают в себя ботнеты, трояны и стиллеры.

- Malware Samples

Коллекция образцов вредоносного ПО, включая достаточно свежие примеры. В этом репозитории также представлены учебные материалы по анализу.

Наш канал по ИБ в телеграме, подпишись!

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

Малоизвестные, но мощные сканеры уязвимостей

Малоизвестные, но мощные сканеры уязвимостей Информационная безопасность, Сканер, Уязвимость, Хакеры, Полезное, Подборка, Github, Софт

1. Bolt

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

2. Trivy

Trivy - это сканер уязвимостей с открытым исходным кодом, разработанный компанией Aqua Security. Он специализируется на выявлении уязвимостей в контейнерах, Kubernetes, репозиториях Git, образах виртуальных машин и AWS.

3. Scriptkiddi3

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

4. CVS

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

5. Nucleimonst3r

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

Еще больше полезного в нашем тг канале, подпишись!

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

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python

Порою возникают ситуации, когда необходимо использовать в скрипте Python IP-адрес используемый активной сетевой картой, которая смотрит в Интернет, узнать MAC-адрес этой карты и имя сетевого соединения. К сожалению, функций из коробки пока что не наблюдается. Есть сторонние модули, которые позволяют узнать MAC-адрес, например getmac, но в качестве параметров в них нужно также передавать или IP-адрес, или имя соединения. Но, что, если их нужно определять программно и вводить вручную не вариант?
Я нашел для себя решение, которое работает, но требует тестирования на большом количестве систем. Хотя, думаю, что на большинстве ОС семейства Windows или Linux оно будет работать.

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Импорт библиотек

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

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Получение IP-адреса активной сетевой карты

Уже очень давно, около 15 лет назад на Stack Overflow был дан ответ по поводу получения «основного», имеющего маршрут по умолчанию, IP-адреса. Как описывает его автор скрипта, он работает под всеми основными ОС: Windows, Linux, OSX. Вот ссылка на данный пост.
Несмотря на то, что скрипту уже довольно много лет, он работает до сих пор. Потому, вместо изобретения велосипеда я использую его, за неимением лучшего. Тем более что он ни разу не давал сбоев. Вот сам скрипт:

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Теперь, когда мы определились с тем, каким способом будем получать IP-адрес, приступим к написанию скрипта для получения IPv6-, MAC- адресов, а также имени сетевого интерфейса.

Получение информации об активном сетевом интерфейсе

Создадим класс NetInfo,который при инициализации будет получать необходимые данные в зависимости от операционной системы. Здесь мы определяем платформу с помощью модуля system библиотеки platform и в зависимости от этого запускаем тот или иной скрипт.

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Двигаемся дальше. Создадим функцию для получения локального IP-адерса и объявим ее статическим методом, так как в ней не используются переменные класса.

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Напишем функцию mac_iface_win(self) в которой выполним получение нужных нам параметров. Для этого мы будем использовать возможности командной строки Windows, с частности инструмент командной стоки wmic. В частности будем использовать псевдоним NICCONFIG, который используется для управления сетевыми адаптерами. Отфильтруем только активные сетевые адаптеры. А их может быть в системе несколько, включая виртуальные: IPEnabled=true . После этого получим MAC – и IP – адреса используя GET MACAddress, IPAddress /FORMAT:csv, с указанием вывода полученных значений в формате csv для того, чтобы нам было проще их распарсить.

Вот полный вид данной команды:

wmic NICCONFIG WHERE IPEnabled=true GET MACAddress, IPAddress /FORMAT:csv

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

После того, как мы получим необходимые данные, выполним команду getmac /FO csv /NH /V с помощью которой получим список сетевых интерфейсов. Также в цикле проитерируемся по нему и будем проверять, есть ли уже полученный MAC-адрес в строке с параметрами интерфейса. Если есть, забираем название сетевого интерфейса.

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Если в предыдущей функции мы получили данные для сетевого интерфейса в ОС Windows, то следует также написать аналогичную функцию и для Linux. Поэтому создадим функцию mac_iface_lin(self). В ней кода будет поменьше, так как в командах Linux содержится больше информации в одном месте и ее легче распарсить. Команда, которую мы будем использовать выглядит следующим образом:

ip -h -br a | grep UP

Здесь мы получим название сетевого интерфейса и IPv6-адрес. В Linux данный адрес можно получить, даже если он отключен в настройках адаптера.
После этого выполним похожую команду, но уже отфильтруем из ее вывода MAC-адрес:

ip a | grep ether | gawk '{print $2}'

Осталось только свести написанный код, если вы этого еще не сделали воедино.

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

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

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост
Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Теперь необходимо протестировать его в операционных системах. В данном случае у меня доступны две системы: Windows 10 и Linux Mint.

Создадим в данном скрипте вызов нашего класса и выведем в терминал полученные параметры:

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Для начала, запустим в ОС Windows:

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

А теперь то же самое в Linux Mint:

Получение IP -, MAC –адресов, имени сетевого интерфейса с помощью Python Windows, Linux, Программирование, Python, Код, Скрипт, Рекомендации, IT, Длиннопост

Как видим, скрипт справляется со своей работой. Для чего он может пригодиться? Ну, например, для автоматической установки активного сетевого интерфейса по умолчанию в Scapy при прослушивании пакетов с активного сетевого интерфейса. Но о Scapy поговорим немного позже.

Спасибо за внимание. Надеюсь, данная информация будет вам полезна

Код можно посмотреть тут!

Наши тг каналы, подпишись!

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

Топ-5 лучших Hex редакторов для Linux

Топ-5 лучших Hex редакторов для Linux IT, Linux, Подборка, Рекомендации, Программное обеспечение

1. Hexedit - это простой редактор в командной строке. Он предлагает базовые функции редактирования:

• Поддержка работы в командной строке.

• Возможность работать с файлами любого размера.

2. Ghex - это простой в использовании  редактор рабочего стола Gnome:

• Поддержка базавого редактирования

• Поддержка плагинов

3. Okteta - это универсальный редактор, который может редактировать разные типы файлов:

• Поддержка плагинов

• Сравнение файлов

• Возможность редактирования файлов в сжатом виде

4. Bless - это легкий и быстрый редактор с минималистичным интерфейсом:

• Поддержка основных функций редактирования

• Поиск и замена

• Небольшой размер

5. xxd - это мощный hex редактор, входящий в состав большинства дистрибутивов Linux:

• xxd имеет интерфейс командной строки

• Является частью vim

+ Бонус:

Бесплатный онлайн hex редактор - HexEd.it. Инструмент, который работает в веб-браузере. Он позволяет анализировать и редактировать бинарные файлы где угодно.

Подписывайся на нас в телеграме!

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

Топ-4 инструмента для мониторинга сетевой активности

Топ-4 инструмента для мониторинга сетевой активности Информационная безопасность, IT, Хакеры, Подборка, Рекомендации, Сети, Длиннопост

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

С его помощью можно анализировать и расшифровывать сетевой трафик, включая HTTP-запросы и защищённый трафик через SSL/TLS, с помощью специфических фильтров (по IP-адресам, номерам портов, протоколам) и логических операторов.

Плюсы:

- Бесплатный и открытый исходный код.

- Поддержка широкого спектра протоколов.

- Возможность анализа пакетов в режиме реального времени.

Минусы:

- Требует некоторого уровня технической подготовки.

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

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

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

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

Плюсы:

- Бесплатный и открытый исходный код.

- Поддержка широкого спектра сетевых устройств и приложений.

- Возможность настройки уведомлений и оповещений.

Минусы:

- Сложно масштабировать для больших сетей.

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

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

Плюсы:

- Предоставляет детальную информацию о состоянии сети.

- Возможность настройки уведомлений и оповещений.

- Поддержка широкого спектра сетевых устройств и приложений.

Минусы:

- Платный.

4. PRTG Network Monitor - предоставляет информацию о состоянии сети, включая уровень загрузки, пропускную способность и время отклика. Он может быть настроен для отправки уведомлений и оповещений при обнаружении проблем с сетью.

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

Плюсы:

- Предоставляет детальную информацию о состоянии сети.

- Возможность настройки уведомлений и оповещений.

- Поддержка широкого спектра сетевых устройств и приложений.

Минусы:

- Платный.

#подборка#софт#программа#обзор#информационная_безопасность#сети

Подписывайся на наш телеграм канал, у нас много полезного!

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

Вы хотите головоломок?

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

РАЗМЯТЬ МОЗГ

Получение адреса по координатам с помощью Python

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

Получение адреса по координатам с помощью Python IT, Программирование, Python, Разработка, Программист, Гайд, Обзор, Длиннопост

Для получения адреса по геолокации будем использовать библиотеку geopy. В ней реализованы классы для работы с сервисами геокодирования, такими как OpenStreetMap Nominatim, Google Geocoding API (V3) и многими другими. В нашем коде мы будем использовать OpenStreetMap, так как его использование бесплатно и не требует получения дополнительных ключей.

Установка библиотеки

Для установки библиотеки пишем в терминале команду:

pip install geopy

Импорт модулей в скрипт

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

Получение адреса по координатам с помощью Python IT, Программирование, Python, Разработка, Программист, Гайд, Обзор, Длиннопост

Получаем адрес по координатам. Обратное геокодирование

Создадим функцию get_addr(location: list) -> str, которая на входе получаем широту и долготу в виде списка, а возвращает адрес в виде строки. В случае ошибки будет возвращен текст «Unknown».

Получение адреса по координатам с помощью Python IT, Программирование, Python, Разработка, Программист, Гайд, Обзор, Длиннопост

После этого инициализируем класс Nominatim и передаем в него user_agent. Здесь использование какого-то специализированного агента не принципиально и можно просто передать «GetLoc». Если мы заглянем в параметры данного класса, то увидим, что в него, кроме user_agent можно передать таймаут, прокси и еще множество других параметров, которые в данном случае не принципиальны.

Получение адреса по координатам с помощью Python IT, Программирование, Python, Разработка, Программист, Гайд, Обзор, Длиннопост

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

Запрос координат у пользователя. Вывод полученного адреса в терминал

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

Получение адреса по координатам с помощью Python IT, Программирование, Python, Разработка, Программист, Гайд, Обзор, Длиннопост

Тестирование функции

Протестируем написанный код. Возьмем произвольные координаты объекта с Яндекс.Карты и введем в запросе скрипта. В ответе мы видим полученный адрес, который совпадает с тем, что указан на Картах.

Получение адреса по координатам с помощью Python IT, Программирование, Python, Разработка, Программист, Гайд, Обзор, Длиннопост

Итог:

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

Ссылка на код тут!

Наши телеграм каналы

Показать полностью 6
Отличная работа, все прочитано!