Сейчас на форуме: Rio, CDK123, zds, tyns777, tihiy_grom, morgot, rmn (+4 невидимых)

 eXeL@B —› Программирование —› Попасть в ветку реестра HKLM\Security
Посл.ответ Сообщение

Ранг: 21.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 27 октября 2008 17:09
· Личное сообщение · #1

Доброго времени суток.
Хочу программно попасть в ветку реестра Security, слышал что можно попасть туда под именем системы, вспомнил что службы запускаються тоже под именнем системы, сделал службу но доступа так и не получил туда, но получил в раздел SAM.
Вопрос собственно вот в чем как получить данные с этой ветки или как запустить свою программу от имени системы?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 27 октября 2008 17:58
· Личное сообщение · #2

как запустить свою программу от имени системы?

Ваш друг имперсонация
wasm.ru/article.php?article=1021001

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 21.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 28 октября 2008 09:32
· Личное сообщение · #3

coderess
В той статье производится запуск от имени администратора и то если есть пароль, а нужно от имени системы, вот думаю может можно както внедриться в процесс типо system или winlogon.




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 28 октября 2008 09:51
· Личное сообщение · #4

Я делал запуск с правами системы. Суть в том что что надо в определенной ветке реестра, по мойму Windows NT/Winlogon прописать свою длл чтобы потом она грузила нужную прогу при запуске системы. Точнее не помню, щас не дома. Вообще существует несколько способов запуска - внедрение в системный процесс один из них

-----
Лень - это подсознательная мудрость





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 28 октября 2008 09:52 · Поправил: SecurAdmin
· Личное сообщение · #5

YouROK пишет:
а нужно от имени системы

=)
Да проще не бывает
тебя спасет виндовый планировщик (или команда at) который выполняет чего угодно от имени системы.
Проверено не однократно!

>at 10:05 /interactive "regedit.exe"
и всё! редактор реестра запущен с правами системы

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 28 октября 2008 09:54
· Личное сообщение · #6

Ну а в ветку реестра Security можно попасть еще и посредством psapi если мне память не изменяет....
PS: могу ошибаться, поправьте если не так.

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 21.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 28 октября 2008 10:17
· Личное сообщение · #7

SecurAdmin
В висте этот планировщик нехотит запускать в /interacitve а вот под xp я уже это пробывал, но както не хоца использовать его, еще я нарыл такую вещь
Code:
  1. #pragma comment(lib,"ntdll.lib")
  2. #include <windows.h>
  3. #include <Ntsecapi.h>
  4. #include <stdio.h>
  5. void hexprint(char *buf, int size)
  6. {
  7.          for (int i=0;i<size;i+=16)
  8.          {
  9.                  int j=0;
  10.                  while((i+j<size)&&(j<16))
  11.                  {
  12.                         int z=(unsigned char)buf[i+j];
  13.                         printf("%02X ",z);
  14.                         j++;
  15.                         if (j==8) printf(" ");
  16.                  }
  17.                  for (j=j;j<18;j++) printf(" ");
  18.                  j=0;
  19.                  while((i+j<size)&&(j<16))
  20.                  {
  21.                         if ((unsigned char)buf[i+j]>=' ') printf("%c",buf[i+j]); else
  22.                               printf(".");
  23.                         j++;
  24.                         if (j==8) printf(" ");
  25.                  }
  26.                  printf("\n");
  27.          }
  28.          printf("\n");
  29. }
  30. extern "C" __declspec(dllimport) VOID __stdcall 
  31. RtlInitUnicodeString(
  32.                                     PUNICODE_STRING DestinationString,
  33.                                     PCWSTR SourceString
  34.                                     );
  35. extern "C" __declspec(dllimport) VOID __stdcall 
  36. RtlConvertSidToUnicodeString(
  37.                                            PUNICODE_STRING usSID,
  38.                                            SID *sid,
  39.                                            DWORD unkown);
  40. #define TARGET_SYSTEM_NAME L"mysystem"
  41. LSA_HANDLE GetPolicyHandle()
  42. {
  43.          LSA_OBJECT_ATTRIBUTES ObjectAttributes;
  44.          WCHAR SystemName[] = TARGET_SYSTEM_NAME;
  45.          LSA_UNICODE_STRING lusSystemName;
  46.          NTSTATUS ntsResult;
  47.          LSA_HANDLE lsahPolicyHandle;
  48.          // Object attributes are reserved, so initialize to zeroes.
  49.          ZeroMemory(&ObjectAttributes, sizeof(ObjectAttributes));
  50.          //Initialize an LSA_UNICODE_STRING to the server name.
  51.          /*SystemNameLength = 0;//wcslen(SystemName);
  52.          lusSystemName.Buffer = NULL;//SystemName;
  53.          lusSystemName.Length = SystemNameLength * sizeof(WCHAR);
  54.          lusSystemName.MaximumLength= (SystemNameLength+1) * sizeof(WCHAR);*/
  55.          RtlInitUnicodeString(&lusSystemName,NULL/*TARGET_SYSTEM_ NAME*/);
  56.          // Get a handle to the Policy object.
  57.          ntsResult = LsaOpenPolicy(
  58.                  &lusSystemName, //Name of the target system.
  59.                  &ObjectAttributes, 
  60.                  POLICY_ALL_ACCESS, //Desired access permissions.
  61.                  &lsahPolicyHandle //Receives the policy handle.
  62.                  );
  63.          if (ntsResult)
  64.          {
  65.                  // An error occurred. Display it as a win32 error code.
  66.                  wprintf(L"OpenPolicy returned %lu\n",
  67.                         LsaNtStatusToWinError(ntsResult));
  68.                  return NULL;
  69.          } 
  70.          return lsahPolicyHandle;
  71. }
  72. int main(int argc, char* argv[])
  73. {
  74.          char *lpSystemName = NULL;
  75.          LSA_HANDLE hPolicy = GetPolicyHandle();
  76.          LSA_UNICODE_STRING *Data;
  77.          LSA_UNICODE_STRING KeyName;
  78.          WCHAR Template[]=L"RasDialParams!%s#%d";
  79.          char AccountName[1024];
  80.          DWORD sAccountName=sizeof(AccountName);
  81.          GetUserName(AccountName,&sAccountName);
  82.          union 
  83.          {
  84.                  SID s;
  85.                  char c[1024];
  86.          } sid;
  87.          DWORD ssid = sizeof(sid);
  88.          char DomainName[1024];
  89.          DWORD sDomainName = sizeof(DomainName);
  90.          SID_NAME_USE peUse;
  91.          if(!LookupAccountName(lpSystemName,AccountName,(SID*)&sid.c,&ssid,(ch ar*)&DomainName,&sDomainName,&peUse))
  92.                  printf("LookupAccountName error %d\n",GetLastError());
  93.          WCHAR wcSIDbuf[100];
  94.          UNICODE_STRING wcSID = {sizeof(wcSIDbuf),sizeof(wcSIDbuf),wcSIDbuf};
  95.          RtlConvertSidToUnicodeString(&wcSID,&sid.s,0);
  96.          wprintf(L"%s\n",wcSIDbuf);
  97.          WCHAR KeyNameW[1024];
  98.          swprintf(KeyNameW,Template,wcSIDbuf,0);
  99.          wprintf(L"%s\n",KeyNameW);
  100.          RtlInitUnicodeString(&KeyName,KeyNameW);
  101.          LsaRetrievePrivateData(hPolicy,&KeyName,&Data);
  102.          if (Data) wprintf(L"%s\n",Data->Buffer);
  103.                  hexprint((char*)Data->Buffer,Data->Length);
  104.          return 0;
  105. }

Получаем данные от любой ветки в секюри но нужно знать название этой ветки откуда беруться данные.
ща буду пробывать внедряться в процесс с именнем системы и запускать свою программу



Ранг: 21.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 28 октября 2008 15:54
· Личное сообщение · #8

Все нашел выход запускаю себя как службу


 eXeL@B —› Программирование —› Попасть в ветку реестра HKLM\Security
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати