2/ For our tests, we use the hosted instance of MeshCentral.com, but the management software can also be run on a separate server, controlled by the TA.
After logging into the panel, we can download an agent for different operating systems (Windows, Mac, Linux).
3/ Before the installation or execution of the agent, the server URL is displayed under "Connection Details".
In our example, the agent connects to meshcentral.com, but another domain can be configured when the management server is self-hosted.
4/ In an IR case, we found the MeshCentral config on a host where the Server URL was
wss://mesh.<redacted>.com:443/agent.ashx
a self-hosted instance of the management server.
5/ We could search for "agent.ashx" in the proxy logs for hunting MeshCentral network connections.
Even if the protocol used is WebSockets, an initial HTTP connection takes place, where the upgrade to the WSS connection is negotiated (which should log the URL). [3]
6/ When running the agent on our host, we see the configured command line parameters (--connect, --hideConsole).
Even if the executable is renamed, these parameters could be used to identify a MeshAgent installation if command logging is active.
7/ After starting the agent on our host, the computer immediately checks in with the Management server.
8/ MeshCentral offers many features, such as connecting to the computer via RDP.
9/ The use of a terminal.
10/ File browsing.
11/ And code execution.
12/ With the @velocidex Velociraptor Hunt DNSCache, we see that the host has resolved the meshcentral.com domain used within the configuration from the agent.
13/ Perhaps a better hunt for MeshCentral is within the firewall rules, which can be done quickly with Velociraptor's Hunt FirewallRules.
14/ Interesting is a file with the extension ".msh", which contains the agent configuration, and is placed in the same folder as the agent.
15/ Within the services on the system, the MeshAgent is also easy to recognize.
16/ Or within the event logs when we search for new service events (EventID 7045).
17/ Inside the registry, various configuration strings are stored, for example, the MeshServerUrl.
18/ MeshCentral should be relatively easy to find on the network with the artifacts and hunts presented above and could be signs of an active TA on the network.
Good luck 🍀
And btw, @IcsNick has tweeted a list of other remote admin tools [2], which you should check out ☝️
1/ We recently had an interesting #Azure case where the TA, instead of creating a new Inbox Rule, added email addresses of interest to the list of blocked senders and domains.
The incoming emails will get flagged as spam and moved to the Junk email folder. 📂
🧵
2/ Here is a screenshot from Outlook web access
(the view might differ, as, for example, here on the screenshot from the theitbros [1])
1/ Customer receives an email from a network monitoring device that a host is supposedly infected with a #CoinMiner. The Task Manager on the said system shows the following screenshot 🤕.
A story of an unpatched system, incorrect scoping, and 🍀. 🧵
1/ I used #AutoRuns v14.09 (GUI) in my lab setup but noticed that it failed to find (or display) the malware in the Startup folder, although the file is there (screenshot below).
I checked back and forth, searched manually for the file, and restarted the OS and AutoRuns.
🧵
2/ With #Velociraptor, I ran the hunt Sysinternals.Autoruns, and with the CLI version of AutoRuns, the malware is found in the Startup folder.
3/ The same for the #Velociraptor hunt Sys.StartupItems.
1/ Real-World #PingCastle Finding #13: Allow log on locally
➡️ Domain Users are eligible to log into DC's 🤯🙈
"When you grant an account the Allow logon locally right, you are allowing that account to log on locally to all domain controllers in the domain." [1]
"If you do not restrict this user right to legitimate users who must log on to the console of the computer, unauthorized users could download and run malicious software to elevate their privileges." [1]
3/ I encountered this finding several times in our AD assessments, so you better check your settings in your domain right now (better safe than sorry 🔒).