Показать полную графическую версию : WIN2000!!! ВЗЛОМ!!!!
younghacker
18-11-2003, 20:12
Хлопцы,
тут Lanwolf заикнулся о терминальном сервере.
у меня сейчас такая проблема.
как юзерам TS запретить запускать все кроме некоторых приложений по списку?
Баловаться правами NTFS - бесполезно. Программы очень здорово из сети стартуют. К томуже я напоролся на проблемы наследования прав без возможности запуска. Корневой каталог имеет такие права а дочерний уже на одну соствляющую меньше а третий только права админа и системы. Не думайте что я туплю с птичками наследования... Много раз пробовал.
И так и сяк никак. На третьем уровне пользователь даже каталог созать не может.
Мне кажется чтобы реально заблокировать запуск программ это должен быть какой-то системный сервис отслеживающий
функции createprocess и иже с ней, и контролирующий пути запуска модулей их имена и контрольные суммы.
Микрософт сделала терминальный сервер и не дала админу возможность ограничивать права юзеров на запуск программ?
Не писать же его самому.
Спасибо.
PS:
Я тут всех на бездисковые терминалы сажаю... Насильно.
Юзеры на своих компах свинячили не хочу чтобы терминальники завалили...
А что сложного - я уже Gina переделывал , единственное НО - в gin'e функций <20 , а в kernel32 > 200 (942 для XP SP1)
Так что надо, надо...
Хотя мне сейчас идею подсказали с хуками, придйтся правда эту ловушку от SYSTEM запускать - буду пробовать!
>aistlin писал:
А программа HackAny.exe разрешена?
Общее правило, если клиент, запустив cmd.exe (тут можно подставить любое имя, важен только запуск со своими правами), может напортачить, он напортачит. Например, если у клиента есть право редактировать в HKCR ветки с обработчиками расширений оболочки - он его так отредактирует, что сможет выполнить код от имени вошедшего в систему привилегированного пользователя. А какую программу он использует для редактирования - не ума админа это дело, если такой программы еще нет, то она может быть легко создана и запущена, имя у нее может быть любое.
>
Есть такой ключ:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
Параметр: RestrictRun
Устанавливаешь параметр RestrictRun в 1 для использования.
Определяещь программы которые должны запускаться в ключе[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
далее создаешь новый параметр для каждой программы, например
'1'='c:\windows\notepad.exe'
'2'='c:\program files\msoffice\winword.exe'
...
После этого выполнятся будут те, и только те приложения которые ты укажешь.
Укажешь Word, и ничего кроме Worda на этой машине под этим пользователем работать не будет!!!
Raistlin
25-11-2003, 23:59
Есть такой ключ
Я пользуюсь аналогичным инструментом из групповой политики, хотя, правду сказать, гемору с этим больше, чем толку. Прав пользователей на запись в реестр и на диск (кроме их профилей, естественно) нет.
Хочу пояснить, почему один гемор. Во-первых, постоянно напарываешься на собственные ограничения, когда пытаешься сделать что-нибудь из-под пользователя. Во-вторых, одной из главных целей было запретить пользователям вешать картинки на рабочий стол (из ACDSee, например, можно повесить в обход запрета на запуск апплета :-) Панели управления) и играть в игрушки. Однако хрен там было! Вешают! И, хоть убей, не пойму как. Может, какой инетовский сервис для этого есть?
Сам с этим бился. Ничего не придумал.
Решил проблему кардинально: Удалил с тачек Paint, а ACDC вообще не ставил. Картинки на раб стол кидать стало неоткуда. Но подозреваю тебе такой способ не поможет :)
Raistlin
26-11-2003, 00:45
Paint, хм. Нету у них ни Paint'а, ни ACDSee :-). И вообще ничего нету! А ставят. Голь на выдумки щедра. Ладно... Завтра ещё покопаюсь.
Добавлено:
Не думайте что я туплю с птичками наследования...
По-моему, тупишь-таки :). Подробнее-то не опишешь свою ситуацию? Не понимаю я, как это
Корневой каталог имеет такие права а дочерний уже на одну соствляющую меньше а третий только права админа и системы
Я тоже как то сталкивался с тем, что при изменении прав пользователей во вложенных каталогах творилось черт знает что.
Права или не изменялись, или изменялись только в некоторых папках. *После двух трех попыток выставлялось как надо. Причину так и ненашел.
На счёт рабочего стола.
1. Запрет на чтение desk.cpl
2. удаление Paint
После этого я на рабочих столах картинок не видел. Хотя помоему из IExplorera тоже можно чё хошь на рабочий стол кинуть.
Может у кого есть нормальное решение по этому вопросу?
Raistlin
26-11-2003, 01:43
Хотя помоему из IExplorera тоже можно чё хошь на рабочий стол кинуть
Вот-вот, как раз это завтра я и собирался проверить :)
Запрет на чтение desk.cpl
По-моему, через групповую политику правильнее.
Может у кого есть нормальное решение по этому вопросу?
Запрет на модификацию содержимого HKEY_CURRENT_USER\Control Panel\Desktop. Но я не знаю, есть ли средство сделать это из командной строки. Не руками же...
Добавлено:
если клиент, запустив cmd.exe (тут можно подставить любое имя, важен только запуск со своими правами), может напортачить, он напортачит
По моим наблюдениям, не совсем так: напортачит, если будет портачить с помощью чего-нибудь консольного. А произвольное GUI-приложение ему запустить не удастся.
netcat
Raistlin
Чтоб запретить вешать на рабочий стол картинки, единственный способ это оставить только на чтение эту ветку реестра:
HKEY_CURRENT_USER\Control Panel\Desktop
больше сделать никак не получится, нету у Выни такой возможности...
Все програмки типа: [/b]ACDSee, Paint, IExplorer и прочие[/b] прописуют путь к файлику в этот ключ:
HKEY_CURRENT_USER\Control Panel\Desktop
"Wallpaper"="любое имя файла"
потом просто перезагружают оболочку... причем ACDSee умудряется ставить картинку для многих пользователей (проверено)... *Единственный способ, это взять написать свою програмульку, чтоб она следила за этим ключиком и если вдруг туда, что-то левое написано сразу меняла назад и перезагружала оболочку, думаю после нескольких попыток юзеру надоест долбаться с этим и он перестанет менять обои...
Добавлено:
А вот насчет запуска каких нибудь програм определенных, так во это все бред...
Обьясняю почему:
Во-первых: Допустим у тебя есть множество програм, с которыми работает пользователь, и допустим одна програмулька работает еще с несколькими екзешниками ( ну там ей нужно для своих нужд), так вот задолбаешся описывать все те екзешники которое используются у тебя...
Во-вторых: Берешь переименовуешь любое приложение в разрешеные для запуска приложения, и все... теперь ты можешь запускать сколько хочешь допустим свой "Quake 2", все равно допустим в процесах будет отображаться допустим "winword.exe" (если допустим ты переименовал в такое приложение)
Вообщем это бред... Так что решайте...
Исправлено: J Fox, 9:58 26-11-2003
Raistlin
26-11-2003, 21:57
Единственный способ, это взять написать свою програмульку
Да? А сценарий входа с применением reg-файла вида
HKEY_CURRENT_USER\Control Panel\Desktop
"Wallpaper"=-
не катит?
задолбаешся описывать все те екзешники которое используются у тебя
Один раз поднапрячься -- и всё :-) Если список запускаемых пользователями приложений стабилен, то ничего особо сложного. Просто тут... как бы это выразиться... нужен системный подход, на который никогда не хватает времени, терпения и желания.
Берешь переименовуешь любое приложение в разрешеные для запуска приложения
Это уже само по себе требует некоторых мозгов, которые у пользователей -- редкость. Кроме того, на моих подопечных WXP-станциях пользователь должен будет сначала переписать то, что он хочет переименовать, в свой профиль. Больше нигде безобразничать у него прав нет.
В общем, мой вердикт в отношении этого параметра групповой политики таков -- не то, что хотелось бы, но иногда может быть полезно и необходимо. Например, на сервере терминалов.
younghacker
27-11-2003, 12:01
to: J Fox
>>> А вот насчет запуска каких нибудь програм определенных, так во это все бред...
Это далеко не бред!
Почему в Виндовсе то что давно высрали в Юниксе считается бредом ?
Я сказал же у меня терминальный сервер! Там сидит около 50 бездисковых пользователей, на другом еще столько же... Если какая-то падла запустит какую нибудь HackFuckWindows предприятие встанет до восстановления сервера...
По поводу подмены программы ее переименования рассказываю...
Система когда запускает процесс она знает откуда она это делает! Она знает полный путь к программе! Вот здесь все и должно резаться!
Программа контроля за запуском процессов помнит путь откуда запускается каждая разрешенная программа. А по самим этим путям на NTFS расставлены права допуска. Во-первых никто, кроме админа не может изменить исполняемый код запускаемыъх модулей по этим путям. Во вторых права на просмотр и запуск имеет только некая группа пользователей.
Поэтому замена и переимнование невозможны без взлома NTFS.
В принципе программа контроля за запуском может хранить для верности и CRC или MD5SUM каждого модуля и не давать запускать модуль и вопить о том что CRC изменился.
Тем кто вомущается что проблематично расставить пути на все требуемые модули возражу. Во-первых мне для запуска нужно выдать 1с word excel calc ventafax это не так много. :)
Во-вторых при настройке программа контроля может сканировать все пути которые запрашивает та или иная программа при загрузке своих модулей и подмодулей и добавить их автоматически позволив админу выбрать те которые нужны.
Нашел программу в ResourceKit для Win2000 называется appsec.exe. Запустил проверил - хрен работает! В хелпе написано что должна быть некая appsec.dll и Instappsec.exe на диске их небыло. Да и написана она видимо, как затычка - на скорую руку. Не позволяет контролировать запуск 16 битных приложений.
Кстати там есть та самая функция сканирования :)
Raistlin
По поводу наследования прав я тебе мыло набросаю сейчас...
с парой картинок... Лениво писать все...
Raistlin
27-11-2003, 12:34
Если какая-то падла запустит какую нибудь HackFuckWindows
А откуда, собственно, у падлы права напортить что-то на сервере? Запрети запись в %SystemRoot% и в HKLM, и пусть он хоть десять HackFuckWindows'ов запускает -- ни фига не сможет сделать. Запрет на запуск определённых программ служит не для защиты от взломов.
younghacker
27-11-2003, 13:07
Raistlin
Не нужно быть таким идеалистом... не все чисто особенно у товарища била... Или он не товарищь....
Я как-то запустил внутри своей сетки сканер безопасности :)
Линуксовые сервера отказали в обслуживании но выстояли... А вот виндовые упали в доли секунды и распластались под собственным весом. И заметьте это удаленный
удар... А что можно сделать изнутри (из терминальной сессии)? Есть метод позволяющий использовать подмену дескрипторов безопасности и любой процесс в системе может получить права системы, а также любого * процесса выполняющегося в системе... И никакие защиты на %SYSTEMROOT% не спасут от этого... А дырка эта тянется во всех версиях винды....
Винда порочна по своей структуре. Поэтому чем меньше возможностей у юзеров запустить что либо - тем спокойней админу и руководству.
Raistlin
Да? А сценарий входа с применением reg-файла вида
HKEY_CURRENT_USER\Control Panel\Desktop
"Wallpaper"=-
не катит?
катит то катит... вообщем делай как знаешь...
Один раз поднапрячься -- и всё :-) Если список запускаемых пользователями приложений стабилен, то ничего особо сложного. Просто тут... как бы это выразиться... нужен системный подход, на который никогда не хватает времени, терпения и желания.
Нифига... а если у меня каждый месяц обновления выходят, или там кто нить просит что нить установить для работы... все равно это хрень... еслиб было действительное отслеживание всех путей и прочих модулей програм, то б была хорошая функция выни, а так просто напросто защита от чайников... и все...Это уже само по себе требует некоторых мозгов, которые у пользователей -- редкость.
незнаю как у твоих, но мои до этого додумаются...
younghacker
Система когда запускает процесс она знает откуда она это делает! Она знает полный путь к программе! Вот здесь все и должно резаться!
Программа контроля за запуском процессов помнит путь откуда запускается каждая разрешенная программа.
Да нифига это не реализовано в текущих версиях выни... вот если может сделают новую вынь, то может и реализуют... Единственное что знает вынь щаз, так это название процесса и все... пути откудава этот процесс запускался ее не интересуют... ей просто на них плевать... только один процесс ее волнует...
Во-первых никто, кроме админа не может изменить исполняемый код запускаемыъх модулей по этим путям. Во вторых права на просмотр и запуск имеет только некая группа пользователей.
Поэтому замена и переимнование невозможны без взлома NTFS.
ну да путь не может изменять, но повторюсь выни на путь плевать... а ты представь что прога эта пишет куда нить это в свою папку, на которую должен быть открыт доступ на запись и создание новых файлов??? что тогда??? Ну типа просмотр и запуск может выполнять конкретная группа пользователей... а остальные что просто сидят и вмыкают в монитор???
Тем кто вомущается что проблематично расставить пути на все требуемые модули возражу. Во-первых мне для запуска нужно выдать 1с word excel calc ventafax это не так много.
Во-вторых при настройке программа контроля может сканировать все пути которые запрашивает та или иная программа при загрузке своих модулей и подмодулей и добавить их автоматически позволив админу выбрать те которые нужны.
Ето повезло что у тебя так мало програмок, а если у меня используется для работы около 50 прог, то что тогда??? и у некоторых не по одному екзешнику??? Где ты нашел эту прогу??? дай линку, я хочу посмотреть что она из себя представляет...
Raistlin
27-11-2003, 13:29
А вот виндовые упали в доли секунды
Хочу у себя попробовать! Где взять можно? И, кстати, как насчёт установленных заплаток и SP?
younghacker
27-11-2003, 14:01
J Fox
Стоп-Стоп! Ты что-то заблудился.... С каких это пор винду не интересует откуда запускать прогу? А откуда она будет брать код для запуска? Откуда винда создаст файл проеции чтобы запустить процесс? Какой файл она залочит от изменения и удаления?
Когда вы запускаете самый банальный NOTEPAD происходит примерно следующее:
- CreateFile
- CreateFileMapping
- MapViewOfFileEx
- CreateThread
- Передача управления первичному потоку/нитке.
Винда всегда знает откуда она загрузила процесс! Иначе
как будет работат вся ее виртуальная память ? Процесс стартанул - получи 4 гига. А откуда их она берет если физической памяти всего скажем 512 мег, а запущенных процессов не один десяток? Даже когда программа грузится с дискеты она копируется в файл свопинга и оттуда стартует, чтобы вы после запуска не дернули дискету.
О программе
Яже сказал прогу я нашел на диске в Resource Kit for Win 2000
линк на физический диск дать не могу :)
могу выслать ресурс кит мылом... 376 мег... можно попробовать упаковать. Но я повторяю что программа у меня не пошла - запускается но ничего не ограничевает. В хелпе описаны еще два файла которых нет на диске с ресурскитом... :( Нужно посмотреть ресурс кит для 2003 сервака - некогда выбраться съездить за ним. Там должен быть какой нибудь системный сервис который будет контролировать создание процессов.
Raistlin
Систему я сканировал чем-то уже не помню... год назад было
сервис паки стояли... поищи в интернете сканеры безопасности.
Последннее что у меня было это XSpider 6.5 (могу выслать), а также подпишись на рассылку http://www.uinc.ru/ и http://www.bugtraq.ru/. Там часто хотяд эксплойты на свежие и поросшие мхом дырочки и проломы... Так часто, что что другим заниматься некогда... Если бы так патчи от микрософта ходили....
Raistlin
10-12-2003, 00:58
Да? А сценарий входа с применением reg-файла вида
HKEY_CURRENT_USER\Control Panel\Desktop
"Wallpaper"=-
не катит?
Автоцитата :) Не катит, как оказалось. Windows умная -- видит, что со времени последнего применения политики к текущему профилю та не менялась, и не применяет её снова. Т. е. reg-файл выполняется отнюдь не при каждом входе в систему, а при самом первом после изменения соответствующей политики. Так что тут надо чуть хитрее действовать. Например, убивать этот параметр реестра с помощью nnCron -- кстати, можно делать это каждую минуту, чтобы у пользователя быстрее желание вешать картинку отбилось :).
Вот что интересно: вхожу под пользователем, у которого картинка, запускаю gpupdate (под WXP) -- картинка сразу исчезает. Хотя, по идее, сценарий применятся в этом случае не должен (потому как если пишу gpupdate /force, то заявляет, что для полного выполнения команды нужен перелогон).
vasketsov
10-12-2003, 10:11
younghacker
Винда всегда знает откуда она загрузила процесс
Можно руками создать объект потока, процесса и секции, напихать в них код (так как уже имеется процесс, то у него есть ВАП, более того, это достаточно для того, чтобы у процесса было ВАП) и запустить на выполнение. Будет процесс без файла.
А организация ВАП никакого отношения к бинарному коду не имеет, и все это вместе никакого отношения к рассматриваемой теме тоже не имеет.
Ключик
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
Работает только для explorer, возможно, для запусков через shell32.dll (ShellExecute(Ex)), но сам посуди, зачем мне при запуске программы из своей проги проверять его наличие и что там имеется? Короче, после того, как управление передается в CreateProcess(Ex), никакие RestrictRun уже не проверяются.
Есть метод позволяющий использовать подмену дескрипторов безопасности и любой процесс в системе может получить права системы
Для пользователей, имеющих привилегии отладки. По-умолчанию ее имеют только администраторы. Либо это давно закрытая дырка с подсистемой отладки. Либо кидай мне в мыло код/программу, погляжу что там не того.
Даже когда программа грузится с дискеты она копируется в файл свопинга и оттуда стартует
То есть, если у меня pagefile.sys размером 512мб, то экзешек больше чем на 512 мб мне не запустить, надо увеличить файл подкачки? Что за бред Вы пишете? На самом деле, никто никуда не копируется (потому что как раз, если прога полностью скопировалась - пожалуйста, доставай дискету), а неявно все объекты Session, используемые при создании процессов (если без извратов), добавляются к подкачиваемому пулу памяти.
Да в общем-то, J Fox полностью прав насчет того, что RestrictRun реально только для полных чайников годится.
Raistlin
Запрети запись в %SystemRoot% и в HKLM, и пусть он хоть десять HackFuckWindows'ов запускает -- ни фига не сможет сделать
Ну, не все так хорошо.
Предположим, для определенного расширения файла имеется его обработчик (DLL). Предположение вполне реальное, в рабочей системе их не одна сотня наберется. Запись о нем в HKCR, который, как мы знаем, всего лишь подраздел в HKLM. Но при этом сама библиотека может находится где-нибуть не в %SystemRoot%, и ее злоумышленник может подменить. Потому защиты установкой уровня доступа должны реализовываться не выборочным запретом, а выборочным разрешением (например, только на U:\PupkinVasya).
Да, кстати,
HKEY_CURRENT_USER\Control Panel\Desktop
"Wallpaper"
не есть политика безопасности, это обычный ключик, если его менять в скрипте или из программы - системе одно и то же.
Вот, например, что выдается при поиске по слову WallPaper на сайте registry.oszone.net
http://www.registry.oszone.net/cgi-bin/search.cgi?srcht=wallpaper&srcha=on&srchwf=on&srchwb=on&srchwk=on&srchwp=on&srchwd=on&srchwv=on&srch s=on&srchwt=on
Вам в первую часть :)
younghacker
10-12-2003, 15:50
vasketsov
Можно руками создать объект потока, процесса и секции, напихать в них код (так как уже имеется процесс, то у него есть ВАП, более того, это достаточно для того, чтобы у процесса было ВАП) и запустить на выполнение. Будет процесс без файла.
А вот это уже очень интересно поскольку позволяет сделать давно мучавшую виндовс программеров задачу, написать программу которая сама себя удаляет или модифицирует. Без всяких изголов с командными файлами
Где об этом можно почитать детальнее ?
То есть, если у меня pagefile.sys размером 512мб, то экзешек больше чем на 512 мб мне не запустить, надо увеличить файл подкачки? Что за бред Вы пишете?
Вы невнимательно прочитали мое сообщение или я не совсем однозначно пояснил. В свап файл копируется, или копировалось (не знаю точно как сейчас обстоит дело в win2k и xp) исполняемый файл с дискеты! И только с дискеты! Для того чтобы создать файл отображение для процесса.
про AppSec.exe я сразу понял что это липа. Грустно что микрософт выпуская терминальник подставляет админа
оставив пользователям бреши и дыры через которые можно хоть сервер завалить хоть получить конфиденциальную инфу других пользователей...
Собственно вопрос который меня сейчас мучает больше других - не дать юзерам терминальника завалить сам теминальник.
Спасибо.
Raistlin
10-12-2003, 16:12
Потому защиты установкой уровня доступа должны реализовываться не выборочным запретом, а выборочным разрешением (например, только на U:\PupkinVasya)
У меня на клиентах так и есть. Запись разрешена исключительно в профиль пользователя.
Да, кстати,
HKEY_CURRENT_USER\Control Panel\Desktop
"Wallpaper"
не есть политика безопасности
А я разве писал, что это политика безопасности? :)
Вот, например, что выдается при поиске по слову WallPaper на сайте registry.oszone.net
Вам в первую часть
Не помогает. Добавил я параметр NoChangingWallpaper в реестр, а из IE всё равно можно поставить картинку на Рабочий стол.
Исправлено: Sergius, 22:16 10-12-2003
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.