RPC к WebClient
Информацию об этом коде можно найти в этой записи блога. Рекомендуется прочитать, прежде чем пытаться использовать что-либо здесь.
Код для запуска WebClient через RPC-вызов. Поскольку затея в итоге не увенчалась успехом, код так и не был толком вычищен и остался в состоянии доказательства концепции.
Эти RPC-вызовы способны достичь участка кода, запускающего службу:
- EfsRpcDuplicateEncryptionInfoFile_Downlevel -> EfsDuplicateEncryptionInfoRPCClient -> EfsDuplicateEncryptionInfoClient -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcEncryptFileSrv_Downlevel -> EfsEncryptFileClient -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcDecryptFileSrv_Downlevel -> EfsDecryptFileClient -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcAddUsersToFileEx_Downlevel -> EfsAddUsersClientEx -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcRemoveUsersFromFile_Downlevel -> EfsRemoveUsersClient -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcQueryRecoveryAgents_Downlevel -> EfsQueryRecoveryAgentsClient -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcQueryUsersOnFile_Downlevel -> EfsQueryUsersClient -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
- EfsRpcFileKeyInfo_Downlevel -> EfsFileKeyInfoClient -> LocateAndConnectToService -> EfspGetFullName -> EfspAttemptToGetWebDavPath -> WNetGetResourceInformaton
В репозитории присутствует только EfsRpcEncryptFileSrv_Downlevel; возможно, остальные будут добавлены в будущем.
WnfToWebClient — это .NET-код, который запускает службу WebClient с помощью WNF-сообщения. Требуются привилегии NT AUTHORITY/SYSTEM, так что это опять же просто доказательство концепции.
RPC-вызов и WNF-сообщение на самом деле не могут быть использованы в качестве оружия (на данный момент) из-за дескрипторов безопасности потребителя событий ETW (UBPM) и имени состояния WNF.