Показать сообщение отдельно
Старый 19.06.2012, 22:50   #7
Specialist
 
Регистрация: 13.06.2012
Сообщений: 25
Репутация: 20
По умолчанию

Цитата:
для затруднения эксплуатация NULL pointer dereference минимальный адрес по умолчанию 4096 или выше
- оно как бы не затрудняет, а вообще ликвидирует данный вид атак. Этот NULL ptr dereference на новых ядрах многие пытаются безуспешно обойти.

SynQ, респект за статью (узнал кое-что новое) и за kleak , но есть такая простая штука, как
gdb vmlinuz-3.3.0 /proc/kcore. Это дамп памяти ядра в реальном времени, который можно только читать.
А если ядро собрано с дебагом, можно очень даже легко изучать структуры/ф-ции по названиям без ковыряния в System.map.
Если честно, я сам много велосипедов писал для той же работы с шеллкодами, потом оказалось, что почти всё можно сделать стандартными средствами

А ещё, только щас подумал, не проще ли добавить строчку в /etc/passwd через filp_open, вместо того чтобы искать task_struct.
Ещё по идее можно на баш повесить суид бит. Сделать это можно, вызвав syscall (OMG) из кернел спейса. Пример (не проверял):
http://stackoverflow.com/questions/1348358/changing-file-permissions-in-kernel. Как будет время обязательно сделаю тест.

p.s. А task_struct кстати реально классная штука, с помощью неё например можно узнать адреса и даже в текущий терминал писать, очень удобно для отладки модулей и работы с руткитами.

Последний раз редактировалось Specialist; 19.06.2012 в 23:23.. Причина: кое-что добавил
Specialist вне форума   Ответить с цитированием