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 🍀. 🧵
2/ The affected (and remotely accessible) server have had Confluence installed.
One of my first questions I asked the customer was if the system was up to date (Spoiler: it wasn't).
Confluence 6.0.4 was installed at the time of the incident.
3/ Confluence 6.0.4 was released in January 2017 🤯
4/ The system was also exposed on the Internet last year when hundreds of vulnerable Confluence instances were compromised with CVE-2022-26134. [2],[3]
5/ Interestingly, Shodan shows the status code 503, Service Unavailable, for the service listening on port 443.
The Shodan scanner and potentially all other scanners did not find this instance at all, although exposed on the Internet and reachable (tested).
6/ The customer ran several web services on this server, served by a WebDisaptcher (based on the host header).
A request with an IP-Only host header could, therefore, not be successful.
> GET / HTTP/1.1
* HTTP 1.0, assume close after body
< HTTP/1.0 503 Service Unavailable
8/ The affected company had two external perimeter scans performed by two companies.
The system was both times not found because the customer did not give the tester the full IP ranges for the tests. They were supposed to OSINT, which IP ranges belonged to the customer 🤷♂️
9/This might be a good approach at one point (when you really think you know your perimeter well enough), but at least in a lot of our IR investigations, companies lost track of the exposed services they have on their IP range.
10/ The miner on the affected server used the default XMR address. This behavior always makes me think of the tweet from Florian:
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 🔒).
2/ @threatpunter wrote a detailed blog about WMI persistences and how to remove them.
"The simplest method to remove the entry from the WMI database is to use Autoruns. Launch Autoruns as an administrator and select the WMI tab to review WMI-related persistence." ✂️
3/ "Alternatively, you can remove the WMI event subscriptions from the command line." [2]
This is the last thread in this AD hardening measure series, but there would still be so much to discuss 😅
Here are more points you should focus on to defend your networks even better.
"Administrative accounts should never be enabled for delegation.
You can prevent these privileged accounts from being targeted by enabling the ‘Account is sensitive and cannot be delegated’ flag on them. You can optionally add these accounts to the ‘Protected Users’ group.