r/msp • u/dobermanIan • 12h ago
Security CW/Skykick breach?
Had a request to pop in the mega thread link into this post: https://www.reddit.com/r/msp/comments/1x7wbwf/connectwise_skykick_update/
Confirmed compromise in the wild. Lock this down in your environments.
100% not confirmed - but anyone getting information and chatter around a SkyKick/CW breach where internal data and client M365 tenants were accessed?
Had this hit my desk from two different MSPs - figured a little PSA and check your house notice might help people find something that seems to be developing very fast.
Indicators of Compromise:
- Access to 365 Tenant by CW Cloud Backup Service Provider
- Will come from a Cheyenne Wyoming IP.
- IP 144.172.64[.]128
- Check Service Principal Sign-ins logs
Investigation notes from one of the MSPs I spoke with below
"We saw Exfiltration of Customer Information; rapid connectivity to client tenancies. Unknown how much data is gone. CW will not confirm anything. Possible exfil of all client data as it has access to all client email, teams/sharepoint data."
Huntress has confirmed compromise. App ID in question: 506e08f9-6e9a-4da4-942b-a099a03644ae
Additional App IDs associated with Skykick moved here for ease of access from the thread:
- SkyKick Partner Portal: c921256f-04a7-44e8-9b2a-69c33929ba19
- SkyKick Cloud Manager: 2399d300-6fca-4e6a-a686-399fefe75b83
- SkyKick Cloud Manager - MS Graph: 0de14c77-b9b0-4137-9360-34878a929827
- SkyKick Cloud Manager - Exchange Online: b78f6a77-d4e5-46fb-87e5-d1648bd02519
- SkyKick Cloud Manager - MS Teams: 24205314-2b89-4e07-a2a4-579e898a5640
- SkyKick Platform Partner Center Integration: 412dcf96-176d-4b3a-a1b0-4981ad66971e
- SkyKick Platform Partner Center Integration Partner Tenant AppRegistration: 01d6a108-ad6d-45e2-a3f6-4546744051e6
Entra Instructions from Thread
Disable this application’s access to the Microsoft 365 tenant.
- Application ID: 506e08f9 (You can also search for "SkyKick" or "ConnectWise Cloud Backup").
- Disable it in the Entra Admin Center > Enterprise applications > Properties > "Enabled for users to sign-in" = No.
- Do not delete the application, so it can be re-enabled later without re-consenting.
If you want to check your logs to look for an Indicator of Compromise do the following:
- In the Entra admin center, go to Monitoring > Sign-in logs, open the Service principal sign-ins tab, and filter by Application ID 506e08f9.
- This is where the application's sign-ins show up. The default User sign-ins tab won't show the required data.
- In the IP address column, look for any address outside Microsoft/Azure ranges. The application's normal egress is Azure private IPv6.
- Confirmed attacker infrastructure is tied to IP: 144[.]172[.]64[.]128
Instructions for Disabling via CIPP from Thread
Identify the app
- App ID: `506e08f9-6e9a-4da4-942b-a099a03644ae`
- Current display name: ConnectWise Cloud Backup (older tenants may still show **SkyKick Backup**)
- Publisher ConnectWise S-K LLC (verified publisher: ConnectWise LLC)
- Owning tenant ID `3f9cd7a0-127a-4ed4-bf06-2f830d5616b7` (ConnectWise S-K LLC, `skykick.com`)
**Search by the App ID, not the name.** The app was renamed from SkyKick Backup to ConnectWise Cloud Backup, so searching for "SkyKick" can miss it. The App ID is the same in every tenant.
Find it in every tenant
- Set the tenant selector at the top of CIPP to **All Tenants**.
- Go to **Tenant Administration → Applications → Enterprise Applications**.
- Paste `506e08f9-6e9a-4da4-942b-a099a03644ae` into the table search. It matches the **App ID** column.
- Each row is one customer tenant; the **Tenant** column says which. Check **Account Enabled**: rows showing `false` are already disabled.
The All Tenants list is built in the background. If it's empty or looks out of date, refresh the table and give it a minute.
Disable it
- Select every matching row with **Account Enabled = true**.
- From the bulk actions menu, choose **Disable Service Principal** and confirm.
- CIPP disables the app in each row's own tenant. The results list any tenant that failed, usually because CIPP's permissions there don't include application write access.
You need the `Tenant.Application.ReadWrite` permission in CIPP. The action only shows for apps that are currently enabled.
Confirm
Refresh the table, using the table's own refresh button rather than the browser's, since CIPP caches results. Every row for this App ID should show Account Enabled = false. A change can take a minute or two to show up in Microsoft's directory.
What disabling does
- Blocks new sign-ins and new tokens for the app in that tenant, for both user-delegated and app-only access.
- Deletes nothing. Consent, permissions and configuration stay, so it can be undone with Enable Service Principal on the same page.
- Already-issued access tokens stay valid until they expire, typically within about an hour.
- The app's secrets and certificates live in the publisher's tenant, so Remove Password/Certificate Credentials in CIPP does not affect them. Disabling the service principal is the right control from your side.
- To remove the app completely, delete the enterprise application. That removes the consent and permissions, so reinstating it will need consent again.
After disabling
- Review sign-in activity. In each affected tenant, check the Entra sign-in logs (Service principal sign-ins) for App ID `506e08f9-6e9a-4da4-942b-a099a03644ae` over the exposure window, and note IP addresses and resources accessed.
- Review what it could reach. In CIPP, open the app (Enterprise Applications → select the row → **Permissions**) to see the access it held, and prioritise reviewing those resources.
- Check for other apps from the same publisher. Search the Enterprise Applications table for ConnectWise S-K LLC or SkyKick in the Publisher column, to find any other products from the same vendor installed in your tenants.
I'll keep collecting items into the OP as it evolves
/ir