А надежно ли?
Хеллоу комрады.
Интересует мнение грамотных людей. В конторе заюзали онлайн тулзу https://unionaviation.centrik.net/ для заливки всяких персональных данных итд итп. На вопрос а тулза секюрная? Ктото проверял ее? Отвели в уголок и тихонько наказали, мол не задавай групых вопросов, там все мега секюрно на столько что даже двухфакторки не нужно. Но меня терзают смутные сомнение по данной теме. Интересует мнение со стороны.
Ученые вырастили настоящий человеческий мозг и подключили к ПК
Он намного меньше обычного мозга, но состоит так же из нейронов и клеток.
С помощью электродов его подключили к ПК и за 2 дня научили распознавать голос и решать дифференциальные уравнения с большой точностью.
Свою нейросеть ученые назвали Brainoware и теперь считают, что через десять лет у нас появятся первые биокомпы.
Каждый день в своем блоге Telegram я публикую интересные новости о нейромаркетинге, разработках, технологиях и полезных сервисах! 🫶🏽
В IT-отрасли обеспокоены планами введения уголовной ответственности за утечки
Законопроект о введении уголовной ответственности за незаконные сбор, использование и передачу персональных данных, в том числе из утечек (внесен в Госдуму 4 декабря группой сенаторов и депутатов во главе с руководителем комитета Госдумы по информполитике, связи и IT Александром Хинштейном) вызвал серьезное беспокойство в IT-отрасли.
Если анализировать текущие формулировки документа, его действие может распространяться не только на злоумышленников, но также на владельцев и руководство IT-компаний, которые собирают большие данные из открытых источников и используют их для собственных разработок.
Как считают эксперты из IT отрасли, принятие инициативы может привести к серьезному замедлению развития искусственного интеллекта (ИИ), для которого используются большие объемы данных.
Между тем, количество утечек личных данных россиян за прошедшее полугодие, уже превысило количество населения России.
Как придумать сложный в написании, а значит для подбора и при этом простой для запоминания и восстановления пароль?
Способ 1) Для этого нужно использовать русско английскую клавиатуру, на ней каждой русской букве соответствует английская практически, есть буквы у которых английской буквы нет потому что русских букв 33 а английских 26.
Так вот придумываем или используется самое привычное для вас слово, своё имя, отчество, фамилию свою или девичью матери или девичью бабушки то есть то что вы хрен уже забудете находясь в добром здравии и доброй памяти.
Например имени Александр будут соответствовать следующие английские буквы русско английской клавиатуры FKTRCFYLH.
Владимир будет русским буквам на клавиатуре соответствовать следующие ангельские DKFLBVBH и так далее
Способ 2) Потребуется десять символов первый вариант это строка из английского алфавита ABCDEFGHIJKL его многие знают наизусть.
Вторая строка это снова клавиатура, первый ряд символов русско английских их ровно десять сколько нам и надо QWERTYUIOP
Теперь любое число мы можем привести в набор символов двумя способами. За нулевой символ разумно использовать последний десятый, иначе если первый то будет менее удобно, всё окажется сдвинутым на единицу, 1 будет соответствовать второй символ и так далее что менее удобно чем если 1 соответствует первый символ буква.
Например
Дата рождения человека предположим 22.11.1987 переводим её в символы по строке алфавита английского BBAAAKJI
по строке клавиатуры первой, которая содержит 10 русско английских букв и находится сразу под цифрами WWQQQOIU
также можно перевести номер своего телефона или телефонов которые вы хорошо знаете.
Способ 3) Каждому символу, букве соответствует номер в алфавите, то есть переводим буквы в их порядковые номера в алфавите, числа, и записываем последовательность это и будет паролем. Алфавиты большинство хорошо помнят, но если даже и подзабыли подучить и вспомнить их совершенно не помешает, или можно иметь картинку с алфавитами английским и русскими по рукой, знать стоит наизусть как английский алфавит так и русский.
Например имя Катя 12(К) 1(А) 20(Т) 33(Я). И можно совместить Катя1212033
и пусть подбирают хакеры эту последовательность.
Способ 4) Написание хорошо известного, любимого вами слова, имени, фамилии, задом наперёд. Например Иванов будет Вонави, Петров будет Вортеп, Сидоров будет Вородис. К получившимся словам неочевидным но легко восстанавливаемым, можно добавить какое нибудь любимое вами число например год вашего рождения и тоже написанное задом наперёд.
Способ 5) Комбинация и букв и чисел. Например придумали вышеприведенным способом себе пароль из букв и добавляем к нему еще и циферки например год своего рождения написанный к примеру тремя способами, обычным 1987 или задом наперед 7891 или перенос пары последних цифр в перёд или двух первых назад даст тот же результат 8719 то есть зная что вы так оперируете своим цифрами года рождения у вас всего три варианта их написания, можно сделать больше при желании. И добавляем к паролю из букв год своего или даты рождения записанного обычно или необычно по приведенным выше или вашим собственным правилам.
Мне кажется такие пароли получаются непростыми для подбора при переборе наиболее распространенных слов например, но в тоже время простыми для восстановления и запоминания. Конечно никакие пароли не защитят от серьезных хакеров поэтому компрометирующую вас информацию лучше не хранить на устройствах подключенных к сети интернет, спиздят и ни здрасть ни до свидания не скажут, в легкую.
ЗЫ Более устойчивы пароли если вы используете больше вариантов символов в пароле, например если мы используем только цифры то каждый символ имеет 10 вариантов, если буквы английские и числа то уже 10+26 = 36 вариантов может иметь каждый символ, если буквы большие, мелкие и цифры то вариантов символа в пароле уже будет 10+26+26 = 62. Поэтому многие сайты просят нас использовать и маленькие буквы и большие и числа и даже специальные знаки чтобы пароль был максимально сложным для подбора. Чем большее число символов используется при составлении (цифры, буквы заглавные и мелкие, спецсимволы) пароля тем сложнее его будет взломать хакерам говнякерам методом перебора.
ЗЫ2 Чтобы проще переводить цифры в буквы и буквы в цифры разумно иметь под рукой, на компьютере алфавиты русский и английский с приписанными каждой букве её порядковым номером, картинкой с клавиатурой русско английской если например её не окажется под рукой, иметь возможность глянуть как шифровать слова и цифры. Можно и написать последовательности две из десяти символов из QWERTYUIOP и ABCDEFGHIJKL с подписанными порядковыми номерами для того чтобы не считать, какой букве соответствует десятизначное число, а глянул и сразу узнал какой букве какой номер соответствует, это упростит шифрацию и дешифрацию букв и цифр.
Создание майнера данных
ИНФОРМАЦИЯ ИСКЛЮЧИТЕЛЬНО ДЛЯ ОЗНАКОМЛЕНИЯ!!
В этой статье мы создадим инструмент, проверяющий схему базы данных (например, имена столбцов) в поиске ценной информации. Допустим, нам нужно найти пароли, хеши, номера социального страхования и кредитных карт. Вместо написания единой утилиты, добывающей информацию из различных БД, мы создадим раздельные программы — по одной для каждой БД — и задействуем конкретный интерфейс, обеспечивая согласованность между их реализациями. Такая гибкость может оказаться излишней для данного примера, но она дает возможность создать переносимый код, который можно использовать повторно.
Интерфейс должен быть минимальным, то есть состоять из нескольких базовых типов и функций, требуя реализации всего одного метода для извлечения схемы базы данных. В коде ниже определяется именно такой интерфейс майнера с названием 𝗱𝗯𝗺𝗶𝗻𝗲𝗿.𝗴𝗼.
Реализация майнера данных /db/dbminer/dbminer.go
Код начинается с определения интерфейса DatabaseMiner. Для реализующих этот интерфейс типов будет требоваться один-единственный метод — GetSchema(). Поскольку каждая серверная база данных может иметь собственную логику для извлечения данной схемы, подразумевается, что каждая конкретная утилита сможет реализовать эту логику уникальным для используемых БД и драйвера способом.
Далее мы определяем тип 𝗦𝗰𝗵𝗲𝗺𝗮, состоящий из нескольких подтипов, которые определены здесь же. Тип 𝗦𝗰𝗵𝗲𝗺𝗮 задействуется для логического представления схемы БД, то есть баз данных, таблиц и столбцов. Вы могли обратить внимание на то, что функция 𝗚𝗲𝘁𝗦𝗰𝗵𝗲𝗺𝗮() в определении интерфейса ожидает, что реализации вернут *𝗦𝗰𝗵𝗲𝗺𝗮.
Далее идет определение одной функции 𝗦𝗲𝗮𝗿𝗰𝗵() с объемной логикой. Эта функция ожидает передачи экземпляра 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝗠𝗶𝗻𝗲𝗿 и сохраняет значение майнера в переменной 𝗺. Начинается она с вызова 𝗺.𝗚𝗲𝘁𝗦𝗰𝗵𝗲𝗺𝗮() для извлечения схемы. Затем функция перебирает всю эту схему в поиске списка соответствующих значений регулярному выражению (𝗿𝗲𝗴𝗲𝘅). При нахождении соответствий схема базы данных и совпадающие поля выводятся на экран.
В завершение мы определяем функцию 𝗴𝗲𝘁𝗥𝗲𝗴𝗲𝘅(). Она компилирует строки регулярных выражений с помощью пакета 𝗚𝗼 𝗿𝗲𝗴𝗲𝘅𝗽 и возвращает срез их значений. Список 𝗿𝗲𝗴𝗲𝘅 состоит из нечувствительных к регистру строк, которые сопоставляются со стандартными или интересующими нас именами полей, например 𝗰𝗰𝗻𝘂𝗺, 𝘀𝘀𝗻 и 𝗽𝗮𝘀𝘀𝘄𝗼𝗿𝗱.
Теперь, имея в распоряжении интерфейс добытчика, можно создать особые реализации утилит. Начнем с добытчика данных из 𝗠𝗼𝗻𝗴𝗼𝗗𝗕.
Реализация майнера данных из MongoDB:
Утилита для работы с MongoDB, показанная в коде ниже, реализует интерфейс из кода Реализации майнера данных, а также интегрирует код подключения к базе данных, который я написал в предыдущем посте (Подключение к базе данных MongoDB).
Создание майнера для MongoDB /db/mongo/main.go
Вначале мы импортируем пакет 𝗱𝗯𝗺𝗶𝗻𝗲𝗿, определяющий интерфейс 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝗠𝗶𝗻𝗲𝗿. Затем прописываем тип 𝗠𝗼𝗻𝗴𝗼𝗠𝗶𝗻𝗲𝗿, который будет использоваться для реализации этого интерфейса. Для удобства также реализуется функция 𝗡𝗲𝘄(), создающая новый экземпляр типа 𝗠𝗼𝗻𝗴𝗼𝗠𝗶𝗻𝗲𝗿, вызывая метод 𝗰𝗼𝗻𝗻𝗲𝗰𝘁(), который устанавливает подключение к базе данных. В совокупности эта логика производит начальную загрузку кода, выполняя подключение к базе данных аналогичным рассмотренному в листинге 𝟳.𝟲 способом.
Самая интересная часть кода содержится в реализации метода интерфейса 𝗚𝗲𝘁𝗦𝗰𝗵𝗲𝗺𝗮(). В отличие от примера кода 𝗠𝗼𝗻𝗴𝗼𝗗𝗕 из кода (Предыдущий Пост) Подключение к базе данных MongoDB и запрос данных , теперь мы проверяем метаданные 𝗠𝗼𝗻𝗴𝗼𝗗𝗕, сначала извлекая имена баз данных, а затем перебирая эти базы данных для получения имен коллекции каждой. В завершение эта функция получает сырой документ, который, в отличие от типичного запроса 𝗠𝗼𝗻𝗴𝗼𝗗𝗕, использует отложенный демаршалинг. Это позволяет явно демаршалировать запись в общую структуру и проверить имена полей. Если бы не возможность такого отложенного демаршалинга, пришлось бы определять явный тип, скорее всего, использующий атрибуты тега 𝗯𝘀𝗼𝗻, инструктируя программу о порядке демаршалинга данных в определенную нами структуру. В этом случае мы не знаем о типах полей или структуре (или нам все равно), нам просто нужны имена полей (не данные) — именно так можно демаршалировать структурированные данные, не зная структуры заранее.
Функция 𝗺𝗮𝗶𝗻() ожидает 𝗜𝗣-адрес экземпляра 𝗠𝗼𝗻𝗴𝗼𝗗𝗕 в качестве единственного аргумента, вызывает функцию 𝗡𝗲𝘄() для начальной загрузки всего, после чего вызывает 𝗱𝗯𝗺𝗶𝗻𝗲𝗿.𝗦𝗲𝗮𝗿𝗰𝗵(), передавая ему экземпляр 𝗠𝗼𝗻𝗴𝗼𝗠𝗶𝗻𝗲𝗿. Напомним, что 𝗱𝗯𝗺𝗶𝗻𝗲𝗿.𝗦𝗲𝗮𝗿𝗰𝗵() вызывает 𝗚𝗲𝘁𝗦𝗰𝗵𝗲𝗺𝗮() в полученном экземпляре 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝗠𝗶𝗻𝗲𝗿. Таким образом происходит вызов реализации функции 𝗠𝗼𝗻𝗴𝗼𝗠𝗶𝗻𝗲𝗿, что приводит к созданию 𝗱𝗯𝗺𝗶𝗻𝗲𝗿.𝗦𝗰𝗵𝗲𝗺𝗮, которая затем просматривается на соответствие списку 𝗿𝗲𝗴𝗲𝘅 из кода Реализация майнера данных.
Совпадение найдено! Выглядит она не очень аккуратно, но работу выполняет исправно — успешно обнаруживает коллекцию базы данных, содержащую поле ccnum.
Разобравшись с реализацией для MongoDB, в следующем разделе сделаем то же самое для серверной базы данных MySQL.
Реализация майнера для MySQL
Чтобы реализация 𝗠𝘆𝗦𝗤𝗟 заработала, мы будем проверять таблицу 𝗶𝗻𝗳𝗼𝗿𝗺𝗮𝘁𝗶𝗼𝗻_𝘀𝗰𝗵𝗲𝗺𝗮.𝗰𝗼𝗹𝘂𝗺𝗻𝘀. Она содержит метаданные обо всех базах данных и их структурах, включая таблицы и имена столбцов. Чтобы максимально упростить потребление данных, используйте приведенный далее 𝗦𝗤𝗟-запрос. Он удалит информацию о некоторых из встроенных БД 𝗠𝘆𝗦𝗤𝗟, не имеющих для нас значения:
В результате данного запроса вы получите примерно такие результаты:
Несмотря на то что использовать этот запрос для извлечения информации схемы довольно просто, сложность кода обусловливается стремлением логически дифференцировать и категоризировать каждую строку при определении функции GetSchema(). Например, последовательные строки вывода могут принадлежать или не принадлежать одной базе данных/таблице, поэтому ассоциирование строк с правильными экземплярами dbminer.Database и dbminer.Table становится несколько запутанным.
В коде снизу показана реализация:
Создание майнера для MySQL /db/mysql/main.go/
Бегло просмотрев код, вы можете заметить, что большая его часть очень похожа на пример для MongoDB из предыдущего раздела. В частности, идентична функция main().
Функции начальной загрузки также очень похожи — изменяется лишь логика на взаимодействие с MySQL, а не MongoDB. Обратите внимание на то, что эта логика подключается к базе данных information.schema, позволяя проинспектировать схему базы данных.
Основная сложность этого кода заключена в реализации 𝗚𝗲𝘁𝗦𝗰𝗵𝗲𝗺𝗮(). Несмотря на то что мы можем извлечь информацию схемы, используя один запрос к БД, после приходится перебирать результаты, просматривая каждую строку с целью определения присутствующих баз данных, их таблиц и строк этих таблиц. В отличие от реализации для 𝗠𝗼𝗻𝗴𝗼𝗗𝗕, у нас нет преимущества 𝗝𝗦𝗢𝗡/𝗕𝗦𝗢𝗡 с тегами атрибутов для маршалинга и демаршалинга данных в сложные структуры. Мы используем переменные для отслеживания информации в текущей строке и сравниваем ее с данными из предыдущей строки, чтобы понять, когда встретим новую базу данных или таблицу. Не самое изящное решение, но с задачей справляется.
Далее идет проверка соответствия имен баз данных текущей и предыдущей строк. Если они совпадают, создается новый экземпляр 𝗺𝗶𝗻𝗲𝗿.𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲. Если это не первая итерация цикла, таблица и база данных добавляются в экземпляр 𝗺𝗶𝗻𝗲𝗿.𝗦𝗰𝗵𝗲𝗺𝗮. С помощью аналогичной логики мы отслеживаем и добавляем экземпляры 𝗺𝗶𝗻𝗲𝗿.𝗧𝗮𝗯𝗹𝗲 в текущую 𝗺𝗶𝗻𝗲𝗿𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲. В завершение каждый столбец добавляется в 𝗺𝗶𝗻𝗲𝗿.𝗧𝗮𝗯𝗹𝗲.
Теперь запустите готовую программу в отношении экземпляра 𝗗𝗼𝗰𝗸𝗲𝗿 𝗠𝘆𝗦𝗤𝗟, чтобы убедиться в корректности ее работы:
Вывод должен получиться практически идентичным выводу для 𝗠𝗼𝗻𝗴𝗼𝗗𝗕. Причина в том, что 𝗱𝗯𝗺𝗶𝗻𝗲𝗿.𝗦𝗰𝗵𝗲𝗺𝗮 не производит никакого вывода — это делает функция 𝗱𝗯𝗺𝗶𝗻𝗲𝗿.𝗦𝗲𝗮𝗿𝗰𝗵(). В этом заключается сила интерфейсов. Можно использовать конкретные реализации ключевых возможностей, задействуя при этом одну стандартную функцию для обработки данных прогнозируемым эффективным способом. В следующем разделе мы отойдем от БД и рассмотрим кражу данных из файловых систем.
Получение данных из файловых систем:
В этом разделе мы создадим утилиту, рекурсивно обходящую предоставленный пользователем путь файловой системы, сопоставляя ее содержимое со списком имен файлов, интересующих нас в процессе постэксплуатации. Эти файлы могут содержать помимо прочего личную информацию, имена пользователей, пароли и логины системы.
Данная утилита просматривает именно имена файлов, а не их содержимое. При этом скрипт существенно упрощается тем, что пакет Go path/filepath предоставляет стандартную функциональность, с помощью которой можно эффективно обходить структуру каталогов. Сама утилита приведена в коде ниже.
Обход файловой системы /filesystem/main.go
В отличие от реализации майнеров данных из БД, настройка и логика инструмента для кражи информации из файловой системы могут показаться слишком простыми. Аналогично тому, как мы создавали реализации для баз данных, вы определяете список для определения интересующих имен файлов. Чтобы максимально сократить код, мы ограничили этот список всего несколькими элементами, но его вполне можно расширить, чтобы он стал более практичным.
Далее идет определение функции walkFn(), которая принимает путь файла и ряд дополнительных параметров. Эта функция перебирает список регулярных выражений в поиске совпадений, которые выводит в stdout. Функция walkFn() используется в функции main() и передается в качестве параметра в filepath.Walk(). Walk() ожидает два параметра — корневой путь и функцию (в данном случае walkFn()) — и рекурсивно обходит структуру каталогов, начиная с переданного корневого пути и попутно вызывая walkFn() для каждого встречающегося каталога и файла.
Написав утилиту, перейдите на рабочий стол и создайте следующую структуру каталогов:
Выполнение утилиты в отношении той же папки targetpath производит следующий вывод, подтверждая, что код работает исправно:
Вот и все, что касается данной темы. Вы можете улучшить этот образец кода, включив в него дополнительные регулярные выражения. Я также посоветую вам доработать его, применив проверку regex только для имен файлов, но не каталогов. Помимо этого, рекомендую найти и отметить конкретные файлы с недавним временем доступа или внесения изменений. Эти метаданные могут привести к более важному содержимому, включая файлы, используемые в значимых бизнес-процессах.
Будьте аккуратны. Интересный шпионаж через Telegram
Предыстория, один клиент в компании попросил проверить пк сотрудника после упадка продаж, он реально думал что сливали заказы копированием или как то доступом через crm в общем упадок был, а понять как и отследить было сложно. Так для тех кто в теме, скрипт я переделал под exe прятался он под pdf прайсом. а в диспетчере скрыт. И пост не для программистов.
Попросили меня проверить, результат порадовал, но причастность доказать нереально кто из менеджеров запустил данный софт.
Схема проста, покупается зарубежный виртуальный номер на который регистрируется аккаунт телеграмм и через которого создаётся бот.
Рекомендую всем проверять отправки на порты телеги возможно вы тот самый за кем шпионит жена, муж, начальник или конкурент.
Находку я немного переписал, потому что она была зашита под файлом но выполняла почто такой же функционал как на видео.
Кто такие “White hats - Белы шляпы” ?
“White hats - Белы шляпы” - это термин, используемый для обозначения этичных хакеров, которые используют свои навыки для улучшения кибербезопасности.
Они работают на благо общества, помогая организациям обнаруживать и устранять уязвимости в их системах безопасности.
Белые шляпы проводят тестирование на проникновение и другие проверки безопасности, чтобы обнаружить потенциальные угрозы.
В отличие от “Black hats”, белые шляпы действуют законно и с разрешения владельцев систем.
Работа белых шляп важна для поддержания безопасности в интернете и защиты данных пользователей от злоумышленников.
Всё тестировалось в среде на виртуальных машинах и ведео не в коем образом не пропагандирует взлом или как то его рекламирует. Видео несёт информационный характер в сфере Pentest.
Tg@Windall
Если вы профи в своем деле — покажите!
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.
В Twitter вирусится пост о китайском супер-аппе, который использует социальный рейтинг
Сервис дает проверить ближайшие районы на наличие людей с низким кредитным/социальным рейтингом.
Зачем?
— Чтобы встреча с ними вдруг не создала ситуацию, которая повлияет на ваш личный рейтинг.
Каждый день в своем блоге Telegram я публикую интересные новости о нейромаркетинге, разработках, технологиях и полезных сервисах! 🫶🏽