Доступен out-of-tree 0.2, инструментарий для сборки модулей с разными ядрами Linux
Подготовлен выпуск инструментария out-of-tree 0.2, позволяющего автоматизировать сборку и тестированием модулей ядра или проверку работоспособности эксплоитов с различными версиями ядра Linux. Out-of-tree формирует виртуальное окружение (используется QEMU и Docker) с произвольной версией ядра и выполняет указанные действия по сборке, тестированию и запуску модулей или эксплоитов. Код проекта написан на языке Go и распространяется под лицензией AGPLv3.
Сценарий проверки задается в файле.out-of-tree.toml и может охватывать сразу несколько выпусков ядра (например, можно протестировать работу эксплоита или разрабатываемого модуля с разными версиями ядра).
Пример сценария ".out-of-tree.toml" для выявления версий ядра 4.4.x и 4.8.x, в которых работоспособен определенный эксплоит:
name = "CVE-XXXX-YYYYY exploit" type = "exploit" or "module" for LKM [[supported_kernels]] distro_type = "Ubuntu" distro_release = "16.04" release_mask = "4.4.0-(1|2|3|4)-.*" [[supported_kernels]] distro_type = "Ubuntu" distro_release = "16.04" release_mask = "4.8.0-(1|2|3|4|5|6|7|8|9|10)-.*"
Для сборки ядер для тестирования в каталоге с файлом.out-of-tree.toml следует выполнить:
out-of-tree kernel autogen
Cборка и запуск тестируемого эксплоита или модуля ядра:
out-of-tree pew
Проверка уже собранного эксплоита:
out-of-tree pew --binary some_exploit --test some_exploit_test
Выявления версий ядра, подверженных уязвимости:
out-of-tree pew --guess.