just as the title says
The official way, which requires Pokemon Bank with an active subscription, doesn’t work on Citra but there’s a workaround.
All you need is the save files of ORAS and UM (right click the game on Citra’s start window than choose Open savedata location, there should be a file called main) and the latest release of PKHeX (get it here: https://github.com/kwsch/PKHeX/releases/latest)
Open two instances of PKHeX and open your main files in them. Now you can just drag and drop your Pokemon from the one PKHeX to the other. There is no difference to a real transfer, just that your Pokemon will stay on ORAS as well.
After you are done save the main back to where it was.
IMPORTANT: Ever when messing with save files be sure to keep a backup somewhere safe (not in Citra’s save directory). Also in your savedata folder there should only be the main file. If you rename it or put other files besides it the game won’t load anymore.