Do you have access to the Citrix desktop like a native remote desktop login (and able to install software, copy/download files there, or are you restricted to a sandboxed environment that only gives you a browser on login (no desktop) or with read only access?
If you have desktop and write access, or can work with your IT department to configure things. The optimal solution if you must go through Citrix, is to have a desktop and not just auto launch browser on login. And from this setup, you or your IT department has preconfigured the Citrix user account to already have either of the following on the desktop/server's filesystem:
* Selenium server JAR with batch files, etc. to which you can start up a Selenium grid node, or a standalone RemoteWebDriver connection to then run tests to connect to which can control the browser within Citrix session.
* Selenium test files and test framework/runner so you can directly execute the tests there in the Citrix session locally with local instance of FirefoxDriver or other browser.
You just need those available already when you login then you just run the tests from there or the batch scripts to start up Selenium connection and you can then run tests remotely to launch the Selenium browser tests to that Citrix session. Think of this as treating Citrix setup as if they were remote machines you access with remote desktop, although you would need to connect to Citrix manually from a browser first to establish the remote desktop session before you can then run the tests (and see the action of browser automation of a browser within a browser)
But if you are truly sandboxed, you would have to resort to Sikuli and like tools as others have mention. I doubt AutoIt will work as that's not image recognition based. It won't recognize Windows GUI objects within a remote desktop session inside a browser.