Malware finden auf Linux Servern

Author: Alexander Fox

Seit einigen Jahren werden immer wieder Webseiten mit Malware Verseucht, davon bleiben selbst Prominente CMS und Blogsysteme nicht verschont wie WordPress,Joomla, etc . Als Serveradmin beginnt nach bekannt werden immer wieder die Suche nach kontaminiertem Webseiten los. Oft sehen die Webseiten noch ganz Normal aus aber im Hintergrund werden Scripte verändert um Spam zu versenden oder andere Webserver an zu greifen. Seit längerem gibt es ein Programm Namens Malware Detect dass auf Servern die Web Verzeichnisse durch suchen kann und Schädlinge findet. Dies ist eine sehr gute Hilfe beim Suchen und finden der Bösen Webseiten, auf den eigenen servern.  Ein User auf Howtoforge.com hat ein Shellscript geschrieben, mit dem es sehr einfach ist Systeme auf Maleware zu testen unter Debian. Ich denke ohne es getestet zu haben dass folgende Anleitung auch auf Ubuntu ‚Systemen funktioniert . Wir verwenden in dem Script auch den echo Befehl.

Für die Richtigkeit der Inhalte des Tutorials gebe ich keinerlei Garantie.

Folgenden Inhalt in eine Datei als Beispielsweise malewaredetect.sh

nano malewaredetect.sh

Script kopieren und einfügen

#!/bin/bash
# debian-specific installation script by M. Cramer <m.cramer@pixcept.de>
# howto taken from howtoforge written by "felan":
# https://www.howtoforge.com/forums/showthread.php?p=284504
#

CURDIR=`pwd`
PROG=`readlink -f $0`
echo "Installing prerequisites..."
apt-get -y -q install inotify-tools sed
echo "Fetching latest version of maldetect..."
cd /tmp
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xzf maldetect-current.tar.gz
cd maldetect-*
echo "Modifying install script..."
sed -r -i 's/^(.*cp.*/libinotifytools.so.0[ ]+/usr/lib/.*)$/#1/g' install.sh;
echo "Modifying cron job..."
sed -r -i '/maldet.*/var/www/vhosts/?/subdomains/?/httpdocs.*$/ a
elif [ -d "/usr/local/ispconfig" || -d "/root/ispconfig" ]; then
# ispconfig
/usr/local/maldetect/maldet -b -r /var/www 2 >> /dev/null 2>&1' cron.daily;
echo "Modifying maldet script..."
sed -r -i 's/^$nice .*$/$nice -n $inotify_nice $inotify -r --fromfile $inotify_fpaths $exclude --timefmt "%d %b %H:%M:%S" --format "%w%f %e %T" -m -e create,move,modify >> $inotify_log 2>&1 &/g' files/maldet;
sed -r -i '/lmdup() {.*$/ a
ofile=$tmpdir/.lmdup_vercheck.$$
tmp_inspath=/usr/local/lmd_update
rm -rf $tmp_inspath
rm -f $ofile
mkdir -p $tmp_inspath
chmod 750 $tmp_inspath
eout "{update} checking for available updates..." 1
$wget --referer="http://www.rfxn.com/LMD-$ver" -q -t5 -T5 "$lmdurl_ver" -O $ofile >> /dev/null 2>&1
if [ -s "$ofile" ]; then
installed_ver=`echo $ver | tr -d "."`
current_ver=`cat $ofile | tr -d "."`
current_hver=`cat $ofile`
if [ "$current_ver" -gt "$installed_ver" ]; then
eout "{update} new version $current_hver found, updating..." 1
'"$PROG"'
fi
else
echo "no update file found. try again later"
exit
fi
rm -rf $tmp_inspath $ofile $ofile_has
exit;
# skip all the rest
' files/maldet;
echo "Modifying config..."
sed -r -i 's/^inotify=.*$/inotify=/usr/bin/inotifywait/g' files/internals.conf
echo "Deleting unneccessary files..."
rm -f files/inotify/inotifywait
rm -f files/inotify/libinotifytools.so.0
./install.sh
rm -r /tmp/maldetect-*
cd $CURDIR
echo "Soll ein Echtzeit-Monitoring laufen bitte folgende Änderungen vornehmen:"
echo ""
echo "vi /usr/local/maldetect/maldetfilelist"
echo ""
echo "Einfügen (Verzeichnis/Verzeichnisse, die untersucht werden sollen)"
echo "/var/www"
echo "(bzw. das Basisverzeichnis für die Webseiten, kann auch /home/www oder ähnlich sein)"
echo ""
echo "vi /etc/rc.local"
echo ""
echo "Einfügen (Befehl startet den Monitor beim Boot des Servers)"
echo "/usr/local/maldetect/maldet -m /usr/local/maldetect/maldetfilelist"
echo ""
echo "Zum starten des Monitors einmalig den Befehl ausführen"
echo "/usr/local/maldetect/maldet -m /usr/local/maldetect/maldetfilelist"

Abspeichern und schließen

Ausführbar machen mit folgendem Befehl

chmod malweredetect.sh

Nun starten wir dass Script

sh ./malewaredetect.sh

Nun ist Malewaredetect Installiert und ein Täglicher Cronjob Prüft automatisiert dass Systeme jeden Tag, wir sollten noch folgende eisntellungen erledigen in der maledetect config

nano /usr/local/maldetect/conf.maldet

Hier solltet ihr zunächst die Alamierung ein schalten und eine E-mail Adresse für Warnmeldungen eingeben

email_alert=1

email_addr=“dein@email.local“

Nun abspeichern und wir können einen ersten Check machen von Hand im ISPConfig Standard Verzeichniss www

root@howtoforge:~# /usr/local/maldetect/maldet -b -a /var/www/

Ausgabe:

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(18641): {scan} launching scan of /var/www/ to background, see /usr/local/maldetect/event_log for progress

Logfile findet sich hier

cat /usr/local/maldetect/event_log

Ausgabe des Logfiles

Jun 24 22:04:32 46038 maldet(18641): {scan} launching scan of /var/www/ to background, see /usr/local/maldetect/event_log for progress

Jun 24 22:04:32 46038 maldet(18641): {scan} signatures loaded: 11760 (9871 MD5 / 1889 HEX)

Jun 24 22:04:32 46038 maldet(18641): {scan} building file list for /var/www/, this might take awhile…

Jun 24 22:04:32 46038 maldet(18641): {scan} file list completed, found 43517 files…

Jun 24 22:04:32 46038 maldet(18641): {scan} found ClamAV clamscan binary, using as scanner engine…

Jun 24 22:04:32 46038 maldet(18641): {scan} scan of /var/www/ (43517 files) in progress…

Der Cronjob befindet sich hier

cat /etc/cron.d/maldet_pub

Ausgabe:

*/10 * * * * root /usr/local/maldetect/maldet –mkpubpaths >> /dev/null 2>&1

Links:

https://www.howtoforge.com/forums/showthread.php?p=284504

https://www.rfxn.com/projects/linux-malware-detect/

Das könnte dich auch interessieren …