Foro de elhacker.net

Seguridad Informática => Seguridad => Mensaje iniciado por: M3LiNdR1 en 25 Febrero 2024, 11:16 am



Título: Pc infectado con un malware de mineria de Moneros
Publicado por: M3LiNdR1 en 25 Febrero 2024, 11:16 am
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


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: Parado_larga_duracion_ESP en 25 Febrero 2024, 13:16 pm
En Linux sería algo así, por ejemplo:

Código
  1. #!/bin/bash
  2.  
  3. echo "Puertos TCP abiertos:"
  4. netstat -tuln | grep "tcp" | while read line; do
  5.    port=$(echo $line | awk '{print $4}' | awk -F ':' '{print $NF}')
  6.    pid=$(echo $line | awk '{print $7}' | awk -F '/' '{print $1}')
  7.    process=$(ps -p $pid -o comm=)
  8.    exe=$(readlink /proc/$pid/exe)
  9.    cwd=$(readlink /proc/$pid/cwd)
  10.    cmdline=$(cat /proc/$pid/cmdline)
  11.    status=$(cat /proc/$pid/status | grep "State:" | awk '{print $2}')
  12.    cpu_usage=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
  13.    memory_usage=$(pmap -x $pid | tail -n 1 | awk '{print $3}')
  14.    user=$(awk -F: '$3 == '$(stat -c %u /proc/$pid/exe)' { print $1 }' /etc/passwd)
  15.    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"
  16.    echo "Archivos abiertos por el proceso:"
  17.    ls -l /proc/$pid/fd
  18.    echo "Árbol de procesos:"
  19.    pstree -s $pid
  20.    echo "----------------------------------------------------"
  21. done
  22.  
  23. echo "Puertos UDP abiertos:"
  24. netstat -uln | grep "udp" | while read line; do
  25.    port=$(echo $line | awk '{print $4}' | awk -F ':' '{print $NF}')
  26.    pid=$(echo $line | awk '{print $7}' | awk -F '/' '{print $1}')
  27.    process=$(ps -p $pid -o comm=)
  28.    exe=$(readlink /proc/$pid/exe)
  29.    cwd=$(readlink /proc/$pid/cwd)
  30.    cmdline=$(cat /proc/$pid/cmdline)
  31.    status=$(cat /proc/$pid/status | grep "State:" | awk '{print $2}')
  32.    cpu_usage=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
  33.    memory_usage=$(pmap -x $pid | tail -n 1 | awk '{print $3}')
  34.    user=$(awk -F: '$3 == '$(stat -c %u /proc/$pid/exe)' { print $1 }' /etc/passwd)
  35.    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"
  36.    echo "Archivos abiertos por el proceso:"
  37.    ls -l /proc/$pid/fd
  38.    echo "Árbol de procesos:"
  39.    pstree -s $pid
  40.    echo "----------------------------------------------------"
  41. done
  42.  

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
  1. # Obtener información sobre los puertos TCP abiertos
  2. $tcpPorts = Get-NetTCPConnection | Where-Object { $_.State -eq 'Listen' }
  3. foreach ($port in $tcpPorts) {
  4.    $pid = $port.OwningProcess
  5.    $process = Get-Process -Id $pid
  6.    $exePath = $process.Path
  7.    $cwd = Split-Path -Path $exePath -Parent
  8.    $cmdline = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty CommandLine
  9.    $status = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty Status
  10.    $cpuUsage = $process.CPU
  11.    $memoryUsage = $process.WorkingSet
  12.    $user = $process.GetOwner().User
  13.    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"
  14.    Write-Host "Archivos abiertos por el proceso:"
  15.    Get-Process -Id $pid | Get-ProcessHandle
  16.    Write-Host "Árbol de procesos:"
  17.    Get-WmiObject Win32_Process -Filter "ParentProcessId=$pid" | Format-Table ProcessId, Name, CommandLine -AutoSize
  18.    Write-Host "----------------------------------------------------"
  19. }
  20.  
  21. # Obtener información sobre los puertos UDP abiertos
  22. $udpPorts = Get-NetUDPEndpoint | Where-Object { $_.State -eq 'Listen' }
  23. foreach ($port in $udpPorts) {
  24.    $pid = $port.OwningProcess
  25.    $process = Get-Process -Id $pid
  26.    $exePath = $process.Path
  27.    $cwd = Split-Path -Path $exePath -Parent
  28.    $cmdline = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty CommandLine
  29.    $status = Get-WmiObject Win32_Process -Filter "ProcessId = $pid" | Select-Object -ExpandProperty Status
  30.    $cpuUsage = $process.CPU
  31.    $memoryUsage = $process.WorkingSet
  32.    $user = $process.GetOwner().User
  33.    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"
  34.    Write-Host "Archivos abiertos por el proceso:"
  35.    Get-Process -Id $pid | Get-ProcessHandle
  36.    Write-Host "Árbol de procesos:"
  37.    Get-WmiObject Win32_Process -Filter "ParentProcessId=$pid" | Format-Table ProcessId, Name, CommandLine -AutoSize
  38.    Write-Host "----------------------------------------------------"
  39. }
  40.  
  41.  






Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: takeover en 25 Febrero 2024, 15:33 pm
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.


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: BloodSharp en 25 Febrero 2024, 16:22 pm
Como podria identificar el proceso que realiza estas connexiones?

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

Código
  1. netstat -anob


B#


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: M3LiNdR1 en 25 Febrero 2024, 21:24 pm
Muchas gracias por las respuestas, @BloodSharp, he ejecutado el comando que me has dicho y he cazado la conexión:

(https://i.ibb.co/n6SjqQK/malware.png)

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.





Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: el-brujo en 26 Febrero 2024, 11:18 am
Si quieres analizarlo adelante, pero si realmente lo que quieres hacer es limpiarlo de verdad, reinstala Windows o formatea y empieza de 0..


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: M3LiNdR1 en 26 Febrero 2024, 21:08 pm
Si quieres analizarlo adelante, pero si realmente lo que quieres hacer es limpiarlo de verdad, reinstala Windows o formatea y empieza de 0..

Pues creo que lo mas sensato será hacer borrón y cuenta nueva. Pero quizas me haga una imagen del SO antes de formatear para correrla en una màquina virtual, sabeis de algun programa FOSS o gratuito para hacer eso?


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: Mr.Byte en 28 Febrero 2024, 10:34 am
Puedes probar con https://es.malwarebytes.com/adwcleaner/ (https://es.malwarebytes.com/adwcleaner/). No sustituye tu antivirus, ni se instala. Solo es un ejecutable


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: M3LiNdR1 en 3 Marzo 2024, 12:51 pm
Puedes probar con https://es.malwarebytes.com/adwcleaner/ (https://es.malwarebytes.com/adwcleaner/). No sustituye tu antivirus, ni se instala. Solo es un ejecutable

Lo he probado y tampoco me ha detectado software malicioso. Voy a tener que formatear el pc, pero ya me he hecho una copia de seguridad del disco duro con el programa disk2vhd.

https://learn.microsoft.com/es-es/sysinternals/downloads/disk2vhd

Voy a probar a analizar el malware y haber que sale.

Muchas gracias a todos por vuestras respuestas! :D


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: D3s0rd3n en 7 Marzo 2024, 19:34 pm
Muchas gracias por las respuestas, @BloodSharp, he ejecutado el comando que me has dicho y he cazado la conexión:

(https://i.ibb.co/n6SjqQK/malware.png)

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.





Lo mas seguro es que es un secuestro de proceso, que versión de windows tienes?


Título: Re: Pc infectado con un malware de mineria de Moneros
Publicado por: M3LiNdR1 en 9 Marzo 2024, 10:24 am
Lo mas seguro es que es un secuestro de proceso, que versión de windows tienes?

Podria ser un DllHijacking o también podria ser una Dll injection. El pc tiene instalado Windows 11 y el otro día genere un reporte con procmon (https://learn.microsoft.com/en-us/sysinternals/downloads/procmon) pero no soy capaz de encontrar qual es la dll maligna