Приватные нэймспейсы

Тема в разделе "WASM.WIN32", создана пользователем superakira, 18 янв 2018.

  1. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    242
    Есть вопрос по приватным нейспэйсам.
    Это те которые создаются через CreatePrivateNamespace.
    Формат {string}/{string}
    1. Я не вижу их в WinObj, те я его создал и открыл и записал в объект, но вот не вижу.
    2. Создаю в обычном процессе - все норм, но вот в EPM процессе не могу открыть в тоже время. В ACL вешаю доступ всем приложениям при создании.

    Заранее спасибо.
     
  2. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    215
    Адрес:
    Russian Federation
    1. Нандл от CreatePrivateNamespace проверьте в LOCALKD, используя !handle и !obj. Где вы ищете их в WinObj (в каком директории?)
    2. Что такое EPM процесс? Кроме записи ACL, есть правила PPL.
     
  3. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    242
    comrade, п2 - это Enhanced protected mode. Для примера эдге.
    что за ppl правила?
    хэндлы потыкаю thnx, не подумал так посмотреть
     
  4. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    242
    comrade,
    По итогу странный результат
    Код (Text):
    1.  
    2. 32.kd> !handle eax f
    3.  
    4. PROCESS ffffb78c5932d800
    5.     SessionId: 1  Cid: 1d5c    Peb: 00ab8000  ParentCid: 11b8
    6.     DirBase: 4a782000  ObjectTable: ffffca8863652700  HandleCount: <Data Not Accessible>
    7.     Image:---.exe
    8.  
    9. Handle Error reading handle count.
    10.  
    11. 01d8: Object: ffffca8870a05060  GrantedAccess: 000f000f (Protected) (Inherit) Entry: ffffca8862f22760
    12. Object: ffffca8870a05060  Type: (ffffb78c55a5d9d0) Directory
    13.     ObjectHeader: ffffca8870a05030 (new version)
    14.         HandleCount: 1  PointerCount: 2
    15.  
    16.         Hash Address          Type                      Name
    17.         ---- -------          ----                      ----
    18.  
    19. 32.kd> dt nt!_OBJECT_HEADER ffffca8870a05030
    20.   +0x000 PointerCount  : 0n2
    21.   +0x008 HandleCount  : 0n1
    22.   +0x008 NextToFree  : 0x00000000`00000001 Void
    23.   +0x010 Lock  : _EX_PUSH_LOCK
    24.   +0x018 TypeIndex  : 0x76 'v'
    25.   +0x019 TraceFlags  : 0 ''
    26.   +0x019 DbgRefTrace  : 0y0
    27.   +0x019 DbgTracePermanent : 0y0
    28.   +0x01a InfoMask  : 0x8 ''
    29.   +0x01b Flags  : 0 ''
    30.   +0x01b NewObject  : 0y0
    31.   +0x01b KernelObject  : 0y0
    32.   +0x01b KernelOnlyAccess : 0y0
    33.   +0x01b ExclusiveObject  : 0y0
    34.   +0x01b PermanentObject  : 0y0
    35.   +0x01b DefaultSecurityQuota : 0y0
    36.   +0x01b SingleHandleEntry : 0y0
    37.   +0x01b DeletedInline  : 0y0
    38.   +0x01c Reserved  : 0x6c006a
    39.   +0x020 ObjectCreateInfo : 0xffffb78c`5831e100 _OBJECT_CREATE_INFORMATION
    40.   +0x020 QuotaBlockCharged : 0xffffb78c`5831e100 Void
    41.   +0x028 SecurityDescriptor : 0xffffca88`634aeacd Void
    42.   +0x030 Body  : _QUAD
    43. 2.kd> !sd 0xffffca88634aeacd
    44. 1100000001001c00: Unable to get MIN SID header
    45. 1100000001001c00: Unable to read in Owner in SD
    46.  
    Собственно wtf в конце-то??? Это 10

    Это смотрится хэндл при создании

    Код (Text):
    1. privateNamespace = ::CreatePrivateNamespaceA(desc, boundaryHandle, namePrivate);
    2.  
     
  5. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    215
    Адрес:
    Russian Federation
    EPM значит AppContainer. В контексте AppContainer'а, чтоб всем дать права, нужно добавить SID ALL APPCONTAINER PACKAGES (S-1-15-2-1). Для AppContainer'а, NULL DACL или Everyone (World SID) не достаточны.

    Последние три или четыре (не помню точно) бита OBJECT_HEADER.SecurityDescriptor пересекаются с чем то другим, так что нужно их обнулить перед передачи адреса команде !sid. В твоём примере, попробуй !sd 0xffffca88634aeac8 или
    !sd 0xffffca88634aeac0.

    Кроме проверок ACL/SD, проверяется если процесс protected или нет. Это вкратце.
     
  6. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    242
    comrade, Thnx я уже разобрался. ALL APPCONTAINER PACKAGES - для эдге недотстаочно в плане сидов.
    надо при создании из другого процесса надо дать сид именно аппконтейнера, который будет открывать. Для всех не проканает.

    Спасибо, что ответил.

    Я просто олень. Я в другом накололся)
     
  7. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    215
    Адрес:
    Russian Federation
  8. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    242
    comrade, да. уже вдоль и поперек перекопал все)