• XSS.stack #1 – первый литературный журнал от юзеров форума

Kaspersky & KSE

atavism

HalReturnToBorderline
Premium
Регистрация
03.05.2020
Сообщения
150
Реакции
85
Депозит
0.0016
Недавно многоуважаемый varwar (за что ему спасибо за интересную темку) отписывал в этой теме о том, что нашел интересные функции Касперского, относящиеся к KSE (Kernel Shim Engine).

Сейчас дошли руки, как я ему и обещал. Эта тема будет как маленький отчет, что я буду постепенно заполнять. Да и чтоб была мотивация работать тоже.

Начало

Чуточку порывшись в ядре, я нашел еще несколько занимательных функций, касающиеся KSE и каспера. Неинициализированы все, кроме KseKasperskyInitialize:
Код:
0xfffff8014a4680a8: KseKasperskyInitialize(void)
0xfffff8014a608658: KseKasperskyShim(?)
0xfffff8014a608e50: KseKasperskyKernelHooks(?)
0xfffff8014a609058: KseKasperskyShimHookCollections (?)
0xfffff8014a6160a0: KseKasperskyShimGuid (?)
Замаппить их у меня не получилось.

Данные о функции KseKasperskyInitialize:
Код:
BeginAddress      = 0x0000000000a640a8
EndAddress        = 0x0000000000a640cb
UnwindInfoAddress = 0x00000000000a8e34

Unwind info at 0xfffff80149aace34, a bytes
  version 2, flags 0, prolog 4, codes 3
  00: offs 1, unwind op 6, op info 0    UWOP_EPILOG Length: 1. Flags: 0
  01: offs 2, unwind op 6, op info 0    UWOP_EPILOG Offset from end: 2 (FFFFF8014A4680C9)
  02: offs 4, unwind op 2, op info 4    UWOP_ALLOC_SMALL.

Также было замечено, что многие модули (в частоности драйвера) каспера обращаются к драйверу "klflt.sys", это их собственный драйвер, но есть переопределения kernel-функций. Однако, таблица экспорта показывает, что о KSE тут речи нет, но я считаю, что взглянуть на него стоит.
Код:
Name    Address    Ordinal
EvAllocateQueuedFilterIndicationRef    0000000180009B20    1
ComrAttachClient    000000018002E4A0    2
ComrRegisterClient    000000018002E510    3
ComrRegisterProvider    000000018002E5F0    4
ComrUnregisterClient    000000018002E6C0    5
ComrUnregisterProvider    000000018002E860    6
DlCreateLog    0000000180004570    7
DlGetMaxDataLengthLog    0000000180004680    8
DlGetMaxSizeLog    0000000180004690    9
DlPublishDataDeferReadyLog    00000001800046A0    10
DlPublishDataLog    00000001800047C0    11
DlPublishDataWithCallbackDeferReadyLog    0000000180004880    12
DlPublishDataWithCallbackLog    00000001800049A0    13
DlReleaseLog    0000000180004A60    14
DlResetLog    0000000180032730    15
DlSetMaxSizeLog    0000000180004AE0    16
DlShutdownLog    0000000180004B30    17
DlWaitForDataLog    0000000180032850    18
DlWaitForDataLogEx    0000000180032880    19
DllInitialize    00000001800447B0    20
DllUnload    0000000180036E50    21
EfAddProcessCounter    0000000180039070    22
EfAddThreadCounter    00000001800390C0    23
EfForceReleaseProcessCounter    0000000180039110    24
EfForceReleaseThreadCounter    0000000180039160    25
EfGet2ProcessCounters    000000018000EF00    26
EfGet2ThreadCounters    00000001800391B0    27
EfGetProcessCounter    0000000180039210    28
EfGetThreadCounter    000000018000EF60    29
EfGetThreadFlags    0000000180039260    30
EfReleaseProcessCounter    0000000180039280    31
EfReleaseThreadCounter    00000001800392D0    32
EvAddItemCollection    0000000180031430    33
EvAddRemoveItemsCollection    00000001800314C0    34
EvAddRemoveItemsUniformCollection    0000000180004120    35
EvAddToFilterSet    0000000180009080    36
EvAllocateFilterRef    00000001800090A0    37
EvAttachExVerdictFilter    00000001800340C0    38
EvAttachExclusiveProcessListFilter    0000000180034100    39
EvAttachInclusiveProcessListFilter    0000000180034170    40
EvAttachPermanentIdFilter    00000001800341E0    41
EvAttachPredicateFilter    0000000180034220    42
EvAttachScheduleFilter    0000000180034520    43
EvAttachVerdictFilter    0000000180034590    44
EvCalcEventParamsSize    0000000180002650    45
EvCalcFilterPredicateSize    0000000180002670    46
EvCheckForEventId    0000000180033C80    47
EvCheckForEventIdAtDpcLevel    00000001800067F0    48
EvCheckForFacility    0000000180033D00    49
EvCheckParameterInFilterSet    0000000180006880    50
EvCheckPredicate    00000001800068D0    51
EvCheckPredicateAtDpcLevel    00000001800068E0    52
EvClearCollection    0000000180004180    53
EvClearFilterSet    0000000180009120    54
EvClearQueuedFilterIndicationSet    000000018000A070    55
EvCloneAndFilterByProcessIdDynamicFilterSet    0000000180005020    56
EvCloneDynamicDpcFilterSet    0000000180005130    57
EvCloneDynamicFilterSet    0000000180032B80    58
EvCloneFilter    00000001800345A0    59
EvCloneFilterSet    0000000180009170    60
EvCloneWithRevisionDynamicDpcFilterSet    0000000180005140    61
EvCloneWithRevisionDynamicFilterSet    0000000180032B90    62
EvCopyMatchedFiltersFilterSet    0000000180009260    63
EvCreateClient    000000018002F250    64
EvCreateCollection    0000000180031520    65
EvCreateConnection    00000001800322F0    66
EvCreateDynamicDpcFilterSet    0000000180005270    67
EvCreateDynamicFilterSet    0000000180032CA0    68
EvCreateExClient    000000018002F300    69
EvCreateExVerdict    0000000180006270    70
EvCreateFilter    0000000180034700    71
EvDeleteClient    000000018002F320    72
EvDeleteDynamicDpcFilterSet    0000000180005360    73
EvDeleteDynamicFilterSet    0000000180032D80    74
EvDereferenceObject    0000000180012C70    75
EvDereferenceObjectDeferDelete    000000018000E4E0    76
EvDisableFilter    00000001800068F0    77
EvDisableFilterClient    000000018002F470    78
EvEnableDisableFilterSet    00000001800069A0    79
EvEnableDisableFilterSetClient    000000018002F4C0    80
EvEnableFilter    0000000180006CB0    81
EvEnableFilterClient    000000018002F5A0    82
EvFilterByEventId    0000000180033D90    83
EvFilterByEventIdAndProcessId    0000000180006D50    84
EvFilterByEventIdAtDpcLevel    0000000180006E00    85
EvFilterEvent    0000000180033E30    86
EvFilterEventAtDpcLevel    0000000180006EB0    87
EvFilterEventWithSet    0000000180033F70    88
EvFilterEventWithSetAtDpcLevel    0000000180007010    89
EvFilterSetByClientId    0000000180007140    90
EvFilterSetExcludeClientId    00000001800071C0    91
EvFilterSetUsingParameter    0000000180007240    92
EvFilterSetUsingParameterAtDpcLevel    00000001800073A0    93
EvFilterSetUsingProcessId    0000000180007510    94
EvFlushQueueClient    000000018002F5F0    95
EvGetBufferExVerdict    0000000180006350    96
EvGetBufferLengthExVerdict    0000000180006360    97
EvGetClientFilter    0000000180008FC0    98
EvGetClientIdFilter    00000001800042A0    99
EvGetContentCollection    00000001800041E0    100
EvGetContentUniformCollection    0000000180004230    101
EvGetEventIdFilter    0000000180004500    102
EvGetEventQueuedFilterIndication    000000018000A150    103
EvGetEventsLostClient    000000018002F600    104
EvGetExVerdictFilter    0000000180008FE0    105
EvGetExclusiveProcessListFilter    0000000180008FF0    106
EvGetExtendedInfoQueuedFilterIndication    000000018000A160    107
EvGetFilterIndicationQueuedFilterIndication    000000018000A170    108
EvGetFlagsClient    0000000180004020    109
EvGetFlagsCollection    0000000180004270    110
EvGetFlagsExVerdict    0000000180004280    111
EvGetFlagsFilter    0000000180006360    112
EvGetGlobalFilterSetRevisionForEventId    0000000180007590    113
EvGetGuidClient    0000000180004030    114
EvGetIdClient    0000000180004040    115
EvGetIdCollection    0000000180004280    116
EvGetIdFilter    0000000180004280    117
EvGetInclusiveProcessListFilter    0000000180009000    118
EvGetMaxQueueDepthClient    0000000180004050    119
EvGetOfflineLogFlagsClient    0000000180004060    120
EvGetOfflineLogModeClient    0000000180004070    121
EvGetOfflineQueueClient    000000018002F610    122
EvGetOfflineQueueTimeoutClient    0000000180004080    123
EvGetPermanentIdCollection    0000000180004290    124
EvGetPermanentIdFilter    0000000180009010    125
EvGetPredicateFilter    0000000180009030    126
EvGetPriorityClient    0000000180004090    127
EvGetPriorityFilter    0000000180009040    128
EvGetScheduleFilter    0000000180009050    129
EvGetTimeoutFilter    0000000180009060    130
EvGetTypeCollection    00000001800042A0    131
EvGetVerdictFilter    0000000180009070    132
EvInitializeFilterSet    0000000180009470    133
EvIsPureFilterSet    0000000180009480    134
EvLookupEntryExVerdict    0000000180006370    135
EvMatchCollection    0000000180031670    136
EvMoveAppendFilterSet    00000001800094C0    137
EvOpenClient    000000018002F630    138
EvOpenClientConnection    0000000180032330    139
EvOpenCollection    00000001800316F0    140
EvOpenCollectionClient    000000018002F6D0    141
EvOpenExClient    000000018002F780    142
EvOpenFilterClient    000000018002F7F0    143
EvOpenPermanentFilterClient    000000018002F880    144
EvProcessEventEx    000000018002EDC0    145
EvProcessEventEx2    000000018002EDF0    146
EvProcessEventEx3    000000018002EE40    147
EvProcessEventEx3AtDpcLevel    0000000180002C00    148
EvProcessEventEx4    000000018002EF90    149
EvProcessEventEx4AtDpcLevel    0000000180002D20    150
EvProcessEventExAtDpcLevel    0000000180002E00    151
EvProcessEventWithSet    000000018002F0B0    152
EvProcessEventWithSetAtDpcLevel    0000000180002EE0    153
EvProcessEventWithSetEx    000000018002F0E0    154
EvProcessEventWithSetEx2    000000018002F110    155
EvProcessEventWithSetEx2AtDpcLevel    0000000180002F20    156
EvReferenceObject    0000000180012CC0    157
EvReferenceObjectSafe    0000000180012D20    158
EvRegisterClient    000000018002F900    159
EvRegisterClientConnection    00000001800323D0    160
EvRegisterCollection    0000000180031780    161
EvRegisterCollectionClient    000000018002FA80    162
EvRegisterExClient    000000018002FB30    163
EvRegisterFilterClient    000000018002FC80    164
EvRegisterFilterStateChangeNotification    00000001800063A0    165
EvRegisterReplacementFilterClient    000000018002FD80    166
EvReinitializeConnection    0000000180032500    167
EvReleaseFilterRef    0000000180009530    168
EvReleaseQueuedFilterIndicationRef    000000018000A180    169
EvRemoveItemCollection    0000000180031820    170
EvRemoveMatchedFiltersFilterSet    00000001800095B0    171
EvReplaceFilter    00000001800075C0    172
EvResumeClient    000000018002FED0    173
EvRundownConnection    0000000180032510    174
EvSaveAllClients    000000018002FF80    175
EvSaveClient    000000018002FFC0    176
EvSaveCollection    00000001800318B0    177
EvSetMaxQueueDepthClient    00000001800301C0    178
EvSetOfflineLogModeClient    00000001800040A0    179
EvSetOfflineLogStatusClient    00000001800301E0    180
EvSetOfflineQueueTimeoutClient    0000000180030200    181
EvSetOfflineReadyStatusClient    0000000180030220    182
EvSetupConnectionProperty    00000001800043E0    183
EvSuspendClient    0000000180030250    184
EvSwapCollection    0000000180031980    185
EvTeardownConnection    0000000180004400    186
EvUnregisterAllFiltersClient    0000000180030300    187
EvUnregisterClient    00000001800303A0    188
EvUnregisterClientConnection    0000000180032520    189
EvUnregisterCollection    0000000180031990    190
EvUnregisterCollectionClient    0000000180030460    191
EvUnregisterFilterClient    0000000180030510    192
EvUnregisterFilterStateChangeNotification    00000001800064E0    193
EvUnregisterNonPermanentFiltersClient    00000001800305E0    194
EvUnregisterPermanentFiltersClient    0000000180030680    195
EvUpdateCollection    0000000180031A30    196
EvUpdateOfflineLogFlagsClient    00000001800040B0    197
EvUpdateUniformCollection    0000000180004310    198
FntCreateFileNameRef    000000018000CA70    199
FntCreateFileNameRefEx    000000018000CB50    200
FntProcessRenameOperation    000000018000CC30    201
FntReferenceFileNameRef    000000018000CE10    202
FntReleaseFileNameRef    000000018000CE90    203
FntUpdateFileNameRef    000000018000CF00    204
FntUpdateFileNameRefEx    000000018000CF70    205
HtbCleanHandleTable    00000001800363E0    206
HtbCloseObjectHandleTable    00000001800364E0    207
HtbCreateHandleTable    00000001800365F0    208
HtbDestroyHandleTable    00000001800366C0    209
HtbReferenceObjectHandleTable    0000000180036700    210
HtbRegisterObjectHandleTable    00000001800367D0    211
HtbRegisterObjectTypeExHandleTable    0000000180036950    212
HtbRegisterObjectTypeHandleTable    0000000180036A50    213
HtbRundownHandleTable    0000000180036B50    214
KlAllocateBufferRef    0000000180003930    215
KlAllocateStringRef    0000000180011F20    216
KlAllocateStringRefBuffer    0000000180011F80    217
KlCreateTokenInformation    0000000180011E30    218
KlDereferenceBufferRef    00000001800039B0    219
KlDereferenceBufferRefEx    00000001800039C0    220
KlDereferenceStringRef    0000000180011FF0    221
KlDereferenceStringRefEx    0000000180012000    222
KlGetDataBufferRef    0000000180003A10    223
KlGetGroupsTokenInformation    0000000180008FC0    224
KlGetIntegrityLevelTokenInformation    0000000180011EE0    225
KlGetLengthBufferRef    0000000180003A20    226
KlGetLogonSessionIdTokenInformation    000000018000A150    227
KlGetPrivilegesTokenInformation    000000018000F190    228
KlGetRoutineAddress    0000000180011F00    229
KlGetStringRef    0000000180003A10    230
KlGetUserSidTokenInformation    0000000180011EF0    231
KlReferenceBufferRef    0000000180003A30    232
KlReferenceBufferRefEx    0000000180003A40    233
KlReferenceStringRef    0000000180012050    234
KlReferenceStringRefEx    0000000180012060    235
LbsCheckLabelSet    0000000180009830    236
LbsCreateAdjustedLabelSet    0000000180009850    237
LbsCreateLabelSet    0000000180009A20    238
LbsGetDataLabelSet    0000000180009A50    239
LstGetLogonSessionData    000000018000D6E0    240
LstQueryLogonSessionType    0000000180037380    241
MstCreateStream    000000018000DA60    242
MstEnumStreams    000000018000DD70    243
MstGetBlockStateStream    000000018000DDF0    244
MstGetDeviceDescriptionStream    000000018000DE00    245
MstGetFlagsStream    0000000180009060    246
MstGetMediaSubsystemStream    0000000180004020    247
MstGetMediaTypeStream    0000000180004090    248
MstGetProcessIdStream    0000000180008FD0    249
MstGetUidStream    000000018000DE10    250
MstGetUniqueProcessIdStream    0000000180004010    251
MstOpenStream    000000018000DF00    252
MstOpenStreamByPrivateStreamId    000000018000DF80    253
MstRegisterFilter    000000018000E020    254
MstRegisterStream    000000018000E190    255
MstSetBlockStateStream    000000018000E1E0    256
MstShutdownSubsystem    000000018000E200    257
MstUnregisterFilter    000000018000E340    258
MstUnregisterStream    000000018000E440    259
MstWaitForStateChangeStream    000000018000E4B0    260
OpmgrCreateOption    0000000180037B30    261
OpmgrDefaultOptionStore    0000000180037C40    262
OpmgrGetFlagsOption    00000001800042A0    263
OpmgrGetIdOption    0000000180009A50    264
OpmgrGetStateOption    000000018000E780    265
OpmgrGetTypeOption    000000018000E840    266
OpmgrMigratedOptionStore    0000000180037CD0    267
OpmgrOpenNamedOption    0000000180037CE0    268
OpmgrOpenNamedOptionInStore    0000000180037D00    269
OpmgrOpenOption    0000000180037D70    270
OpmgrOpenOptionInStore    0000000180037D90    271
OpmgrRegisterCallbackOption    000000018000E850    272
OpmgrRegisterNamedOption    0000000180037E20    273
OpmgrRegisterNamedOptionInStore    0000000180037E40    274
OpmgrRegisterOption    0000000180037EB0    275
OpmgrRegisterOptionInStore    0000000180037ED0    276
OpmgrSaveOptionStore    0000000180037F60    277
OpmgrSaveOptions    0000000180037FD0    278
OpmgrSetStateOption    000000018000E880    279
OpmgrUnregisterCallbackOption    000000018000E950    280
OpmgrUnregisterOption    0000000180037FE0    281
PstDecrementCounterProcess    000000018000EFB0    282
PstDecrementCounterThread    0000000180011A30    283
PstDereferenceProcess    0000000180012C70    284
PstDereferenceProcessDeferDelete    000000018000E4E0    285
PstDereferenceThread    0000000180012C70    286
PstDereferenceThreadDeferDelete    000000018000E4E0    287
PstEnumProcesses    0000000180039FB0    288
PstEnumProcessesEx    000000018003A040    289
PstEnumThreads    000000018003A0F0    290
PstEnumThreadsByProcess    000000018003A170    291
PstEnumThreadsByProcessEx    000000018003A1F0    292
PstEnumThreadsEx    000000018003A290    293
PstGetCommandLineProcess    000000018000EFF0    294
PstGetContextProcess    0000000180039320    295
PstGetContextThread    000000018003BA30    296
PstGetCounterFlagsProcess    000000018000F000    297
PstGetCounterFlagsThread    0000000180011A60    298
PstGetCounterProcess    000000018000F020    299
PstGetCounterThread    0000000180011A80    300
PstGetExecutionChainIdProcess    000000018000F030    301
PstGetExitTimeProcess    000000018000F040    302
PstGetFlagsExProcess    0000000180009000    303
PstGetFlagsExThread    000000018000F1A0    304
PstGetFlagsProcess    000000018000F050    305
PstGetFlagsThread    0000000180009060    306
PstGetImagePathHashProcess    000000018000F060    307
PstGetInheritedFromPidProcess    000000018000DE10    308
PstGetInheritedFromUidProcess    0000000180008FD0    309
PstGetIntegrityLevelProcess    000000018000F110    310
PstGetObjectIdProcess    000000018000F180    311
PstGetParentPidProcess    000000018000F190    312
PstGetParentUidProcess    0000000180008FC0    313
PstGetPidProcess    000000018000F1A0    314
PstGetPidThread    0000000180011A90    315
PstGetProcessFileId    000000018000F1B0    316
PstGetProcessThread    0000000180009040    317
PstGetRestrictionGroupProcess    000000018000F210    318
PstGetSessionIdProcess    000000018000F220    319
PstGetStartAddressThread    000000018000DE10    320
PstGetStartTimeProcess    000000018000F230    321
PstGetStartTimeThread    000000018000F250    322
PstGetStartingCurrentDirectoryProcess    000000018000F240    323
PstGetTidThread    000000018000F190    324
PstGetUidProcess    000000018000F250    325
PstGetUidThread    0000000180008FC0    326
PstIncrementCounterProcess    000000018000F260    327
PstIncrementCounterThread    0000000180011AA0    328
PstLookupByPidAndTimestampProcess    0000000180010300    329
PstLookupByPidProcess    0000000180010320    330
PstLookupByPointerProcess    0000000180010330    331
PstLookupByTidThread    0000000180010340    332
PstLookupFlagsByPidProcess    0000000180010400    333
PstLookupFlagsByTidThread    00000001800104D0    334
PstLookupProcess    00000001800105A0    335
PstLookupProcessByTokenObject    000000018003A330    336
PstLookupThread    0000000180010660    337
PstLookupUidByPidProcess    0000000180010720    338
PstReferenceFirstThreadProcess    000000018000F290    339
PstReferenceHipsPrivilegesProcess    000000018000F300    340
PstReferenceImagePathProcess    000000018000F370    341
PstReferenceLabelSetProcess    000000018000F430    342
PstReferenceObjectProcess    000000018000F4A0    343
PstReferenceObjectThread    000000018003BA80    344
PstReferenceProcess    0000000180012CC0    345
PstReferenceProcessFileObject    000000018000F520    346
PstReferenceStartModuleImagePathThread    000000018003BB00    347
PstReferenceThread    0000000180012CC0    348
PstReferenceTokenInformationProcess    0000000180039380    349
PstRegisterExFilter    000000018003A380    350
PstRegisterFilter    000000018003A5D0    351
PstRegisterProcess    000000018003A650    352
PstResetCounterProcess    000000018000F590    353
PstResetCounterThread    0000000180011AB0    354
PstSetImagePathProcess    000000018000F5A0    355
PstSetObjectIdProcess    000000018000F600    356
PstSetProcessFileId    000000018000F610    357
PstSetStartAddressThread    0000000180011AC0    358
PstSetStartModuleImagePathThread    000000018003BB30    359
PstUnregisterFilter    000000018003A770    360
PstUnregisterProcess    00000001800107E0    361
PstUpdateExecutionChainIdProcess    000000018000F660    362
PstUpdateFlagsExProcess    000000018000F940    363
PstUpdateFlagsExThread    0000000180011AD0    364
PstUpdateFlagsProcess    000000018000FA20    365
PstUpdateFlagsThread    0000000180011B10    366
PstUpdateHipsPrivilegesProcess    000000018000FA30    367
PstUpdateLabelsProcess    000000018000FAD0    368
PstUpdateRestrictionGroupProcess    000000018000FBE0    369
PstUpdateTokenInformationProcess    00000001800393C0    370
PstUpdateTokenInformationProcess2    000000018000FBF0    371
TmngFinishLog    00000001800120F0    372
TmngFinishLogRestart    0000000180012140    373
TmngFinishUpdateRestart    00000001800121A0    374
TmngGetData    000000018003C170    375
TmngLog    00000001800121F0    376
TmngReset    000000018003C210    377
TmngSetType    000000018003C240    378
VolmgrDosFilePathToFilePath    000000018003C680    379
VolmgrFilePathToDosFilePath    000000018003C760    380
VolmgrGetDeviceNameVolume    000000018003C870    381
VolmgrGetDeviceTypeVolume    000000018003C880    382
VolmgrGetFlagsVolume    000000018003C890    383
VolmgrGetGuidVolume    000000018003C8A0    384
VolmgrLookupVolumeByDosFilePath    000000018003C8B0    385
VolmgrLookupVolumeByDosName    000000018003C930    386
VolmgrLookupVolumeByFilePath    000000018003C9A0    387
VolmgrLookupVolumeByGuid    000000018003CA20    388
VolmgrLookupVolumeByName    000000018003CA90    389
VolmgrQueryDosDeviceNameVolume    000000018003CB00    390
VolmgrQueryFileSystemAttributesVolume    000000018003CB80    391
VolmgrQueryFileSystemTypeVolume    000000018003CCC0    392
VolmgrQueryLabelVolume    000000018003CE40    393
WqAllocateWorkItem    0000000180012640    394
WqCreateControlHandle    000000018003ED60    395
WqDestroyControlHandle    000000018003EDC0    396
WqFreeWorkItem    00000001800126E0    397
WqQueueWorkItem    0000000180012750    398
gCrc32Table    000000018001A010    399
gTmngControl    00000001800295C0    400

Хотел похукать функции, но сейчас нет возможности.
Хочу также снять полный дамп системы, где был запущен каспер и порыться в нем, возможно, он даст больше информации.

Призываю
: varwar, хочу узнать, нарыл ли ты что-нибудь еще. Также призываю DildoFagins как филантропа, гения и профессионального тролля-эксперта. Что ты думаешь об этом?
Прикладываю драйвер "klflt.sys", возможно, кто-то успеет порыться за меня: https://mega.nz/file/SCwxBQrJ#ekonhk1DDaX74Zo2bF29uWgOi-ux955A3RxoRfvQ3Ko
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну я особо в ядре не шарю, так что тут мои полномочия гораздо меньше, чем в троллинге. Я помню, когда мы тестили перехваты аверов на уровне пользователя в этой теме: https://xss.pro/threads/43097/ - я удивился, что у Касперского таких перехватов выявлено не было. У него все таки довольно пафосная проактивка, которая в частности может составлять таймлайн событий, то есть если программа запустила другую программу, а та запустила программу, которая выкинула что-то явно малварное, то вся цепочка программ обычно отправится в карантин, а большинство вредоносных действий откатится. Разорвать эту цепочку из юзермода удавалось только, если малварный процесс запускался через какой-то системный компонент (через инжект, или DCOM, или WMI). Мне было интересно, как построение этого таймлайна реализовано без торчащих наружу юзермодных компонентов. Но не суть. Касательно KSE, интересно, даст ли Касперский поменять DisableDeviceFlags и DisableDriverShims в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies\Microsoft\Compatibility и отвалится ли у него какой-то компонент, если KSE вырубить.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Призываю: varwar, хочу узнать, нарыл ли ты что-нибудь еще.
Нарыл немного. Весь механизм неплохо описан во 2 томе Windows Internals в последнем издании (10 глава "Kernel Shims"). Еще нарыл интересную презу Ионеску, где тот описывает некоторые способы эксплуатации этого механизма - перезапись поля KseCallbacks в структуре _DRIVER_EXTENSION (якобы патчгард не мониторит эту структуру, но преза 2016 года, может что-то поменялось) и манипуляции с файлом drvmain.sdb, где хранится белый список драйверов, которые можно щемить. Файл неподписан и может быть изменен, что позволит зарегистрировать свой драйвер, который будет что-то хукать.

В презе написано, что инициализация KSE может быть скипнута, если драйвер мониторит верифаер или отсутствует файл drvmain.sdb.

Т.е. в теории можно поставить верифаер на драйвер каспера или удалить drvmain.sdb (нужен админ), чтобы поломать что-то у драйверов (скорее всего это просто уронит систему в BSOD), использующих KSE. Но потребуется перезагрузка. Может можно сделать еще какие-то приколюхи, поиграться с реестром, как выше указал DildoFagins. С точки зрения атакера тема мало изучена. C точки зрения авера защита может мониторить ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Compatibility\Driver.

За драйвер спасибо, гляну.

Преза: https://dokumen.tips/reader/f/abusi...ine-alex-ionescualex-2016-crowdstrike-inc-all
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Случайно этот коммент отправил, а удалить не смог. Поэтому всех с Наступающим!
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Тогда надо постараться выцепить основной драйвер, с которым работает Касперский.
В drvmain.sdb есть несколько имен, правда хз почему некоторые дублируются.

kasp_sdb.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А что у KSHIM? Там тоже символы дублируются?
Там только имя "Kaspersky". Это, судя по всему, просто название шима.

1638398695500.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Там только имя "Kaspersky". Это, судя по всему, просто название шима.

Но у других структур KSHIM есть поле MODULE, где прописан драйвер. У меня каспера нет, поэтому строчка пустая. Может при установке туда что-то прописывается.

1638399700500.png

Если что, то drvmain находится по пути %SystemRoot%\apppatch\Drvmain.sdb и открывается этой тулзой https://f001.backblazeb2.com/file/EricZimmermanTools/SDBExplorer.zip
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Посмотрел у себя, у меня обычное "NT Kernel Component" и драйвера тоже нет:

Похоже все так и должно быть в этом случае, т.к. это встроенные в ядро шимы. Шим регистрируется драйвером, в данном случае это делает ntoskrnl в функции KseInitialize->KseRegisterShim. Вот, например, как это происходит в ndis, который кидал выше скрином. Т.е. KSHIM - это структура _KSE_SHIM, которая первым аргументом передается в KseRegisterShim.

ndis_shim.png


Получается, чтобы отловить и отломать шим каспера нужно поставить верифаер на ядро xD, а там уже отвалиться может что угодно помимо каспера.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
возможно, найдется еще что-то вкусное.
Ну мы нашли пользовательский ввод, который можно фазить. Я имею в виду структуру _KSE_SHIM в drvmain.sdb. Правда, это все равно не сделать из под непревилегированного юзера. Туда походу писать может только TrustedInstaller =(
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх