Automatisierte Vulnerability Scanns durch patchen der server-software vermeiden

Alle public internet  server sind pausenlos automatisierten Vulnerability Scanns ausgesetzt.

Die meisten automatisierten Scanner suchen gezielt nach bestimmter Server-Software & Versions-Nummer weil sie dafür einen Exploit haben.

Man kann die meisten automatisierten Scanner täuschen wenn man den Server-Software Namen und/oder die Versions-Nummer entfernt.

Es ist aber bei den meisten Server-Software Paketen nicht vorgesehen den Server-Software Namen zu ändern.

Wenn es bei einem Server-Software Paket nicht vorgesehen ist den Server-Software Namen zu ändern, bleiben einem nur die Möglichkeit den Sourcecode zu patchen und das Server-Software Paket neu zu compilieren (aufwendig) oder das Server-Software Paket Binary zu patchen.

Hier ist eine bequeme und zuverlässige Methode Server-Software Paket Binarys zu patchen:

Benötigte Software: Swiss File Knife http://sourceforge.net/projects/swissfileknife/
(nach /root/bin/sfk kopieren)

Beispiel für Apache2:

#/bin/sh
#
echo
echo "patching server-software"
echo "========================"
if ! [ -x /root/bin/sfk ] ; then
    echo "/root/bin/sfk fehlt"
    exit 1
fi
if [ -e /usr/sbin/apache2 ] ; then
    echo "--------------------------------------------------------------------------"
    echo "'Apache' to 'httpsd'"
    # searchstring : $00 Apache $00 Apache/2.2 $00
    # replacestring: $00 httpds $00 Apache/2.2 $00
    BINSUCH="00417061636865004170616368652F322E3200"
    BINREPL="00687474707364004170616368652F322E3200"
    /root/bin/sfk rep /usr/sbin/apache2 -nodump -quiet -bin /$BINSUCH/$BINREPL/ >/dev/null
    if [ $? -eq 1 ] ; then
       /etc/init.d/apache2 stop ; killall -9 apache2 >/dev/null 2>&1
       cp -a -L /usr/sbin/apache2 /root/apache2.bak
       /root/bin/sfk rep /usr/sbin/apache2 -dump -wide -bin /$BINSUCH/$BINREPL/ -yes
       /etc/init.d/apache2 start
    else
       echo " is already patched"
    fi
fi

Beispiel für OpenSSH: (vorsicht, das funktioniert nicht wenn man über ssh eingeloggt ist)

#/bin/sh
#
echo
echo "patching server-software"
echo "========================"
if ! [ -x /root/bin/sfk ] ; then
    echo "/root/bin/sfk fehlt"
    exit 1
fi
if [ -e /usr/sbin/sshd ] ; then
    echo "--------------------------------------------------------------------------"
    echo "'SSH-2.0-OpenSSH_5.' to 'SSH-2.0-OpenSSH  '"
    # searchstring : "0command-line0SSH-2.0-OpenSSH_5."
    # replacestring: "0command-line0SSH-2.0-OpenSSH0  "
    BINSUCH="00636F6D6D616E642D6C696E65004F70656E5353485F352E"
    BINREPL="00636F6D6D616E642D6C696E65004F70656E535348002020"
    /root/bin/sfk rep /usr/sbin/sshd -nodump -quiet -bin /$BINSUCH/$BINREPL/ >/dev/null
    if [ $? -eq 1 ] ; then
        /etc/init.d/ssh stop ; killall -9 sshd >/dev/null 2>&1
        cp -a -L /usr/sbin/sshd /root/sshd.bak
        /root/bin/sfk rep /usr/sbin/sshd -dump -wide -bin /$BINSUCH/$BINREPL/ -yes
        /etc/init.d/ssh start
    else
        echo " is already patched"
    fi
fi

Die scripts sind natürlich nach jedem Update aufzurufen.

Das könnte Dich auch interessieren …