Pc infectado con un malware de mineria de Moneros

(1/3) > >>

M3LiNdR1:
Hola,

El router de mi red esta bloqueando una connexion a la ip: X.X.X.X por la razon siguiente: MISC Cryptocurrency monero mining activity. Si hago una peticion web a esa ip, efectivamente devuelve un codigo indicando que es una pool de monero.

Tengo identificado el pc de mi red que realiza esta actividad sospechosa. Es un windows con un antivirus McAfee instalado, pero parece que McAfee no detecta el malware de mineria. Como podria identificar el proceso que realiza estas connexiones? Conoceis alguna herramienta de analisis util para este tipo de malware?

Muchas gracias

EDITO: He quitado la IP, porque no recuerdo si hay alguna politica en este foro

Parado_larga_duracion_ESP:
En Linux sería algo así, por ejemplo:

Código
#!/bin/bash
 
echo "Puertos TCP abiertos:"
netstat -tuln | grep "tcp" | while read line; do
   port=$(echo $line | awk '{print $4}' | awk -F ':' '{print $NF}')
   pid=$(echo $line | awk '{print $7}' | awk -F '/' '{print $1}')
   process=$(ps -p $pid -o comm=)
   exe=$(readlink /proc/$pid/exe)
   cwd=$(readlink /proc/$pid/cwd)
   cmdline=$(cat /proc/$pid/cmdline)
   status=$(cat /proc/$pid/status | grep "State:" | awk '{print $2}')
   cpu_usage=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
   memory_usage=$(pmap -x $pid | tail -n 1 | awk '{print $3}')
   user=$(awk -F: '$3 == '$(stat -c %u /proc/$pid/exe)' { print $1 }' /etc/passwd)
   echo "Puerto: $port - Proceso: $process (PID: $pid) - Archivo: $exe - Directorio de trabajo: $cwd - Comando: $cmdline - Estado: $status - Uso de CPU: $cpu_usage% - Uso de memoria: $memory_usage - Usuario: $user"
   echo "Archivos abiertos por el proceso:"
   ls -l /proc/$pid/fd
   echo "Árbol de procesos:"
   pstree -s $pid
   echo "----------------------------------------------------"
done
 
echo "Puertos UDP abiertos:"
netstat -uln | grep "udp" | while read line; do
   port=$(echo $line | awk '{print $4}' | awk -F ':' '{print $NF}')
   pid=$(echo $line | awk '{print $7}' | awk -F '/' '{print $1}')
   process=$(ps -p $pid -o comm=)
   exe=$(readlink /proc/$pid/exe)
   cwd=$(readlink /proc/$pid/cwd)
   cmdline=$(cat /proc/$pid/cmdline)
   status=$(cat /proc/$pid/status | grep "State:" | awk '{print $2}')
   cpu_usage=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
   memory_usage=$(pmap -x $pid | tail -n 1 | awk '{print $3}')
   user=$(awk -F: '$3 == '$(stat -c %u /proc/$pid/exe)' { print $1 }' /etc/passwd)
   echo "Puerto: $port - Proceso: $process (PID: $pid) - Archivo: $exe - Directorio de trabajo: $cwd - Comando: $cmdline - Estado: $status - Uso de CPU: $cpu_usage% - Uso de memoria: $memory_usage - Usuario: $user"
   echo "Archivos abiertos por el proceso:"
   ls -l /proc/$pid/fd
   echo "Árbol de procesos:"
   pstree -s $pid
   echo "----------------------------------------------------"
done
 

En Windows parece que algo así. En Powershell, que no encuentro el Código Geshi ese, he puesto el .NET como primo cercano:

Código
# Obtener información sobre los puertos TCP abiertos
$tcpPorts = Get-NetTCPConnection | Where-Object { $_.State -eq 'Listen' }
foreach ($port in $tcpPorts) {
   $pid = $port.OwningProcess
   $process = Get-Process -Id $pid
   $exePath = $process.Path
   $cwd = Split-Path -Path $exePath -Parent
   $cmdline = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty CommandLine
   $status = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty Status
   $cpuUsage = $process.CPU
   $memoryUsage = $process.WorkingSet
   $user = $process.GetOwner().User
   Write-Host "Puerto TCP: $($port.LocalPort) - Proceso: $($process.ProcessName) (PID: $pid) - Archivo: $exePath - Directorio de trabajo: $cwd - Comando: $cmdline - Estado: $status - Uso de CPU: $cpuUsage% - Uso de memoria: $memoryUsage - Usuario: $user"
   Write-Host "Archivos abiertos por el proceso:"
   Get-Process -Id $pid | Get-ProcessHandle
   Write-Host "Árbol de procesos:"
   Get-WmiObject Win32_Process -Filter "ParentProcessId=$pid" | Format-Table ProcessId, Name, CommandLine -AutoSize
   Write-Host "----------------------------------------------------"
}
 
# Obtener información sobre los puertos UDP abiertos
$udpPorts = Get-NetUDPEndpoint | Where-Object { $_.State -eq 'Listen' }
foreach ($port in $udpPorts) {
   $pid = $port.OwningProcess
   $process = Get-Process -Id $pid
   $exePath = $process.Path
   $cwd = Split-Path -Path $exePath -Parent
   $cmdline = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty CommandLine
   $status = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty Status
   $cpuUsage = $process.CPU
   $memoryUsage = $process.WorkingSet
   $user = $process.GetOwner().User
   Write-Host "Puerto UDP: $($port.LocalPort) - Proceso: $($process.ProcessName) (PID: $pid) - Archivo: $exePath - Directorio de trabajo: $cwd - Comando: $cmdline - Estado: $status - Uso de CPU: $cpuUsage% - Uso de memoria: $memoryUsage - Usuario: $user"
   Write-Host "Archivos abiertos por el proceso:"
   Get-Process -Id $pid | Get-ProcessHandle
   Write-Host "Árbol de procesos:"
   Get-WmiObject Win32_Process -Filter "ParentProcessId=$pid" | Format-Table ProcessId, Name, CommandLine -AutoSize
   Write-Host "----------------------------------------------------"
}
 
 




takeover:
yo no se mucho de este tema pero te puedo decir que segun lo que puedo apreciar en tu router esta unido a una red zombie de mineo de criptomoneda por eso lo primero que creo que tienes que hacer es revisar que tanto en tu pc como en tu router no haya un puerto abierto por el cual se este comunicando tu pc con el server zombie. Revisa la configuracion de tus firewall no sea que sea la optima para tu red. Ponle una contraseña robusta  de 12 digitos o mas ya que se le pones una muy simple atraves de un ataque de fuerza bruta con kali linux pueden dar con tu contraseña y ademas que atraves de un ataque de phising te maten una aplicacion dañina dentro de una foto o un video con lo cual pueden comprometer la red.
Y por ultimo te voy a decir porque estas 2 aplicaciones me han dado muy buenos resultados:

avast antivirus con firewall muy bueno y con una alta tasa de deteccion
nod32 eset smart sequrity que tiene un buen firewall muy robusto

hermano solo te doy mi opinion y ojala y resuelvas.

BloodSharp:
Cita de: M3LiNdR1 en 25 Febrero 2024, 11:16 am

Como podria identificar el proceso que realiza estas connexiones?

Buen día, como admin ejecutá lo siguiente:

Código
netstat -anob


B#

M3LiNdR1:
Muchas gracias por las respuestas, @BloodSharp, he ejecutado el comando que me has dicho y he cazado la conexión:



Es la que apunta al puerto destino 5555. Por lo que acabo de descubrir Dwm.exe es un proceso genuino de windows que significa Desktop Windows Manager. Parece que el malware se esta ejecutando inyectado dentro de este proceso. Como podria seguir tirando del hilo ahora? Como se ha emmascardo el malware dentro del proceso dwm.exe, a partir de un archivo ejectuable? Como podria encontrarlo?

Por otro lado, en la imagen también se aprecia un servicio llamado CryptSvc con conexiones establecidas a una ip por el puerto ochenta que me hacen dudar muchísimo de su legitimidad.

Tampoco estoy seguro de si este malware solo es para la minación de monero o realiza alguna otra acción fraudulenta.



Navegación

[0] Índice de Mensajes

[#] Página Siguiente