Failed remote logon from a source outside the private ranges
Matches a failed logon (Security EventID 4625) of type NetworkCleartext (8) or RemoteInteractive/RDP (10) whose `IpAddress` falls outside RFC1918, CGNAT (100.64.0.0/10), loopback, link-local and IPv6 unique-local space — the external-origin leg of AN1004, the one part a single event can carry; the failure-count, geolocation and business-hours legs all need aggregation or enrichment this corpus's Sigma model cannot express, and a single event here cannot distinguish background internet scanning from a targeted attempt. LogonType 3 (plain network) was dropped because it also matches ordinary internal-service credential failures (SMB, LDAP) unrelated to an external remote-access service; 4776 is not used because it carries no source-address field and cannot satisfy this rule's external-origin filter. A successful external remote-service logon is EventID 4624, which this rule can never see, so a quiet result is not evidence that no external access occurred — and a VPN/Citrix gateway that re-authenticates on the user's behalf presents an internal address, hiding genuinely external attempts that pass through it. Prerequisite: 4625 needs the Logon subcategory of Audit Logon auditing Failure; where it is off, this rule returns zero rows, which reads as quiet but means blind. Addresses in IPv4-mapped IPv6 form (`::ffff:10.0.0.1`) are read as external by this filter; add per-estate handling if that form appears in your feed. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0354, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full descriptionShow less
The detection
The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.
detection.yml
Sentinel · KQL
Run this as a search.
SecurityEvent| where ((EventID == 4625 and (LogonType =~ "8" or LogonType =~ "10")) and not ((IpAddress startswith "10." or IpAddress startswith "127." or IpAddress startswith "169.254." or IpAddress startswith "172.16." or IpAddress startswith "172.17." or IpAddress startswith "172.18." or IpAddress startswith "172.19." or IpAddress startswith "172.20." or IpAddress startswith "172.21." or IpAddress startswith "172.22." or IpAddress startswith "172.23." or IpAddress startswith "172.24." or IpAddress startswith "172.25." or IpAddress startswith "172.26." or IpAddress startswith "172.27." or IpAddress startswith "172.28." or IpAddress startswith "172.29." or IpAddress startswith "172.30." or IpAddress startswith "172.31." or IpAddress startswith "192.168." or IpAddress startswith "100.64." or IpAddress startswith "100.65." or IpAddress startswith "100.66." or IpAddress startswith "100.67." or IpAddress startswith "100.68." or IpAddress startswith "100.69." or IpAddress startswith "100.70." or IpAddress startswith "100.71." or IpAddress startswith "100.72." or IpAddress startswith "100.73." or IpAddress startswith "100.74." or IpAddress startswith "100.75." or IpAddress startswith "100.76." or IpAddress startswith "100.77." or IpAddress startswith "100.78." or IpAddress startswith "100.79." or IpAddress startswith "100.80." or IpAddress startswith "100.81." or IpAddress startswith "100.82." or IpAddress startswith "100.83." or IpAddress startswith "100.84." or IpAddress startswith "100.85." or IpAddress startswith "100.86." or IpAddress startswith "100.87." or IpAddress startswith "100.88." or IpAddress startswith "100.89." or IpAddress startswith "100.90." or IpAddress startswith "100.91." or IpAddress startswith "100.92." or IpAddress startswith "100.93." or IpAddress startswith "100.94." or IpAddress startswith "100.95." or IpAddress startswith "100.96." or IpAddress startswith "100.97." or IpAddress startswith "100.98." or IpAddress startswith "100.99." or IpAddress startswith "100.100." or IpAddress startswith "100.101." or IpAddress startswith "100.102." or IpAddress startswith "100.103." or IpAddress startswith "100.104." or IpAddress startswith "100.105." or IpAddress startswith "100.106." or IpAddress startswith "100.107." or IpAddress startswith "100.108." or IpAddress startswith "100.109." or IpAddress startswith "100.110." or IpAddress startswith "100.111." or IpAddress startswith "100.112." or IpAddress startswith "100.113." or IpAddress startswith "100.114." or IpAddress startswith "100.115." or IpAddress startswith "100.116." or IpAddress startswith "100.117." or IpAddress startswith "100.118." or IpAddress startswith "100.119." or IpAddress startswith "100.120." or IpAddress startswith "100.121." or IpAddress startswith "100.122." or IpAddress startswith "100.123." or IpAddress startswith "100.124." or IpAddress startswith "100.125." or IpAddress startswith "100.126." or IpAddress startswith "100.127." or IpAddress startswith "0.0.0.0" or IpAddress startswith "-" or IpAddress startswith "::1" or IpAddress startswith "fe80:" or IpAddress startswith "fc" or IpAddress startswith "fd")))
Splunk · SPL
Run this as a search.
index=* ((EventID="4625" AND (LogonType="8" OR LogonType="10")) AND NOT ((IpAddress="10.*" OR IpAddress="127.*" OR IpAddress="169.254.*" OR IpAddress="172.16.*" OR IpAddress="172.17.*" OR IpAddress="172.18.*" OR IpAddress="172.19.*" OR IpAddress="172.20.*" OR IpAddress="172.21.*" OR IpAddress="172.22.*" OR IpAddress="172.23.*" OR IpAddress="172.24.*" OR IpAddress="172.25.*" OR IpAddress="172.26.*" OR IpAddress="172.27.*" OR IpAddress="172.28.*" OR IpAddress="172.29.*" OR IpAddress="172.30.*" OR IpAddress="172.31.*" OR IpAddress="192.168.*" OR IpAddress="100.64.*" OR IpAddress="100.65.*" OR IpAddress="100.66.*" OR IpAddress="100.67.*" OR IpAddress="100.68.*" OR IpAddress="100.69.*" OR IpAddress="100.70.*" OR IpAddress="100.71.*" OR IpAddress="100.72.*" OR IpAddress="100.73.*" OR IpAddress="100.74.*" OR IpAddress="100.75.*" OR IpAddress="100.76.*" OR IpAddress="100.77.*" OR IpAddress="100.78.*" OR IpAddress="100.79.*" OR IpAddress="100.80.*" OR IpAddress="100.81.*" OR IpAddress="100.82.*" OR IpAddress="100.83.*" OR IpAddress="100.84.*" OR IpAddress="100.85.*" OR IpAddress="100.86.*" OR IpAddress="100.87.*" OR IpAddress="100.88.*" OR IpAddress="100.89.*" OR IpAddress="100.90.*" OR IpAddress="100.91.*" OR IpAddress="100.92.*" OR IpAddress="100.93.*" OR IpAddress="100.94.*" OR IpAddress="100.95.*" OR IpAddress="100.96.*" OR IpAddress="100.97.*" OR IpAddress="100.98.*" OR IpAddress="100.99.*" OR IpAddress="100.100.*" OR IpAddress="100.101.*" OR IpAddress="100.102.*" OR IpAddress="100.103.*" OR IpAddress="100.104.*" OR IpAddress="100.105.*" OR IpAddress="100.106.*" OR IpAddress="100.107.*" OR IpAddress="100.108.*" OR IpAddress="100.109.*" OR IpAddress="100.110.*" OR IpAddress="100.111.*" OR IpAddress="100.112.*" OR IpAddress="100.113.*" OR IpAddress="100.114.*" OR IpAddress="100.115.*" OR IpAddress="100.116.*" OR IpAddress="100.117.*" OR IpAddress="100.118.*" OR IpAddress="100.119.*" OR IpAddress="100.120.*" OR IpAddress="100.121.*" OR IpAddress="100.122.*" OR IpAddress="100.123.*" OR IpAddress="100.124.*" OR IpAddress="100.125.*" OR IpAddress="100.126.*" OR IpAddress="100.127.*" OR IpAddress="0.0.0.0*" OR IpAddress="-*" OR IpAddress="::1*" OR IpAddress="fe80:*" OR IpAddress="fc*" OR IpAddress="fd*")))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE ((event.code == 4625 AND (TO_LOWER(LogonType) == "8" OR TO_LOWER(LogonType) == "10")) AND NOT ((TO_LOWER(IpAddress) LIKE "10.*" OR TO_LOWER(IpAddress) LIKE "127.*" OR TO_LOWER(IpAddress) LIKE "169.254.*" OR TO_LOWER(IpAddress) LIKE "172.16.*" OR TO_LOWER(IpAddress) LIKE "172.17.*" OR TO_LOWER(IpAddress) LIKE "172.18.*" OR TO_LOWER(IpAddress) LIKE "172.19.*" OR TO_LOWER(IpAddress) LIKE "172.20.*" OR TO_LOWER(IpAddress) LIKE "172.21.*" OR TO_LOWER(IpAddress) LIKE "172.22.*" OR TO_LOWER(IpAddress) LIKE "172.23.*" OR TO_LOWER(IpAddress) LIKE "172.24.*" OR TO_LOWER(IpAddress) LIKE "172.25.*" OR TO_LOWER(IpAddress) LIKE "172.26.*" OR TO_LOWER(IpAddress) LIKE "172.27.*" OR TO_LOWER(IpAddress) LIKE "172.28.*" OR TO_LOWER(IpAddress) LIKE "172.29.*" OR TO_LOWER(IpAddress) LIKE "172.30.*" OR TO_LOWER(IpAddress) LIKE "172.31.*" OR TO_LOWER(IpAddress) LIKE "192.168.*" OR TO_LOWER(IpAddress) LIKE "100.64.*" OR TO_LOWER(IpAddress) LIKE "100.65.*" OR TO_LOWER(IpAddress) LIKE "100.66.*" OR TO_LOWER(IpAddress) LIKE "100.67.*" OR TO_LOWER(IpAddress) LIKE "100.68.*" OR TO_LOWER(IpAddress) LIKE "100.69.*" OR TO_LOWER(IpAddress) LIKE "100.70.*" OR TO_LOWER(IpAddress) LIKE "100.71.*" OR TO_LOWER(IpAddress) LIKE "100.72.*" OR TO_LOWER(IpAddress) LIKE "100.73.*" OR TO_LOWER(IpAddress) LIKE "100.74.*" OR TO_LOWER(IpAddress) LIKE "100.75.*" OR TO_LOWER(IpAddress) LIKE "100.76.*" OR TO_LOWER(IpAddress) LIKE "100.77.*" OR TO_LOWER(IpAddress) LIKE "100.78.*" OR TO_LOWER(IpAddress) LIKE "100.79.*" OR TO_LOWER(IpAddress) LIKE "100.80.*" OR TO_LOWER(IpAddress) LIKE "100.81.*" OR TO_LOWER(IpAddress) LIKE "100.82.*" OR TO_LOWER(IpAddress) LIKE "100.83.*" OR TO_LOWER(IpAddress) LIKE "100.84.*" OR TO_LOWER(IpAddress) LIKE "100.85.*" OR TO_LOWER(IpAddress) LIKE "100.86.*" OR TO_LOWER(IpAddress) LIKE "100.87.*" OR TO_LOWER(IpAddress) LIKE "100.88.*" OR TO_LOWER(IpAddress) LIKE "100.89.*" OR TO_LOWER(IpAddress) LIKE "100.90.*" OR TO_LOWER(IpAddress) LIKE "100.91.*" OR TO_LOWER(IpAddress) LIKE "100.92.*" OR TO_LOWER(IpAddress) LIKE "100.93.*" OR TO_LOWER(IpAddress) LIKE "100.94.*" OR TO_LOWER(IpAddress) LIKE "100.95.*" OR TO_LOWER(IpAddress) LIKE "100.96.*" OR TO_LOWER(IpAddress) LIKE "100.97.*" OR TO_LOWER(IpAddress) LIKE "100.98.*" OR TO_LOWER(IpAddress) LIKE "100.99.*" OR TO_LOWER(IpAddress) LIKE "100.100.*" OR TO_LOWER(IpAddress) LIKE "100.101.*" OR TO_LOWER(IpAddress) LIKE "100.102.*" OR TO_LOWER(IpAddress) LIKE "100.103.*" OR TO_LOWER(IpAddress) LIKE "100.104.*" OR TO_LOWER(IpAddress) LIKE "100.105.*" OR TO_LOWER(IpAddress) LIKE "100.106.*" OR TO_LOWER(IpAddress) LIKE "100.107.*" OR TO_LOWER(IpAddress) LIKE "100.108.*" OR TO_LOWER(IpAddress) LIKE "100.109.*" OR TO_LOWER(IpAddress) LIKE "100.110.*" OR TO_LOWER(IpAddress) LIKE "100.111.*" OR TO_LOWER(IpAddress) LIKE "100.112.*" OR TO_LOWER(IpAddress) LIKE "100.113.*" OR TO_LOWER(IpAddress) LIKE "100.114.*" OR TO_LOWER(IpAddress) LIKE "100.115.*" OR TO_LOWER(IpAddress) LIKE "100.116.*" OR TO_LOWER(IpAddress) LIKE "100.117.*" OR TO_LOWER(IpAddress) LIKE "100.118.*" OR TO_LOWER(IpAddress) LIKE "100.119.*" OR TO_LOWER(IpAddress) LIKE "100.120.*" OR TO_LOWER(IpAddress) LIKE "100.121.*" OR TO_LOWER(IpAddress) LIKE "100.122.*" OR TO_LOWER(IpAddress) LIKE "100.123.*" OR TO_LOWER(IpAddress) LIKE "100.124.*" OR TO_LOWER(IpAddress) LIKE "100.125.*" OR TO_LOWER(IpAddress) LIKE "100.126.*" OR TO_LOWER(IpAddress) LIKE "100.127.*" OR TO_LOWER(IpAddress) LIKE "0.0.0.0*" OR TO_LOWER(IpAddress) LIKE "-*" OR TO_LOWER(IpAddress) LIKE "::1*" OR TO_LOWER(IpAddress) LIKE "fe80:*" OR TO_LOWER(IpAddress) LIKE "fc*" OR TO_LOWER(IpAddress) LIKE "fd*")))
Wazuh · XML rule
Deploy to your manager — this is a rule, not a search.
<group name="sigma,windows,"> <!-- Rule ids must be unique on your manager; 100000+ is the user range. --> <rule id="100000" level="5"> <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. --> <field name="EventID" type="pcre2">(?i)^4625$</field> <field name="LogonType" type="pcre2">(?i)(^8$|^10$)</field> <field name="IpAddress" negate="yes" type="pcre2">(?i)(^10\.|^127\.|^169\.254\.|^172\.16\.|^172\.17\.|^172\.18\.|^172\.19\.|^172\.20\.|^172\.21\.|^172\.22\.|^172\.23\.|^172\.24\.|^172\.25\.|^172\.26\.|^172\.27\.|^172\.28\.|^172\.29\.|^172\.30\.|^172\.31\.|^192\.168\.|^100\.64\.|^100\.65\.|^100\.66\.|^100\.67\.|^100\.68\.|^100\.69\.|^100\.70\.|^100\.71\.|^100\.72\.|^100\.73\.|^100\.74\.|^100\.75\.|^100\.76\.|^100\.77\.|^100\.78\.|^100\.79\.|^100\.80\.|^100\.81\.|^100\.82\.|^100\.83\.|^100\.84\.|^100\.85\.|^100\.86\.|^100\.87\.|^100\.88\.|^100\.89\.|^100\.90\.|^100\.91\.|^100\.92\.|^100\.93\.|^100\.94\.|^100\.95\.|^100\.96\.|^100\.97\.|^100\.98\.|^100\.99\.|^100\.100\.|^100\.101\.|^100\.102\.|^100\.103\.|^100\.104\.|^100\.105\.|^100\.106\.|^100\.107\.|^100\.108\.|^100\.109\.|^100\.110\.|^100\.111\.|^100\.112\.|^100\.113\.|^100\.114\.|^100\.115\.|^100\.116\.|^100\.117\.|^100\.118\.|^100\.119\.|^100\.120\.|^100\.121\.|^100\.122\.|^100\.123\.|^100\.124\.|^100\.125\.|^100\.126\.|^100\.127\.|^0\.0\.0\.0|^-|^::1|^fe80:|^fc|^fd)</field> <description>Failed remote logon from a source outside the private ranges</description> <mitre> <id>T1133</id> </mitre> </rule></group>
Verdicts · reactions · comments
Community
Verdicts from engineers who actually deployed it, and the conversation around it.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.
Log in to report a verdict.
Log in to join the discussion.
No comments yet. Someone who deploys this will have something to say about it.