One of the things userinit.exe does while loading your user profile is to check for an environment variable called UserInitMprLogonScript. We can use this environment variable to assign a logon script to a user that will get run when logging into the machine.
Winlogon, the Windows component that loads your user profile right after authentication can be abuse for persistence. Check this page for more details.