Vamos a utilizar la plataforma de TryHackMe para aprender a implementar técnicas de investigación digital forense en una maquina virtual Windows que ha sido comprometida. Aquí esta el enlace que estaremos utilizando en la plataforma de TryHackMe: Windows Incident Surface: Task 10. Antes de adentrarnos en el tema de detección de anomalías en procesos debemos entender que encontrar esta anomalías es como navegar en un laberinto lleno de minas ocultas. La presión aumenta cuando no sabemos por donde comenzar o cuanto tiempo dedicar en cada area. Por esta razon resulta muy fácil perdernos en los detalles.
La forma de poder abordar estos incidentes es buscando lo que en ingles se conoce como “low-hanging fruits” o las frutas que se encuentran colgando en los mas bajo del arbol. Abordando la investigación de esta forma nos ayuda a revelar e identificar las actividades maliciosas utilizadas por el atacante.
Fase Dinámica: Explorando Procesos
Los procesos son una parte crucial para una investigación forense y pueden contener signos obvios de anomalías. Es importante implementar chequeos esenciales de los procesos para tener una idea de las actividades del sistema. Inusuales nombres o rutas de archivos, comandos, relaciones entre procesos padres e hijos deben ser considerados. Para obtener una lista con detalles de los procesos podemos utilizar el siguiente comando en PowerShell:
Get-WmiObject -Class Win32_Process | ForEach-Object {$owner = $_.GetOwner(); [PSCustomObject]@{Name=$_.Name; PID=$_.ProcessId; P_PID=$_.ParentProcessId; User="$($owner.User)"; CommandLine=if ($_.CommandLine.Length -le 60) { $_.CommandLine } else { $_.CommandLine.Substring(0, 60) + "..." }; Path=$_.Path}} | ft -AutoSize | tee process-summary.txt
Este comando obtiene los procesos activos de Windows. El commando ejecuta un loop por cada proceso y muestra la información de cada procesos activos. Al final la informacion es guardada en un archivo.
Miremos a los resultados analizamos si existe algún indicador sospecho. Durante nuestro análisis vemos que la cuenta ‘Guest’ se encuentra activa pero no se encuentra corriendo ningún proceso sospechoso. Siguiendo con nuestro análisis pudimos encontrar dos archivos ejecutables sospechosos que se encuentra generando trafico en la red.
Tomamos nota de estos archivos y utilizamos el siguiente comando para obtener el hash del archivo.
Get-FileHash C:\Users\Administrator\AppData\SpcTmp]\INITIAL_LANTERN.exe | tee process-file-1.txt
Directorios
Si verificamos los directorios de forma rápida quizás podríamos encontrar artefactos dejados por el atacante. Estos podrían ser archivos con datos o scripts utilizados para garantizar persistencia o movimientos laterales. Investigar directorios puede ser abrumador en ocasiones. Aun así debemos chequear las rutas en donde los archivos sospechos fueron descubiertos. Utilizaremos otro comando de PowerShell para buscar por estos artefactos.
Get-ChildItem -Path "C:\Users" -Force | Where-Object { $_.PSIsContainer } | ForEach-Object { Get-ChildItem -Path "$($_.FullName)\AppData\Local\Temp" -Recurse -Force -ErrorAction SilentlyContinue | Select-Object @{Name='User';Expression={$_.FullName.Split('\')[2]}}, FullName, Name, Extension } | ft -AutoSize | tee temp-folders.txt
Este commando trabaja de forma muy similar al primer comando que ejecutamos. Una vez ejecutado veremos informacion en la pantalla acerca de los archivos encontrados. Inmediatamente podemos ver un archivo de nombre jmp.exe que se encuentra en mas de un directorio.
Obtenemos el hash de la misma forma en que lo hicimos con e archivo anterior:
Get-FileHash C:\Users\Default\AppData\Local\Temp\jmp.exe
Utilizamos el siguiente comando para obtener mas informacion del archivo:
Get-Item -Path "C:\Users\Default\AppData\Local\Temp\jmp.exe" | fl Name, FullName, Length, CreationTime, LastAccessTime, LastWriteTime, VersionInfo | tee tmp-file-1-details.txt
Esta informacion nos arroja una alerta roja ya que este archivo es el mismo que el aurora-agent.exe que encontramos en los procesos activos. Rápidamente vamos a observar el directorio \SpcTmp que contiene los archivos sospechosos encontrados anteriormente. Ejecutamos el siguiente comando:
Get-ChildItem -Path "C:\Users\Administrator\AppData\SpcTmp\" -Recurse -Force | ft FullName, Name, Extension
Los resultados muestran dos archivos dentro de este directorio, uno es el proceso sospechoso y el otro es un script de PowerShell usado para crear un conexión proxy. Calculamos el valor hash de cada archivo y tomamos nota de nuestros descubrimientos.
Volúmenes de los Discos
Por ultimo, podemos verificar por volúmenes de disco ocultos o sospechosos. Para verificar utilizamos el siguiente comando:
Get-CimInstance -ClassName Win32_Volume | ft -AutoSize DriveLetter, Label, FileSystem, Capacity, FreeSpace | tee disc-volumes.txt
Cuando ejecutamos este comando en la maquina virtual nos encontramos con un volumen de disco que no posee una letra asignada. Esto es importando y requiere una investigación mas profunda que puede ser parte de un nuevo articulo.
En Conclusion
En este articulo nos enfocamos en identificar procesos sospechosos y analizamos las rutas afiliadas de estos archivos. Implementamos procedimientos y utilizamos commandos de PowerShell para colectar informacion. Si deseas mas informacion y quieres aprender mas puedes visitar mi canal en YouTube y ver un video completo sobre este articulo.
Comentarios
Publicar un comentario