Archivo

Archivo para la Categoría "Spam"

Ejemplo de vulnerabilidad de la función mail() de PHP

20/10/2011 Deja un comentario

La función mail() de php es extremadamente vulnerable, por eso se recomienda no usar dicha función.

Como ejemplo vamos a ver un formulario php que usa la función mail() y aunque es un formulario muy simple y no valida los datos que se le suministran, no es tan extraño encontrarse webs en esta situación. Veamos el ejemplo:

Supongamos que el formulario nos solicita nuestra dirección de correo, tendríamos un etiqueta input como la siguiente:

<input type=”text” name=”correo” value=”Escriba su dirección de correo” />

Al pulsar el botón de enviar la información llegaría al servidor y la funcion mail() tomaría la dirección de correo para usarla como FROM en el envío del email.
Pero, ¿que pasaría si en vez de una dirección de correo, le metieramos un script malicioso como el siguiente?

“spam@emailfalso.com%0ACc:email@victima.com”

La función mail() tomaría a spam@emailfalso.com como el parámetro FROM: (dirección del que nos envía el correo),  email@victima.com como parámetro  Cc: (Direcciones que recibirían el email). %0A es simplemente el valor hexadecimal de un salto de línea.

Así de sencillo es para un spamer utilizar la funcion mail() para enviar emails a sus victimas, por tanto, y como se ha comentado antes, es muy recomendable no utilizar esta función.

Categorías:Seguridad, Spam

Como limitar el número máximo de destinatarios de un correo en Plesk

09/03/2011 Deja un comentario

Paso 1: Crear un archivo llamado maxrcpt en el directorio /var/qmail/control/ (esta ruta de qmail puede variar en función de cada servidor)

Paso 2:  Editar el archivo maxrcpt e indicar el número máximo de remitenets a los que puede ir dirigido un correo.

 

Categorías:Correo, Plesk, Spam

Cambiar la puntuación de spamassassin de todos los correos de un dominio en plesk

16/11/2010 Deja un comentario

El cambio se tiene que hacer mediante la linea de comandos, si por ejemplo queremos establecer la puntución en 5 para todos los correos del dominio midominio.com, ejecutaremos lo siguiente:

ls /var/qmail/mailnames/dominio.com | awk ‘{print “/usr/local/psa/bin/spamassassin –update”$0″@midominio.com -hits 5″}’ | sh

 

Categorías:Correo, Plesk, Spam

Como buscar el origen de spam en un servidor con qmail y plesk

03/11/2010 Deja un comentario

Esto puede serte muy útil si alguien está utilizando tu servidor para enviar spam y quieres ver su procedencia.

Comprueba el número de mensajes que hay en la cola de Qmail ejecutando el siguiente comando:

/var/qmail/bin/qmail-qstat

te salda algo como lo siguientemessages in queue: 27843messages in queue but not yet preprocessed: 256
Si la cola tiene muchos mensajes es que algo no va bien y están utilizando el servidor para enviar SPAM, veamos como descubrir al culpable.
Si el correo está siendo enviado a través del servidor smtp, pero no desde un script PHP, puedes ejecutar el siguiente comando:

cat /usr/local/psa/var/log/maillog |grep -I smtp_auth |grep -I user |sort |uniq -c |sort -n

aparecerán las conexiones smtp con el usuario y contraseña y la ip de acceso, si hay muchas conexiones de un mismo usuario podemos haber encontrado el culpable.

Para vez las cabeceras de los mensajes de la cola podemos ejecutar:

/var/qmail/bin/qmail-qread

así se muestran los remitentes y destinatarios de los mensajes. Si hay algún mensaje sospechsos hay que investigar si es SPAM. Puede buscar el mensaje por su id, como por ejemplo 64166987

find /var/qmail/queue/mess/ -name 64166987cat /var/qmail/queue/mess/0/64166987

examina el mensaje y busca la primera línea “Received” para saber desde dónde se envió la primera vez, por ejemplo, si encuentras:

Received: (qmail 24019 invoked by uid 1007); 3 Nov 2010 12:46:52 +0100

Significa que este mensaje fue enviado a través de algún script por el usuario con uid 1007. Usando este uid podemos encontrar el dominio que está enviando el correo:

grep 1007 /etc/passwd

Si el uid es el 48  (del servidor apache) significa que el correo fue enviado a través de un script PHP.En este caso, puedes intentar descubrir el spammer usando la información de los propios correos (direcciones de/para, asunto o cualquier otro dato). Generalmente es muy difícil descubrir la fuente de spam en estos casos, y más si tienes muchos dominios en el servidor.

Si la línea “Received” es como sigue:

Received: (qmail 22672 invoked from network); 03 nov 2010 15:30:12 +08002 Received: from dominio.com (192.168.1.1)

significa que el mensaje ha sido aceptado y entregado a través del servidor SMTP y que el remitente es un usuario de correo autorizado.

Categorías:Correo, Plesk, Spam