środa, 5 listopada 2014

python - porównywanie czy pliki PHP nie zostały zmienione względem siebie

W ramach ćwiczeń z pythonem mały skrypt, który porównuje checksum plików PHP z katalogu /var/www pomiędzy dniem dzisiejszym, a wczorajszym. Jeśli skrypt wykryje nowe pliki lub niezgodność checksum (czyli plik został zmieniony) to wysyła maila.

Skrypt może się przydać, jeśli macie jakieś strony na serwerze, które nie są bezpieczne - teraz jak ktoś wrzuci PHP shella lub dopisze coś do waszych plików, będziecie o tym wiedzieli.



import os
import datetime
from datetime import date, timedelta
import commands

today_l = []
yesterday_l = []
today = datetime.date.today()
today_l.append(today)

yesterday = date.today() - timedelta(1)
yesterday_l.append(yesterday)

cmdstring = "find /var/www/ -type f -name '*.php'|xargs md5sum > /var/log/w4cky/%s" % (today_l[0])
os.system(cmdstring)

cmdstring = 'diff /var/log//w4cky/%s /var/log/w4cky/%s |cut -d " " -f 4' % (today_l[0], yesterday_l[0])
output = os.popen(cmdstring).read()
if(output!=0):
msg = "Wykryto zmiany w plikach\n %s" % output
mail = 'echo " Wykryto zmiany w nastepujacych plikach:\n%s" | mail -s "WWW CHECKSUM" obiorca@mail.com' % output
os.system(mail)