Low-Reputation URL Domains Shared in Microsoft Teams
Description
This query lists URL domains shared in Microsoft Teams that use top level domains commonly abused for phishing and malware, ranked by message reach.
Query · kql
//This query lists URL domains shared in Microsoft Teams over the last 30 days that use top level domains commonly
//abused for phishing and malware, ranked by how many distinct Teams messages they reached.
//Treat this as a review list of candidate indicators, not a blocklist: legitimate services use these TLDs too.
//.zip and .mov are worth extra attention because a link reads like a file name.
let suspTlds = dynamic(["top","xyz","click","link","shop","online","site","live","icu","cyou","sbs","rest","quest","cfd","bond","buzz","fun","space","monster","work","tk","ml","ga","cf","gq","dev","app","zip","mov","info","win","loan","men","stream","country"]);
MessageUrlInfo
| where Timestamp > ago(30d)
| where isnotempty(UrlDomain)
| extend Tld = tostring(split(UrlDomain, ".")[-1])
| where Tld in (suspTlds)
| summarize TeamsMessages = dcount(TeamsMessageId), FirstSeen = min(Timestamp), LastSeen = max(Timestamp)
by UrlDomain, Tld
| top 20 by TeamsMessages desc
| project ['URL Domain']=UrlDomain, ['Top Level Domain']=Tld, ['Teams Messages']=TeamsMessages,
['First Seen']=FirstSeen, ['Last Seen']=LastSeen