Для начала, давайте разберемся для чего желательна замена серверных баннеров с версией программного обеспечения и как это может повлиять на безопасность в целом.
При удаленном сканировании обьекта на предмет открытых портов, любой более или менее "вменяемый" сканер может рассказать много интересного - что за сервис слушает порт, его версию, для какой операционной системы был собран сервис и с какими модулями.
Вот, что может "поведать" атакующему сканер "nmap" об удаленном хосте:

root# nmap -sV 192.168.0.222
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-bt0 with Suhosin-Patch)
Service Info: Host: local; OS: Linux
root#

Достаточно информативно. При отсуствии уязвимостей обнаруженной версии эту информацию врятли как-то можно раскрутить. А если админ «не успел» залатать «дыры»?
Давайте исправим это положение и поменяем наш баннер по умолчанию, внеся несколько изменений:

sed -i 's/ServerTokens Full/ServerTokens Prod/' /etc/apache2/conf.d/security
sed -i 's/TraceEnable On/TraceEnable Off/' /etc/apache2/conf.d/security
sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf.d/security

Посмотрим теперь, что нам «разболтает» сервер.

root# nmap -sV 192.168.0.222
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
Service Info: Host: local; OS: Linux
root#

Так уже лучше. Все приведенные действия, достаточно просты и не способны навредить системе в случае ошибки. Все что будет описано ниже требует внимания. Так как все изменения будут производится в бинарнике сервера.
Итак, с помощью ntcat подключаемся к 22 порту нашей системы и посмотрим что произойдет.

root# ncat 192.168.0.222 22
SSH-2.0-OpenSSH_5.1p1 Debian-3ubuntu1

Приступим к исправлению, для начала, создав копию sshd, для редактирования.

root# mkdir tmp
root# cd tmp
roo# cp /usr/sbin/sshd

Теперь займемся модификацией.

root# hexedit sshd

Откроется редактор, внизу, в окне можно видеть подсказки для команд. Задействуем поиск, нажав комбинацию клавиш control+w, убедитесь, что выбрано "Search for text string" и нажмите enter. Введите "OpenSSH", после чего опять нажмите enter, вас «перекинет» как раз в ту часть, которую нам нужно изменить.
Вы можете просто изменить участок, который выделен красным на 0. Либо попробовать напечатать, что-то свое, нажав клавишу TAB и введя текст в поле ASCII., но помните — вернуть все назад будет нельзя.

00053FE0 6E 64 2D 6C 69 6E 65 00 4F 70 65 6E 53 53 48 5F nd-line.OpenSSH_
00053FF0 35 2E 31 70 31 20 44 65 62 69 61 6E 2D 33 75 62 5.1p1 Debian-3ub
00054000 75 6E 74 75 31 00 25 73 2C 20 25 73 0A 00 4B 52 untu1.%s, %s..KR

Теперь эта часть должна выглядеть следующим образом.

00053FE0 6E 64 2D 6C 69 6E 65 00 4F 70 65 6E 53 53 48 00 nd-line.OpenSSH.
00053FF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00054000 00 00 00 00 00 00 25 73 2C 20 25 73 0A 00 4B 52 ......%s, %s..KR

По завершении редактирования, нажмите control+x для сохранения результата, и попробуйте запустить наш бинарник(не забудьте указать полный путь к исполняемому файлу).

root@ph33r:~/tmp# /root/tmp/sshd
root@ph33r:~/tmp# ncat localhost 22
SSH-2.0-OpenSSH

Убедитесь, что можете безпроблемно подключиться, в случае успеха заменяем оригинальный файл, нашим.

killall sshd
rm /usr/sbin/sshd
mv /root/tmp/sshd /usr/sbin/

Источник: forums.remote-exploit.org