HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #3  
Старый 22.10.2010, 19:05
Delivery Man
Новичок
Регистрация: 02.07.2010
Сообщений: 0
С нами: 8348726

Репутация: 0
По умолчанию

------[ 4.- BIOS32 (Прямая инфекция ядра)

Теперь у тебя есть BIOS руткит, который выполняется в BIOS. Но находясь в BIOS, он просто сосет с точки зрения атакующего. В идеале нам нужен контроль над ядром операционной системы. Вот почему ты должен аплоаднуть шеллкод на жесткий диск или сделать SMBIOS-руткит. Но что делать, если жесткий диск зашифрован? Или если машина не имеет жесткого диска и грузится по сети? Не ссы, потому что этот раздел именно для таких случаев. Есть заблуждение, что BIOS не используется после загрузки. Это неправда. ОС обращается к BIOS по многим причинам, как, например, установка видеорежимов (Int 10h) или вызов BIOS-32. Что такое BIOS32? Используя поиск Google, мы пришли к выводу, что это скрытая служба BIOS, которая предоставляет информацию о других сервисах BIOS современным 32-разрядным операционным системам. Вы можете обратиться к [BIOS32SDP] для получения более детальной информации. Важно то, что многие операционные системы обращаются к нему. И единственным требованием, чтобы подменить службу BIOS32, является то, что Вам необходимо сделать заголовок BIOS32 где-то от E000:0000 до F000:FFFF области памяти. Структура заголовка:

Код:
Offset	Bytes	Description
0	4	Signature "_32_"
4	4	Entry point for the BIOS32 Service (here you put a pointer
		to your stuff)
8	1	Revision level, put 0
9	1	Length of the BIOS32 Headers in paragraphs (put 1)
10	1	8-bit Checksum. Security FTW!
11	5	Reserved, put 0s.
Это шаблон для всех сервисов BIOS. Чтобы найти и выполнить сервис, нужно выполнить шаблонный поиск по контрольной сумме, а затем он просто переходит на функцию, которая является своего рода диспетчером. Такое поведение присутствует в различных BIOS функциях, такие как Plug и Play ($PnP), Post Memory Manager ($PMM), BIOS32 (_32_) и т. д. В то время, когда система была разработана, безопасность не учитывалась, поэтому мы можем использовать это преимущество и вставить наши собственные заголовки (мы можем даже использовать option-ROM, без изменения системы BIOS), ну и ОС, в конечном счете, всегда доверяет BIOS. Вот как Linux 2.6.27 находит и вызывает эту услугу на этапе ядра:

[CODE]
arch/x86/pci/pcibios.c,check_pcibios()
...
if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
pci_indirect.address = pcibios_entry + PAGE_OFFSET;

local_irq_save(flags);
__asm__(
"lcall *(%%edi); cld\n\t"
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.