Использование Файлов Тем В Эксплуатации Windows
Оглавление
Общая информация
Файлы тем (.theme) предназначены для изменения внешнего вида вашей машины. Файлы тем имеют формат ini/inf, где файл представляет собой список разделов и свойств. Например, есть строка темы который вы можете использовать в этом файле. В этом разделе вы можете установить отображаемое имя для темы а также фон для входа. Пример раздела темы выглядит следующим образом:
[Theme]
; Windows 7 - IDS_THEME_DISPLAYNAME_AERO - Комментарии начинаются с точки с запятой
DisplayName=@%SystemRoot%\System32\themeui.dll,-2013
SetLogonBackground=0
Примеры
Список вещей которые вы можете установить с помощью файла темы довольно обширен. Вот еще пример файла темы:
; Copyright © Microsoft Corp.
[Theme]
; Windows 7 - IDS_THEME_DISPLAYNAME_AERO
;DisplayName=@%SystemRoot%\System32\themeui.dll,-2013
DisplayName=@%SystemRoot%\System32\test.dll,-2013
SetLogonBackground=0
; Computer - SHIDI_SERVER
[CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon]
DefaultValue=%SystemRoot%\System32\imageres.dll,-109
; UsersFiles - SHIDI_USERFILES
[CLSID\{59031A47-3F72-44A7-89C5-5595FE6B30EE}\DefaultIcon]
DefaultValue=%SystemRoot%\System32\imageres.dll,-123
; Network - SHIDI_MYNETWORK
[CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\DefaultIcon]
DefaultValue=%SystemRoot%\System32\imageres.dll,-25
; Recycle Bin - SHIDI_RECYCLERFULL SHIDI_RECYCLER
[CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon]
Full=%SystemRoot%\System32\imageres.dll,-54
Empty=%SystemRoot%\System32\imageres.dll,-55
[Control Panel\Cursors]
AppStarting=%SystemRoot%\cursors\aero_working.ani
Arrow=%SystemRoot%\cursors\aero_arrow.cur
Crosshair=
Hand=%SystemRoot%\cursors\aero_link.cur
Help=%SystemRoot%\cursors\aero_helpsel.cur
IBeam=
No=%SystemRoot%\cursors\aero_unavail.cur
NWPen=%SystemRoot%\cursors\aero_pen.cur
SizeAll=%SystemRoot%\cursors\aero_move.cur
SizeNESW=%SystemRoot%\cursors\aero_nesw.cur
SizeNS=%SystemRoot%\cursors\aero_ns.cur
SizeNWSE=%SystemRoot%\cursors\aero_nwse.cur
SizeWE=%SystemRoot%\cursors\aero_ew.cur
UpArrow=%SystemRoot%\cursors\aero_up.cur
Wait=%SystemRoot%\cursors\aero_busy.ani
DefaultValue=Windows Aero
DefaultValue.MUI=@main.cpl,-1020
[Control Panel\Desktop]
Wallpaper=%SystemRoot%\web\wallpaper\Windows\img0.jpg
TileWallpaper=0
WallpaperStyle=10
Pattern=
[VisualStyles]
Path=%ResourceDir%\Themes\Aero\mytheme.msstyles
ColorStyle=NormalColor
Size=NormalSize
ColorizationColor=0x6B74B8FC
Transparency=1
[boot]
SCRNSAVE.EXE=
[MasterThemeSelector]
MTSM=DABJDKT
[Sounds]
; IDS_SCHEME_DEFAULT
SchemeName=@%SystemRoot%\System32\mmres.dll,-800
Один из интересных разделов в файле темы - [Slideshow]. Часть слайд-шоу темы позволяет выбирать файлы которые используются в значке файла. Он используется для других вещей, но самая интересное в том что первые три строки списка используются в качестве значков файла темы. Таким образом, в тех случаях когда ваш вектор выполнения кода использует обработку значков/предварительный просмотр файлов (файлы ссылок, файлы шрифтов), файл темы может позволить вам указать до трех других файлов, и обработать их из одного.
Возьмем пример с тремя шрифтами. Есть три шрифта, потому что один использует только Windows 7 x86, другой использует Windows 7 x64, третий использует Windows XP x86. Обычно, чтобы получить полное покрытие вы должны поместить все три файла шрифтов в каталог. Когда цель переходит в каталог содержащий файлы шрифтов, происходит выполнение. Теперь, допустим, у вас есть еще один из «интересных» файлов Microsoft, таких как desktop.ini или library-ms. Вы можете использовать и другие файлы, для указания что ваш файл темы должен быть значком для чего-либо. Для этого примера предположим, что мы делаем его значком чего-то находящегося в корне диска. Мы разместим систему шрифтов, спрятанную на диске. Когда цель попадает в корень диска и отображается значок, обрабатывается и файл темы. Затем, файл темы, который имеет относительные пути к файлам шрифтов, обрабатывает все три шрифта. Таким образом, вы перешли от необходимости использования трех эксплойтов в каталоге в которую нужно заманить цель, к скрытым файлам сохраняя при этом тот же охват.
Вот пример модифицированного файла темы, который будет отображать 3 шрифта при отображении самого себя.
[Slideshow]
Interval=1800000
Shuffle=1
ImagesRootPath=MyFolder\temp
Item0Path=MyFolder\temp\font1.fon
Item1Path=MyFolder\temp\font2.fon
Item2Path=MyFolder\temp\font3.fon
Интересные характеристики файла темы
Из экспериментов с файлами тем было выяснено, что вызов ShellExecute для файла темы приведет к изменению темы на значение по умолчанию. Это вызывает открытие окна панели управления, если вы его не скрываете.