J'essaie d'identifier la cause des courriers indésirables envoyés par l'un de mes clients wordpress sites Web. Bien que je puisse identifier le dossier, je ne peux pas identifier le fichier.
J'ai ajouté ce qui suit au log_selector de mes paramètres exim +address_rewrite +all_parents +arguments +connection_reject +delay_delivery +delivery_size +dnslist_defer +incoming_interface +incoming_port +lost_incoming_connection +queue_run +received_recipients +received_sender +retry_defer +sender_on_delivery +size_reject +skip_delivery +smtp_confirmation +smtp_connection +smtp_protocol_error +smtp_syntax_error +subject +tls_cipher +tls_peerdn
Et puis lancez grep cwd /var/log/exim_mainlog | grep -v /var/spool | awk -F"cwd=" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n
Grâce à cela, je sais quels dossiers envoient le spam. L'un d'eux était un plugin Yoast désactivé que j'ai mis à jour et qui a résolu un problème. Cependant, un plugin personnalisé pour le site Web est également identifié comme envoi de spam, quelques 100 000 par jour.
J'ai essayé d'exécuter grep "file-name.php" /home/account-name/access-logs/domain.co.uk | awk '{print $1}' | sort -n | uniq -c | sort -n
sur chacun des fichiers du répertoire, mais un seul a renvoyé des résultats, ce qui ne montre qu'une poignée d'accès unique par adresses IP différentes. Rien à voir avec les 74 000 attendus affichés par exim_mainlog.
Le plugin devrait utiliser mandrill pour envoyer des emails et a été écrit par une tierce partie avant que nous le prenions en charge. Le débogage des scripts prendrait donc beaucoup de temps et met actuellement le serveur sur une liste noire sur plusieurs listes noires.
Pour l'instant, je vais échanger le site sur sa propre adresse IP afin de pouvoir au moins effacer les autres sites sur l'adresse IP partagée, mais j'ai vraiment besoin de trouver le fichier en question à l'origine du problème.
Le serveur en question est un centos 5.x, je pense utiliser WHM et Cpanel
J'ai finalement trouvé le piratage en exécutant un scanner de code malveillant à partir de https://github.com/mikestowe/Malicious-Code-Scanner pour détecter les causes principales du piratage. Cela a détecté 90% de toutes les mouches qui ont été modifiées pour permettre à une demande de publication d'envoyer une chaîne que le fichier piraté serait ensuite exécuté en tant que php.
Ensuite, j'ai exécuté cat example.co.uk | cut -d\" -f2 | awk '{print $1 " " $2}' | cut -d? -f1 | sort | uniq -c | sort -n
sur mes journaux d'accès bruts pour rechercher les fichiers auxquels des demandes de publication avaient été envoyées afin de rechercher les fichiers non détectés correctement.
En PHP, la fonction mail () est utilisée pour envoyer un email.
Sous Linux, vous pouvez naviguer jusqu'au dossier racine où wordpress est installé (probablement la racine du document) et taper:
grep mail\( *.php
Ensuite, il recherchera les correspondances dans tous les fichiers php du dossier (et les noms de fichiers listés à l'extrême gauche sont le fichier dans lequel se trouve la correspondance. Vous devrez peut-être changer de dossier si la fonction de messagerie n'est pas trouvée.