00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
#include "tsecomm.c"
00027
00028
00029
#ifndef _TSEVARS_
00030
#define _TSEVARS_
00031
00032
00033
00034
00035 typedef enum _USERS {
00036
Fred,
00037
Wilma,
00038
Pebbles,
00039
Barney,
00040
Betty,
00041
Bambam,
00042
Dino
00043 }
USERS;
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #define BEDROCK_AUTHORITY {0,0,0,0,155,144}
00066 #define BEDROCK_SUBAUTHORITY_0 0x00000015L
00067 #define BEDROCK_SUBAUTHORITY_1 0x00000003L
00068 #define BEDROCK_SUBAUTHORITY_2 0x00000011L
00069
00070 #define FRED_RID 0x00000002L
00071 #define WILMA_RID 0x00000003L
00072 #define PEBBLES_RID 0x00000004L
00073 #define DINO_RID 0x00000005L
00074
00075 #define BARNEY_RID 0x00000006L
00076 #define BETTY_RID 0x00000007L
00077 #define BAMBAM_RID 0x00000008L
00078
00079 #define FLINTSTONE_RID 0x00000009L
00080 #define RUBBLE_RID 0x0000000AL
00081
00082 #define ADULT_RID 0x0000000BL
00083 #define CHILD_RID 0x0000000CL
00084
00085 #define NEANDERTHOL_RID 0x0000000DL
00086
00087
00088 PSID
BedrockDomainSid;
00089
00090
00091 PSID
FredSid;
00092 PSID
WilmaSid;
00093 PSID
PebblesSid;
00094 PSID
DinoSid;
00095
00096 PSID
BarneySid;
00097 PSID
BettySid;
00098 PSID
BambamSid;
00099
00100 PSID
FlintstoneSid;
00101 PSID
RubbleSid;
00102
00103 PSID
AdultSid;
00104 PSID
ChildSid;
00105
00106 PSID
NeandertholSid;
00107
00108
00109
00110
00111
00112
00113 PSID
NullSid;
00114 PSID
WorldSid;
00115 PSID
LocalSid;
00116 PSID
CreatorSid;
00117
00118
00119
00120
00121
00122 PSID
NtAuthoritySid;
00123
00124 PSID
DialupSid;
00125 PSID
NetworkSid;
00126 PSID
BatchSid;
00127 PSID
InteractiveSid;
00128 PSID
LocalSystemSid;
00129
00130
00131
00132
00133
00135
00136
00137
00139
00140
00141 LUID
CreateTokenPrivilege;
00142 LUID
AssignPrimaryTokenPrivilege;
00143 LUID
LockMemoryPrivilege;
00144 LUID
IncreaseQuotaPrivilege;
00145 LUID
UnsolicitedInputPrivilege;
00146 LUID
TcbPrivilege;
00147 LUID
SecurityPrivilege;
00148
00149 LUID
TakeOwnershipPrivilege;
00150 LUID
CreatePagefilePrivilege;
00151 LUID
IncreaseBasePriorityPrivilege;
00152 LUID
SystemProfilePrivilege;
00153 LUID
SystemtimePrivilege;
00154 LUID
ProfileSingleProcessPrivilege;
00155
00156 LUID
RestorePrivilege;
00157 LUID
BackupPrivilege;
00158 LUID
CreatePermanentPrivilege;
00159 LUID
ShutdownPrivilege;
00160 LUID
DebugPrivilege;
00161
00162
00163
00164
00165
00166 BOOLEAN
00167 TSeVariableInitialization()
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185 {
00186 ULONG SidWithZeroSubAuthorities;
00187 ULONG SidWithOneSubAuthority;
00188 ULONG SidWithThreeSubAuthorities;
00189 ULONG SidWithFourSubAuthorities;
00190
00191 SID_IDENTIFIER_AUTHORITY NullSidAuthority = SECURITY_NULL_SID_AUTHORITY;
00192 SID_IDENTIFIER_AUTHORITY WorldSidAuthority = SECURITY_WORLD_SID_AUTHORITY;
00193 SID_IDENTIFIER_AUTHORITY LocalSidAuthority = SECURITY_LOCAL_SID_AUTHORITY;
00194 SID_IDENTIFIER_AUTHORITY CreatorSidAuthority = SECURITY_CREATOR_SID_AUTHORITY;
00195
00196 SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
00197
00198
00199 SID_IDENTIFIER_AUTHORITY BedrockAuthority =
BEDROCK_AUTHORITY;
00200
00201
00202
00203
00204
00205
00206 SidWithZeroSubAuthorities =
RtlLengthRequiredSid( 0 );
00207 SidWithOneSubAuthority =
RtlLengthRequiredSid( 1 );
00208 SidWithThreeSubAuthorities =
RtlLengthRequiredSid( 3 );
00209 SidWithFourSubAuthorities =
RtlLengthRequiredSid( 4 );
00210
00211
00212
00213
00214
00215
NullSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00216
WorldSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00217
LocalSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00218
CreatorSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00219
00220
RtlInitializeSid(
NullSid, &NullSidAuthority, 1 );
00221
RtlInitializeSid(
WorldSid, &WorldSidAuthority, 1 );
00222
RtlInitializeSid(
LocalSid, &LocalSidAuthority, 1 );
00223
RtlInitializeSid(
CreatorSid, &CreatorSidAuthority, 1 );
00224
00225 *(
RtlSubAuthoritySid(
NullSid, 0 )) = SECURITY_NULL_RID;
00226 *(
RtlSubAuthoritySid(
WorldSid, 0 )) = SECURITY_WORLD_RID;
00227 *(
RtlSubAuthoritySid(
LocalSid, 0 )) = SECURITY_LOCAL_RID;
00228 *(
RtlSubAuthoritySid(
CreatorSid, 0 )) = SECURITY_CREATOR_OWNER_RID;
00229
00230
00231
00232
00233
00234
NtAuthoritySid = (PSID)TstAllocatePool(
PagedPool,SidWithZeroSubAuthorities);
00235
DialupSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00236
NetworkSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00237
BatchSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00238
InteractiveSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00239
LocalSystemSid = (PSID)TstAllocatePool(
PagedPool,SidWithOneSubAuthority);
00240
00241
RtlInitializeSid(
NtAuthoritySid, &NtAuthority, 0 );
00242
RtlInitializeSid(
DialupSid, &NtAuthority, 1 );
00243
RtlInitializeSid(
NetworkSid, &NtAuthority, 1 );
00244
RtlInitializeSid(
BatchSid, &NtAuthority, 1 );
00245
RtlInitializeSid(
InteractiveSid, &NtAuthority, 1 );
00246
RtlInitializeSid(
LocalSystemSid, &NtAuthority, 1 );
00247
00248 *(
RtlSubAuthoritySid(
DialupSid, 0 )) = SECURITY_DIALUP_RID;
00249 *(
RtlSubAuthoritySid(
NetworkSid, 0 )) = SECURITY_NETWORK_RID;
00250 *(
RtlSubAuthoritySid(
BatchSid, 0 )) = SECURITY_BATCH_RID;
00251 *(
RtlSubAuthoritySid(
InteractiveSid, 0 )) = SECURITY_INTERACTIVE_RID;
00252 *(
RtlSubAuthoritySid(
LocalSystemSid, 0 )) = SECURITY_LOCAL_SYSTEM_RID;
00253
00254
00255
00256
00257
00258
00259
00260
BedrockDomainSid = (PSID)TstAllocatePool(
PagedPool,SidWithThreeSubAuthorities);
00261
00262
FredSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00263
WilmaSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00264
PebblesSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00265
DinoSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00266
00267
BarneySid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00268
BettySid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00269
BambamSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00270
00271
FlintstoneSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00272
RubbleSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00273
00274
AdultSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00275
ChildSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00276
00277
NeandertholSid = (PSID)TstAllocatePool(
PagedPool,SidWithFourSubAuthorities);
00278
00279
RtlInitializeSid(
BedrockDomainSid, &BedrockAuthority, 3 );
00280 *(
RtlSubAuthoritySid(
BedrockDomainSid, 0)) =
BEDROCK_SUBAUTHORITY_0;
00281 *(
RtlSubAuthoritySid(
BedrockDomainSid, 1)) =
BEDROCK_SUBAUTHORITY_1;
00282 *(
RtlSubAuthoritySid(
BedrockDomainSid, 2)) =
BEDROCK_SUBAUTHORITY_2;
00283
00284
RtlCopySid( SidWithFourSubAuthorities,
FredSid,
BedrockDomainSid);
00285 *(
RtlSubAuthorityCountSid(
FredSid )) += 1;
00286 *(
RtlSubAuthoritySid(
FredSid, 3)) =
FRED_RID;
00287
00288
RtlCopySid( SidWithFourSubAuthorities,
WilmaSid,
BedrockDomainSid);
00289 *(
RtlSubAuthorityCountSid(
WilmaSid )) += 1;
00290 *(
RtlSubAuthoritySid(
WilmaSid, 3)) =
WILMA_RID;
00291
00292
RtlCopySid( SidWithFourSubAuthorities,
PebblesSid,
BedrockDomainSid);
00293 *(
RtlSubAuthorityCountSid(
PebblesSid )) += 1;
00294 *(
RtlSubAuthoritySid(
PebblesSid, 3)) =
PEBBLES_RID;
00295
00296
RtlCopySid( SidWithFourSubAuthorities,
DinoSid,
BedrockDomainSid);
00297 *(
RtlSubAuthorityCountSid(
DinoSid )) += 1;
00298 *(
RtlSubAuthoritySid(
DinoSid, 3)) =
DINO_RID;
00299
00300
RtlCopySid( SidWithFourSubAuthorities,
BarneySid,
BedrockDomainSid);
00301 *(
RtlSubAuthorityCountSid(
BarneySid )) += 1;
00302 *(
RtlSubAuthoritySid(
BarneySid, 3)) =
BARNEY_RID;
00303
00304
RtlCopySid( SidWithFourSubAuthorities,
BettySid,
BedrockDomainSid);
00305 *(
RtlSubAuthorityCountSid(
BettySid )) += 1;
00306 *(
RtlSubAuthoritySid(
BettySid, 3)) =
BETTY_RID;
00307
00308
RtlCopySid( SidWithFourSubAuthorities,
BambamSid,
BedrockDomainSid);
00309 *(
RtlSubAuthorityCountSid(
BambamSid )) += 1;
00310 *(
RtlSubAuthoritySid(
BambamSid, 3)) =
BAMBAM_RID;
00311
00312
RtlCopySid( SidWithFourSubAuthorities,
FlintstoneSid,
BedrockDomainSid);
00313 *(
RtlSubAuthorityCountSid(
FlintstoneSid )) += 1;
00314 *(
RtlSubAuthoritySid(
FlintstoneSid, 3)) =
FLINTSTONE_RID;
00315
00316
RtlCopySid( SidWithFourSubAuthorities,
RubbleSid,
BedrockDomainSid);
00317 *(
RtlSubAuthorityCountSid(
RubbleSid )) += 1;
00318 *(
RtlSubAuthoritySid(
RubbleSid, 3)) =
RUBBLE_RID;
00319
00320
RtlCopySid( SidWithFourSubAuthorities,
AdultSid,
BedrockDomainSid);
00321 *(
RtlSubAuthorityCountSid(
AdultSid )) += 1;
00322 *(
RtlSubAuthoritySid(
AdultSid, 3)) =
ADULT_RID;
00323
00324
RtlCopySid( SidWithFourSubAuthorities,
ChildSid,
BedrockDomainSid);
00325 *(
RtlSubAuthorityCountSid(
ChildSid )) += 1;
00326 *(
RtlSubAuthoritySid(
ChildSid, 3)) =
CHILD_RID;
00327
00328
RtlCopySid( SidWithFourSubAuthorities,
NeandertholSid,
BedrockDomainSid);
00329 *(
RtlSubAuthorityCountSid(
NeandertholSid )) += 1;
00330 *(
RtlSubAuthoritySid(
NeandertholSid, 3)) =
NEANDERTHOL_RID;
00331
00332
00333
CreateTokenPrivilege =
00334 RtlConvertLongToLuid(SE_CREATE_TOKEN_PRIVILEGE);
00335
AssignPrimaryTokenPrivilege =
00336 RtlConvertLongToLuid(SE_ASSIGNPRIMARYTOKEN_PRIVILEGE);
00337
LockMemoryPrivilege =
00338 RtlConvertLongToLuid(SE_LOCK_MEMORY_PRIVILEGE);
00339
IncreaseQuotaPrivilege =
00340 RtlConvertLongToLuid(SE_INCREASE_QUOTA_PRIVILEGE);
00341
UnsolicitedInputPrivilege =
00342 RtlConvertLongToLuid(SE_UNSOLICITED_INPUT_PRIVILEGE);
00343
TcbPrivilege =
00344 RtlConvertLongToLuid(SE_TCB_PRIVILEGE);
00345
SecurityPrivilege =
00346 RtlConvertLongToLuid(SE_SECURITY_PRIVILEGE);
00347
TakeOwnershipPrivilege =
00348 RtlConvertLongToLuid(SE_TAKE_OWNERSHIP_PRIVILEGE);
00349
CreatePagefilePrivilege =
00350 RtlConvertLongToLuid(SE_CREATE_PAGEFILE_PRIVILEGE);
00351
IncreaseBasePriorityPrivilege =
00352 RtlConvertLongToLuid(SE_INC_BASE_PRIORITY_PRIVILEGE);
00353
SystemProfilePrivilege =
00354 RtlConvertLongToLuid(SE_SYSTEM_PROFILE_PRIVILEGE);
00355
SystemtimePrivilege =
00356 RtlConvertLongToLuid(SE_SYSTEMTIME_PRIVILEGE);
00357
ProfileSingleProcessPrivilege =
00358 RtlConvertLongToLuid(SE_PROF_SINGLE_PROCESS_PRIVILEGE);
00359
CreatePermanentPrivilege =
00360 RtlConvertLongToLuid(SE_CREATE_PERMANENT_PRIVILEGE);
00361
BackupPrivilege =
00362 RtlConvertLongToLuid(SE_BACKUP_PRIVILEGE);
00363
RestorePrivilege =
00364 RtlConvertLongToLuid(SE_RESTORE_PRIVILEGE);
00365
ShutdownPrivilege =
00366 RtlConvertLongToLuid(SE_SHUTDOWN_PRIVILEGE);
00367
DebugPrivilege =
00368 RtlConvertLongToLuid(SE_DEBUG_PRIVILEGE);
00369
00370
00371
return TRUE;
00372
00373 }
00374
#endif // _TSEVARS_