Читаем Защита от хакеров корпоративных сетей полностью

После вызова execve начинается обычный процесс загрузки: распределение памяти и т. д. Отметим свидетельствующий об ошибке код возврата, равный —1, при попытке открыть /etc/ld.so.preload. Ошибка поясняется диагностическим сообщением об отсутствии файла или директории. Действительно, такого файла нет. Из примера ясно, что если вместо файла указать параметры так, как это указано в примере open, execve самостоятельно найдет файл. Это было бы полезно для последующих действий привилегированного пользователя. Но для этого нужно поместить новый файл в директорию /etc, в которой запрещено что-либо делать до тех пор, пока кто-нибудь не откорректирует файл системных разрешений. В большинстве Unix-систем право записи в директорию /etc имеет только пользователь, получивший привилегированные права «root» тем или иным способом. Это еще одна причина, по которой обычные пользователи не могут писать в /etc. Если задаться целью спрятать Троянского коня, то лучшего места не найти (после того как будут получены права привилегированного пользователя root).

open(“/etc/ld.so.cache”, O_RDONLY) = 4

fstat(4, {st_mode=S_IFREG|0644, st_size=12431, ...}) = 0

old_mmap(NULL, 12431, PROT_READ, MAP_PRIVATE, 4, 0) =

0x40015000

close(4) = 0

open(“/lib/libc.so.6”, O_RDONLY) = 4

fstat(4, {st_mode=S_IFREG|0755, st_size=4101324, ...}) = 0

read(4,

“\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\210\212”...,

4096) = 4096

Прочитаны первые 4 Кб библиотеки libc. Libc – это стандартная библиотека коллективного доступа, в которой расположены функции, вызываемые из программ на языке C (такие как printf, scanf и т. д.).

old_mmap(NULL, 1001564, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4,

0) = 0x40019000

mprotect(0x40106000, 30812, PROT_NONE) = 0

old_mmap(0x40106000, 16384, PROT_READ|PROT_WRITE,

MAP_PRIVATE|MAP_FIXED, 4, 0xec000) = 0x40106000

old_mmap(0x4010a000, 14428, PROT_READ|PROT_WRITE,

MAP_PRIVATE|MAP_FIXED| MAP_ANONYMOUS, -1, 0)

= 0x4010a000

close(4) = 0

mprotect(0x40019000, 970752, PROT_READ|PROT_WRITE) = 0

mprotect(0x40019000, 970752, PROT_READ|PROT_EXEC) = 0

munmap(0x40015000, 12431) = 0

personality(PER_LINUX) = 0

getpid() = 9271

brk(0) = 0x804b160

brk(0x804b198) = 0x804b198

brk(0x804c000) = 0x804c000

open(“/usr/share/locale/locale.alias”, O_RDONLY) = 4

fstat64(0x4, 0xbfffb79c) = -1 ENOSYS (Function not

implemented)

fstat(4, {st_mode=S_IFREG|0644, st_size=2265, ...}) = 0

old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,

MAP_PRIVATE|MAP_ANONYMOUS, – 1, 0) = 0x40015000

read(4, “# Locale name alias data base.\n#”..., 4096) = 2265

read(4, “”, 4096) = 0

close(4) = 0

munmap(0x40015000, 4096) = 0

Если в программе встречается вызов функции setlocale, то libc читает локализованную информацию (информацию о местной специфике) для определения формата отображения чисел, даты, времени и т. д. Напомним, что хотя стандартные разрешения не позволяют модифицировать файлы локализации непривилегированным пользователям, но их достаточно для чтения этих файлов. Добавим, что разрешения файлов обычно печатаются при выводе информации о каждом вызове fstat (например, в приведенном примере 0644). Это позволяет легко визуально отследить неверные разрешения. Если ищется файл локализации, в который предполагается записать информацию, будьте осторожны, чтобы при записи не получить ошибки переполнения буфера. Третий (косвенный) параметр в списке входных параметров – файлы локализации.

Перейти на страницу:

Похожие книги

Цифровой журнал «Компьютерра» № 29
Цифровой журнал «Компьютерра» № 29

ОглавлениеБольшие новостиВиноватого в проблемах iPhone 4 уволили из Apple Автор: Михаил КарповВ Microsoft работают над новой мобильной ОС? Автор: Михаил КарповSkype проведёт первичное размещение акций на бирже Автор: Михаил КарповGoogle закупает беспилотники Автор: Юрий ИльинБилл Гейтс похоронил университеты Автор: Михаил КарповКосмические пираты уничтожили 1295 долларов Автор: Михаил КарповGoogle сговорился с телекомами Автор: Михаил КарповПолиция провела обыск корейского офиса Google Автор: Михаил КарповMicrosoft призывает не переходить на Mac Автор: Михаил КарповПланшет HP на основе WebOS появится в начале 2011 года Автор: Михаил КарповZeus: вирус, который грабит банки Автор: Юрий ИльинКак спасти Microsoft Автор: Андрей ПисьменныйОснователь 4chan рассказал суду о троллях и ньюфагах Автор: Михаил КарповПорностудия судится с пиратами Автор: Михаил КарповLenovo: четыре туза и джокер Автор: Юрий ИльинЧто Apple покажет на конференции в сентябре? Автор: Михаил КарповНа Android сделают телефон-игровую приставку Автор: Михаил КарповOracle атаковал Google и Android Автор: Юрий ИльинКому достанутся дополнительные частоты LTE Автор: Максим БукинТерралабПромзона: Гибридный велосипед Автор: Николай МаслухинСофт: Как настроить модем 3G в Ubuntu Автор: Крестников ЕвгенийПромзона: Походный фильтр для воды Автор: Николай МаслухинСофт: Как устранить эффект красных глаз в Pixelmator Автор: Скрылина СофьяПромзона: Энергетический фонтан Автор: Николай МаслухинСофт: Превращаем Firefox в удобный инструмент Автор: Роман БобылевПромзона: Сенсорный торговый автомат из Японии Автор: Николай МаслухинRaskin — попытка реализации масштабирующегося интерфейса Автор: Андрей ПисьменныйПромзона: Телефон с двумя экранами Автор: Николай МаслухинСофт: Как найти звезду с помощью Android Автор: Николай МаслухинСвоя играВасилий Щепетнёв: Эра Старика Прохазки Автор: Василий ЩепетневКафедра Ваннаха: Требуется военная клиометрия Автор: Ваннах МихаилКивино гнездо: В постели со шпионами Автор: Берд КивиВасилий Щепетнёв: Планы на будущее Автор: Василий ЩепетневКафедра Ваннаха: Свёртка реки Хроноса Автор: Ваннах МихаилИнтерактивАндрей Терехов (РУССОФТ) о русском аутсорсинге Автор: Ирина МатюшонокАналитик Михаил Елашкин о конфликте Oracle и Google Автор: Крестников ЕвгенийReaDitorialТехномир – новая мутация цивилизации Автор: Алексей СысоевИдентификация, абстрагирование, смысл Автор: Юрий ГуськовГолубятня-ОнлайнГолубятня: Интерактив №5 Автор: Сергей ГолубицкийГолубятня: Абсолютная власть Автор: Сергей ГолубицкийГолубятня: 20 килобайтиков Автор: Сергей Голубицкий

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература