На прошедшем 25 апреля контесте было замечено странное поведение vulnbox'a - глючил tcpdump, а также иногда на консоль валилось что-то типа
BUG: scheduling while atomic: swapper/0/0x10000100
В списке сервисов было нечто под именем GPLv4, которое, к сожалению, мы обнаружили только на следующий день после окончания соревнований: Антон заметил в логе трафика подозрительную UDP-активность - пакеты на произвольные порты, и, что самое забавное, ответы на них от vulnbox.
Как оказалось, это был модуль ядра m.ko, реализующий сетевой фильтр для UDP-трафика. Дизассемблер подсказал, что он принимает команды G (get), P (put), L (list) и хранит флаги в /proc/flags/. UDP-сообщения шифруются инструкцией XOR с ключом 'THINKPAD' первые 8 байт сообщения, следующие 8 байт - XOR с предыдущими 8 байтами этого же сообщения.
Чтобы получить список файлов с флагами, достаточно послать зашифрованную команду 'L', а затем сделать Gfile_name элементам полученного списка файлов.
Также в основной функции-фильтре есть утечка памяти под размер данных UDP-пакета. Вероятно, возможен DOS.
POC прилагается.
Круто! Что же вы так поздно?
Так других сервисов хватало, нас было катастрофически мало :))
В общем, это лучший адвайзори с эксплойтом!
Это и самое интересное задание, на мой взгляд.