Revisando los logs de mi server: xmlrpc.php

5
(1)

Ya hace rato no publicaba sobre los logs de mi server. No es que falte material, pero lo que sucede parece rutinario ahora.

El Evento y los logs

Esta vez es curioso. Hoy al entrar en mi blog, no noté nada raro. De hecho, parecía estar mas fluido que de costumbre. Pero entré a mi server por SSH y… pos nada. Por pura coincidencia me llamó la atención un viejo Script que no recuerdo de donde lo saqué y que permitía ver la lista de los procesos que mas ocupan y lo ejecuté. PHP suele tener un alto consumo de RAM, pero no de CPU y hoy se marcaba un 23.9% en 3 procesos distintos.

Consumo de Recursos por PHP y Mariadb
Consumo de Recursos por PHP y Mariadb

Revise el monitor del sistema de mi server y efectivamente había un alto consumo de CPU, así que fui directo a los logs.

Alto consumo de CPU en el servidor
Alto consumo de CPU en el servidor

Efectivamente había alguien haciendo travesuras con mi servidor.

IP 34.83.37.113 atacando
IP 34.83.37.113 atacando

Decidí disparar primero y preguntar después así que le mande un bloqueo por IP

fail2ban-client set wordpress banip 34.83.37.113

Y visitar la pagina ipabusedb para consultar que novedades tenia.

IPAbusedb 34.83.37.113
IPAbusedb 34.83.37.113

Por cierto, comparto el código. Admito que debí conservar su origen, pero si lo encuentro de nuevo, lo citaré.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
export LC_ALL=C bash

tHost="$(hostname)"
tTime="$(date +"%d/%m/%Y a las %H:%M:%S")"
tMemTotal="$(free -mh | grep "Mem:" | awk '{print $2}')"
tMemUsed="$(free -mh | grep "Mem:" | awk '{print $3}')"
tMemFree="$(free -mh | grep "Mem:" | awk '{print $4}')"
tLoadAverage="$(uptime | rev | cut -d ":" -f 1 | rev | cut -d " " -f 2-10)"
columna_CPU=57
columnas_total=$(tput cols)

# Si la terminal es grande lo ponemos en dos columnas, si no en una sola
if [ $columnas_total -gt 99 ]
    then
        fila_CPU=5
    else
        fila_CPU=19
        columna_CPU=0
fi

tput clear # Borrado pantalla

# Mostrar info 
printf "\n$tHost - $tTime"
printf "\nRAM: $tMemUsed usados de $tMemTotal totales ($tMemFree M libres)\nCarga media de la CPU: $tLoadAverage\n"

# Mostrar procesos que consumen RAM
echo -e "\n[+] Listado de Procesos top10 consumo de RAM:\n"
# Encabezado
ps -A --sort=-rss --format pid,user,pmem,rss,comm | head -n 1
# Procesos
tput setaf 1 # Rojo
ps -A --sort=-rss --format pid,user,pmem,rss,comm | sed -n '2,6p'
tput setaf 3 # Amarillo
ps -A --sort=-rss --format pid,user,pmem,rss,comm | sed -n '7,9p'
tput setaf 2 # Verde
ps -A --sort=-rss --format pid,user,pmem,rss,comm | sed -n '10,11p'
tput sgr0 # Volver al color normal

# Columna CPU
tput cup $fila_CPU $columna_CPU; echo -e "[+] Listado de Procesos top10 consumo CPU:\n"
# Encabezado
tput cup $(($fila_CPU + 2)) $columna_CPU; ps -A --sort=-pcpu --format pid,user,pcpu,rss,comm | head -n 1
# Procesos
tput setaf 1 # Rojo
for (( i=2; i<=6; i++ ))
do
    tput cup $(($i + $fila_CPU + 1)) $columna_CPU; ps -A --sort=-pcpu --format pid,user,pcpu,rss,comm | sed -n "$i,$i p"
done
tput setaf 3 # Amarillo
for (( i=7; i<=9; i++ ))
do
    tput cup $(($i + $fila_CPU + 1)) $columna_CPU; ps -A --sort=-pcpu --format pid,user,pcpu,rss,comm | sed -n "$i,$i p"
done
tput setaf 2 # Verde
for (( i=10; i<=11; i++ ))
do
    tput cup $(($i + $fila_CPU + 1)) $columna_CPU; ps -A --sort=-pcpu --format pid,user,pcpu,rss,comm | sed -n "$i,$i p"
done
tput sgr0

Sobre lo sucedido

Claramente es un ataque de fuerza bruta contra xmlrpc.php por parte de esa IP que molestaba. No estoy muy seguro de que quería y al ver que abuseipdb decía que pertenecía a Google, lo obvio era concluir que era culpa de Google, pero le di la oportunidad de defenderse. Esto es lo que responde:

La IP

113.37.83.34.bc.googleusercontent.com no significa que Google te esté atacando directamente, sino que alguien está utilizando los servicios de alojamiento en la nube de Google, como Google Cloud o Compute Engine, para atacar tu sitio. Es una práctica habitual que los atacantes utilicen servidores virtuales privados (VPS) o instancias de computación de grandes proveedores para enmascarar su origen.

Aquí tienes un desglose de los puntos clave para entender por qué ves esta actividad:

1. googleusercontent.com y los servicios de Google Cloud

  • El dominio googleusercontent.com es utilizado por los clientes de Google para alojar contenido, no por los propios servicios internos de Google.
  • La subsección bc.googleusercontent.com en el nombre de host es una convención para las instancias de Compute Engine de Google que tienen una dirección IP pública.
  • Esto significa que la IP 113.37.83.34 pertenece a un servidor virtual alquilado por un cliente de Google, no a la infraestructura principal de Google.
2. ¿Por qué se utiliza Google Cloud para atacar?
  • Anonimato: Alquilar un servidor en un servicio de nube como Google Cloud permite a los atacantes ocultar su propia dirección IP real detrás de la IP del proveedor de servicios.
  • Facilidad de uso: Las plataformas de nube ofrecen un acceso fácil y rápido para lanzar ataques, como los escaneos XML-RPC que has experimentado.
  • Infraestructura robusta: Los atacantes aprovechan la sólida infraestructura de red de los proveedores de nube para asegurar que sus ataques sean efectivos.

3. ¿Por qué AbuseIPDB la asocia con Google?

  • AbuseIPDB identifica a Google como el propietario del rango de IP, lo cual es correcto desde una perspectiva de registro. Google es el dueño de la infraestructura, pero no el responsable del uso malicioso.
  • Las denuncias leves pueden deberse a que el atacante solo ha usado la IP por un corto período antes de ser detectado, o porque AbuseIPDB solo tiene reportes limitados de la actividad.

4. Qué puedes hacer:

  • Bloquea la IP: Bloquea la dirección IP 113.37.83.34 en tu cortafuegos o en la configuración de seguridad de tu sitio web para detener el escaneo inmediato.
  • Denuncia el abuso: Presenta una denuncia por abuso a Google Cloud Platform (GCP) para que tomen medidas contra el cliente que está utilizando su infraestructura para atacar tu sitio. Ellos tienen políticas estrictas contra el uso indebido.
  • Protege la API XML-RPC: La API XML-RPC es conocida por ser un vector de ataque frecuente. Si no la utilizas, desactívala completamente. Si la necesitas, usa un Plugin que la proteja, la limite o la restrinja para evitar futuros ataques.

Conclusiones

Se mandó casi 2 horas de ataque hasta que me di cuenta y aun así algo sigue ocupando el CPU de mi servidor. Creo que no uso XMLRPC en nada, así que voy a deshabilitarlo. Por otro lado, me parece súper curioso como es que tengo al menos 1 llamada por segundo a mi servidor y aun así, el trafico orgánico es bajísimo. Le tengo dudas hasta a lo que mis estadísticas dicen que es trafico orgánico.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Únete a mi red poniendo la URL de tu blog. Aprender más

 
Interlan
Interlan
@interlan.ec@interlan.ec

Este es mi sitio personal y profesional, donde publico mis actividades, experimentos y servicios que he ido desarrollando durante mi crecimiento profesional.

101 publicaciones
0 seguidores

Descubre más desde Interlan

Suscríbete y recibe las últimas entradas en tu correo electrónico.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Interlan