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

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

274 поста 2 809 подписчиков

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

13

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

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

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
10

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

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

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

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

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

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

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

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

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

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

Напишем функцию 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-адрес в строке с параметрами интерфейса. Если есть, забираем название сетевого интерфейса.

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

ip -h -br a | grep UP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ Бонус:

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

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

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

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

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

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

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

Плюсы:

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

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

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

Минусы:

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

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

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

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

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

Плюсы:

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

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

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

Минусы:

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

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

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

Плюсы:

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

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

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

Минусы:

- Платный.

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

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

Плюсы:

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

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

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

Минусы:

- Платный.

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

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

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

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

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

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

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

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

pip install geopy

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

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

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

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

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

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

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

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

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

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

Итог:

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

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

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

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

4 инструмента для тестирования безопасности вашей базы данных

4 инструмента для тестирования безопасности вашей базы данных

1. SQLMap - Это автоматизированный инструмент для тестирования проникновения, который позволяет обнаруживать и эксплуатировать уязвимости SQL инъекций в веб-приложениях. SQLMap поддерживает широкий спектр баз данных, включая MySQL, Oracle, PostgreSQL и другие.

SQLMap может тестировать уязвимости в параметре "id" веб-страницы. С помощью него также можно эффективно обнаружить и эксплуатировать SQL-инъекции, способствуя улучшению безопасности данных. Инструмент предлагает различные типы инъекций и подробно проанализирует технологии веб-приложения, обеспечивая комплексное тестирование безопасности базы данных.

Плюсы:

- Поддержка многих баз данных.

- Гибкие опции для различных уровней тестирования.

Минусы:

- Сложно анализировать большой объем вывода.

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

- Его могут обнаружить некоторые системы безопасности.

2. NoSQLMap - Этот инструмент нацелен на автоматизацию эксплуатации и обнаружение уязвимостей в NoSQL-базах данных. Если ваша организация использует такие системы как MongoDB, CouchDB или другие NoSQL решения, NoSQLMap станет вашим незаменимым помощником.

Плюсы:

- Автоматизация тестирования безопасности систем NoSQL.

- Помогает выявлять распространенные уязвимости.

Минусы:

- Ограниченный набор поддерживаемых баз данных по сравнению с SQLMap.

3. DataSunrise Database Security - DataSunrise включает в себя механизмы обнаружения угроз, маскировку данных и аудит, обеспечивая комплексную защиту баз данных в режиме реального времени. Поддерживается работа с популярными облачными провайдерами и базами данных.

Плюсы:

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

- Предлагает функцию регистрации каждой транзакции SQL.

Минусы:

- Платный.

- Сложная установка и настройка.

4. Greenbone Security Manager (GSM) - GSM представляет собой решение для управления уязвимостями, которое охватывает не только тестирование баз данных, но и широкий спектр IT-инфраструктуры. Этот инструмент помогает находить, классифицировать и устранять уязвимости.

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

Плюсы:

- Широкий спектр функций для управления уязвимостями в IT-инфраструктуре.

Минусы:

- Сложность в освоении для новых пользователей.

Подпишись на наш канал по информационной безопасности, там много полезного!

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

Получение закладок из chromium-based браузеров с помощью Python

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

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

Поиск установленных браузеров

Создадим файл browser_check.py. В нем, напишем код, который будет производить поиск браузеров по пути указанному в одном из словарей.

Импортируем необходимые библиотеки для работы скрипта и определим список, в который будем помещать словари с найденными браузерами:

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

Создадим функцию browser_find(platform: dict) -> None, которая на входе будет получать словарь с путями к закладкам браузеров и проверять их существование. Если путь существует, в объявленный ранее список browser будет добавляться словарь с названием браузера и путем к его закладкам.

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

Двигаемся далее и создадим функцию main, в которой будем определять платформу, на которой запущен скрипт. В принципе, если у вас MacOS, то нужно добавить еще один словарь с путями и условие, в котором определяется ваша система. Но, в данном случае детектируются только две операционные системы: Windows и Linux.

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

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

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

Часть структуры файла закладок

Часть структуры файла закладок

В зависимости от того, что вернет функция парсинга, а возвращает она или список со словарями, в которых содержаться полученные значения или False, двигаемся дальше. Если мы получаем список, то открываем файл с названием браузера на запись. Обратите внимание на то, что в данном случае файл открыт в режиме дозаписи, о чем свидетельствует параметр «a». Затем итерируемся по полученному списку, забираем из словарейОбратите внимание на ветку «roots», в которой и находятся все закладки. Так как закладки в браузере, это не просто последовательный набор названий и ссылок, то их группировка происходит по директориям создаваемым пользователем. Данные директории имеют название «children» и имеют тип «folder». Также, к примеру, на Панели закладок могут быть как директории с закладками, так и просто закладки для быстрого доступа. Тип закладок без папок «url».

Создадим файл bookmarks_find.py и приступим к написанию кода. Для начала импортируем библиотеки, которые понадобятся в данном скрипте.

import json

Создадим функцию rec(file: str) -> (list, bool), в которую передается путь к закладкам браузера. Возвращает же данная функция список со словарями, в которых содержится имя и url закладки. В случае же, если закладки найти не удалось, возвращается False.

Объявляем список urls, в который будем помещать найденные закладки в виде словарей. Откроем файл с закладками для чтения, поместим его содержимое в переменную roots.

Так как значение данной переменной будет являться словарем, проитерируемся по нему в цикле, указав ветку «roots» в качестве стартовой. Получим ключ и значение и проверим, есть ли в нем название «children». Если да, передаем полученную ветку в функцию process_tree, которую мы создадим чуть позже для обработки. Также передаем в эту функцию список urls. По сути, при передаче списка, если вспомнить его свойства, мы передаем указатель на оригинальный список, так как его копирования в данном случае не происходит. А значит, при его изменении в других функциях измениться и оригинальный словарь.

После того, как завершим итерацию по файлу, проверяем, пуст или нет список. Если список не пуст, возвращаем его из функции. Если пуст - возвращаем False.

Теперь создадим функцию process_tree(children_ist: dict, urls: list) -> None, которая получает на входе словарь из полученной директории и указатель на список, в котором будут храниться найденные ссылки в виде словарей.

Здесь все просто. Данная функция как переходник, в котором мы итерируемся по полученному словарю и передаем полученные значения в следующие функции для обработки.

Создадим функцию process_urls(item: dict, urls: list) -> None, которая на входе получает словарь со значениями и ссылку на список. У данной функции предназначение – выявить ссылки в переданном словаре. Для этого проверяем, есть ли в переданном словаре ключ «type» и является ли его значение «url». Если да, забираем название ссылки и саму ссылку и добавляем в виде словаря в список urls.

И еще одна функция, которая будет необходима для проверки, не является ли полученный словарь директорией со ссылками «children». Создадим функцию process_folders(item: dict, urls: list) -> None, которая на входе получает словарь со значениями и ссылку на список.

Здесь все тоже просто, проверяем, есть или нет «children» в переданном словаре. Если есть, передаем его рекурсивно в функцию process_tree для дальнейшей обработки.

Полный код скрипта:

import json

На этом вроде бы все. Основные скрипты и функции написаны, осталось только проверить, как это будет работать.

Открываем терминал и запускаем скрипт:

Если у вас Windows:

python browser_check.py

Если Linux:

python3 browser_check.py

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

Сообщения в терминале

Сообщения в терминале

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

Файлы с найденными закладками

Файлы с найденными закладками

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

Содержимое файла с найденными закладками

Содержимое файла с найденными закладками

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

Скрипт работает как на Windows, так и на Linux. Вот скрин с работой скрипта в Fedora Workstation, в которой браузеры установлены по умолчанию, с помощью пакетов.

Работа скрипта в Fedora Workstation

Работа скрипта в Fedora Workstation

Подведем итоги:

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

В перспективе, применений данному скрипту можно найти достаточно много. Все зависит только от вашей фантазии.

А на этом все. Спасибо за внимание.

Скрипты можно взять тут!

Наш канал по программированию, полезные статьи, бесплатные курсы, все в одном канале!
Подпишись!

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