Ataque continúo a un server

Todos los temas relacionados con la seguridad en Linux

Moderadores: doc, ps-ax

ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Ataque continúo a un server

Mensaje por ami0 » Mié Oct 19, 2011 11:19 pm

Hola:

Espero estar posteando en la zona correcta.

Soy administrador de un foro SMF (v 1.1.15)con no muchos conocimientos de linux, es largo de explicar cómo llegué aquí. Tenemos instalado Apache y MySQL. El caso es que desde hace semanas tenemos a un usuario que se entretiene tumbándonos el servidor cuando le apetece y estamos intentando saber qué hace para dejarlo frito.

Hace un par de horas ha vuelto a atacar, en principio creía que lo que hacía era hacer un flooding de conexiones para dejar tostado el servidor, pero me equivocaba, estas son el número de conexiones con el server tostado:

root:/etc# netstat -punta | wc -l
397
root


Haciendo un top veo que no tiene la CPU alta, ni está tirando de swap, ni procesos zombie...nada raro vamos. He visto que tenía 147 procesos de apache, no sé si es normal:

root:/var/log# ps -ef | grep apache | wc -l
147
root:


También he visto que hay muchos procesos abiertos de www-data, 131.

He lanzado un vmstat y ha salido esto:

root:/var/log# vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 80 0 521080 0 0 0 0 3 18 0 3 55 6 0 39
0 76 0 538068 0 0 0 0 10 0 0 2357 12 8 0 80
0 78 0 555760 0 0 0 0 0 0 0 1602 8 4 0 88
0 81 0 573800 0 0 0 0 14 0 0 843 18 12 0 69
8 73 0 583532 0 0 0 0 8 0 0 1719 16 12 0 72
0 81 0 582928 0 0 0 0 67 0 0 328 6 5 0 90
0 79 0 580512 0 0 0 0 2053 0 0 674 10 5 0 84
0 78 0 575196 0 0 0 0 5215 0 0 1257 9 5 0 86
0 75 0 565748 0 0 0 0 4150 0 0 1562 11 8 0 82
0 74 0 568000 0 0 0 0 2985 0 0 1624 12 9 0 79
0 72 0 577404 0 0 0 0 9376 0 0 1641 8 7 0 85
0 70 0 597376 0 0 0 0 2045 0 0 998 8 5 0 87
1 79 0 596256 0 0 0 0 42 0 0 340 24 4 0 72
^C
root:


No sé si esos valores son correctos o no. He mirado en el dmesg, messages, syslog, mysql, mysqlerr, en el log del apache...pero no he visto nada raro.

Siempre que se tumba el servidor sale el ya típico mensaje al que estamos empezando a acostumbrarnos, "Sorry, SMF was unable to connect to the database. This may be caused by the server being busy. Please try again later. "

Alguien sabe cómo investigar el tipo de ataque que hace?, qué comandos mirar?, cómo saber si tira la base de datos o vete a saber?. Al rato el foro vuelve a la normalidad, pero, como os digo, lo tira de nuevo a los 5 minutos con una facilidad pasmosa.

Cualquier ayuda para pillarlo será bien recibida (pago en carne opcional).

Gracias!!
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Ataque continúo a un server

Mensaje por mcun » Jue Oct 20, 2011 3:41 am

Primero : por que estas seguro de que es un ataque ? bien podría ser un problema de hardware o un script mal echo ..

Segundo: de que tipo de ataque estas hablando ? osea que tipo de ataque crees que esta sufriendo el servidor.

Tercero: el servidor es compartido ?

www-data, 131 procesos es una suma irrisoria osea que si esa es la máxima cantidad de conexiones que registran los log no creo que sea por allí el ataque lo mismo de netstat -punta | wc -l yo en este momento tengo 4 en el localhost y no tengo mas que una pagina abierta
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Re: Ataque continúo a un server

Mensaje por ami0 » Jue Oct 20, 2011 7:56 am

Gracias por contestar mcun. Sabemos que es un ataque porque el personaje, a través del chat del foro, avisa siempre de su "proeza", segundos más tarde el foro cae.

No tenemos ni idea de qué tipo de ataque realiza, creía que era un SYN Flood, pero el netstat lo desmiente. Imagino que en alguna parte del servidor ha de dejar una "huella" de lo que pasa, pero no sé dónde mirarlo. A lo mejor está petando el MySQL con unas SELECT malformadas, o tira el apache de alguna forma, estamos muy perdidos.

El servidor es dedicado.

Saludos
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Ataque continúo a un server

Mensaje por mcun » Jue Oct 20, 2011 2:54 pm

revisa los accesos al servidor corre un roottkit me parece que el ataque es desde dentro, chequea las aplicaciones que están corriendo
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1801
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ataque continúo a un server

Mensaje por neurus » Jue Oct 20, 2011 3:03 pm

ami0 escribió:. A lo mejor está petando el MySQL con unas SELECT malformadas, o tira el apache de alguna forma, estamos muy perdidos.
¿Y por qué debería tener acceso al servidor MySQL? ¿No tienen bloqueado ese puerto?
ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Re: Ataque continúo a un server

Mensaje por ami0 » Jue Oct 20, 2011 4:01 pm

mcun, cómo puedo hacer eso?, siento la ignorancia.

neurus, sólo hago suposiciones desde los pocos conocimientos que tengo del tema, pueden ser totalmente desacertadas.

Por lo que he visto, el puerto del MySQL está abierto:

root:~# netstat -punta | grep 330
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 15230/mysqld


Debería estar cerrado el puerto?.

Saludos.
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1801
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ataque continúo a un server

Mensaje por neurus » Jue Oct 20, 2011 4:13 pm

Claro que debería estar cerrado. Sería muy extraño que ustedes hicieran peticiones SQL desde consola.
Las peticiones se hacen, casi siempre, a través de php, ejecutándose en el servidor (para MySQL, es una petición desde localhost, por lo que no hace falta tener abierto el puerto al exterior).

Mira los logs que cuelgan de /var/log/mysql/ ; tal vez encuentres algo. Pero en cualquier caso, cierra ese puerto.
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Ataque continúo a un server

Mensaje por mcun » Jue Oct 20, 2011 4:17 pm

mcun, cómo puedo hacer eso?, siento la ignorancia.
pues buscando información para salir de la ignorancia ::lol::

rootkit

las aplicaciones pues revisa el código los directorios que no haya un directorio oculto o código ofuscado etc...
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Re: Ataque continúo a un server

Mensaje por ami0 » Jue Oct 20, 2011 5:25 pm

Hacemos un backup diario de la base de datos desde un PC de un administrador, vamos a ver cómo se pondrían las reglas oportunas para bloquear todas las conexiones hacia ese puerto, excepto la IP de este PC. No hay nada en los ficheros de log de mysql, todos están vacíos..


Lo sé mcun, no soy de los que preguntan y esperan a que les contesten. Tengo los ojos secos de buscar documentación, bugs de seguridad, comandos útiles...

Saludos y gracias por toda la ayuda.
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1801
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ataque continúo a un server

Mensaje por neurus » Jue Oct 20, 2011 5:35 pm

Los logs no pueden estar vacíos. Probablemente, estés intentando verlos como usuario, y necesitas permisos de root para ver el contenido de los logs.
Si el SMF está conectado a la base de datos (de poco serviría si no lo estuviese), esos logs tienen que ser bastante largos.

Mira qué tamaño tienen, y te darás cuenta de que no están vacíos.
ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Re: Ataque continúo a un server

Mensaje por ami0 » Jue Oct 20, 2011 5:40 pm

Yo entro como root al servidor, esto es lo que saca el ls:

root:/var/log/mysql# ls -ltrah
total 64K
-rw-r----- 1 mysql adm 20 Oct 13 03:20 mysql.log.7.gz
-rw-r----- 1 mysql adm 20 Oct 13 03:20 mysql-slow.log.7.gz
-rw-r----- 1 mysql adm 20 Oct 14 03:20 mysql.log.6.gz
-rw-r----- 1 mysql adm 20 Oct 14 03:20 mysql-slow.log.6.gz
-rw-r----- 1 mysql adm 20 Oct 15 03:23 mysql.log.5.gz
-rw-r----- 1 mysql adm 20 Oct 15 03:23 mysql-slow.log.5.gz
-rw-r----- 1 mysql adm 20 Oct 16 03:20 mysql.log.4.gz
-rw-r----- 1 mysql adm 20 Oct 16 03:20 mysql-slow.log.4.gz
-rw-r----- 1 mysql adm 20 Oct 17 03:20 mysql.log.3.gz
-rw-r----- 1 mysql adm 20 Oct 17 03:20 mysql-slow.log.3.gz
-rw-r----- 1 mysql adm 20 Oct 18 03:20 mysql.log.2.gz
-rw-r----- 1 mysql adm 20 Oct 18 03:20 mysql-slow.log.2.gz
-rw-r----- 1 mysql adm 20 Oct 19 03:20 mysql.log.1.gz
-rw-r----- 1 mysql adm 20 Oct 19 03:20 mysql-slow.log.1.gz
-rw-r----- 1 mysql adm 0 Oct 20 03:20 mysql.log
-rw-r----- 1 mysql adm 0 Oct 20 03:20 mysql-slow.log
drwxr-xr-x 11 root root 4.0K Oct 20 03:20 ..
drwxr-s--- 2 mysql adm 4.0K Oct 20 03:20 .

root:/var/log/mysql# more mysql.log
root:/var/log/mysql#




Acabamos de modificar el IPTABLES para que sólo el servidor que hace los backups de la base de datos tenga acceso al puerto 3306, el resto capado. Comprobado que hace drop.
Avatar de Usuario
hmg79
Forista Legendario
Forista Legendario
Mensajes: 2211
Registrado: Lun Mar 31, 2008 8:00 am

Re: Ataque continúo a un server

Mensaje por hmg79 » Jue Oct 20, 2011 7:15 pm

Podes pasar la dirección del servidor?
ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Re: Ataque continúo a un server

Mensaje por ami0 » Jue Oct 20, 2011 7:38 pm

La IP del server es 80.231.171.40.

Otra cosilla, hemos visto que la versión actual del apache2 tiene vulnerabilidades serias de seguridad (2.2.9). He lanzado un apt-get upgrade apache2, ha actualizado y reemplazado 44 paquetes pero aún así seguimos teniendo la misma versión.

Me he bajado la 2.2.21 y dejado en el server, pero me acojona lanzar el Install directamente por problemas de dependencias que pueden surgir. Se puede lanzar o he de hacer algo antes del upgrade a mano?.
Hawkingsagan
Administrador
Administrador
Mensajes: 4182
Registrado: Mié May 12, 2004 7:00 am
Ubicación: México.
Contactar:

Re: Ataque continúo a un server

Mensaje por Hawkingsagan » Jue Oct 20, 2011 8:13 pm

ami0 escribió:Gracias por contestar mcun. Sabemos que es un ataque porque el personaje, a través del chat del foro, avisa siempre de su "proeza", segundos más tarde el foro cae.

No tenemos ni idea de qué tipo de ataque realiza, creía que era un SYN Flood, pero el netstat lo desmiente. Imagino que en alguna parte del servidor ha de dejar una "huella" de lo que pasa, pero no sé dónde mirarlo. A lo mejor está petando el MySQL con unas SELECT malformadas, o tira el apache de alguna forma, estamos muy perdidos.

El servidor es dedicado.

Saludos
si se conecta el tipo a tu foro, hay forma de averiguar su direccion ip y tratar de bloquear sus accesos al servidor, si s eprotege por un proxy instala un plugin antiproxy a tu foro.

te recomiendo esta lectura para proteger accesos por fuerza bruta a tu servidor http://www.forat.info/2008/03/28/como-p ... rza-bruta/

es importante para ello ubiques la ip o con conjunto de ipos que te estan atacando. compara la ip de quien anuncia en tu foro con la sips de los logs del sistema.

usa el comando tail -f /var/log/apache2/access.log para ver ello en vivo al momento del ataque.


igualmente revisa los accesos erroneos al servidor, si te esta atacando con un DDos puede estar utilizando multiples maquinas zombies, muchas de ellas no s epodran conectar.

usa el comando tail -f /var/log/apache2/error.log para verificar eso.

Recomendacion documentate mas, como admin y responsable de un servidor debes hacerlo.

Saludos
Linux User # 394644
Distros: Ubuntu Server, Ubuntu Desktop, Linux Mint y Open Mandriva
Twitter:@hawkingsagan
ami0
Forista Nuevo
Forista Nuevo
Mensajes: 16
Registrado: Mié Oct 19, 2011 11:03 pm

Re: Ataque continúo a un server

Mensaje por ami0 » Jue Oct 20, 2011 11:41 pm

Muchas gracias por las recomendaciones calex78, creemos que el ataque es o bien al MySQL o al Apache, no un ataque de SYN Flood o fuerza bruta, ya que cuando éste se produce el resto de webs que no tiene esos paquetes cargan perfectamente.

Gracias a neurus nos hemos dado cuenta de que teníamos abierto el MySQL a todos, eso ya está solucionado. Ahora falta actualizar el Apache a la última versión e instalar mod_evasive.

Te comento que en el fichero access.log del apache2 aparecen estas líneas constantemente:

66.71.247.134 - - [20/Oct/2011:21:23:14 +0200] "GET /mods/index.php?mod=977 HTTP/1.0" 404 287 "-" "Opera/9.21 (PHP/SMF/Aeva; U; fr)"
66.71.247.135 - - [20/Oct/2011:21:23:14 +0200] "GET /mods/index.php?mod=977 HTTP/1.1" 404 287 "-" "-


Esas 2 IPs son las de simplemachines.org. En el archivo no aparece otro mensaje que no sean esos dos:

root:/var/log/apache2# grep -v 66.71.247.* access.log
root:/var/log/apache2#


A raíz de esto, veo que el foro tiene muchas conexiones abiertas a los servidores de simplemachines:

root:netstat -plan|grep :80 | awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n
672 66.71.247.134


No sé si serán normales tantas conexiones.

Y, por supuesto, te doy toda la razón, he de documentarme más.

Gracias de nuevo.

Editado -- Jue Oct 20, 2011 10:40 pm --

Buenas

Estaba echando un ojo al fichero /var/log/apache2/error.log cuando veo que sale esto:

[Thu Oct 20 23:09:36 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Thu Oct 20 23:09:52 2011] [error] [client 84.20.17.184] File does not exist: /var/www/vhosts/default/htdocs/prueba.txt


Y luego empiezan a salir muchísimos mensajes cada segundo de este tipo:

[Thu Oct 20 23:10:12 2011] [error] [client 66.71.247.135] File does not exist: /var/www/mods

La 66.71.247.135 es simplemachines.org, no sé porqué salen taaaantos mensajes.

Y por último también he visto este tipo de mensaje:

[Thu Oct 20 22:53:39 2011] [error] [client 85.60.92.94] request failed: error reading the headers

La config del apache2.conf es esta:

<IfModule mpm_prefork_module>
StartServers 15
MinSpareServers 5
MaxSpareServers 20
MaxClients 175
MaxRequestsPerChild 4000
</IfModule>


Y los siguientes campos

Timeout 1
MaxKeepAliveRequests 500
KeepAliveTimeout 2


Decidme si veis algo raro en los parámetros del apache2.conf.

Y encima el mamón anuncia que será implacable y atacará una y otra vez la web :evil:

Editado -- Jue Oct 20, 2011 10:41 pm --

Abro otro post distinto para que no sea uno y muy grande. En el momento del ataque, las conexiones abiertas, ordenadas por ip y número de conexiones son estas:

root:/var/log/apache2# netstat -plan|grep :80 | awk {'print $5'}|cut -d: -f 1
1 0.0.0.0
1 118.98.31.4
1 14.98.51.8
1 151.52.95.131
1 151.56.135.248
1 174.142.104.58
1 186.61.26.98
1 188.27.4.114
1 189.19.62.51
1 190.107.37.223
1 190.134.53.61
1 190.219.244.163
1 2.136.63.211
1 2.225.131.219
1 2.36.170.63
1 200.111.20.158
1 200.124.249.25
1 200.69.112.18
1 201.195.217.218
1 203.89.28.101
1 207.46.194.74
1 208.69.40.100
1 208.93.153.70
1 211.53.208.28
1 212.7.202.36
1 218.28.111.46
1 220.181.108.90
1 46.182.120.192
1 50.19.160.30
1 62.83.227.207
1 64.15.158.134
1 64.191.24.22
1 78.139.162.231
1 79.144.69.233
1 80.58.220.161
1 81.47.142.38
1 81.61.2.250
1 83.60.132.58
1 84.121.209.67
1 84.126.55.254
1 85.25.100.8
1 85.56.8.58
1 85.93.2.63
1 87.219.250.79
1 87.220.125.137
1 87.221.189.239
1 88.191.133.78
1 88.7.242.242
1 88.8.246.184
1 91.198.61.11
1 94.228.13.75
1 95.39.174.189
2 189.152.193.244
2 189.195.25.208
2 190.129.169.65
2 190.21.241.194
2 190.230.218.235
2 190.69.53.6
2 200.47.83.166
2 200.8.47.124
2 206.188.81.39
2 217.127.58.126
2 66.50.239.141
2 83.42.222.139
2 87.221.65.204
2 90.170.65.225
2 94.34.163.182
3 186.46.80.190
3 187.195.82.178
3 188.85.56.89
3 189.162.212.216
3 190.18.52.82
3 190.233.226.224
3 83.44.199.104
3 87.219.60.38
3 95.17.97.31
4 187.176.116.237
4 190.136.160.48
4 190.254.241.131
4 67.195.113.223
4 74.177.189.74
4 79.148.91.45
4 85.152.177.68
4 87.218.55.128
5 148.213.234.232
5 189.217.41.97
5 190.222.18.249
5 213.37.9.229
6 186.178.107.247
6 186.81.190.41
6 189.139.11.176
6 190.17.192.170
6 79.144.56.147
6 83.49.143.76
6 84.152.159.191
6 85.84.194.178
6 95.20.2.133
7 190.127.38.109
7 87.221.240.149
8 190.135.24.163
8 190.71.230.12
8 201.200.122.234
8 213.37.180.173
8 79.146.71.105
9 190.240.223.9
10 186.13.159.250
10 190.97.77.21
10 95.22.174.104
14 186.58.80.72
15 187.135.121.109
16 187.159.153.71
18 83.53.30.229
19 95.19.77.168
20 95.22.204.119
24 81.44.164.230
25 188.76.144.231
27 186.69.249.72
39 62.36.44.251
84 66.71.247.134
442 66.71.247.135
root:/var/log/apache2#


ese número de conexiones se puede considerar como ddos?.
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje