Для начала, давайте разберемся для чего желательна замена серверных баннеров с версией программного обеспечения и как это может повлиять на безопасность в целом.
При удаленном сканировании обьекта на предмет открытых портов, любой более или менее "вменяемый" сканер может рассказать много интересного - что за сервис слушает порт, его версию, для какой операционной системы был собран сервис и с какими модулями.
Вот, что может "поведать" атакующему сканер "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/
Источник:
Оставить комментарий или два