100 бед - 1 ресет
Всех приветствую. Вопрос вот в чем: задали в универе лабу: написать программу под Win для добавления учетных записей в системе и назначения им и группам прав. Как такое реализовывется? Где об этом почитать? Если можно, пример..

p.s. по возможности еще нужно написать руткит для работы программы не с админскими правами.

Комментарии
02.11.2007 в 11:58

Партизанский дуэт
Хья се.

По первому вопросу греби в сторону WinAPI
NetUserAdd()
NetLocalGroupAdd()
NetGroupAdd()

там дальше сориентируешься.

p.s. по возможности еще нужно написать руткит для работы программы не с админскими правами.
Любой обход системы безопастности ранно или поздно закрывается заплатками, поэтому 100% работающей проги ты не сделаешь. Да и нахаляву тебе никто не позволит под простым юзверем творить в системе что взбредет. Тут уже надо полено писать, через него из Ring0 зверствовать.
02.11.2007 в 11:59

Партизанский дуэт
Вообще странно что они создание локального юзверя запхали в Network Management
02.11.2007 в 18:15

100 бед - 1 ресет
Боглен По второму вопросу пока не обязательно (руткит). Оснавная цель лабы - учетные записи и права.
Спасибо, попробую разобраться. Если что еще будет, выкладывайте ;)
02.11.2007 в 23:30

100 бед - 1 ресет
Бональный вопрос. Как добавить созданного пользователя в группу? Какой параметр воткнуть?
03.11.2007 в 00:26

100 бед - 1 ресет
Все, разобрался. Следующий шаг - назначения расширенных прав доступа (к файлам) пользователя.
03.11.2007 в 09:59

Партизанский дуэт
FRikaZOid
теперь сюда.
msdn2.microsoft.com/en-us/library/aa374947.aspx

Гугл иногда твоит чудеса)

03.11.2007 в 22:19

100 бед - 1 ресет
оОу. А я вчера эту ветку msdn'а всю обшарил =). Спасибо..
05.11.2007 в 01:47

100 бед - 1 ресет
Что-то не совсем пойму.. Сделал прогу для добавления пользователей, а их в группы. Для назначения пользователю права к файлу использовал код вот тут:
support.microsoft.com/?scid=kb%3Ben-us%3B102102...
собственно, для разрешения чтения\записи\выполнения использовал константы
GENERIC_READ
GENERIC_WRITE
GENERIC_EXECUTE
GENERIC_ALL

Внимание вопрос: как сделать запрет на то же самое?
Имею в виду те галочки, что на скриншоте..

05.11.2007 в 23:07

100 бед - 1 ресет
Все, сделал пока что следующие проги (Линукс-команды):
useradd
userdel
groupadd
groupdel
chmode

Пока делаю:
chown
cgrp

вопрос вот в чем, можно ли обеспечить работу этих программ не с админскими правами? Своего рода руткит..

Функции использовал: SetNamedSecurityInfo, NetUserAdd, NetGroupAdd и др..
06.11.2007 в 00:16

Партизанский дуэт
по этому вопросу мы с вами в начале говорили.
По сути вы ставите вопрос так:
Можно ли обойти систему безопастности?

Любая прога запущена от имени какого-то пользователя, это либо явные пользователи, либо сныканные, типа SYSTEM и т.п. Под ограниченным пользователем вы не сможете воспользоваться этими апи, вы не сможете заинсталить свой драйвер в систему.
Единственное что вы можете сделать, это в своей проге запросить пароль от определенного админа на машине и юзая его перезапустить свою программу под администратором.
Но для этого в версиях выше NT есть стандартная функция в контекстном меню запуска Run As..
Для решения этой задачи надо иметь квалификацию несравненно выше нашей, притом что даже в таком случае вы не сможете найти стабильного и правильного решения проблемы. Потому что это решение будет выполнено на основе вирусных технологий и будет незаконно)...

Если пишете троянчика, то примите за точку отсчета что он должен запуститься с админскими правами..

06.11.2007 в 02:34

100 бед - 1 ресет
Ок. Ответ абсолютно ясен. Согласен, что знаний моих не хватает). Ну чего хотите? 3 курс.. и такие вот задания..
07.11.2007 в 10:36

Партизанский дуэт
chmode = chmod*
21.11.2007 в 00:26

100 бед - 1 ресет
Так, продолжение темы..

Как достать из файла права владельца файла? (GENERIC_READ, GENERIC_WRITE, GENERIC_EXECUTE).


Делаю сначала так:

GetNamedSecurityInfo(way,SE_FILE_OBJECT,
GROUP_SECURITY_INFORMATION | OWNER_SECURITY_INFORMATION|DACL_SECURITY_INFORMATION,
&pSidName,
&pSidGroup,
&pDacl,
NULL,
&pSD);


Получаю используя pSidName имя владельца. А что дальше?