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.

