RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
loggin into system.. USER ftp 331 Guest login ok, send your complete e-mail address as password. PASS 230-Next time please use your e-mail address as your password 230- for example: joe@localhost.localdomain 230 Guest login ok, access restrictions apply. STEP 2 : Skipping, magic number already exists: [87,01:03,02:01,01:02,04] STEP 3 : Checking if we can reach our return address by format string STEP 4 : Ptr address test: 0xbfffb028 (if it is not 0xbfffb028 ^C me now) STEP 5 : Sending code.. this will take about 10 seconds. Press ^ to leave shell Linux some.server 2.2.15 #1 SMP Tue Mar 7 5:07:30 EST 1998 i586 unknown uid=0(root) gid=0(root) egid=50(ftp) groups=50(ftp)
=) гы гы гы А ведь можно было этого избежать ... Для этого было несколько способов. Например сменить ftp демон на другой. Но вдруг если по каким либо непонятным причинам вы этого сделать не можете есть другой способ, не такой надежный как первый конечно, но ...
В данном примере взлом сервера был совершен через дырявый ftp демон. Как видно из примера о нем я узнал просто зателнетившись на его порт. Демон сам сказал что он дырявый и все! А ведь можно сделать так чтобы он этого не говорил или еще лучше говорил что нибудь другое -) Например выдавал себя за тотже ftp демон, но другой версии. Как это сделать будет написано ниже. Если даже вы хороший админ, то все равно это непомешает сделать.
1) wu-ftpd
Рапаковываем архив, ползем в src. Там есть скрипт newvers.sh. Если в него заглянуть то можно увидеть итересную строку: printf "char version[] = "Version wu-2.6.1(%d) ", edit > "vers.c"; Как видно она создает файл vers.c которого нет до компиляции и записывает туда версию демона. Теперь осталось только отредактировать его и собрать демон как обычно.
[ser@r00t ser]# telnet 127.0.0.1 21 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 localhost FTP server (Version wu-6.6.6(1) Mon Feb 5 02:43:44 MSK 2001) ready.
Все описанное проделовалось мною с wuftpd-2.6.1
2) sendmail
После распаковки архива лезем в директорию sendmail, где находяться основные файлы с исходными текстами, среди
которых есть version.c Думаю как и что в нем менять рассказывать не надо. Но это еще не все. После компиляции необходимо отредактировать также ваш sendmail.cf Для этого нужно найти в нем строку с его настроящей версией (поиском) и заменить на свою.
Было сделанно на sendmail-8.11.0
[root@r00t ser]# telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 localhost ESMTP Sendmail 6.6.6/6.6.6; Mon, 5 Feb 2001 02:57:17 +0300
3) sshd
Тут все просто. Меняем файл version.h и все.
[root@r00t ser]# telnet 127.0.0.1 22 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. SSH-1.5-6.6.6
4) qpopper
Информация о версии этого демона находиться в файле popper/version.h Меняем, собираем ...
[root@r00t ser]# telnet 127.0.0.1 110 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. +OK QPOP (version 6.6.6) at r00t.net starting.
...нехорошо, всетаки извесно что это именно QPOP. Чтобы поменять и это придеться лезть в сам popper/popper.c. Ищем там строку:
"QPOP%.*s%s (version %s) at %s starting. %s"
Меняем ее на "best pop3 server%.*s%s (version %s) at %s starting. %s"
[root@r00t ser]# telnet 127.0.0.1 110 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. +OK bestpop3 server (version 6.6.6) at r00t.net starting.