Suite a la propagation de nimda (admin a l'envers ...) et a la detection dans mes logs de traces, j'ai voulu faire un script qui genere un rapport d'attaque.
Il est dispo en telechargement, bien que très sommaire.
use Socket;print "The following lamers were detected on your system: \n";while($line=<>) {if($line=~/(root.exe)|(cmd.exe)/) { @lame=split(/\s/,$line);print $lame[3]." ".$lame[0]." ("; @lamename=gethostbyaddr(inet_aton($lame[0]),AF_INET);print $lamename[0].")]\n"; } }
Il scanne un fichier log Apache donné en entrée standard
Cela suppose évidemment que le format du fichier de logs soit standard (CLF il me semble), ce qui n'est pas forcément le cas.
Merci quand même pour le petit scrit (Perl rulez :)
# A noter
Posté par kadreg . Évalué à -2.
# Detection avec snort :
Posté par Brunus . Évalué à 7.
La page de snort : http://www.snort.org(...)
Les signatures à utiliser pour detecter Nimda avec Snort.
http://www.snort.org/article.html?id=31(...)
Mais snort n'effectue pas la requète nslookup sur les ip loguées comme dans le script de Gilles Cuesta.
# Une alternative
Posté par Pierre Tramal (site web personnel) . Évalué à 7.
use Socket;print "The following lamers were detected on your system: \n";while($line=<>) {if($line=~/(root.exe)|(cmd.exe)/) { @lame=split(/\s/,$line);print $lame[3]." ".$lame[0]." ("; @lamename=gethostbyaddr(inet_aton($lame[0]),AF_INET);print $lamename[0].")]\n"; } }
Il scanne un fichier log Apache donné en entrée standard
[^] # Re: Une alternative
Posté par bmc . Évalué à 2.
Merci quand même pour le petit scrit (Perl rulez :)
# sauver de la BP : bloquer nimda par ipchains
Posté par Jerome Demeyer . Évalué à 3.
----8<-------------8<----------
#!/bin/sh
# Repertoire des logs Apache
cd /var/log/httpd
# Augmenter le -n au besoin
tail -n10000 --follow=name access_log | \
awk '
# on matche Nimda
/scripts\/root.exe/ {
old=0
while(getline line < "nimda.txt"){if($1 ~ line) old=1}
if(old==0){
# On trace la becane verolee
print $1 >> "nimda.txt"
# Goodbye
system("/sbin/ipchains -A input -j DENY -i eth0 -p tcp -s " $1 "
--destination-port 80")
}
close("nimda.txt")
}
# on matche CodeRed
/default.ida/ {
old=0
while(getline line < "codered.txt"){if($1 ~ line) old=1}
if(old==0){
# on trace la becane verolee
print $1 >> "codered.txt"
# Goodbye
system("/sbin/ipchains -A input -j DENY -i eth0 -p tcp -s " $1 "
--destination-port 80")
}
close("codered.txt")
}' - &
-------8<----------8<------------
Sauver le fichier et comparer rend plus sur le fait de lancer plusieurs fois le script. Sinon ca n'est pas utile.
traduction d'un post de Raimo Koski (www.raimokoski.com) sur comp.os.linux.security
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.