Para Windows:
Parte del análisis estático, es extraer cadenas desde un binario para conocer a grandes rasgos el comportamiento y las características del mismo. Por lo regular, cuando ya se tiene experiencia analizando malware, es muy fácil identificar la correlación entre las llamadas a la API de Windows y el posible comportamiento. Para realizar este procedimiento de forma mucho más satisfactoria, hace falta que el binario no se encuentre ofuscado/empaquetado.
Por ejemplo, analizando una muestra de malware con la herramienta online https://suip.biz/?act=rabin2 estraemos las siguientes cadenas:
DllGetClassObject
DllRegisterServer
PluginInit
RunObject
SHGetFolderPathA
SHELL32.dll
wsprintfA
wsprintfW
USER32.dll
WinHttpSetStatusCallback
WinHttpOpen
WinHttpCloseHandle
WinHttpConnect
WinHttpReadData
WinHttpQueryDataAvailable
WinHttpSetOption
WinHttpOpenRequest
WinHttpSendRequest
WinHttpReceiveResponse
WinHttpQueryHeaders
WinHttpQueryOption
WINHTTP.dll
Sleep
ExitProcess
CreateThread
HeapAlloc
HeapFree
GetProcessHeap
CreateFileA
WriteFile
CloseHandle
HeapReAlloc
GetLastError
SwitchToThread
GetTickCount64
GetComputerNameExW
GetProcAddress
LoadLibraryA
CreateDirectoryA
GetTempPathA
lstrcpyA
lstrcatA
VirtualAlloc
VirtualProtect
GetComputerNameExA
KERNEL32.dll
LookupAccountNameW
GetUserNameA
ADVAPI32.dll
memset
msvcrt.dll
De todas ellas, las más interesantes serían la familia de WinHTTP, Sleep, GetProcessHeap, CreateFileA, CreateDirectoryA.
Se trata de funciones pertenecientes a la API de Windows que proveen funcionalidad estándar para agilizar el proceso de codificación de los programadores en general.
Entonces, si el programa bajo análisis no requiere capacidades para crear archivos, directorios o establecer consultas a una URL en específico, probablemente se trata de un malware.
Asimismo, existen otras rutas en el registro de Windows donde se crean entradas con el propósito de garantizar la persistencia de la amenaza o ejecutar el archivo maliciosos cada vez que se enciende el equipo. Algunas de ellas son:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
Como comenté antes, las llamadas a un subconjunto de funciones de la API de Windows son muy repetitivas en malware, por lo que a veces con un simple análisis estático, puede determinarse más o menos el comportamiento del virus.
Finalmente, si las cadenas que se han extraído son numerosas, pordemos volcarlas en un archivo de texto y utilizar Python u otro lenguaje, combinado con expresiones regulares para cazar formatos de cadena específicos, como por ejemplo IPs del tipo: x.x.x.x o rutas locales como x/x/x.ext.
Saludos cordiales.
P.D. Lo siento, no sé cómo pegar imágenes en este coso. 😛
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.