Quand on se retrouve face à un site hacké une des premières choses à faire est de retrouver les fichiers contenant du code malvaillant pour cela j'utilises deux outils libres : LMD et Clamav et des signatures à jour.
LMD : Linux Malware Detect
LMD c'est Linux Malware Detect, un scanner de malware pour plateformes Linux.
Site : https://www.rfxn.com/projects/linux-malware-detect/
L'installation est assez simple, on récupère le fichier tar.gz, on le décompresse et on lance l'installation :
# cd /opt ; wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar xvzf maldetect-current.tar.gz
# cd maldetect-1.4.2 ; ./install.sh
Linux Malware Detect v1.4.2
(C) 2002-2013, R-fx Networks <proj@r-fx.org>
(C) 2013, Ryan MacDonald <ryan@r-fx.org>
inotifywait (C) 2007, Rohan McGovern <rohan@mcgovern.id.au>
This program may be freely redistributed under the terms of the GNU GPL
installation completed to /usr/local/maldetect
config file: /usr/local/maldetect/conf.maldet
exec file: /usr/local/maldetect/maldet
exec link: /usr/local/sbin/maldet
exec link: /usr/local/sbin/lmd
cron.daily: /etc/cron.daily/maldet
maldet(2519): {sigup} performing signature update check...
maldet(2519): {sigup} local signature set is version 201205035915
maldet(2519): {sigup} new signature set (2015042721507) available
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/md5.dat
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/hex.dat
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/rfxn.ndb
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/rfxn.hdb
maldet(2519): {sigup} downloaded http://cdn.rfxn.com/downloads/maldet-clean.tgz
maldet(2519): {sigup} signature set update completed
maldet(2519): {sigup} 10749 signatures (8838 MD5 / 1911 HEX)
Lors de l'installation les mises à jour des signatures sont faites reste plus qu'à tester.
# maldet --scan-all /root/repatester
Linux Malware Detect v1.4.2
(C) 2002-2013, R-fx Networks <proj@r-fx.org>
(C) 2013, Ryan MacDonald <ryan@r-fx.org>
inotifywait (C) 2007, Rohan McGovern <rohan@mcgovern.id.au>
This program may be freely redistributed under the terms of the GNU GPL v2
maldet(2665): {scan} signatures loaded: 10749 (8838 MD5 / 1911 HEX)
maldet(2665): {scan} building file list for /root/repatester, this might take awhile...
maldet(2665): {scan} file list completed, found 2445 files...
maldet(2665): {scan} 2445/2445 files scanned: 1 hits 0 cleaned
maldet(2665): {scan} scan completed on /root/repatester: files 2445, malware hits 1, cleaned hits 0
maldet(2665): {scan} scan report saved, to view run: maldet --report 042915-1628.2665
maldet(2665): {scan} quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 042915-1628.2665
Cela semble assez faible : {scan} 2445/2445 files scanned: 1 hits 0 cleaned ; 1 seul fichier identifié sur 2445.
Pour lire le rapport :
# maldet --report 042915-1628.2665
malware detect scan report for debian7:
SCAN ID: 042915-1628.2665
TIME: avril 29 16:35:11 +0200
PATH: /root/repatester
TOTAL FILES: 2445
TOTAL HITS: 1
TOTAL CLEANED: 0
NOTE: quarantine is disabled! set quar_hits=1 in conf.maldet or to quarantine results run: maldet -q 042915-1628.2665
FILE HIT LIST:
{HEX}php.cmdshell.unclassed.357 : /root/repatester/wp-iduct.php
===============================================
Linux Malware Detect v1.4.2 < proj@rfxn.com >
Il est aussi disponible dans le fichier /usr/local/maldetect/sess/session.042915-1628.2665
Clamav
Pour augmnter le champ des recherches on va installer clamav. clamav est un antivirus opensource connu et reconnu, qui permet en plus des virus de chercher de reconnaitre des malware, des trojans, etc ...
Installation
Sous Debian on va installer les paquets nécessaires :
# apt-get install clamav-daemon clamav-freshclam
Puis on met à jour avec freshclam :
# freshclam
ClamAV update process started at Tue May 12 16:42:48 2015
main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
daily.cld is up to date (version: 20448, sigs: 1386255, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 254, sigs: 45, f-level: 63, builder: anvilleg)
Ajout de signatures
Pour augmenter la pertinence des analyses de clamv il faut rajouter des signatures, il existe plusieurs fournisseurs qui proposent des sigantures à des tarifs divers :
https://www.securiteinfo.com/services/improve-detection-rate-of-zero-day-malwares-for-clamav.shtml
https://www.atomicorp.com/wiki/index.php/Atomic_CLAMAV_Signatures
Il existe aussi un paquet Debian permettant d'avoir des signatures supplémentaires gratuitement :
# apt-get install clamav-unofficial-sigs
Pour mettre à jour :
# /usr/sbin/clamav-unofficial-sigs
ATTENTION : pour ne pas se faire bloquer, il ne faut pas mettre à jour plus d'une fois par jour.
On peut maintenant relancer un scan :
maldet(9769): {scan} scan completed on /root/repatester: files 2448, malware hits 58, cleaned hits 0
On passe de 1 à 58 fichiers identifiés comme potentiellement dangereux.
Si on analyse le rapport on y trouve des choses assez intéressantes :
{CAV}Php.Trojan.StopPost
{CAV}Sanesecurity.Malware.24797.PhpBot.MailPoet
...
Pour finir
Il faut faire attention à une chose, ces outils peuvent donner des "faux positifs", c'est à dire des fichiers qui pourraient être identifiés comme contenant du code malveillant mais qui n'en contiennent pas. Il faut donc controller les fichiers après analyse.